]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshl_s16.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
7 ** sqrshl z0\.h, p0/m, z0\.h, z4\.h
10 TEST_DUAL_Z (qrshl_s16_m_tied1
, svint16_t
, svint16_t
,
11 z0
= svqrshl_s16_m (p0
, z0
, z4
),
12 z0
= svqrshl_m (p0
, z0
, z4
))
16 ** mov (z[0-9]+)\.d, z0\.d
18 ** sqrshl z0\.h, p0/m, z0\.h, \1\.h
21 TEST_DUAL_Z_REV (qrshl_s16_m_tied2
, svint16_t
, svint16_t
,
22 z0_res
= svqrshl_s16_m (p0
, z4
, z0
),
23 z0_res
= svqrshl_m (p0
, z4
, z0
))
26 ** qrshl_s16_m_untied:
28 ** sqrshl z0\.h, p0/m, z0\.h, z4\.h
31 TEST_DUAL_Z (qrshl_s16_m_untied
, svint16_t
, svint16_t
,
32 z0
= svqrshl_s16_m (p0
, z1
, z4
),
33 z0
= svqrshl_m (p0
, z1
, z4
))
36 ** qrshl_w0_s16_m_tied1:
37 ** mov (z[0-9]+\.h), w0
38 ** sqrshl z0\.h, p0/m, z0\.h, \1
41 TEST_UNIFORM_ZX (qrshl_w0_s16_m_tied1
, svint16_t
, int16_t,
42 z0
= svqrshl_n_s16_m (p0
, z0
, x0
),
43 z0
= svqrshl_m (p0
, z0
, x0
))
46 ** qrshl_w0_s16_m_untied:: { xfail *-*-*}
47 ** mov (z[0-9]+\.h), w0
49 ** sqrshl z0\.h, p0/m, z0\.h, \1
52 TEST_UNIFORM_ZX (qrshl_w0_s16_m_untied
, svint16_t
, int16_t,
53 z0
= svqrshl_n_s16_m (p0
, z1
, x0
),
54 z0
= svqrshl_m (p0
, z1
, x0
))
58 ** srshr z0\.h, p0/m, z0\.h, #16
61 TEST_UNIFORM_Z (qrshl_m16_s16_m
, svint16_t
,
62 z0
= svqrshl_n_s16_m (p0
, z0
, -16),
63 z0
= svqrshl_m (p0
, z0
, -16))
67 ** srshr z0\.h, p0/m, z0\.h, #2
70 TEST_UNIFORM_Z (qrshl_m2_s16_m
, svint16_t
,
71 z0
= svqrshl_n_s16_m (p0
, z0
, -2),
72 z0
= svqrshl_m (p0
, z0
, -2))
75 ** qrshl_m1_s16_m_tied1:
76 ** srshr z0\.h, p0/m, z0\.h, #1
79 TEST_UNIFORM_Z (qrshl_m1_s16_m_tied1
, svint16_t
,
80 z0
= svqrshl_n_s16_m (p0
, z0
, -1),
81 z0
= svqrshl_m (p0
, z0
, -1))
84 ** qrshl_m1_s16_m_untied:
86 ** srshr z0\.h, p0/m, z0\.h, #1
89 TEST_UNIFORM_Z (qrshl_m1_s16_m_untied
, svint16_t
,
90 z0
= svqrshl_n_s16_m (p0
, z1
, -1),
91 z0
= svqrshl_m (p0
, z1
, -1))
94 ** qrshl_1_s16_m_tied1:
95 ** sqshl z0\.h, p0/m, z0\.h, #1
98 TEST_UNIFORM_Z (qrshl_1_s16_m_tied1
, svint16_t
,
99 z0
= svqrshl_n_s16_m (p0
, z0
, 1),
100 z0
= svqrshl_m (p0
, z0
, 1))
103 ** qrshl_1_s16_m_untied:
105 ** sqshl z0\.h, p0/m, z0\.h, #1
108 TEST_UNIFORM_Z (qrshl_1_s16_m_untied
, svint16_t
,
109 z0
= svqrshl_n_s16_m (p0
, z1
, 1),
110 z0
= svqrshl_m (p0
, z1
, 1))
114 ** sqshl z0\.h, p0/m, z0\.h, #2
117 TEST_UNIFORM_Z (qrshl_2_s16_m
, svint16_t
,
118 z0
= svqrshl_n_s16_m (p0
, z0
, 2),
119 z0
= svqrshl_m (p0
, z0
, 2))
123 ** sqshl z0\.h, p0/m, z0\.h, #15
126 TEST_UNIFORM_Z (qrshl_15_s16_m
, svint16_t
,
127 z0
= svqrshl_n_s16_m (p0
, z0
, 15),
128 z0
= svqrshl_m (p0
, z0
, 15))
131 ** qrshl_s16_z_tied1:
132 ** movprfx z0\.h, p0/z, z0\.h
133 ** sqrshl z0\.h, p0/m, z0\.h, z4\.h
136 TEST_DUAL_Z (qrshl_s16_z_tied1
, svint16_t
, svint16_t
,
137 z0
= svqrshl_s16_z (p0
, z0
, z4
),
138 z0
= svqrshl_z (p0
, z0
, z4
))
141 ** qrshl_s16_z_tied2:
142 ** movprfx z0\.h, p0/z, z0\.h
143 ** sqrshlr z0\.h, p0/m, z0\.h, z4\.h
146 TEST_DUAL_Z_REV (qrshl_s16_z_tied2
, svint16_t
, svint16_t
,
147 z0_res
= svqrshl_s16_z (p0
, z4
, z0
),
148 z0_res
= svqrshl_z (p0
, z4
, z0
))
151 ** qrshl_s16_z_untied:
153 ** movprfx z0\.h, p0/z, z1\.h
154 ** sqrshl z0\.h, p0/m, z0\.h, z4\.h
156 ** movprfx z0\.h, p0/z, z4\.h
157 ** sqrshlr z0\.h, p0/m, z0\.h, z1\.h
161 TEST_DUAL_Z (qrshl_s16_z_untied
, svint16_t
, svint16_t
,
162 z0
= svqrshl_s16_z (p0
, z1
, z4
),
163 z0
= svqrshl_z (p0
, z1
, z4
))
166 ** qrshl_w0_s16_z_tied1:
167 ** mov (z[0-9]+\.h), w0
168 ** movprfx z0\.h, p0/z, z0\.h
169 ** sqrshl z0\.h, p0/m, z0\.h, \1
172 TEST_UNIFORM_ZX (qrshl_w0_s16_z_tied1
, svint16_t
, int16_t,
173 z0
= svqrshl_n_s16_z (p0
, z0
, x0
),
174 z0
= svqrshl_z (p0
, z0
, x0
))
177 ** qrshl_w0_s16_z_untied:
178 ** mov (z[0-9]+\.h), w0
180 ** movprfx z0\.h, p0/z, z1\.h
181 ** sqrshl z0\.h, p0/m, z0\.h, \1
183 ** movprfx z0\.h, p0/z, \1
184 ** sqrshlr z0\.h, p0/m, z0\.h, z1\.h
188 TEST_UNIFORM_ZX (qrshl_w0_s16_z_untied
, svint16_t
, int16_t,
189 z0
= svqrshl_n_s16_z (p0
, z1
, x0
),
190 z0
= svqrshl_z (p0
, z1
, x0
))
194 ** movprfx z0\.h, p0/z, z0\.h
195 ** srshr z0\.h, p0/m, z0\.h, #16
198 TEST_UNIFORM_Z (qrshl_m16_s16_z
, svint16_t
,
199 z0
= svqrshl_n_s16_z (p0
, z0
, -16),
200 z0
= svqrshl_z (p0
, z0
, -16))
204 ** movprfx z0\.h, p0/z, z0\.h
205 ** srshr z0\.h, p0/m, z0\.h, #2
208 TEST_UNIFORM_Z (qrshl_m2_s16_z
, svint16_t
,
209 z0
= svqrshl_n_s16_z (p0
, z0
, -2),
210 z0
= svqrshl_z (p0
, z0
, -2))
213 ** qrshl_m1_s16_z_tied1:
214 ** movprfx z0\.h, p0/z, z0\.h
215 ** srshr z0\.h, p0/m, z0\.h, #1
218 TEST_UNIFORM_Z (qrshl_m1_s16_z_tied1
, svint16_t
,
219 z0
= svqrshl_n_s16_z (p0
, z0
, -1),
220 z0
= svqrshl_z (p0
, z0
, -1))
223 ** qrshl_m1_s16_z_untied:
224 ** movprfx z0\.h, p0/z, z1\.h
225 ** srshr z0\.h, p0/m, z0\.h, #1
228 TEST_UNIFORM_Z (qrshl_m1_s16_z_untied
, svint16_t
,
229 z0
= svqrshl_n_s16_z (p0
, z1
, -1),
230 z0
= svqrshl_z (p0
, z1
, -1))
233 ** qrshl_1_s16_z_tied1:
234 ** movprfx z0\.h, p0/z, z0\.h
235 ** sqshl z0\.h, p0/m, z0\.h, #1
238 TEST_UNIFORM_Z (qrshl_1_s16_z_tied1
, svint16_t
,
239 z0
= svqrshl_n_s16_z (p0
, z0
, 1),
240 z0
= svqrshl_z (p0
, z0
, 1))
243 ** qrshl_1_s16_z_untied:
244 ** movprfx z0\.h, p0/z, z1\.h
245 ** sqshl z0\.h, p0/m, z0\.h, #1
248 TEST_UNIFORM_Z (qrshl_1_s16_z_untied
, svint16_t
,
249 z0
= svqrshl_n_s16_z (p0
, z1
, 1),
250 z0
= svqrshl_z (p0
, z1
, 1))
254 ** movprfx z0\.h, p0/z, z0\.h
255 ** sqshl z0\.h, p0/m, z0\.h, #2
258 TEST_UNIFORM_Z (qrshl_2_s16_z
, svint16_t
,
259 z0
= svqrshl_n_s16_z (p0
, z0
, 2),
260 z0
= svqrshl_z (p0
, z0
, 2))
264 ** movprfx z0\.h, p0/z, z0\.h
265 ** sqshl z0\.h, p0/m, z0\.h, #15
268 TEST_UNIFORM_Z (qrshl_15_s16_z
, svint16_t
,
269 z0
= svqrshl_n_s16_z (p0
, z0
, 15),
270 z0
= svqrshl_z (p0
, z0
, 15))
273 ** qrshl_s16_x_tied1:
274 ** sqrshl z0\.h, p0/m, z0\.h, z4\.h
277 TEST_DUAL_Z (qrshl_s16_x_tied1
, svint16_t
, svint16_t
,
278 z0
= svqrshl_s16_x (p0
, z0
, z4
),
279 z0
= svqrshl_x (p0
, z0
, z4
))
282 ** qrshl_s16_x_tied2:
283 ** sqrshlr z0\.h, p0/m, z0\.h, z4\.h
286 TEST_DUAL_Z_REV (qrshl_s16_x_tied2
, svint16_t
, svint16_t
,
287 z0_res
= svqrshl_s16_x (p0
, z4
, z0
),
288 z0_res
= svqrshl_x (p0
, z4
, z0
))
291 ** qrshl_s16_x_untied:
294 ** sqrshl z0\.h, p0/m, z0\.h, z4\.h
297 ** sqrshlr z0\.h, p0/m, z0\.h, z1\.h
301 TEST_DUAL_Z (qrshl_s16_x_untied
, svint16_t
, svint16_t
,
302 z0
= svqrshl_s16_x (p0
, z1
, z4
),
303 z0
= svqrshl_x (p0
, z1
, z4
))
306 ** qrshl_w0_s16_x_tied1:
307 ** mov (z[0-9]+\.h), w0
308 ** sqrshl z0\.h, p0/m, z0\.h, \1
311 TEST_UNIFORM_ZX (qrshl_w0_s16_x_tied1
, svint16_t
, int16_t,
312 z0
= svqrshl_n_s16_x (p0
, z0
, x0
),
313 z0
= svqrshl_x (p0
, z0
, x0
))
316 ** qrshl_w0_s16_x_untied:
318 ** sqrshlr z0\.h, p0/m, z0\.h, z1\.h
321 TEST_UNIFORM_ZX (qrshl_w0_s16_x_untied
, svint16_t
, int16_t,
322 z0
= svqrshl_n_s16_x (p0
, z1
, x0
),
323 z0
= svqrshl_x (p0
, z1
, x0
))
327 ** srshr z0\.h, p0/m, z0\.h, #16
330 TEST_UNIFORM_Z (qrshl_m16_s16_x
, svint16_t
,
331 z0
= svqrshl_n_s16_x (p0
, z0
, -16),
332 z0
= svqrshl_x (p0
, z0
, -16))
336 ** srshr z0\.h, p0/m, z0\.h, #2
339 TEST_UNIFORM_Z (qrshl_m2_s16_x
, svint16_t
,
340 z0
= svqrshl_n_s16_x (p0
, z0
, -2),
341 z0
= svqrshl_x (p0
, z0
, -2))
344 ** qrshl_m1_s16_x_tied1:
345 ** srshr z0\.h, p0/m, z0\.h, #1
348 TEST_UNIFORM_Z (qrshl_m1_s16_x_tied1
, svint16_t
,
349 z0
= svqrshl_n_s16_x (p0
, z0
, -1),
350 z0
= svqrshl_x (p0
, z0
, -1))
353 ** qrshl_m1_s16_x_untied:
355 ** srshr z0\.h, p0/m, z0\.h, #1
358 TEST_UNIFORM_Z (qrshl_m1_s16_x_untied
, svint16_t
,
359 z0
= svqrshl_n_s16_x (p0
, z1
, -1),
360 z0
= svqrshl_x (p0
, z1
, -1))
363 ** qrshl_1_s16_x_tied1:
364 ** sqshl z0\.h, p0/m, z0\.h, #1
367 TEST_UNIFORM_Z (qrshl_1_s16_x_tied1
, svint16_t
,
368 z0
= svqrshl_n_s16_x (p0
, z0
, 1),
369 z0
= svqrshl_x (p0
, z0
, 1))
372 ** qrshl_1_s16_x_untied:
374 ** sqshl z0\.h, p0/m, z0\.h, #1
377 TEST_UNIFORM_Z (qrshl_1_s16_x_untied
, svint16_t
,
378 z0
= svqrshl_n_s16_x (p0
, z1
, 1),
379 z0
= svqrshl_x (p0
, z1
, 1))
383 ** sqshl z0\.h, p0/m, z0\.h, #2
386 TEST_UNIFORM_Z (qrshl_2_s16_x
, svint16_t
,
387 z0
= svqrshl_n_s16_x (p0
, z0
, 2),
388 z0
= svqrshl_x (p0
, z0
, 2))
392 ** sqshl z0\.h, p0/m, z0\.h, #15
395 TEST_UNIFORM_Z (qrshl_15_s16_x
, svint16_t
,
396 z0
= svqrshl_n_s16_x (p0
, z0
, 15),
397 z0
= svqrshl_x (p0
, z0
, 15))