summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86ISelLowering.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-03-25 19:58:36 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-03-25 19:58:36 +0000
commit6397963c815b88ebe98ed8376bce042862d59fe2 (patch)
treec544f4f042537266105d742f1b2b2308c3aef4d3 /llvm/lib/Target/X86/X86ISelLowering.cpp
parent5400a4d0af2d47db9cbb538401bc21bb41793b9e (diff)
downloadbcm5719-llvm-6397963c815b88ebe98ed8376bce042862d59fe2.tar.gz
bcm5719-llvm-6397963c815b88ebe98ed8376bce042862d59fe2.zip
[X86][SSE] Added ComputeNumSignBitsForTargetNode support for (V)PSRAI
Part 2 of 3. Differential Revision: https://reviews.llvm.org/D31347 llvm-svn: 298780
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 47f20a2b456..547250375aa 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -26661,6 +26661,15 @@ unsigned X86TargetLowering::ComputeNumSignBitsForTargetNode(
return Tmp;
}
+ case X86ISD::VSRAI: {
+ SDValue Src = Op.getOperand(0);
+ unsigned Tmp = DAG.ComputeNumSignBits(Src, Depth + 1);
+ unsigned VTBits = Op.getValueType().getScalarSizeInBits();
+ APInt ShiftVal = cast<ConstantSDNode>(Op.getOperand(1))->getAPIntValue();
+ ShiftVal += Tmp;
+ return ShiftVal.uge(VTBits) ? VTBits : ShiftVal.getZExtValue();
+ }
+
case X86ISD::PCMPGT:
case X86ISD::PCMPEQ:
case X86ISD::CMPP:
OpenPOWER on IntegriCloud