[llvm-branch-commits] [llvm] [LV] Mask off possibly aliasing vector lanes (PR #100579)
Benjamin Maxwell via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Dec 9 04:34:16 PST 2024
================
@@ -3235,6 +3263,36 @@ void VPWidenPointerInductionRecipe::print(raw_ostream &O, const Twine &Indent,
}
#endif
+void VPAliasLaneMaskRecipe::execute(VPTransformState &State) {
+ IRBuilderBase Builder = State.Builder;
+ Value *SinkValue = State.get(getSinkValue(), true);
+ Value *SourceValue = State.get(getSourceValue(), true);
+
+ auto *Type = SinkValue->getType();
+ Value *AliasMask = Builder.CreateIntrinsic(
+ Intrinsic::experimental_get_alias_lane_mask,
+ {VectorType::get(Builder.getInt1Ty(), State.VF), Type,
+ Builder.getInt64Ty()},
+ {SourceValue, SinkValue, Builder.getInt64(getAccessedElementSize()),
+ Builder.getInt1(WriteAfterRead)},
+ nullptr, "alias.lane.mask");
+ State.set(this, AliasMask, /*IsScalar=*/false);
+}
+
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+void VPAliasLaneMaskRecipe::print(raw_ostream &O, const Twine &Indent,
+ VPSlotTracker &SlotTracker) const {
+ O << Indent << "EMIT ";
+ getVPSingleValue()->printAsOperand(O, SlotTracker);
+ O << " = alias lane mask ";
----------------
MacDue wrote:
nit: These seem more commonly printed in all caps with hyphens.
```suggestion
O << " = ALIAS-LANE-MASK ";
```
https://github.com/llvm/llvm-project/pull/100579
More information about the llvm-branch-commits
mailing list