]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u8.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
7 ** uqsubr z0\.b, p0/m, z0\.b, z1\.b
10 TEST_UNIFORM_Z (qsubr_u8_m_tied1
, svuint8_t
,
11 z0
= svqsubr_u8_m (p0
, z0
, z1
),
12 z0
= svqsubr_m (p0
, z0
, z1
))
16 ** mov (z[0-9]+)\.d, z0\.d
18 ** uqsubr z0\.b, p0/m, z0\.b, \1\.b
21 TEST_UNIFORM_Z (qsubr_u8_m_tied2
, svuint8_t
,
22 z0
= svqsubr_u8_m (p0
, z1
, z0
),
23 z0
= svqsubr_m (p0
, z1
, z0
))
28 ** uqsubr z0\.b, p0/m, z0\.b, z2\.b
31 TEST_UNIFORM_Z (qsubr_u8_m_untied
, svuint8_t
,
32 z0
= svqsubr_u8_m (p0
, z1
, z2
),
33 z0
= svqsubr_m (p0
, z1
, z2
))
36 ** qsubr_w0_u8_m_tied1:
37 ** mov (z[0-9]+\.b), w0
38 ** uqsubr z0\.b, p0/m, z0\.b, \1
41 TEST_UNIFORM_ZX (qsubr_w0_u8_m_tied1
, svuint8_t
, uint8_t,
42 z0
= svqsubr_n_u8_m (p0
, z0
, x0
),
43 z0
= svqsubr_m (p0
, z0
, x0
))
46 ** qsubr_w0_u8_m_untied: { xfail *-*-* }
47 ** mov (z[0-9]+\.b), w0
49 ** uqsubr z0\.b, p0/m, z0\.b, \1
52 TEST_UNIFORM_ZX (qsubr_w0_u8_m_untied
, svuint8_t
, uint8_t,
53 z0
= svqsubr_n_u8_m (p0
, z1
, x0
),
54 z0
= svqsubr_m (p0
, z1
, x0
))
57 ** qsubr_1_u8_m_tied1:
58 ** mov (z[0-9]+\.b), #1
59 ** uqsubr z0\.b, p0/m, z0\.b, \1
62 TEST_UNIFORM_Z (qsubr_1_u8_m_tied1
, svuint8_t
,
63 z0
= svqsubr_n_u8_m (p0
, z0
, 1),
64 z0
= svqsubr_m (p0
, z0
, 1))
67 ** qsubr_1_u8_m_untied: { xfail *-*-* }
68 ** mov (z[0-9]+\.b), #1
70 ** uqsubr z0\.b, p0/m, z0\.b, \1
73 TEST_UNIFORM_Z (qsubr_1_u8_m_untied
, svuint8_t
,
74 z0
= svqsubr_n_u8_m (p0
, z1
, 1),
75 z0
= svqsubr_m (p0
, z1
, 1))
79 ** mov (z[0-9]+\.b), #-1
80 ** uqsubr z0\.b, p0/m, z0\.b, \1
83 TEST_UNIFORM_Z (qsubr_m1_u8_m
, svuint8_t
,
84 z0
= svqsubr_n_u8_m (p0
, z0
, -1),
85 z0
= svqsubr_m (p0
, z0
, -1))
89 ** movprfx z0\.b, p0/z, z0\.b
90 ** uqsubr z0\.b, p0/m, z0\.b, z1\.b
93 TEST_UNIFORM_Z (qsubr_u8_z_tied1
, svuint8_t
,
94 z0
= svqsubr_u8_z (p0
, z0
, z1
),
95 z0
= svqsubr_z (p0
, z0
, z1
))
99 ** movprfx z0\.b, p0/z, z0\.b
100 ** uqsub z0\.b, p0/m, z0\.b, z1\.b
103 TEST_UNIFORM_Z (qsubr_u8_z_tied2
, svuint8_t
,
104 z0
= svqsubr_u8_z (p0
, z1
, z0
),
105 z0
= svqsubr_z (p0
, z1
, z0
))
108 ** qsubr_u8_z_untied:
110 ** movprfx z0\.b, p0/z, z1\.b
111 ** uqsubr z0\.b, p0/m, z0\.b, z2\.b
113 ** movprfx z0\.b, p0/z, z2\.b
114 ** uqsub z0\.b, p0/m, z0\.b, z1\.b
118 TEST_UNIFORM_Z (qsubr_u8_z_untied
, svuint8_t
,
119 z0
= svqsubr_u8_z (p0
, z1
, z2
),
120 z0
= svqsubr_z (p0
, z1
, z2
))
123 ** qsubr_w0_u8_z_tied1:
124 ** mov (z[0-9]+\.b), w0
125 ** movprfx z0\.b, p0/z, z0\.b
126 ** uqsubr z0\.b, p0/m, z0\.b, \1
129 TEST_UNIFORM_ZX (qsubr_w0_u8_z_tied1
, svuint8_t
, uint8_t,
130 z0
= svqsubr_n_u8_z (p0
, z0
, x0
),
131 z0
= svqsubr_z (p0
, z0
, x0
))
134 ** qsubr_w0_u8_z_untied:
135 ** mov (z[0-9]+\.b), w0
137 ** movprfx z0\.b, p0/z, z1\.b
138 ** uqsubr z0\.b, p0/m, z0\.b, \1
140 ** movprfx z0\.b, p0/z, \1
141 ** uqsub z0\.b, p0/m, z0\.b, z1\.b
145 TEST_UNIFORM_ZX (qsubr_w0_u8_z_untied
, svuint8_t
, uint8_t,
146 z0
= svqsubr_n_u8_z (p0
, z1
, x0
),
147 z0
= svqsubr_z (p0
, z1
, x0
))
150 ** qsubr_1_u8_z_tied1:
151 ** mov (z[0-9]+\.b), #1
152 ** movprfx z0\.b, p0/z, z0\.b
153 ** uqsubr z0\.b, p0/m, z0\.b, \1
156 TEST_UNIFORM_Z (qsubr_1_u8_z_tied1
, svuint8_t
,
157 z0
= svqsubr_n_u8_z (p0
, z0
, 1),
158 z0
= svqsubr_z (p0
, z0
, 1))
161 ** qsubr_1_u8_z_untied:
162 ** mov (z[0-9]+\.b), #1
164 ** movprfx z0\.b, p0/z, z1\.b
165 ** uqsubr z0\.b, p0/m, z0\.b, \1
167 ** movprfx z0\.b, p0/z, \1
168 ** uqsub z0\.b, p0/m, z0\.b, z1\.b
172 TEST_UNIFORM_Z (qsubr_1_u8_z_untied
, svuint8_t
,
173 z0
= svqsubr_n_u8_z (p0
, z1
, 1),
174 z0
= svqsubr_z (p0
, z1
, 1))
178 ** uqsub z0\.b, z1\.b, z0\.b
181 TEST_UNIFORM_Z (qsubr_u8_x_tied1
, svuint8_t
,
182 z0
= svqsubr_u8_x (p0
, z0
, z1
),
183 z0
= svqsubr_x (p0
, z0
, z1
))
187 ** uqsub z0\.b, z0\.b, z1\.b
190 TEST_UNIFORM_Z (qsubr_u8_x_tied2
, svuint8_t
,
191 z0
= svqsubr_u8_x (p0
, z1
, z0
),
192 z0
= svqsubr_x (p0
, z1
, z0
))
195 ** qsubr_u8_x_untied:
196 ** uqsub z0\.b, z2\.b, z1\.b
199 TEST_UNIFORM_Z (qsubr_u8_x_untied
, svuint8_t
,
200 z0
= svqsubr_u8_x (p0
, z1
, z2
),
201 z0
= svqsubr_x (p0
, z1
, z2
))
204 ** qsubr_w0_u8_x_tied1:
205 ** mov (z[0-9]+\.b), w0
206 ** uqsub z0\.b, \1, z0\.b
209 TEST_UNIFORM_ZX (qsubr_w0_u8_x_tied1
, svuint8_t
, uint8_t,
210 z0
= svqsubr_n_u8_x (p0
, z0
, x0
),
211 z0
= svqsubr_x (p0
, z0
, x0
))
214 ** qsubr_w0_u8_x_untied:
215 ** mov (z[0-9]+\.b), w0
216 ** uqsub z0\.b, \1, z1\.b
219 TEST_UNIFORM_ZX (qsubr_w0_u8_x_untied
, svuint8_t
, uint8_t,
220 z0
= svqsubr_n_u8_x (p0
, z1
, x0
),
221 z0
= svqsubr_x (p0
, z1
, x0
))
224 ** qsubr_1_u8_x_tied1:
225 ** mov (z[0-9]+\.b), #1
226 ** uqsub z0\.b, \1, z0\.b
229 TEST_UNIFORM_Z (qsubr_1_u8_x_tied1
, svuint8_t
,
230 z0
= svqsubr_n_u8_x (p0
, z0
, 1),
231 z0
= svqsubr_x (p0
, z0
, 1))
234 ** qsubr_1_u8_x_untied:
235 ** mov (z[0-9]+\.b), #1
236 ** uqsub z0\.b, \1, z1\.b
239 TEST_UNIFORM_Z (qsubr_1_u8_x_untied
, svuint8_t
,
240 z0
= svqsubr_n_u8_x (p0
, z1
, 1),
241 z0
= svqsubr_x (p0
, z1
, 1))
245 ** mov (z[0-9]+\.b), #127
246 ** uqsub z0\.b, \1, z0\.b
249 TEST_UNIFORM_Z (qsubr_127_u8_x
, svuint8_t
,
250 z0
= svqsubr_n_u8_x (p0
, z0
, 127),
251 z0
= svqsubr_x (p0
, z0
, 127))
255 ** mov (z[0-9]+\.b), #-128
256 ** uqsub z0\.b, \1, z0\.b
259 TEST_UNIFORM_Z (qsubr_128_u8_x
, svuint8_t
,
260 z0
= svqsubr_n_u8_x (p0
, z0
, 128),
261 z0
= svqsubr_x (p0
, z0
, 128))
265 ** mov (z[0-9]+\.b), #-1
266 ** uqsub z0\.b, \1, z0\.b
269 TEST_UNIFORM_Z (qsubr_255_u8_x
, svuint8_t
,
270 z0
= svqsubr_n_u8_x (p0
, z0
, 255),
271 z0
= svqsubr_x (p0
, z0
, 255))
275 ** mov (z[0-9]+\.b), #-1
276 ** uqsub z0\.b, \1, z0\.b
279 TEST_UNIFORM_Z (qsubr_m1_u8_x
, svuint8_t
,
280 z0
= svqsubr_n_u8_x (p0
, z0
, -1),
281 z0
= svqsubr_x (p0
, z0
, -1))
285 ** mov (z[0-9]+\.b), #-127
286 ** uqsub z0\.b, \1, z0\.b
289 TEST_UNIFORM_Z (qsubr_m127_u8_x
, svuint8_t
,
290 z0
= svqsubr_n_u8_x (p0
, z0
, -127),
291 z0
= svqsubr_x (p0
, z0
, -127))
295 ** mov (z[0-9]+\.b), #-128
296 ** uqsub z0\.b, \1, z0\.b
299 TEST_UNIFORM_Z (qsubr_m128_u8_x
, svuint8_t
,
300 z0
= svqsubr_n_u8_x (p0
, z0
, -128),
301 z0
= svqsubr_x (p0
, z0
, -128))