Skip to content

Commit d1517ec

Browse files
sdesmalen-armtru
authored andcommitted
[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 #148645
1 parent 588b813 commit d1517ec

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,8 +671,8 @@ bool AArch64ExpandPseudo::expand_DestructiveOp(
671671
}
672672

673673
if (PRFX) {
674-
finalizeBundle(MBB, PRFX->getIterator(), MBBI->getIterator());
675674
transferImpOps(MI, PRFX, DOP);
675+
finalizeBundle(MBB, PRFX->getIterator(), MBBI->getIterator());
676676
} else
677677
transferImpOps(MI, DOP, DOP);
678678

llvm/test/CodeGen/AArch64/sve-pseudos-expand-undef.mir

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body: |
1212
bb.0:
1313
liveins: $p0, $z0
1414
15-
; CHECK: add_x
15+
; CHECK: name: add_x
1616
; CHECK-NOT: MOVPRFX
1717
; CHECK: $z0 = FADD_ZPmZ_S renamable $p0, killed $z0, renamable $z0
1818
; CHECK-NEXT: RET
@@ -21,22 +21,36 @@ body: |
2121
2222
...
2323

24-
# CHECK: {{.*}} MSB_ZPmZZ_B {{.*}}
2524
---
2625
name: expand_mls_to_msb
2726
body: |
2827
bb.0:
28+
; CHECK: name: expand_mls_to_msb
29+
; CHECK: {{.*}} MSB_ZPmZZ_B {{.*}}
2930
renamable $p0 = PTRUE_B 31, implicit $vg
3031
renamable $z0 = MLS_ZPZZZ_B_UNDEF killed renamable $p0, killed renamable $z2, killed renamable $z0, killed renamable $z1
3132
RET_ReallyLR implicit $z0
3233
...
3334

34-
# CHECK: {{.*}} MAD_ZPmZZ_B {{.*}}
3535
---
3636
name: expand_mla_to_mad
3737
body: |
3838
bb.0:
39+
; CHECK: name: expand_mla_to_mad
40+
; CHECK: {{.*}} MAD_ZPmZZ_B {{.*}}
3941
renamable $p0 = PTRUE_B 31, implicit $vg
4042
renamable $z0 = MLA_ZPZZZ_B_UNDEF killed renamable $p0, killed renamable $z2, killed renamable $z0, killed renamable $z1
4143
RET_ReallyLR implicit $z0
4244
...
45+
46+
---
47+
name: expand_transfer_implicit_defs
48+
body: |
49+
bb.0:
50+
; CHECK: name: expand_transfer_implicit_defs
51+
; CHECK: BUNDLE
52+
; CHECK-SAME: implicit-def $z0_z1_z2_z3
53+
liveins: $z1, $z2, $p0
54+
renamable $z0 = FADD_ZPZZ_D_UNDEF killed $p0, killed $z1, killed $z2, implicit-def $z0_z1_z2_z3
55+
RET_ReallyLR implicit $z0_z1_z2_z3
56+
...

0 commit comments

Comments
 (0)