mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-11 16:37:42 +00:00
Propagate debug loc info for UDIV.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63373 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
944d34bfe8
commit
07d8514049
@ -1463,7 +1463,7 @@ SDValue DAGCombiner::visitUDIV(SDNode *N) {
|
||||
return DAG.FoldConstantArithmetic(ISD::UDIV, VT, N0C, N1C);
|
||||
// fold (udiv x, (1 << c)) -> x >>u c
|
||||
if (N1C && N1C->getAPIntValue().isPowerOf2())
|
||||
return DAG.getNode(ISD::SRL, VT, N0,
|
||||
return DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0,
|
||||
DAG.getConstant(N1C->getAPIntValue().logBase2(),
|
||||
TLI.getShiftAmountTy()));
|
||||
// fold (udiv x, (shl c, y)) -> x >>u (log2(c)+y) iff c is power of 2
|
||||
@ -1471,12 +1471,13 @@ SDValue DAGCombiner::visitUDIV(SDNode *N) {
|
||||
if (ConstantSDNode *SHC = dyn_cast<ConstantSDNode>(N1.getOperand(0))) {
|
||||
if (SHC->getAPIntValue().isPowerOf2()) {
|
||||
MVT ADDVT = N1.getOperand(1).getValueType();
|
||||
SDValue Add = DAG.getNode(ISD::ADD, ADDVT, N1.getOperand(1),
|
||||
DAG.getConstant(SHC->getAPIntValue()
|
||||
.logBase2(),
|
||||
ADDVT));
|
||||
SDValue Add = DAG.getNode(ISD::ADD, N->getDebugLoc(), ADDVT,
|
||||
N1.getOperand(1),
|
||||
DAG.getConstant(SHC->getAPIntValue()
|
||||
.logBase2(),
|
||||
ADDVT));
|
||||
AddToWorkList(Add.getNode());
|
||||
return DAG.getNode(ISD::SRL, VT, N0, Add);
|
||||
return DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0, Add);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user