[llvm] [LV] Mask off possibly aliasing vector lanes (PR #100579)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 11 05:51:09 PST 2025
================
@@ -4252,7 +4279,52 @@ void VPWidenPointerInductionRecipe::print(raw_ostream &O, const Twine &Indent,
getOperand(4)->printAsOperand(O, SlotTracker);
}
}
+#endif
+
+void VPAliasLaneMaskRecipe::execute(VPTransformState &State) {
+ IRBuilderBase Builder = State.Builder;
+ Value *SinkValue = State.get(getSinkValue(), true);
+ Value *SourceValue = State.get(getSourceValue(), true);
+
+ unsigned IntrinsicID = WriteAfterRead ? Intrinsic::loop_dependence_war_mask
+ : Intrinsic::loop_dependence_raw_mask;
+ Value *SourceAsPtr = Builder.CreateCast(Instruction::IntToPtr, SourceValue,
+ Builder.getPtrTy());
+ Value *SinkAsPtr =
+ Builder.CreateCast(Instruction::IntToPtr, SinkValue, Builder.getPtrTy());
+ Value *AliasMask = Builder.CreateIntrinsic(
----------------
fhahn wrote:
This basically lowers to a wide intrinsic, can this simply use VPWidenIntrinsicReicpe?
https://github.com/llvm/llvm-project/pull/100579
More information about the llvm-commits
mailing list