@@ -9305,8 +9305,6 @@ LegalizerHelper::LegalizeResult LegalizerHelper::lowerSADDE(MachineInstr &MI) {
93059305 const LLT Ty = MRI.getType (Res);
93069306 const LLT BoolTy = MRI.getType (OvOut);
93079307
9308- Register NewRes = MRI.cloneVirtualRegister (Res);
9309-
93109308 // Step 1: tmp = LHS + RHS
93119309 auto Tmp = MIRBuilder.buildAdd (Ty, LHS, RHS);
93129310
@@ -9318,17 +9316,14 @@ LegalizerHelper::LegalizeResult LegalizerHelper::lowerSADDE(MachineInstr &MI) {
93189316
93199317 // Step 2: sum = tmp + zext(CarryIn)
93209318 auto CarryInZ = MIRBuilder.buildZExt (Ty, CarryIn);
9321- MIRBuilder.buildAdd (NewRes , Tmp, CarryInZ);
9319+ MIRBuilder.buildAdd (Res , Tmp, CarryInZ);
93229320
93239321 // ov1 = CarryIn & (sum < tmp)
9324- auto SumLtTmp = MIRBuilder.buildICmp (CmpInst::ICMP_SLT, BoolTy, NewRes , Tmp);
9322+ auto SumLtTmp = MIRBuilder.buildICmp (CmpInst::ICMP_SLT, BoolTy, Res , Tmp);
93259323 auto Ov1 = MIRBuilder.buildAnd (BoolTy, SumLtTmp, CarryIn);
93269324
93279325 // ov = ov0 | ov1
9328- auto Ov = MIRBuilder.buildOr (BoolTy, Ov0, Ov1);
9329-
9330- MIRBuilder.buildCopy (OvOut, Ov);
9331- MIRBuilder.buildCopy (Res, NewRes);
9326+ MIRBuilder.buildOr (OvOut, Ov0, Ov1);
93329327
93339328 MI.eraseFromParent ();
93349329 return Legalized;
0 commit comments