[llvm] [AArch64] Disable coalescing of SUBREG_TO_REG with subreg liveness. (PR #174185)
Sander de Smalen via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 12 00:58:40 PST 2026
================
@@ -214,8 +218,10 @@ define void @t17(i64 %a) {
define i8 @LdOffset_i8(ptr %a) {
; CHECK-LABEL: LdOffset_i8:
; CHECK: // %bb.0:
-; CHECK-NEXT: add x8, x0, #253, lsl #12 // =1036288
-; CHECK-NEXT: ldrb w0, [x8, #3704]
----------------
sdesmalen-arm wrote:
The SUBREG_TO_REG gets replaced by a KILL instruction, which is not handled by the AArch64 load-store optimization pass that tries to fold the immediate into the operation.
```
renamable $w8 = MOVi32imm 1039992
renamable $x8 = KILL killed renamable $w8
renamable $w0 = LDRBBroX killed renamable $x0, killed renamable $x8, 0, 0 :: (load (s8) from %ir.arrayidx)
RET_ReallyLR implicit $w0
```
https://github.com/llvm/llvm-project/pull/174185
More information about the llvm-commits
mailing list