[PATCH] D105770: [AArch64] Optimize overflow checks for [s|u]mul.with.overflow.i32.

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 12 00:26:48 PDT 2021


dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.

Sounds good to me. Is the fast ISel mostly updated to keep the test insync? I know that code less, but it seems OK to me.



================
Comment at: llvm/lib/Target/AArch64/AArch64FastISel.cpp:3684
         MulReg = emitSMULL_rr(MVT::i64, LHSReg, RHSReg);
-        unsigned ShiftReg = emitLSR_ri(MVT::i64, MVT::i64, MulReg, 32);
-        MulReg = fastEmitInst_extractsubreg(VT, MulReg, AArch64::sub_32);
-        ShiftReg = fastEmitInst_extractsubreg(VT, ShiftReg, AArch64::sub_32);
-        emitSubs_rs(VT, ShiftReg, MulReg, AArch64_AM::ASR, 31,
-                    /*WantResult=*/false);
+        unsigned MulSubReg =
+            fastEmitInst_extractsubreg(VT, MulReg, AArch64::sub_32);
----------------
Apparently we prefer "Register" now, over unsigned.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105770/new/

https://reviews.llvm.org/D105770



More information about the llvm-commits mailing list