|
1 | 1 | # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
|
2 | 2 | # RUN: llc -mtriple=aarch64-linux-gnu -aarch64-enable-zpr-predicate-spills -run-pass=greedy %s -o - | FileCheck %s
|
3 | 3 | # RUN: llc -mtriple=aarch64-linux-gnu -aarch64-enable-zpr-predicate-spills -start-before=greedy -stop-after=aarch64-expand-pseudo -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=EXPAND
|
| 4 | + |
4 | 5 | --- |
|
5 | 6 | source_filename = "<stdin>"
|
6 | 7 | target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
|
@@ -983,26 +984,22 @@ body: |
|
983 | 984 | ; EXPAND-LABEL: name: zpr_predicate_spill_p4_saved
|
984 | 985 | ; EXPAND: liveins: $p0, $p1, $p2, $p3, $fp, $p8, $p4
|
985 | 986 | ; EXPAND-NEXT: {{ $}}
|
986 |
| - ; EXPAND-NEXT: $sp = frame-setup SUBXri $sp, 1040, 0 |
987 |
| - ; EXPAND-NEXT: frame-setup STRXui killed $fp, $sp, 128 :: (store (s64) into %stack.3) |
| 987 | + ; EXPAND-NEXT: early-clobber $sp = frame-setup STRXpre killed $fp, $sp, -16 :: (store (s64) into %stack.2) |
988 | 988 | ; EXPAND-NEXT: $sp = frame-setup ADDVL_XXI $sp, -2, implicit $vg
|
989 | 989 | ; EXPAND-NEXT: $z0 = frame-setup CPY_ZPzI_B killed $p8, 1, 0
|
990 |
| - ; EXPAND-NEXT: frame-setup STR_ZXI $z0, $sp, 0 :: (store (s128) into %stack.2) |
| 990 | + ; EXPAND-NEXT: frame-setup STR_ZXI $z0, $sp, 0 :: (store (s128) into %stack.1) |
991 | 991 | ; EXPAND-NEXT: $z0 = frame-setup CPY_ZPzI_B killed $p4, 1, 0
|
992 |
| - ; EXPAND-NEXT: frame-setup STR_ZXI $z0, $sp, 1 :: (store (s128) into %stack.1) |
993 |
| - ; EXPAND-NEXT: $sp = frame-setup SUBXri $sp, 1024, 0 |
| 992 | + ; EXPAND-NEXT: frame-setup STR_ZXI $z0, $sp, 1 :: (store (s128) into %stack.0) |
994 | 993 | ;
|
995 | 994 | ; EXPAND-NEXT: $p8 = IMPLICIT_DEF
|
996 | 995 | ;
|
997 |
| - ; EXPAND-NEXT: $sp = frame-destroy ADDXri $sp, 1024, 0 |
998 |
| - ; EXPAND-NEXT: $z0 = frame-destroy LDR_ZXI $sp, 0 :: (load (s128) from %stack.2) |
| 996 | + ; EXPAND-NEXT: $z0 = frame-destroy LDR_ZXI $sp, 0 :: (load (s128) from %stack.1) |
999 | 997 | ; EXPAND-NEXT: $p4 = frame-destroy PTRUE_B 31, implicit $vg
|
1000 | 998 | ; EXPAND-NEXT: $p8 = frame-destroy CMPNE_PPzZI_B $p4, $z0, 0, implicit-def $nzcv, implicit-def $nzcv
|
1001 |
| - ; EXPAND-NEXT: $z0 = frame-destroy LDR_ZXI $sp, 1 :: (load (s128) from %stack.1) |
| 999 | + ; EXPAND-NEXT: $z0 = frame-destroy LDR_ZXI $sp, 1 :: (load (s128) from %stack.0) |
1002 | 1000 | ; EXPAND-NEXT: $p4 = frame-destroy CMPNE_PPzZI_B $p4, $z0, 0, implicit-def $nzcv, implicit-def $nzcv
|
1003 | 1001 | ; EXPAND-NEXT: $sp = frame-destroy ADDVL_XXI $sp, 2, implicit $vg
|
1004 |
| - ; EXPAND-NEXT: $fp = frame-destroy LDRXui $sp, 128 :: (load (s64) from %stack.3) |
1005 |
| - ; EXPAND-NEXT: $sp = frame-destroy ADDXri $sp, 1040, 0 |
| 1002 | + ; EXPAND-NEXT: early-clobber $sp, $fp = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.2) |
1006 | 1003 | ; EXPAND-NEXT: RET undef $lr, implicit $p0, implicit $p1, implicit $p2, implicit $p3
|
1007 | 1004 |
|
1008 | 1005 | ; If we spill a register above p8, p4 must also be saved, so we can guarantee
|
|
0 commit comments