1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2
2
; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme2 -start-after=simplifycfg -enable-tail-merge=false -verify-machineinstrs < %s | FileCheck %s
3
3
4
- ; Callee with no ZT state
5
- declare void @no_state_callee ();
6
-
7
- ; Callees with ZT0 state
8
- declare void @zt0_shared_callee () "aarch64_in_zt0" ;
9
- declare void @zt0_new_callee () "aarch64_new_zt0" ;
10
-
11
- ; Callees with ZA state
12
-
13
- declare void @za_shared_callee () "aarch64_pstate_za_shared" ;
14
- declare void @za_zt0_shared_callee () "aarch64_pstate_za_shared" "aarch64_in_zt0" ;
4
+ declare void @callee ();
15
5
16
6
;
17
7
; Private-ZA Callee
@@ -27,13 +17,13 @@ define void @zt0_in_caller_no_state_callee() "aarch64_in_zt0" nounwind {
27
17
; CHECK-NEXT: mov x19, sp
28
18
; CHECK-NEXT: str zt0, [x19]
29
19
; CHECK-NEXT: smstop za
30
- ; CHECK-NEXT: bl no_state_callee
20
+ ; CHECK-NEXT: bl callee
31
21
; CHECK-NEXT: smstart za
32
22
; CHECK-NEXT: ldr zt0, [x19]
33
23
; CHECK-NEXT: ldp x30, x19, [sp, #64] // 16-byte Folded Reload
34
24
; CHECK-NEXT: add sp, sp, #80
35
25
; CHECK-NEXT: ret
36
- call void @no_state_callee ();
26
+ call void @callee ();
37
27
ret void ;
38
28
}
39
29
@@ -59,7 +49,7 @@ define void @za_zt0_shared_caller_no_state_callee() "aarch64_pstate_za_shared" "
59
49
; CHECK-NEXT: sturh w8, [x29, #-8]
60
50
; CHECK-NEXT: msr TPIDR2_EL0, x10
61
51
; CHECK-NEXT: str zt0, [x19]
62
- ; CHECK-NEXT: bl no_state_callee
52
+ ; CHECK-NEXT: bl callee
63
53
; CHECK-NEXT: smstart za
64
54
; CHECK-NEXT: ldr zt0, [x19]
65
55
; CHECK-NEXT: mrs x8, TPIDR2_EL0
@@ -73,7 +63,7 @@ define void @za_zt0_shared_caller_no_state_callee() "aarch64_pstate_za_shared" "
73
63
; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload
74
64
; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload
75
65
; CHECK-NEXT: ret
76
- call void @no_state_callee ();
66
+ call void @callee ();
77
67
ret void ;
78
68
}
79
69
@@ -86,10 +76,10 @@ define void @zt0_shared_caller_zt0_shared_callee() "aarch64_in_zt0" nounwind {
86
76
; CHECK-LABEL: zt0_shared_caller_zt0_shared_callee:
87
77
; CHECK: // %bb.0:
88
78
; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill
89
- ; CHECK-NEXT: bl zt0_shared_callee
79
+ ; CHECK-NEXT: bl callee
90
80
; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
91
81
; CHECK-NEXT: ret
92
- call void @zt0_shared_callee () ;
82
+ call void @callee () "aarch64_in_zt0" ;
93
83
ret void ;
94
84
}
95
85
@@ -110,13 +100,13 @@ define void @za_zt0_shared_caller_za_shared_callee() "aarch64_pstate_za_shared"
110
100
; CHECK-NEXT: sturh wzr, [x29, #-6]
111
101
; CHECK-NEXT: stur x8, [x29, #-16]
112
102
; CHECK-NEXT: str zt0, [x19]
113
- ; CHECK-NEXT: bl za_shared_callee
103
+ ; CHECK-NEXT: bl callee
114
104
; CHECK-NEXT: ldr zt0, [x19]
115
105
; CHECK-NEXT: mov sp, x29
116
106
; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload
117
107
; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload
118
108
; CHECK-NEXT: ret
119
- call void @za_shared_callee () ;
109
+ call void @callee () "aarch64_pstate_za_shared" ;
120
110
ret void ;
121
111
}
122
112
@@ -134,11 +124,11 @@ define void @za_zt0_shared_caller_za_zt0_shared_callee() "aarch64_pstate_za_shar
134
124
; CHECK-NEXT: stur wzr, [x29, #-4]
135
125
; CHECK-NEXT: sturh wzr, [x29, #-6]
136
126
; CHECK-NEXT: stur x8, [x29, #-16]
137
- ; CHECK-NEXT: bl za_zt0_shared_callee
127
+ ; CHECK-NEXT: bl callee
138
128
; CHECK-NEXT: mov sp, x29
139
129
; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
140
130
; CHECK-NEXT: ret
141
- call void @za_zt0_shared_callee () ;
131
+ call void @callee () "aarch64_pstate_za_shared" "aarch64_in_zt0" ;
142
132
ret void ;
143
133
}
144
134
@@ -154,12 +144,12 @@ define void @zt0_in_caller_zt0_new_callee() "aarch64_in_zt0" nounwind {
154
144
; CHECK-NEXT: mov x19, sp
155
145
; CHECK-NEXT: str zt0, [x19]
156
146
; CHECK-NEXT: smstop za
157
- ; CHECK-NEXT: bl zt0_new_callee
147
+ ; CHECK-NEXT: bl callee
158
148
; CHECK-NEXT: smstart za
159
149
; CHECK-NEXT: ldr zt0, [x19]
160
150
; CHECK-NEXT: ldp x30, x19, [sp, #64] // 16-byte Folded Reload
161
151
; CHECK-NEXT: add sp, sp, #80
162
152
; CHECK-NEXT: ret
163
- call void @zt0_new_callee () ;
153
+ call void @callee () "aarch64_new_zt0" ;
164
154
ret void ;
165
155
}
0 commit comments