]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u16.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
7 ** usqadd z0\.h, p0/m, z0\.h, z4\.h
10 TEST_DUAL_Z (sqadd_u16_m_tied1
, svuint16_t
, svint16_t
,
11 z0
= svsqadd_u16_m (p0
, z0
, z4
),
12 z0
= svsqadd_m (p0
, z0
, z4
))
16 ** mov (z[0-9]+)\.d, z0\.d
18 ** usqadd z0\.h, p0/m, z0\.h, \1\.h
21 TEST_DUAL_Z_REV (sqadd_u16_m_tied2
, svuint16_t
, svint16_t
,
22 z0_res
= svsqadd_u16_m (p0
, z4
, z0
),
23 z0_res
= svsqadd_m (p0
, z4
, z0
))
26 ** sqadd_u16_m_untied:
28 ** usqadd z0\.h, p0/m, z0\.h, z4\.h
31 TEST_DUAL_Z (sqadd_u16_m_untied
, svuint16_t
, svint16_t
,
32 z0
= svsqadd_u16_m (p0
, z1
, z4
),
33 z0
= svsqadd_m (p0
, z1
, z4
))
36 ** sqadd_w0_u16_m_tied1:
37 ** mov (z[0-9]+\.h), w0
38 ** usqadd z0\.h, p0/m, z0\.h, \1
41 TEST_UNIFORM_ZX (sqadd_w0_u16_m_tied1
, svuint16_t
, int16_t,
42 z0
= svsqadd_n_u16_m (p0
, z0
, x0
),
43 z0
= svsqadd_m (p0
, z0
, x0
))
46 ** sqadd_w0_u16_m_untied:: { xfail *-*-*}
47 ** mov (z[0-9]+\.h), w0
49 ** usqadd z0\.h, p0/m, z0\.h, \1
52 TEST_UNIFORM_ZX (sqadd_w0_u16_m_untied
, svuint16_t
, int16_t,
53 z0
= svsqadd_n_u16_m (p0
, z1
, x0
),
54 z0
= svsqadd_m (p0
, z1
, x0
))
57 ** sqadd_1_u16_m_tied1:
58 ** mov (z[0-9]+\.h), #1
59 ** usqadd z0\.h, p0/m, z0\.h, \1
62 TEST_UNIFORM_Z (sqadd_1_u16_m_tied1
, svuint16_t
,
63 z0
= svsqadd_n_u16_m (p0
, z0
, 1),
64 z0
= svsqadd_m (p0
, z0
, 1))
67 ** sqadd_1_u16_m_untied:: { xfail *-*-*}
68 ** mov (z[0-9]+\.h), #1
70 ** usqadd z0\.h, p0/m, z0\.h, \1
73 TEST_UNIFORM_Z (sqadd_1_u16_m_untied
, svuint16_t
,
74 z0
= svsqadd_n_u16_m (p0
, z1
, 1),
75 z0
= svsqadd_m (p0
, z1
, 1))
79 ** mov (z[0-9]+\.h), #127
80 ** usqadd z0\.h, p0/m, z0\.h, \1
83 TEST_UNIFORM_Z (sqadd_127_u16_m
, svuint16_t
,
84 z0
= svsqadd_n_u16_m (p0
, z0
, 127),
85 z0
= svsqadd_m (p0
, z0
, 127))
89 ** mov (z[0-9]+\.h), #128
90 ** usqadd z0\.h, p0/m, z0\.h, \1
93 TEST_UNIFORM_Z (sqadd_128_u16_m
, svuint16_t
,
94 z0
= svsqadd_n_u16_m (p0
, z0
, 128),
95 z0
= svsqadd_m (p0
, z0
, 128))
99 ** mov (z[0-9]+\.h), #255
100 ** usqadd z0\.h, p0/m, z0\.h, \1
103 TEST_UNIFORM_Z (sqadd_255_u16_m
, svuint16_t
,
104 z0
= svsqadd_n_u16_m (p0
, z0
, 255),
105 z0
= svsqadd_m (p0
, z0
, 255))
109 ** mov (z[0-9]+)\.b, #-1
110 ** usqadd z0\.h, p0/m, z0\.h, \1\.h
113 TEST_UNIFORM_Z (sqadd_m1_u16_m
, svuint16_t
,
114 z0
= svsqadd_n_u16_m (p0
, z0
, -1),
115 z0
= svsqadd_m (p0
, z0
, -1))
119 ** mov (z[0-9]+\.h), #-127
120 ** usqadd z0\.h, p0/m, z0\.h, \1
123 TEST_UNIFORM_Z (sqadd_m127_u16_m
, svuint16_t
,
124 z0
= svsqadd_n_u16_m (p0
, z0
, -127),
125 z0
= svsqadd_m (p0
, z0
, -127))
129 ** mov (z[0-9]+\.h), #-128
130 ** usqadd z0\.h, p0/m, z0\.h, \1
133 TEST_UNIFORM_Z (sqadd_m128_u16_m
, svuint16_t
,
134 z0
= svsqadd_n_u16_m (p0
, z0
, -128),
135 z0
= svsqadd_m (p0
, z0
, -128))
138 ** sqadd_u16_z_tied1:
139 ** movprfx z0\.h, p0/z, z0\.h
140 ** usqadd z0\.h, p0/m, z0\.h, z4\.h
143 TEST_DUAL_Z (sqadd_u16_z_tied1
, svuint16_t
, svint16_t
,
144 z0
= svsqadd_u16_z (p0
, z0
, z4
),
145 z0
= svsqadd_z (p0
, z0
, z4
))
148 ** sqadd_u16_z_tied2:
149 ** mov (z[0-9]+)\.d, z0\.d
150 ** movprfx z0\.h, p0/z, z4\.h
151 ** usqadd z0\.h, p0/m, z0\.h, \1\.h
154 TEST_DUAL_Z_REV (sqadd_u16_z_tied2
, svuint16_t
, svint16_t
,
155 z0_res
= svsqadd_u16_z (p0
, z4
, z0
),
156 z0_res
= svsqadd_z (p0
, z4
, z0
))
159 ** sqadd_u16_z_untied:
160 ** movprfx z0\.h, p0/z, z1\.h
161 ** usqadd z0\.h, p0/m, z0\.h, z4\.h
164 TEST_DUAL_Z (sqadd_u16_z_untied
, svuint16_t
, svint16_t
,
165 z0
= svsqadd_u16_z (p0
, z1
, z4
),
166 z0
= svsqadd_z (p0
, z1
, z4
))
169 ** sqadd_w0_u16_z_tied1:
170 ** mov (z[0-9]+\.h), w0
171 ** movprfx z0\.h, p0/z, z0\.h
172 ** usqadd z0\.h, p0/m, z0\.h, \1
175 TEST_UNIFORM_ZX (sqadd_w0_u16_z_tied1
, svuint16_t
, int16_t,
176 z0
= svsqadd_n_u16_z (p0
, z0
, x0
),
177 z0
= svsqadd_z (p0
, z0
, x0
))
180 ** sqadd_w0_u16_z_untied:: { xfail *-*-*}
181 ** mov (z[0-9]+\.h), w0
182 ** movprfx z0\.h, p0/z, z1\.h
183 ** usqadd z0\.h, p0/m, z0\.h, \1
186 TEST_UNIFORM_ZX (sqadd_w0_u16_z_untied
, svuint16_t
, int16_t,
187 z0
= svsqadd_n_u16_z (p0
, z1
, x0
),
188 z0
= svsqadd_z (p0
, z1
, x0
))
191 ** sqadd_1_u16_z_tied1:
192 ** mov (z[0-9]+\.h), #1
193 ** movprfx z0\.h, p0/z, z0\.h
194 ** usqadd z0\.h, p0/m, z0\.h, \1
197 TEST_UNIFORM_Z (sqadd_1_u16_z_tied1
, svuint16_t
,
198 z0
= svsqadd_n_u16_z (p0
, z0
, 1),
199 z0
= svsqadd_z (p0
, z0
, 1))
202 ** sqadd_1_u16_z_untied:: { xfail *-*-*}
203 ** mov (z[0-9]+\.h), #1
204 ** movprfx z0\.h, p0/z, z1\.h
205 ** usqadd z0\.h, p0/m, z0\.h, \1
208 TEST_UNIFORM_Z (sqadd_1_u16_z_untied
, svuint16_t
,
209 z0
= svsqadd_n_u16_z (p0
, z1
, 1),
210 z0
= svsqadd_z (p0
, z1
, 1))
214 ** mov (z[0-9]+\.h), #127
215 ** movprfx z0\.h, p0/z, z0\.h
216 ** usqadd z0\.h, p0/m, z0\.h, \1
219 TEST_UNIFORM_Z (sqadd_127_u16_z
, svuint16_t
,
220 z0
= svsqadd_n_u16_z (p0
, z0
, 127),
221 z0
= svsqadd_z (p0
, z0
, 127))
225 ** mov (z[0-9]+\.h), #128
226 ** movprfx z0\.h, p0/z, z0\.h
227 ** usqadd z0\.h, p0/m, z0\.h, \1
230 TEST_UNIFORM_Z (sqadd_128_u16_z
, svuint16_t
,
231 z0
= svsqadd_n_u16_z (p0
, z0
, 128),
232 z0
= svsqadd_z (p0
, z0
, 128))
236 ** mov (z[0-9]+\.h), #255
237 ** movprfx z0\.h, p0/z, z0\.h
238 ** usqadd z0\.h, p0/m, z0\.h, \1
241 TEST_UNIFORM_Z (sqadd_255_u16_z
, svuint16_t
,
242 z0
= svsqadd_n_u16_z (p0
, z0
, 255),
243 z0
= svsqadd_z (p0
, z0
, 255))
247 ** mov (z[0-9]+)\.b, #-1
248 ** movprfx z0\.h, p0/z, z0\.h
249 ** usqadd z0\.h, p0/m, z0\.h, \1\.h
252 TEST_UNIFORM_Z (sqadd_m1_u16_z
, svuint16_t
,
253 z0
= svsqadd_n_u16_z (p0
, z0
, -1),
254 z0
= svsqadd_z (p0
, z0
, -1))
258 ** mov (z[0-9]+\.h), #-127
259 ** movprfx z0\.h, p0/z, z0\.h
260 ** usqadd z0\.h, p0/m, z0\.h, \1
263 TEST_UNIFORM_Z (sqadd_m127_u16_z
, svuint16_t
,
264 z0
= svsqadd_n_u16_z (p0
, z0
, -127),
265 z0
= svsqadd_z (p0
, z0
, -127))
269 ** mov (z[0-9]+\.h), #-128
270 ** movprfx z0\.h, p0/z, z0\.h
271 ** usqadd z0\.h, p0/m, z0\.h, \1
274 TEST_UNIFORM_Z (sqadd_m128_u16_z
, svuint16_t
,
275 z0
= svsqadd_n_u16_z (p0
, z0
, -128),
276 z0
= svsqadd_z (p0
, z0
, -128))
279 ** sqadd_u16_x_tied1:
280 ** usqadd z0\.h, p0/m, z0\.h, z4\.h
283 TEST_DUAL_Z (sqadd_u16_x_tied1
, svuint16_t
, svint16_t
,
284 z0
= svsqadd_u16_x (p0
, z0
, z4
),
285 z0
= svsqadd_x (p0
, z0
, z4
))
288 ** sqadd_u16_x_tied2:
289 ** mov (z[0-9]+)\.d, z0\.d
291 ** usqadd z0\.h, p0/m, z0\.h, \1\.h
294 TEST_DUAL_Z_REV (sqadd_u16_x_tied2
, svuint16_t
, svint16_t
,
295 z0_res
= svsqadd_u16_x (p0
, z4
, z0
),
296 z0_res
= svsqadd_x (p0
, z4
, z0
))
299 ** sqadd_u16_x_untied:
301 ** usqadd z0\.h, p0/m, z0\.h, z4\.h
304 TEST_DUAL_Z (sqadd_u16_x_untied
, svuint16_t
, svint16_t
,
305 z0
= svsqadd_u16_x (p0
, z1
, z4
),
306 z0
= svsqadd_x (p0
, z1
, z4
))
309 ** sqadd_w0_u16_x_tied1:
310 ** mov (z[0-9]+\.h), w0
311 ** usqadd z0\.h, p0/m, z0\.h, \1
314 TEST_UNIFORM_ZX (sqadd_w0_u16_x_tied1
, svuint16_t
, int16_t,
315 z0
= svsqadd_n_u16_x (p0
, z0
, x0
),
316 z0
= svsqadd_x (p0
, z0
, x0
))
319 ** sqadd_w0_u16_x_untied:: { xfail *-*-*}
320 ** mov (z[0-9]+\.h), w0
322 ** usqadd z0\.h, p0/m, z0\.h, \1
325 TEST_UNIFORM_ZX (sqadd_w0_u16_x_untied
, svuint16_t
, int16_t,
326 z0
= svsqadd_n_u16_x (p0
, z1
, x0
),
327 z0
= svsqadd_x (p0
, z1
, x0
))
330 ** sqadd_1_u16_x_tied1:
331 ** uqadd z0\.h, z0\.h, #1
334 TEST_UNIFORM_Z (sqadd_1_u16_x_tied1
, svuint16_t
,
335 z0
= svsqadd_n_u16_x (p0
, z0
, 1),
336 z0
= svsqadd_x (p0
, z0
, 1))
339 ** sqadd_1_u16_x_untied:
341 ** uqadd z0\.h, z0\.h, #1
344 TEST_UNIFORM_Z (sqadd_1_u16_x_untied
, svuint16_t
,
345 z0
= svsqadd_n_u16_x (p0
, z1
, 1),
346 z0
= svsqadd_x (p0
, z1
, 1))
350 ** uqadd z0\.h, z0\.h, #127
353 TEST_UNIFORM_Z (sqadd_127_u16_x
, svuint16_t
,
354 z0
= svsqadd_n_u16_x (p0
, z0
, 127),
355 z0
= svsqadd_x (p0
, z0
, 127))
359 ** uqadd z0\.h, z0\.h, #128
362 TEST_UNIFORM_Z (sqadd_128_u16_x
, svuint16_t
,
363 z0
= svsqadd_n_u16_x (p0
, z0
, 128),
364 z0
= svsqadd_x (p0
, z0
, 128))
368 ** uqadd z0\.h, z0\.h, #255
371 TEST_UNIFORM_Z (sqadd_255_u16_x
, svuint16_t
,
372 z0
= svsqadd_n_u16_x (p0
, z0
, 255),
373 z0
= svsqadd_x (p0
, z0
, 255))
377 ** mov (z[0-9]+)\.b, #-1
378 ** usqadd z0\.h, p0/m, z0\.h, \1\.h
381 TEST_UNIFORM_Z (sqadd_m1_u16_x
, svuint16_t
,
382 z0
= svsqadd_n_u16_x (p0
, z0
, -1),
383 z0
= svsqadd_x (p0
, z0
, -1))
387 ** mov (z[0-9]+\.h), #-127
388 ** usqadd z0\.h, p0/m, z0\.h, \1
391 TEST_UNIFORM_Z (sqadd_m127_u16_x
, svuint16_t
,
392 z0
= svsqadd_n_u16_x (p0
, z0
, -127),
393 z0
= svsqadd_x (p0
, z0
, -127))
397 ** mov (z[0-9]+\.h), #-128
398 ** usqadd z0\.h, p0/m, z0\.h, \1
401 TEST_UNIFORM_Z (sqadd_m128_u16_x
, svuint16_t
,
402 z0
= svsqadd_n_u16_x (p0
, z0
, -128),
403 z0
= svsqadd_x (p0
, z0
, -128))