[AArch64] Ensure bundle expansion of MOVPRFX gets correct implicit ops (#148824)
By finalizing the bundle _after_ copying over the implicit-ops, it also adds any implicit-defs to the BUNDLE. Fixes https://github.com/llvm/llvm-project/issues/148645
This commit is contained in:
parent
588b813079
commit
d1517ec622
@ -671,8 +671,8 @@ bool AArch64ExpandPseudo::expand_DestructiveOp(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (PRFX) {
|
if (PRFX) {
|
||||||
finalizeBundle(MBB, PRFX->getIterator(), MBBI->getIterator());
|
|
||||||
transferImpOps(MI, PRFX, DOP);
|
transferImpOps(MI, PRFX, DOP);
|
||||||
|
finalizeBundle(MBB, PRFX->getIterator(), MBBI->getIterator());
|
||||||
} else
|
} else
|
||||||
transferImpOps(MI, DOP, DOP);
|
transferImpOps(MI, DOP, DOP);
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ body: |
|
|||||||
bb.0:
|
bb.0:
|
||||||
liveins: $p0, $z0
|
liveins: $p0, $z0
|
||||||
|
|
||||||
; CHECK: add_x
|
; CHECK: name: add_x
|
||||||
; CHECK-NOT: MOVPRFX
|
; CHECK-NOT: MOVPRFX
|
||||||
; CHECK: $z0 = FADD_ZPmZ_S renamable $p0, killed $z0, renamable $z0
|
; CHECK: $z0 = FADD_ZPmZ_S renamable $p0, killed $z0, renamable $z0
|
||||||
; CHECK-NEXT: RET
|
; CHECK-NEXT: RET
|
||||||
@ -21,22 +21,36 @@ body: |
|
|||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
# CHECK: {{.*}} MSB_ZPmZZ_B {{.*}}
|
|
||||||
---
|
---
|
||||||
name: expand_mls_to_msb
|
name: expand_mls_to_msb
|
||||||
body: |
|
body: |
|
||||||
bb.0:
|
bb.0:
|
||||||
|
; CHECK: name: expand_mls_to_msb
|
||||||
|
; CHECK: {{.*}} MSB_ZPmZZ_B {{.*}}
|
||||||
renamable $p0 = PTRUE_B 31, implicit $vg
|
renamable $p0 = PTRUE_B 31, implicit $vg
|
||||||
renamable $z0 = MLS_ZPZZZ_B_UNDEF killed renamable $p0, killed renamable $z2, killed renamable $z0, killed renamable $z1
|
renamable $z0 = MLS_ZPZZZ_B_UNDEF killed renamable $p0, killed renamable $z2, killed renamable $z0, killed renamable $z1
|
||||||
RET_ReallyLR implicit $z0
|
RET_ReallyLR implicit $z0
|
||||||
...
|
...
|
||||||
|
|
||||||
# CHECK: {{.*}} MAD_ZPmZZ_B {{.*}}
|
|
||||||
---
|
---
|
||||||
name: expand_mla_to_mad
|
name: expand_mla_to_mad
|
||||||
body: |
|
body: |
|
||||||
bb.0:
|
bb.0:
|
||||||
|
; CHECK: name: expand_mla_to_mad
|
||||||
|
; CHECK: {{.*}} MAD_ZPmZZ_B {{.*}}
|
||||||
renamable $p0 = PTRUE_B 31, implicit $vg
|
renamable $p0 = PTRUE_B 31, implicit $vg
|
||||||
renamable $z0 = MLA_ZPZZZ_B_UNDEF killed renamable $p0, killed renamable $z2, killed renamable $z0, killed renamable $z1
|
renamable $z0 = MLA_ZPZZZ_B_UNDEF killed renamable $p0, killed renamable $z2, killed renamable $z0, killed renamable $z1
|
||||||
RET_ReallyLR implicit $z0
|
RET_ReallyLR implicit $z0
|
||||||
...
|
...
|
||||||
|
|
||||||
|
---
|
||||||
|
name: expand_transfer_implicit_defs
|
||||||
|
body: |
|
||||||
|
bb.0:
|
||||||
|
; CHECK: name: expand_transfer_implicit_defs
|
||||||
|
; CHECK: BUNDLE
|
||||||
|
; CHECK-SAME: implicit-def $z0_z1_z2_z3
|
||||||
|
liveins: $z1, $z2, $p0
|
||||||
|
renamable $z0 = FADD_ZPZZ_D_UNDEF killed $p0, killed $z1, killed $z2, implicit-def $z0_z1_z2_z3
|
||||||
|
RET_ReallyLR implicit $z0_z1_z2_z3
|
||||||
|
...
|
||||||
|
Loading…
x
Reference in New Issue
Block a user