[X86] combineX86ShufflesRecursively - fix use after move warning. NFCI.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 20 Sep 2020 13:06:50 +0000 (14:06 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 20 Sep 2020 13:06:50 +0000 (14:06 +0100)
After moving WidenedMask is in an undefined state, so reduce scope of the variable so its reinitialized every iteration - we should still retain any memory allocation savings.

llvm/lib/Target/X86/X86ISelLowering.cpp

index 6ad9128..3a4f09b 100644 (file)
@@ -36147,8 +36147,10 @@ static SDValue combineX86ShufflesRecursively(
     // elements, and shrink them to the half-width mask. It does this in a loop
     // so it will reduce the size of the mask to the minimal width mask which
     // performs an equivalent shuffle.
-    SmallVector<int, 64> WidenedMask;
-    while (Mask.size() > 1 && canWidenShuffleElements(Mask, WidenedMask)) {
+    while (Mask.size() > 1) {
+      SmallVector<int, 64> WidenedMask;
+      if (!canWidenShuffleElements(Mask, WidenedMask))
+        break;
       Mask = std::move(WidenedMask);
     }