Fixing buggy code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27239 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2006-03-28 23:41:33 +00:00
parent f065a6f711
commit 36b27f3cde

View File

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