[llvm] r298783 - [X86] Pull out repeated ScalarValueSizeInBits code. NFCI.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sat Mar 25 14:22:12 PDT 2017
Author: rksimon
Date: Sat Mar 25 16:22:12 2017
New Revision: 298783
URL: http://llvm.org/viewvc/llvm-project?rev=298783&view=rev
Log:
[X86] Pull out repeated ScalarValueSizeInBits code. NFCI.
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=298783&r1=298782&r2=298783&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Sat Mar 25 16:22:12 2017
@@ -26646,25 +26646,23 @@ void X86TargetLowering::computeKnownBits
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::ComputeNumSi
case X86ISD::VPCOM:
case X86ISD::VPCOMU:
// Vector compares return zero/all-bits result values.
- return Op.getScalarValueSizeInBits();
+ return VTBits;
}
// Fallback case.
More information about the llvm-commits
mailing list