]> granicus.if.org Git - llvm/commitdiff
[X86] Pull out repeated ScalarValueSizeInBits code. NFCI.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 25 Mar 2017 21:22:12 +0000 (21:22 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 25 Mar 2017 21:22:12 +0000 (21:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298783 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 02e39dadea715922a62d296899e2f04e584d63b6..fb432a000f00ba6e4871f0130511301ca118d12b 100644 (file)
@@ -26646,25 +26646,23 @@ void X86TargetLowering::computeKnownBitsForTargetNode(const SDValue Op,
 
 unsigned X86TargetLowering::ComputeNumSignBitsForTargetNode(
     SDValue Op, const SelectionDAG &DAG, unsigned Depth) const {
+  unsigned VTBits = Op.getScalarValueSizeInBits();
   unsigned Opcode = Op.getOpcode();
   switch (Opcode) {
   case X86ISD::SETCC_CARRY:
     // SETCC_CARRY sets the dest to ~0 for true or 0 for false.
-    return Op.getScalarValueSizeInBits();
+    return VTBits;
 
   case X86ISD::VSEXT: {
     SDValue Src = Op.getOperand(0);
-    EVT VT = Op.getValueType();
-    EVT SrcVT = Src.getValueType();
     unsigned Tmp = DAG.ComputeNumSignBits(Src, Depth + 1);
-    Tmp += VT.getScalarSizeInBits() - SrcVT.getScalarSizeInBits();
+    Tmp += VTBits - Src.getScalarValueSizeInBits();
     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();
@@ -26676,7 +26674,7 @@ unsigned X86TargetLowering::ComputeNumSignBitsForTargetNode(
   case X86ISD::VPCOM:
   case X86ISD::VPCOMU:
     // Vector compares return zero/all-bits result values.
-    return Op.getScalarValueSizeInBits();
+    return VTBits;
   }
 
   // Fallback case.