]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshl_s32.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
7 ** sqrshl z0\.s, p0/m, z0\.s, z4\.s
10 TEST_DUAL_Z (qrshl_s32_m_tied1
, svint32_t
, svint32_t
,
11 z0
= svqrshl_s32_m (p0
, z0
, z4
),
12 z0
= svqrshl_m (p0
, z0
, z4
))
16 ** mov (z[0-9]+)\.d, z0\.d
18 ** sqrshl z0\.s, p0/m, z0\.s, \1\.s
21 TEST_DUAL_Z_REV (qrshl_s32_m_tied2
, svint32_t
, svint32_t
,
22 z0_res
= svqrshl_s32_m (p0
, z4
, z0
),
23 z0_res
= svqrshl_m (p0
, z4
, z0
))
26 ** qrshl_s32_m_untied:
28 ** sqrshl z0\.s, p0/m, z0\.s, z4\.s
31 TEST_DUAL_Z (qrshl_s32_m_untied
, svint32_t
, svint32_t
,
32 z0
= svqrshl_s32_m (p0
, z1
, z4
),
33 z0
= svqrshl_m (p0
, z1
, z4
))
36 ** qrshl_w0_s32_m_tied1:
37 ** mov (z[0-9]+\.s), w0
38 ** sqrshl z0\.s, p0/m, z0\.s, \1
41 TEST_UNIFORM_ZX (qrshl_w0_s32_m_tied1
, svint32_t
, int32_t,
42 z0
= svqrshl_n_s32_m (p0
, z0
, x0
),
43 z0
= svqrshl_m (p0
, z0
, x0
))
46 ** qrshl_w0_s32_m_untied:
47 ** mov (z[0-9]+\.s), w0
49 ** sqrshl z0\.s, p0/m, z0\.s, \1
52 TEST_UNIFORM_ZX (qrshl_w0_s32_m_untied
, svint32_t
, int32_t,
53 z0
= svqrshl_n_s32_m (p0
, z1
, x0
),
54 z0
= svqrshl_m (p0
, z1
, x0
))
58 ** srshr z0\.s, p0/m, z0\.s, #32
61 TEST_UNIFORM_Z (qrshl_m32_s32_m
, svint32_t
,
62 z0
= svqrshl_n_s32_m (p0
, z0
, -32),
63 z0
= svqrshl_m (p0
, z0
, -32))
67 ** srshr z0\.s, p0/m, z0\.s, #2
70 TEST_UNIFORM_Z (qrshl_m2_s32_m
, svint32_t
,
71 z0
= svqrshl_n_s32_m (p0
, z0
, -2),
72 z0
= svqrshl_m (p0
, z0
, -2))
75 ** qrshl_m1_s32_m_tied1:
76 ** srshr z0\.s, p0/m, z0\.s, #1
79 TEST_UNIFORM_Z (qrshl_m1_s32_m_tied1
, svint32_t
,
80 z0
= svqrshl_n_s32_m (p0
, z0
, -1),
81 z0
= svqrshl_m (p0
, z0
, -1))
84 ** qrshl_m1_s32_m_untied:
86 ** srshr z0\.s, p0/m, z0\.s, #1
89 TEST_UNIFORM_Z (qrshl_m1_s32_m_untied
, svint32_t
,
90 z0
= svqrshl_n_s32_m (p0
, z1
, -1),
91 z0
= svqrshl_m (p0
, z1
, -1))
94 ** qrshl_1_s32_m_tied1:
95 ** sqshl z0\.s, p0/m, z0\.s, #1
98 TEST_UNIFORM_Z (qrshl_1_s32_m_tied1
, svint32_t
,
99 z0
= svqrshl_n_s32_m (p0
, z0
, 1),
100 z0
= svqrshl_m (p0
, z0
, 1))
103 ** qrshl_1_s32_m_untied:
105 ** sqshl z0\.s, p0/m, z0\.s, #1
108 TEST_UNIFORM_Z (qrshl_1_s32_m_untied
, svint32_t
,
109 z0
= svqrshl_n_s32_m (p0
, z1
, 1),
110 z0
= svqrshl_m (p0
, z1
, 1))
114 ** sqshl z0\.s, p0/m, z0\.s, #2
117 TEST_UNIFORM_Z (qrshl_2_s32_m
, svint32_t
,
118 z0
= svqrshl_n_s32_m (p0
, z0
, 2),
119 z0
= svqrshl_m (p0
, z0
, 2))
123 ** sqshl z0\.s, p0/m, z0\.s, #31
126 TEST_UNIFORM_Z (qrshl_31_s32_m
, svint32_t
,
127 z0
= svqrshl_n_s32_m (p0
, z0
, 31),
128 z0
= svqrshl_m (p0
, z0
, 31))
131 ** qrshl_s32_z_tied1:
132 ** movprfx z0\.s, p0/z, z0\.s
133 ** sqrshl z0\.s, p0/m, z0\.s, z4\.s
136 TEST_DUAL_Z (qrshl_s32_z_tied1
, svint32_t
, svint32_t
,
137 z0
= svqrshl_s32_z (p0
, z0
, z4
),
138 z0
= svqrshl_z (p0
, z0
, z4
))
141 ** qrshl_s32_z_tied2:
142 ** movprfx z0\.s, p0/z, z0\.s
143 ** sqrshlr z0\.s, p0/m, z0\.s, z4\.s
146 TEST_DUAL_Z_REV (qrshl_s32_z_tied2
, svint32_t
, svint32_t
,
147 z0_res
= svqrshl_s32_z (p0
, z4
, z0
),
148 z0_res
= svqrshl_z (p0
, z4
, z0
))
151 ** qrshl_s32_z_untied:
153 ** movprfx z0\.s, p0/z, z1\.s
154 ** sqrshl z0\.s, p0/m, z0\.s, z4\.s
156 ** movprfx z0\.s, p0/z, z4\.s
157 ** sqrshlr z0\.s, p0/m, z0\.s, z1\.s
161 TEST_DUAL_Z (qrshl_s32_z_untied
, svint32_t
, svint32_t
,
162 z0
= svqrshl_s32_z (p0
, z1
, z4
),
163 z0
= svqrshl_z (p0
, z1
, z4
))
166 ** qrshl_w0_s32_z_tied1:
167 ** mov (z[0-9]+\.s), w0
168 ** movprfx z0\.s, p0/z, z0\.s
169 ** sqrshl z0\.s, p0/m, z0\.s, \1
172 TEST_UNIFORM_ZX (qrshl_w0_s32_z_tied1
, svint32_t
, int32_t,
173 z0
= svqrshl_n_s32_z (p0
, z0
, x0
),
174 z0
= svqrshl_z (p0
, z0
, x0
))
177 ** qrshl_w0_s32_z_untied:
178 ** mov (z[0-9]+\.s), w0
180 ** movprfx z0\.s, p0/z, z1\.s
181 ** sqrshl z0\.s, p0/m, z0\.s, \1
183 ** movprfx z0\.s, p0/z, \1
184 ** sqrshlr z0\.s, p0/m, z0\.s, z1\.s
188 TEST_UNIFORM_ZX (qrshl_w0_s32_z_untied
, svint32_t
, int32_t,
189 z0
= svqrshl_n_s32_z (p0
, z1
, x0
),
190 z0
= svqrshl_z (p0
, z1
, x0
))
194 ** movprfx z0\.s, p0/z, z0\.s
195 ** srshr z0\.s, p0/m, z0\.s, #32
198 TEST_UNIFORM_Z (qrshl_m32_s32_z
, svint32_t
,
199 z0
= svqrshl_n_s32_z (p0
, z0
, -32),
200 z0
= svqrshl_z (p0
, z0
, -32))
204 ** movprfx z0\.s, p0/z, z0\.s
205 ** srshr z0\.s, p0/m, z0\.s, #2
208 TEST_UNIFORM_Z (qrshl_m2_s32_z
, svint32_t
,
209 z0
= svqrshl_n_s32_z (p0
, z0
, -2),
210 z0
= svqrshl_z (p0
, z0
, -2))
213 ** qrshl_m1_s32_z_tied1:
214 ** movprfx z0\.s, p0/z, z0\.s
215 ** srshr z0\.s, p0/m, z0\.s, #1
218 TEST_UNIFORM_Z (qrshl_m1_s32_z_tied1
, svint32_t
,
219 z0
= svqrshl_n_s32_z (p0
, z0
, -1),
220 z0
= svqrshl_z (p0
, z0
, -1))
223 ** qrshl_m1_s32_z_untied:
224 ** movprfx z0\.s, p0/z, z1\.s
225 ** srshr z0\.s, p0/m, z0\.s, #1
228 TEST_UNIFORM_Z (qrshl_m1_s32_z_untied
, svint32_t
,
229 z0
= svqrshl_n_s32_z (p0
, z1
, -1),
230 z0
= svqrshl_z (p0
, z1
, -1))
233 ** qrshl_1_s32_z_tied1:
234 ** movprfx z0\.s, p0/z, z0\.s
235 ** sqshl z0\.s, p0/m, z0\.s, #1
238 TEST_UNIFORM_Z (qrshl_1_s32_z_tied1
, svint32_t
,
239 z0
= svqrshl_n_s32_z (p0
, z0
, 1),
240 z0
= svqrshl_z (p0
, z0
, 1))
243 ** qrshl_1_s32_z_untied:
244 ** movprfx z0\.s, p0/z, z1\.s
245 ** sqshl z0\.s, p0/m, z0\.s, #1
248 TEST_UNIFORM_Z (qrshl_1_s32_z_untied
, svint32_t
,
249 z0
= svqrshl_n_s32_z (p0
, z1
, 1),
250 z0
= svqrshl_z (p0
, z1
, 1))
254 ** movprfx z0\.s, p0/z, z0\.s
255 ** sqshl z0\.s, p0/m, z0\.s, #2
258 TEST_UNIFORM_Z (qrshl_2_s32_z
, svint32_t
,
259 z0
= svqrshl_n_s32_z (p0
, z0
, 2),
260 z0
= svqrshl_z (p0
, z0
, 2))
264 ** movprfx z0\.s, p0/z, z0\.s
265 ** sqshl z0\.s, p0/m, z0\.s, #31
268 TEST_UNIFORM_Z (qrshl_31_s32_z
, svint32_t
,
269 z0
= svqrshl_n_s32_z (p0
, z0
, 31),
270 z0
= svqrshl_z (p0
, z0
, 31))
273 ** qrshl_s32_x_tied1:
274 ** sqrshl z0\.s, p0/m, z0\.s, z4\.s
277 TEST_DUAL_Z (qrshl_s32_x_tied1
, svint32_t
, svint32_t
,
278 z0
= svqrshl_s32_x (p0
, z0
, z4
),
279 z0
= svqrshl_x (p0
, z0
, z4
))
282 ** qrshl_s32_x_tied2:
283 ** sqrshlr z0\.s, p0/m, z0\.s, z4\.s
286 TEST_DUAL_Z_REV (qrshl_s32_x_tied2
, svint32_t
, svint32_t
,
287 z0_res
= svqrshl_s32_x (p0
, z4
, z0
),
288 z0_res
= svqrshl_x (p0
, z4
, z0
))
291 ** qrshl_s32_x_untied:
294 ** sqrshl z0\.s, p0/m, z0\.s, z4\.s
297 ** sqrshlr z0\.s, p0/m, z0\.s, z1\.s
301 TEST_DUAL_Z (qrshl_s32_x_untied
, svint32_t
, svint32_t
,
302 z0
= svqrshl_s32_x (p0
, z1
, z4
),
303 z0
= svqrshl_x (p0
, z1
, z4
))
306 ** qrshl_w0_s32_x_tied1:
307 ** mov (z[0-9]+\.s), w0
308 ** sqrshl z0\.s, p0/m, z0\.s, \1
311 TEST_UNIFORM_ZX (qrshl_w0_s32_x_tied1
, svint32_t
, int32_t,
312 z0
= svqrshl_n_s32_x (p0
, z0
, x0
),
313 z0
= svqrshl_x (p0
, z0
, x0
))
316 ** qrshl_w0_s32_x_untied:
318 ** sqrshlr z0\.s, p0/m, z0\.s, z1\.s
321 TEST_UNIFORM_ZX (qrshl_w0_s32_x_untied
, svint32_t
, int32_t,
322 z0
= svqrshl_n_s32_x (p0
, z1
, x0
),
323 z0
= svqrshl_x (p0
, z1
, x0
))
327 ** srshr z0\.s, p0/m, z0\.s, #32
330 TEST_UNIFORM_Z (qrshl_m32_s32_x
, svint32_t
,
331 z0
= svqrshl_n_s32_x (p0
, z0
, -32),
332 z0
= svqrshl_x (p0
, z0
, -32))
336 ** srshr z0\.s, p0/m, z0\.s, #2
339 TEST_UNIFORM_Z (qrshl_m2_s32_x
, svint32_t
,
340 z0
= svqrshl_n_s32_x (p0
, z0
, -2),
341 z0
= svqrshl_x (p0
, z0
, -2))
344 ** qrshl_m1_s32_x_tied1:
345 ** srshr z0\.s, p0/m, z0\.s, #1
348 TEST_UNIFORM_Z (qrshl_m1_s32_x_tied1
, svint32_t
,
349 z0
= svqrshl_n_s32_x (p0
, z0
, -1),
350 z0
= svqrshl_x (p0
, z0
, -1))
353 ** qrshl_m1_s32_x_untied:
355 ** srshr z0\.s, p0/m, z0\.s, #1
358 TEST_UNIFORM_Z (qrshl_m1_s32_x_untied
, svint32_t
,
359 z0
= svqrshl_n_s32_x (p0
, z1
, -1),
360 z0
= svqrshl_x (p0
, z1
, -1))
363 ** qrshl_1_s32_x_tied1:
364 ** sqshl z0\.s, p0/m, z0\.s, #1
367 TEST_UNIFORM_Z (qrshl_1_s32_x_tied1
, svint32_t
,
368 z0
= svqrshl_n_s32_x (p0
, z0
, 1),
369 z0
= svqrshl_x (p0
, z0
, 1))
372 ** qrshl_1_s32_x_untied:
374 ** sqshl z0\.s, p0/m, z0\.s, #1
377 TEST_UNIFORM_Z (qrshl_1_s32_x_untied
, svint32_t
,
378 z0
= svqrshl_n_s32_x (p0
, z1
, 1),
379 z0
= svqrshl_x (p0
, z1
, 1))
383 ** sqshl z0\.s, p0/m, z0\.s, #2
386 TEST_UNIFORM_Z (qrshl_2_s32_x
, svint32_t
,
387 z0
= svqrshl_n_s32_x (p0
, z0
, 2),
388 z0
= svqrshl_x (p0
, z0
, 2))
392 ** sqshl z0\.s, p0/m, z0\.s, #31
395 TEST_UNIFORM_Z (qrshl_31_s32_x
, svint32_t
,
396 z0
= svqrshl_n_s32_x (p0
, z0
, 31),
397 z0
= svqrshl_x (p0
, z0
, 31))