You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[AArch64] Basic SVE PCS support for handling scalable vectors on Darwin.
For the tests I just added +sve instead of what actual hardware has, which is only SME,
since otherwise all the test functions need to be marked as streaming mode.
rdar://121864771
definevoid@sve_signature_arg_pred_caller_fastcc(<vscale x 4 x i1> %arg) nounwind {
95
122
callfastccvoid@sve_signature_arg_pred(<vscale x 4 x i1> %arg)
96
123
retvoid
@@ -100,6 +127,10 @@ define void @sve_signature_arg_pred_caller_fastcc(<vscale x 4 x i1> %arg) nounwi
100
127
; CHECK: [[RES:%[0-9]+]]:zpr = COPY $z7
101
128
; CHECK: $z0 = COPY [[RES]]
102
129
; CHECK: RET_ReallyLR implicit $z0
130
+
; DARWIN-LABEL: name: sve_signature_many_arg_vec
131
+
; DARWIN: [[RES:%[0-9]+]]:zpr = COPY $z7
132
+
; DARWIN: $z0 = COPY [[RES]]
133
+
; DARWIN: RET_ReallyLR implicit $z0
103
134
define <vscale x 4 x i32> @sve_signature_many_arg_vec(<vscale x 4 x i32> %arg1, <vscale x 4 x i32> %arg2, <vscale x 4 x i32> %arg3, <vscale x 4 x i32> %arg4, <vscale x 4 x i32> %arg5, <vscale x 4 x i32> %arg6, <vscale x 4 x i32> %arg7, <vscale x 4 x i32> %arg8) nounwind {
104
135
ret <vscale x 4 x i32> %arg8
105
136
}
@@ -108,6 +139,10 @@ define <vscale x 4 x i32> @sve_signature_many_arg_vec(<vscale x 4 x i32> %arg1,
108
139
; CHECK: [[RES:%[0-9]+]]:ppr = COPY $p3
109
140
; CHECK: $p0 = COPY [[RES]]
110
141
; CHECK: RET_ReallyLR implicit $p0
142
+
; DARWIN-LABEL: name: sve_signature_many_arg_pred
143
+
; DARWIN: [[RES:%[0-9]+]]:ppr = COPY $p3
144
+
; DARWIN: $p0 = COPY [[RES]]
145
+
; DARWIN: RET_ReallyLR implicit $p0
111
146
define <vscale x 4 x i1> @sve_signature_many_arg_pred(<vscale x 4 x i1> %arg1, <vscale x 4 x i1> %arg2, <vscale x 4 x i1> %arg3, <vscale x 4 x i1> %arg4) nounwind {
112
147
ret <vscale x 4 x i1> %arg4
113
148
}
@@ -116,6 +151,10 @@ define <vscale x 4 x i1> @sve_signature_many_arg_pred(<vscale x 4 x i1> %arg1, <
116
151
; CHECK: [[RES:%[0-9]+]]:zpr = COPY $z1
117
152
; CHECK: $z0 = COPY [[RES]]
118
153
; CHECK: RET_ReallyLR implicit $z0
154
+
; DARWIN-LABEL: name: sve_signature_vec
155
+
; DARWIN: [[RES:%[0-9]+]]:zpr = COPY $z1
156
+
; DARWIN: $z0 = COPY [[RES]]
157
+
; DARWIN: RET_ReallyLR implicit $z0
119
158
define <vscale x 4 x i32> @sve_signature_vec(<vscale x 4 x i32> %arg1, <vscale x 4 x i32> %arg2) nounwind {
120
159
ret <vscale x 4 x i32> %arg2
121
160
}
@@ -124,6 +163,10 @@ define <vscale x 4 x i32> @sve_signature_vec(<vscale x 4 x i32> %arg1, <vscale x
124
163
; CHECK: [[RES:%[0-9]+]]:ppr = COPY $p1
125
164
; CHECK: $p0 = COPY [[RES]]
126
165
; CHECK: RET_ReallyLR implicit $p0
166
+
; DARWIN-LABEL: name: sve_signature_pred
167
+
; DARWIN: [[RES:%[0-9]+]]:ppr = COPY $p1
168
+
; DARWIN: $p0 = COPY [[RES]]
169
+
; DARWIN: RET_ReallyLR implicit $p0
127
170
define <vscale x 4 x i1> @sve_signature_pred(<vscale x 4 x i1> %arg1, <vscale x 4 x i1> %arg2) nounwind {
128
171
ret <vscale x 4 x i1> %arg2
129
172
}
@@ -183,6 +226,15 @@ define [2 x <vscale x 32 x i1>] @sve_signature_pred_2xv32i1([2 x <vscale x 32 x
0 commit comments