[llvm] [SLP][REVEC] Make ShuffleCostEstimator and ShuffleInstructionBuilder can vectorize vector instructions. (PR #99606)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 6 03:19:34 PDT 2024


================
@@ -8271,6 +8286,27 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis {
   /// to move most of the long shuffles cost estimation to TTI.
   bool SameNodesEstimated = true;
 
+  /// V is expected to be a vectorized value.
+  /// When REVEC is disabled, there is no difference between VF and
+  /// VNumElements.
+  /// When REVEC is enabled, VF is VNumElements / ScalarTyNumElements.
+  /// e.g., if ScalarTy is <4 x Ty> and V1 is <8 x Ty>, 2 is returned instead
+  /// of 8.
+  unsigned getVF(Value *V) {
----------------
alexey-bataev wrote:

```suggestion
  unsigned getVF(Value *V) const {
```


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


More information about the llvm-commits mailing list