diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-02-18 22:25:27 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-02-18 22:25:27 +0000 |
| commit | 2e78c94ea5570032e0e3f0a12d269c694665cf8e (patch) | |
| tree | db614efcf82a86eef6f1af17322809058c175f5c /llvm/lib | |
| parent | 53c5c3d65df3d48fd147b7786ef56cf9da6548d2 (diff) | |
| download | bcm5719-llvm-2e78c94ea5570032e0e3f0a12d269c694665cf8e.tar.gz bcm5719-llvm-2e78c94ea5570032e0e3f0a12d269c694665cf8e.zip | |
[X86][SSE] Avoid repeated calls to SDValue::getValueType.
Added assertion to check input type of X86ISD::VZEXT during target known bits calculation.
llvm-svn: 295575
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 5522c7138b9..2a3179709c9 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -26315,12 +26315,15 @@ void X86TargetLowering::computeKnownBitsForTargetNode(const SDValue Op, case X86ISD::VZEXT: { SDValue N0 = Op.getOperand(0); unsigned NumElts = Op.getValueType().getVectorNumElements(); - unsigned InNumElts = N0.getValueType().getVectorNumElements(); - unsigned InBitWidth = N0.getValueType().getScalarSizeInBits(); + + EVT SrcVT = N0.getValueType(); + unsigned InNumElts = SrcVT.getVectorNumElements(); + unsigned InBitWidth = SrcVT.getScalarSizeInBits(); + assert(InNumElts >= NumElts && "Illegal VZEXT input"); KnownZero = KnownOne = APInt(InBitWidth, 0); - APInt DemandedElts = APInt::getLowBitsSet(InNumElts, NumElts); - DAG.computeKnownBits(N0, KnownZero, KnownOne, DemandedElts, Depth + 1); + APInt DemandedSrcElts = APInt::getLowBitsSet(InNumElts, NumElts); + DAG.computeKnownBits(N0, KnownZero, KnownOne, DemandedSrcElts, Depth + 1); KnownOne = KnownOne.zext(BitWidth); KnownZero = KnownZero.zext(BitWidth); KnownZero |= APInt::getHighBitsSet(BitWidth, BitWidth - InBitWidth); |

