[PATCH] D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors.

Valeriy Dmitriev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 26 12:05:23 PST 2019


vdmitrie added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3032
+                     ReuseShuffleIndicies);
+        LLVM_DEBUG(dbgs() << "SLP: Non-consecutive store.\n");
+        return;
----------------
"Non-consecutive" here is not the actual reason.


================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3038
       // Check the order of pointer operands.
-      if (llvm::sortPtrAccesses(PointerOps, *DL, *SE, CurrentOrder)) {
+      if (NumberOfInstructions == VL.size()) {
+        if (!llvm::sortPtrAccesses(PointerOps, *DL, *SE, CurrentOrder)) {
----------------
If we have for example this sequence:
 store addr[2]
 store addr[0]
 store addr[1]
 undef
then we bypass sorting pointers and end up vectorizing this store sequence with incorrect order.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57059/new/

https://reviews.llvm.org/D57059





More information about the llvm-commits mailing list