mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-24 04:56:51 +00:00
R600/SI: Use ISD::MUL instead of ISD::UMULO when lowering division
ISD::MUL and ISD:UMULO are the same except that UMULO sets an overflow bit. Since we aren't using the overflow bit, we should use ISD::MUL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218251 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2c4a45fa67
commit
e2badaf84f
@ -1515,8 +1515,8 @@ SDValue AMDGPUTargetLowering::LowerUDIVREM(SDValue Op,
|
||||
// e is rounding error.
|
||||
SDValue RCP = DAG.getNode(AMDGPUISD::URECIP, DL, VT, Den);
|
||||
|
||||
// RCP_LO = umulo(RCP, Den) */
|
||||
SDValue RCP_LO = DAG.getNode(ISD::UMULO, DL, VT, RCP, Den);
|
||||
// RCP_LO = mul(RCP, Den) */
|
||||
SDValue RCP_LO = DAG.getNode(ISD::MUL, DL, VT, RCP, Den);
|
||||
|
||||
// RCP_HI = mulhu (RCP, Den) */
|
||||
SDValue RCP_HI = DAG.getNode(ISD::MULHU, DL, VT, RCP, Den);
|
||||
@ -1547,7 +1547,7 @@ SDValue AMDGPUTargetLowering::LowerUDIVREM(SDValue Op,
|
||||
SDValue Quotient = DAG.getNode(ISD::MULHU, DL, VT, Tmp0, Num);
|
||||
|
||||
// Num_S_Remainder = Quotient * Den
|
||||
SDValue Num_S_Remainder = DAG.getNode(ISD::UMULO, DL, VT, Quotient, Den);
|
||||
SDValue Num_S_Remainder = DAG.getNode(ISD::MUL, DL, VT, Quotient, Den);
|
||||
|
||||
// Remainder = Num - Num_S_Remainder
|
||||
SDValue Remainder = DAG.getNode(ISD::SUB, DL, VT, Num, Num_S_Remainder);
|
||||
|
Loading…
Reference in New Issue
Block a user