@@ -14,10 +14,12 @@ define void @nonza_callee() {
1414; CHECK-LABEL: define void @nonza_callee
1515; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
1616; CHECK-NEXT: entry:
17+ ; CHECK-NEXT: call void asm sideeffect "
1718; CHECK-NEXT: call void @inlined_body()
1819; CHECK-NEXT: ret void
1920;
2021entry:
22+ call void asm sideeffect "; inlineasm" , "" ()
2123 call void @inlined_body ()
2224 ret void
2325}
@@ -26,20 +28,24 @@ define void @shared_za_callee() "aarch64_inout_za" {
2628; CHECK-LABEL: define void @shared_za_callee
2729; CHECK-SAME: () #[[ATTR1:[0-9]+]] {
2830; CHECK-NEXT: entry:
31+ ; CHECK-NEXT: call void asm sideeffect "
2932; CHECK-NEXT: call void @inlined_body()
3033; CHECK-NEXT: ret void
3134;
3235entry:
36+ call void asm sideeffect "; inlineasm" , "" ()
3337 call void @inlined_body ()
3438 ret void
3539}
3640
3741define void @new_za_callee () "aarch64_new_za" {
3842; CHECK-LABEL: define void @new_za_callee
3943; CHECK-SAME: () #[[ATTR2:[0-9]+]] {
44+ ; CHECK-NEXT: call void asm sideeffect "
4045; CHECK-NEXT: call void @inlined_body()
4146; CHECK-NEXT: ret void
4247;
48+ call void asm sideeffect "; inlineasm" , "" ()
4349 call void @inlined_body ()
4450 ret void
4551}
@@ -49,7 +55,7 @@ define void @new_za_callee() "aarch64_new_za" {
4955; Test for a number of combinations, where:
5056; N Not using ZA.
5157; S Shared ZA interface
52- ; Z New ZA interface
58+ ; Z New ZA with Private-ZA interface
5359
5460; [x] N -> N
5561; [ ] N -> S (This combination is invalid)
@@ -58,6 +64,7 @@ define void @nonza_caller_nonza_callee_inline() {
5864; CHECK-LABEL: define void @nonza_caller_nonza_callee_inline
5965; CHECK-SAME: () #[[ATTR0]] {
6066; CHECK-NEXT: entry:
67+ ; CHECK-NEXT: call void asm sideeffect "
6168; CHECK-NEXT: call void @inlined_body()
6269; CHECK-NEXT: ret void
6370;
@@ -84,11 +91,11 @@ entry:
8491; [x] Z -> N
8592; [ ] Z -> S
8693; [ ] 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
8996; CHECK-SAME: () #[[ATTR2]] {
9097; CHECK-NEXT: entry:
91- ; CHECK-NEXT: call void @inlined_body ()
98+ ; CHECK-NEXT: call void @nonza_callee ()
9299; CHECK-NEXT: ret void
93100;
94101entry:
@@ -103,6 +110,7 @@ define void @new_za_caller_shared_za_callee_inline() "aarch64_new_za" {
103110; CHECK-LABEL: define void @new_za_caller_shared_za_callee_inline
104111; CHECK-SAME: () #[[ATTR2]] {
105112; CHECK-NEXT: entry:
113+ ; CHECK-NEXT: call void asm sideeffect "
106114; CHECK-NEXT: call void @inlined_body()
107115; CHECK-NEXT: ret void
108116;
@@ -126,14 +134,14 @@ entry:
126134 ret void
127135}
128136
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
134142; CHECK-SAME: () #[[ATTR1]] {
135143; CHECK-NEXT: entry:
136- ; CHECK-NEXT: call void @inlined_body ()
144+ ; CHECK-NEXT: call void @nonza_callee ()
137145; CHECK-NEXT: ret void
138146;
139147entry:
@@ -163,6 +171,7 @@ define void @shared_za_caller_shared_za_callee_inline() "aarch64_inout_za" {
163171; CHECK-LABEL: define void @shared_za_caller_shared_za_callee_inline
164172; CHECK-SAME: () #[[ATTR1]] {
165173; CHECK-NEXT: entry:
174+ ; CHECK-NEXT: call void asm sideeffect "
166175; CHECK-NEXT: call void @inlined_body()
167176; CHECK-NEXT: ret void
168177;
0 commit comments