[llvm] [AArch64][GlobalISel] Add push_mul_through_s/zext (PR #141551)

Cullen Rhodes via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 29 04:05:53 PDT 2025


================
@@ -553,14 +580,14 @@ void applyExtUaddvToUaddlv(MachineInstr &MI, MachineRegisterInfo &MRI,
   MI.eraseFromParent();
 }
 
-// Pushes ADD/SUB through extend instructions to decrease the number of extend
-// instruction at the end by allowing selection of {s|u}addl sooner
-
-// i32 add(i32 ext i8, i32 ext i8) => i32 ext(i16 add(i16 ext i8, i16 ext i8))
+// Pushes ADD/SUB/MUL through extend instructions to decrease the number of
+// extend instruction at the end by allowing selection of {s|u}addl sooner i32
+// add(i32 ext i8, i32 ext i8) => i32 ext(i16 add(i16 ext i8, i16 ext i8))
 bool matchPushAddSubExt(MachineInstr &MI, MachineRegisterInfo &MRI,
                         Register DstReg, Register SrcReg1, Register SrcReg2) {
   assert((MI.getOpcode() == TargetOpcode::G_ADD ||
-          MI.getOpcode() == TargetOpcode::G_SUB) &&
+          MI.getOpcode() == TargetOpcode::G_SUB ||
+          MI.getOpcode() == TargetOpcode::G_MUL) &&
          "Expected a G_ADD or G_SUB instruction\n");
----------------
c-rhodes wrote:

```suggestion
         "Expected a G_ADD or G_SUB or G_MUL instruction\n");
```

https://github.com/llvm/llvm-project/pull/141551


More information about the llvm-commits mailing list