mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-29 15:17:14 +00:00
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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user