diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-01-12 22:38:08 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-01-12 22:38:08 +0000 |
| commit | d88ab87064d9b366393d58066f3bee8111f6cec4 (patch) | |
| tree | 8ed2ba81365c046325e57b0c9aafdee288f5a800 /llvm/lib | |
| parent | 0e6ffb9d0d0f4ca27a9e4bfdcf00ca57c681a2fa (diff) | |
| download | bcm5719-llvm-d88ab87064d9b366393d58066f3bee8111f6cec4.tar.gz bcm5719-llvm-d88ab87064d9b366393d58066f3bee8111f6cec4.zip | |
[X86][SSE] Minor regression fix for r225551
r225551 vector byte shuffle optimization caused an assertion as fully zeroable vectors can be produced under certain circumstances. This fix drops the assert and returns a zero vector where the assert would have failed.
llvm-svn: 225718
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index f455700d5ad..c36bd52fc55 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -9652,7 +9652,6 @@ static SDValue lowerV16I8VectorShuffle(SDValue Op, SDValue V1, SDValue V2, V2InUse |= (ZeroMask != V2Idx); } } - assert((V1InUse || V2InUse) && "Shuffling to a zeroable vector"); if (V1InUse) V1 = DAG.getNode(X86ISD::PSHUFB, DL, MVT::v16i8, V1, @@ -9668,6 +9667,8 @@ static SDValue lowerV16I8VectorShuffle(SDValue Op, SDValue V1, SDValue V2, return V1; // Single inputs are easy. if (V2InUse) return V2; // Single inputs are easy. + // Shuffling to a zeroable vector. + return getZeroVector(MVT::v16i8, Subtarget, DAG, DL); } // There are special ways we can lower some single-element blends. |

