diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-03-28 23:41:33 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-03-28 23:41:33 +0000 |
commit | 36b27f3cdef57c5b483428f98ddaf6b9aa8ef3f6 (patch) | |
tree | 02137fd07a1d02959fedd1bf8ecb88aedf83c7d0 | |
parent | f065a6f711dca09ba36ec8fd3556c4936cdbe621 (diff) |
Fixing buggy code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27239 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 2c067b10bd..303b808a8d 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -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; } |