aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2008-06-19 06:09:51 +0000
committerEli Friedman <eli.friedman@gmail.com>2008-06-19 06:09:51 +0000
commit12ca3fe5fa63ecd64f7a09c05fc33961e507cdc9 (patch)
treec3da22e58f81480e3ded450d2ed84c89d73ba1af /lib
parent03d96b966db9f1039c6695482157f864e1e670b0 (diff)
downloadexternal_llvm-12ca3fe5fa63ecd64f7a09c05fc33961e507cdc9.zip
external_llvm-12ca3fe5fa63ecd64f7a09c05fc33961e507cdc9.tar.gz
external_llvm-12ca3fe5fa63ecd64f7a09c05fc33961e507cdc9.tar.bz2
Fix a bug with <8 x i16> shuffle lowering on X86 where parts of the
shuffle could be skipped. The check is invalid because the loop index i doesn't correspond to the element actually inserted. The correct check is already done a few lines earlier, for whether the element is already in the right spot, so this shouldn't have any effect on the codegen for code that was already correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52486 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/X86/X86ISelLowering.cpp2
1 files changed, 0 insertions, 2 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp
index 4211508..7962924 100644
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -3445,8 +3445,6 @@ SDOperand LowerVECTOR_SHUFFLEv8i16(SDOperand V1, SDOperand V2,
continue;
SDOperand Elt = MaskElts[i];
unsigned EltIdx = cast<ConstantSDNode>(Elt)->getValue();
- if (EltIdx == i)
- continue;
SDOperand ExtOp = (EltIdx < 8)
? DAG.getNode(ISD::EXTRACT_VECTOR_ELT, MVT::i16, V1,
DAG.getConstant(EltIdx, PtrVT))