@@ -2482,7 +2482,11 @@ class LLVM_ABI_FOR_TEST VPInterleaveBase : public VPRecipeBase {
2482
2482
2483
2483
// / Return the VPValues stored by this interleave group. If it is a load
2484
2484
// / interleave group, return an empty ArrayRef.
2485
- virtual ArrayRef<VPValue *> getStoredValues () const = 0;
2485
+ ArrayRef<VPValue *> getStoredValues () const {
2486
+ return ArrayRef<VPValue *>(op_end () -
2487
+ (getNumStoreOperands () + (HasMask ? 1 : 0 )),
2488
+ getNumStoreOperands ());
2489
+ }
2486
2490
};
2487
2491
2488
2492
// / VPInterleaveRecipe is a recipe for transforming an interleave group of load
@@ -2524,13 +2528,6 @@ class LLVM_ABI_FOR_TEST VPInterleaveRecipe final : public VPInterleaveBase {
2524
2528
unsigned getNumStoreOperands () const override {
2525
2529
return getNumOperands () - (HasMask ? 2 : 1 );
2526
2530
}
2527
-
2528
- ArrayRef<VPValue *> getStoredValues () const override {
2529
- // The first operand is the address, followed by the stored values, followed
2530
- // by an optional mask.
2531
- return ArrayRef<VPValue *>(op_begin (), getNumOperands ())
2532
- .slice (1 , getNumStoreOperands ());
2533
- }
2534
2531
};
2535
2532
2536
2533
// / A recipe for interleaved access operations with vector-predication
@@ -2580,13 +2577,6 @@ class LLVM_ABI_FOR_TEST VPInterleaveEVLRecipe final : public VPInterleaveBase {
2580
2577
unsigned getNumStoreOperands () const override {
2581
2578
return getNumOperands () - (HasMask ? 3 : 2 );
2582
2579
}
2583
-
2584
- ArrayRef<VPValue *> getStoredValues () const override {
2585
- // The first operand is the address, and the second operand is EVL, followed
2586
- // by the stored values, followe by an optional mask.
2587
- return ArrayRef<VPValue *>(op_begin (), getNumOperands ())
2588
- .slice (2 , getNumStoreOperands ());
2589
- }
2590
2580
};
2591
2581
2592
2582
// / A recipe to represent inloop reduction operations, performing a reduction on
0 commit comments