@@ -14,10 +14,12 @@ define void @nonza_callee() {
14
14
; CHECK-LABEL: define void @nonza_callee
15
15
; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
16
16
; CHECK-NEXT: entry:
17
+ ; CHECK-NEXT: call void asm sideeffect "
17
18
; CHECK-NEXT: call void @inlined_body()
18
19
; CHECK-NEXT: ret void
19
20
;
20
21
entry:
22
+ call void asm sideeffect "; inlineasm" , "" ()
21
23
call void @inlined_body ()
22
24
ret void
23
25
}
@@ -26,20 +28,24 @@ define void @shared_za_callee() "aarch64_inout_za" {
26
28
; CHECK-LABEL: define void @shared_za_callee
27
29
; CHECK-SAME: () #[[ATTR1:[0-9]+]] {
28
30
; CHECK-NEXT: entry:
31
+ ; CHECK-NEXT: call void asm sideeffect "
29
32
; CHECK-NEXT: call void @inlined_body()
30
33
; CHECK-NEXT: ret void
31
34
;
32
35
entry:
36
+ call void asm sideeffect "; inlineasm" , "" ()
33
37
call void @inlined_body ()
34
38
ret void
35
39
}
36
40
37
41
define void @new_za_callee () "aarch64_new_za" {
38
42
; CHECK-LABEL: define void @new_za_callee
39
43
; CHECK-SAME: () #[[ATTR2:[0-9]+]] {
44
+ ; CHECK-NEXT: call void asm sideeffect "
40
45
; CHECK-NEXT: call void @inlined_body()
41
46
; CHECK-NEXT: ret void
42
47
;
48
+ call void asm sideeffect "; inlineasm" , "" ()
43
49
call void @inlined_body ()
44
50
ret void
45
51
}
@@ -49,7 +55,7 @@ define void @new_za_callee() "aarch64_new_za" {
49
55
; Test for a number of combinations, where:
50
56
; N Not using ZA.
51
57
; S Shared ZA interface
52
- ; Z New ZA interface
58
+ ; Z New ZA with Private-ZA interface
53
59
54
60
; [x] N -> N
55
61
; [ ] N -> S (This combination is invalid)
@@ -58,6 +64,7 @@ define void @nonza_caller_nonza_callee_inline() {
58
64
; CHECK-LABEL: define void @nonza_caller_nonza_callee_inline
59
65
; CHECK-SAME: () #[[ATTR0]] {
60
66
; CHECK-NEXT: entry:
67
+ ; CHECK-NEXT: call void asm sideeffect "
61
68
; CHECK-NEXT: call void @inlined_body()
62
69
; CHECK-NEXT: ret void
63
70
;
@@ -84,11 +91,11 @@ entry:
84
91
; [x] Z -> N
85
92
; [ ] Z -> S
86
93
; [ ] Z -> Z
87
- define void @new_za_caller_nonza_callee_inline () "aarch64_new_za" {
88
- ; CHECK-LABEL: define void @new_za_caller_nonza_callee_inline
94
+ define void @new_za_caller_nonza_callee_dont_inline () "aarch64_new_za" {
95
+ ; CHECK-LABEL: define void @new_za_caller_nonza_callee_dont_inline
89
96
; CHECK-SAME: () #[[ATTR2]] {
90
97
; CHECK-NEXT: entry:
91
- ; CHECK-NEXT: call void @inlined_body ()
98
+ ; CHECK-NEXT: call void @nonza_callee ()
92
99
; CHECK-NEXT: ret void
93
100
;
94
101
entry:
@@ -103,6 +110,7 @@ define void @new_za_caller_shared_za_callee_inline() "aarch64_new_za" {
103
110
; CHECK-LABEL: define void @new_za_caller_shared_za_callee_inline
104
111
; CHECK-SAME: () #[[ATTR2]] {
105
112
; CHECK-NEXT: entry:
113
+ ; CHECK-NEXT: call void asm sideeffect "
106
114
; CHECK-NEXT: call void @inlined_body()
107
115
; CHECK-NEXT: ret void
108
116
;
@@ -126,14 +134,14 @@ entry:
126
134
ret void
127
135
}
128
136
129
- ; [x] Z -> N
130
- ; [ ] Z -> S
131
- ; [ ] Z -> Z
132
- define void @shared_za_caller_nonza_callee_inline () "aarch64_inout_za" {
133
- ; CHECK-LABEL: define void @shared_za_caller_nonza_callee_inline
137
+ ; [x] S -> N
138
+ ; [ ] S -> S
139
+ ; [ ] S -> Z
140
+ define void @shared_za_caller_nonza_callee_dont_inline () "aarch64_inout_za" {
141
+ ; CHECK-LABEL: define void @shared_za_caller_nonza_callee_dont_inline
134
142
; CHECK-SAME: () #[[ATTR1]] {
135
143
; CHECK-NEXT: entry:
136
- ; CHECK-NEXT: call void @inlined_body ()
144
+ ; CHECK-NEXT: call void @nonza_callee ()
137
145
; CHECK-NEXT: ret void
138
146
;
139
147
entry:
@@ -163,6 +171,7 @@ define void @shared_za_caller_shared_za_callee_inline() "aarch64_inout_za" {
163
171
; CHECK-LABEL: define void @shared_za_caller_shared_za_callee_inline
164
172
; CHECK-SAME: () #[[ATTR1]] {
165
173
; CHECK-NEXT: entry:
174
+ ; CHECK-NEXT: call void asm sideeffect "
166
175
; CHECK-NEXT: call void @inlined_body()
167
176
; CHECK-NEXT: ret void
168
177
;
0 commit comments