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

via llvm-commits llvm-commits at lists.llvm.org
Fri May 3 04:41:53 PDT 2024


================
@@ -9377,12 +9377,13 @@ void VPWidenLoadRecipe::execute(VPTransformState &State) {
   }
 }
 
-static Value *reverseMask(IRBuilderBase &Builder, Value *Mask, Value *EVL,
-                          Value *AllTrueMask) {
-  VectorType *MaskTy = cast<VectorType>(Mask->getType());
-  return Builder.CreateIntrinsic(MaskTy, Intrinsic::experimental_vp_reverse,
-                                 {Mask, AllTrueMask, EVL}, nullptr,
-                                 "vp.reverse.mask");
+static Instruction *createReverseEVL(IRBuilderBase &Builder, Value *Operand,
----------------
ayalz wrote:

```suggestion
/// Use all-true mask for reverse rather than actual mask, as it avoids a dependence w/o affecting the result.
static Instruction *createReverseEVL(IRBuilderBase &Builder, Value *Operand,
```

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


More information about the llvm-commits mailing list