diff options
| author | Craig Topper <craig.topper@gmail.com> | 2012-05-22 06:09:38 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2012-05-22 06:09:38 +0000 |
| commit | 53b4b73be918a67828bb9c96570bf32bf441dd54 (patch) | |
| tree | 11bb36627eae618356c82ad5207a7454740c11b8 | |
| parent | cdf4fd8267b7a573d82390522db4fa0fe5ba4421 (diff) | |
| download | bcm5719-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.cpp | 2 |
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, |

