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