[llvm] [SLP][REVEC] Support more mask pattern usage in shufflevector. (PR #106212)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 29 02:57:54 PDT 2024


================
@@ -318,12 +317,11 @@ static unsigned getShufflevectorNumGroups(ArrayRef<Value *> VL) {
           int Index;
           if (!SV->isExtractSubvectorMask(Index))
             return false;
-          for (int I : seq<int>(Index, Index + SV->getShuffleMask().size()))
-            ExtractionIndex.push_back(I);
+          UsedIndex.set(Index, Index + SV->getShuffleMask().size());
           return true;
         }))
       return 0;
-    if (!is_sorted(ExtractionIndex))
+    if (!UsedIndex.all())
----------------
alexey-bataev wrote:

I mean, <0,1> extracted several time, while <2,3> is not extracted at all 

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


More information about the llvm-commits mailing list