summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2012-05-22 06:09:38 +0000
committerCraig Topper <craig.topper@gmail.com>2012-05-22 06:09:38 +0000
commit53b4b73be918a67828bb9c96570bf32bf441dd54 (patch)
tree11bb36627eae618356c82ad5207a7454740c11b8
parentcdf4fd8267b7a573d82390522db4fa0fe5ba4421 (diff)
downloadbcm5719-llvm-53b4b73be918a67828bb9c96570bf32bf441dd54.tar.gz
bcm5719-llvm-53b4b73be918a67828bb9c96570bf32bf441dd54.zip
Fix constant used for pshufb mask when lowering v16i8 shuffles. Bug introduced in r157043. Fixes PR12908.
llvm-svn: 157236
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 4e4cf276036..50a2d784dc6 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -5805,7 +5805,7 @@ SDValue LowerVECTOR_SHUFFLEv16i8(ShuffleVectorSDNode *SVOp,
for (unsigned i = 0; i != 16; ++i) {
int EltIdx = MaskVals[i];
EltIdx = (EltIdx < 16) ? 0x80 : EltIdx - 16;
- pshufbMask.push_back(DAG.getConstant(EltIdx - 16, MVT::i8));
+ pshufbMask.push_back(DAG.getConstant(EltIdx, MVT::i8));
}
V2 = DAG.getNode(X86ISD::PSHUFB, dl, MVT::v16i8, V2,
DAG.getNode(ISD::BUILD_VECTOR, dl,
OpenPOWER on IntegriCloud