[llvm] [LV][EVL]Support reversed loads/stores. (PR #88025)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 17 03:32:49 PDT 2024


================
@@ -9365,10 +9359,17 @@ void VPReplicateRecipe::execute(VPTransformState &State) {
 
 /// Creates either vp_store or vp_scatter intrinsics calls to represent
 /// predicated store/scatter.
-static Instruction *
-lowerStoreUsingVectorIntrinsics(IRBuilderBase &Builder, Value *Addr,
-                                Value *StoredVal, bool IsScatter, Value *Mask,
-                                Value *EVL, const Align &Alignment) {
+static Instruction *lowerStoreUsingVectorIntrinsics(
+    IRBuilderBase &Builder, Value *Addr, Value *StoredVal, bool IsScatter,
+    bool IsReverse, Value *Mask, Value *EVL, const Align &Alignment) {
+  if (IsReverse) {
+    auto *StoredValTy = cast<VectorType>(StoredVal->getType());
+    Value *BlockInMaskPart =
----------------
fhahn wrote:

Would be good to clarify the name here, the variable is not really for the block-in mask and independent of a part.

https://github.com/llvm/llvm-project/pull/88025


More information about the llvm-commits mailing list