[llvm] r335617 - [DAGCombiner] Pull out VT bitwidth in visitSDIV. NFCI.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 26 08:39:16 PDT 2018
Author: rksimon
Date: Tue Jun 26 08:39:16 2018
New Revision: 335617
URL: http://llvm.org/viewvc/llvm-project?rev=335617&view=rev
Log:
[DAGCombiner] Pull out VT bitwidth in visitSDIV. NFCI.
Modified:
llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=335617&r1=335616&r2=335617&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Tue Jun 26 08:39:16 2018
@@ -3004,6 +3004,7 @@ SDValue DAGCombiner::visitSDIV(SDNode *N
SDValue N0 = N->getOperand(0);
SDValue N1 = N->getOperand(1);
EVT VT = N->getValueType(0);
+ unsigned BitWidth = VT.getScalarSizeInBits();
// fold vector ops
if (VT.isVector())
@@ -3072,16 +3073,15 @@ SDValue DAGCombiner::visitSDIV(SDNode *N
// Create constants that are functions of the shift amount value.
EVT ShiftAmtTy = getShiftAmountTy(N0.getValueType());
- SDValue Bits = DAG.getConstant(VT.getScalarSizeInBits(), DL, ShiftAmtTy);
+ SDValue Bits = DAG.getConstant(BitWidth, DL, ShiftAmtTy);
SDValue C1 = DAG.getNode(ISD::CTTZ, DL, VT, N1);
C1 = DAG.getZExtOrTrunc(C1, DL, ShiftAmtTy);
SDValue Inexact = DAG.getNode(ISD::SUB, DL, ShiftAmtTy, Bits, C1);
if (!isConstantOrConstantVector(Inexact))
return SDValue();
// Splat the sign bit into the register
- SDValue Sign = DAG.getNode(
- ISD::SRA, DL, VT, N0,
- DAG.getConstant(VT.getScalarSizeInBits() - 1, DL, ShiftAmtTy));
+ SDValue Sign = DAG.getNode(ISD::SRA, DL, VT, N0,
+ DAG.getConstant(BitWidth - 1, DL, ShiftAmtTy));
AddToWorklist(Sign.getNode());
// Add (N0 < 0) ? abs2 - 1 : 0;
More information about the llvm-commits
mailing list