[llvm] [AArch64] Ensure we transferImpOps on BSP pseudo expansions. (PR #149456)

Ricardo Jesus via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 18 01:29:15 PDT 2025


================
@@ -1205,32 +1205,36 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock &MBB,
     Register DstReg = MI.getOperand(0).getReg();
     if (DstReg == MI.getOperand(3).getReg()) {
       // Expand to BIT
-      BuildMI(MBB, MBBI, MI.getDebugLoc(),
-              TII->get(Opcode == AArch64::BSPv8i8 ? AArch64::BITv8i8
-                                                  : AArch64::BITv16i8))
-          .add(MI.getOperand(0))
-          .add(MI.getOperand(3))
-          .add(MI.getOperand(2))
-          .add(MI.getOperand(1));
+      auto I = BuildMI(MBB, MBBI, MI.getDebugLoc(),
+                       TII->get(Opcode == AArch64::BSPv8i8 ? AArch64::BITv8i8
+                                                           : AArch64::BITv16i8))
+                   .add(MI.getOperand(0))
+                   .add(MI.getOperand(3))
+                   .add(MI.getOperand(2))
+                   .add(MI.getOperand(1));
+      transferImpOps(MI, I, I);
----------------
rj-jesus wrote:

Nit: would it be worth declaring `MachineInstrBuilder MIB` before the if-else chain and moving `transferImpOps(MI, MIB, MIB);` just before `MI.eraseFromParent`?

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


More information about the llvm-commits mailing list