Fixing buggy code.
authorEvan Cheng <evan.cheng@apple.com>
Tue, 28 Mar 2006 23:41:33 +0000 (23:41 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 28 Mar 2006 23:41:33 +0000 (23:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27239 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 2c067b10bd06b77552e2d3817d5e38b046d4a825..303b808a8d6569f6c97cb92801c9c7bb3e4c2842 100644 (file)
@@ -1571,14 +1571,14 @@ unsigned X86::getShuffleSHUFImmediate(SDNode *N) {
   unsigned NumOperands = N->getNumOperands();
   unsigned Shift = (NumOperands == 4) ? 2 : 1;
   unsigned Mask = 0;
-  unsigned i = NumOperands - 1;
-  do {
-    unsigned Val = cast<ConstantSDNode>(N->getOperand(i))->getValue();
+  for (unsigned i = 0; i < NumOperands; ++i) {
+    unsigned Val
+      = cast<ConstantSDNode>(N->getOperand(NumOperands-i-1))->getValue();
     if (Val >= NumOperands) Val -= NumOperands;
     Mask |= Val;
-    Mask <<= Shift;
-    --i;
-  } while (i != 0);
+    if (i != NumOperands - 1)
+      Mask <<= Shift;
+  }
 
   return Mask;
 }