1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
6 ** ldnt1_gather_u64_tied1:
7 ** ldnt1d z0\.d, p0/z, \[z0\.d\]
10 TEST_LOAD_GATHER_ZS (ldnt1_gather_u64_tied1
, svuint64_t
, svuint64_t
,
11 z0_res
= svldnt1_gather_u64base_u64 (p0
, z0
),
12 z0_res
= svldnt1_gather_u64 (p0
, z0
))
15 ** ldnt1_gather_u64_untied:
16 ** ldnt1d z0\.d, p0/z, \[z1\.d\]
19 TEST_LOAD_GATHER_ZS (ldnt1_gather_u64_untied
, svuint64_t
, svuint64_t
,
20 z0_res
= svldnt1_gather_u64base_u64 (p0
, z1
),
21 z0_res
= svldnt1_gather_u64 (p0
, z1
))
24 ** ldnt1_gather_x0_u64_offset:
25 ** ldnt1d z0\.d, p0/z, \[z0\.d, x0\]
28 TEST_LOAD_GATHER_ZS (ldnt1_gather_x0_u64_offset
, svuint64_t
, svuint64_t
,
29 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, x0
),
30 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, x0
))
33 ** ldnt1_gather_m8_u64_offset:
34 ** mov (x[0-9]+), #?-8
35 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
38 TEST_LOAD_GATHER_ZS (ldnt1_gather_m8_u64_offset
, svuint64_t
, svuint64_t
,
39 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, -8),
40 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, -8))
43 ** ldnt1_gather_0_u64_offset:
44 ** ldnt1d z0\.d, p0/z, \[z0\.d\]
47 TEST_LOAD_GATHER_ZS (ldnt1_gather_0_u64_offset
, svuint64_t
, svuint64_t
,
48 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 0),
49 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 0))
52 ** ldnt1_gather_9_u64_offset:
54 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
57 TEST_LOAD_GATHER_ZS (ldnt1_gather_9_u64_offset
, svuint64_t
, svuint64_t
,
58 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 9),
59 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 9))
62 ** ldnt1_gather_10_u64_offset:
63 ** mov (x[0-9]+), #?10
64 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
67 TEST_LOAD_GATHER_ZS (ldnt1_gather_10_u64_offset
, svuint64_t
, svuint64_t
,
68 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 10),
69 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 10))
72 ** ldnt1_gather_11_u64_offset:
73 ** mov (x[0-9]+), #?11
74 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
77 TEST_LOAD_GATHER_ZS (ldnt1_gather_11_u64_offset
, svuint64_t
, svuint64_t
,
78 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 11),
79 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 11))
82 ** ldnt1_gather_12_u64_offset:
83 ** mov (x[0-9]+), #?12
84 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
87 TEST_LOAD_GATHER_ZS (ldnt1_gather_12_u64_offset
, svuint64_t
, svuint64_t
,
88 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 12),
89 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 12))
92 ** ldnt1_gather_13_u64_offset:
93 ** mov (x[0-9]+), #?13
94 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
97 TEST_LOAD_GATHER_ZS (ldnt1_gather_13_u64_offset
, svuint64_t
, svuint64_t
,
98 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 13),
99 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 13))
102 ** ldnt1_gather_14_u64_offset:
103 ** mov (x[0-9]+), #?14
104 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
107 TEST_LOAD_GATHER_ZS (ldnt1_gather_14_u64_offset
, svuint64_t
, svuint64_t
,
108 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 14),
109 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 14))
112 ** ldnt1_gather_15_u64_offset:
113 ** mov (x[0-9]+), #?15
114 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
117 TEST_LOAD_GATHER_ZS (ldnt1_gather_15_u64_offset
, svuint64_t
, svuint64_t
,
118 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 15),
119 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 15))
122 ** ldnt1_gather_16_u64_offset:
123 ** mov (x[0-9]+), #?16
124 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
127 TEST_LOAD_GATHER_ZS (ldnt1_gather_16_u64_offset
, svuint64_t
, svuint64_t
,
128 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 16),
129 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 16))
132 ** ldnt1_gather_248_u64_offset:
133 ** mov (x[0-9]+), #?248
134 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
137 TEST_LOAD_GATHER_ZS (ldnt1_gather_248_u64_offset
, svuint64_t
, svuint64_t
,
138 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 248),
139 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 248))
142 ** ldnt1_gather_256_u64_offset:
143 ** mov (x[0-9]+), #?256
144 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
147 TEST_LOAD_GATHER_ZS (ldnt1_gather_256_u64_offset
, svuint64_t
, svuint64_t
,
148 z0_res
= svldnt1_gather_u64base_offset_u64 (p0
, z0
, 256),
149 z0_res
= svldnt1_gather_offset_u64 (p0
, z0
, 256))
152 ** ldnt1_gather_x0_u64_index:
153 ** lsl (x[0-9]+), x0, #?3
154 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
157 TEST_LOAD_GATHER_ZS (ldnt1_gather_x0_u64_index
, svuint64_t
, svuint64_t
,
158 z0_res
= svldnt1_gather_u64base_index_u64 (p0
, z0
, x0
),
159 z0_res
= svldnt1_gather_index_u64 (p0
, z0
, x0
))
162 ** ldnt1_gather_m1_u64_index:
163 ** mov (x[0-9]+), #?-8
164 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
167 TEST_LOAD_GATHER_ZS (ldnt1_gather_m1_u64_index
, svuint64_t
, svuint64_t
,
168 z0_res
= svldnt1_gather_u64base_index_u64 (p0
, z0
, -1),
169 z0_res
= svldnt1_gather_index_u64 (p0
, z0
, -1))
172 ** ldnt1_gather_0_u64_index:
173 ** ldnt1d z0\.d, p0/z, \[z0\.d\]
176 TEST_LOAD_GATHER_ZS (ldnt1_gather_0_u64_index
, svuint64_t
, svuint64_t
,
177 z0_res
= svldnt1_gather_u64base_index_u64 (p0
, z0
, 0),
178 z0_res
= svldnt1_gather_index_u64 (p0
, z0
, 0))
181 ** ldnt1_gather_5_u64_index:
182 ** mov (x[0-9]+), #?40
183 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
186 TEST_LOAD_GATHER_ZS (ldnt1_gather_5_u64_index
, svuint64_t
, svuint64_t
,
187 z0_res
= svldnt1_gather_u64base_index_u64 (p0
, z0
, 5),
188 z0_res
= svldnt1_gather_index_u64 (p0
, z0
, 5))
191 ** ldnt1_gather_31_u64_index:
192 ** mov (x[0-9]+), #?248
193 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
196 TEST_LOAD_GATHER_ZS (ldnt1_gather_31_u64_index
, svuint64_t
, svuint64_t
,
197 z0_res
= svldnt1_gather_u64base_index_u64 (p0
, z0
, 31),
198 z0_res
= svldnt1_gather_index_u64 (p0
, z0
, 31))
201 ** ldnt1_gather_32_u64_index:
202 ** mov (x[0-9]+), #?256
203 ** ldnt1d z0\.d, p0/z, \[z0\.d, \1\]
206 TEST_LOAD_GATHER_ZS (ldnt1_gather_32_u64_index
, svuint64_t
, svuint64_t
,
207 z0_res
= svldnt1_gather_u64base_index_u64 (p0
, z0
, 32),
208 z0_res
= svldnt1_gather_index_u64 (p0
, z0
, 32))
211 ** ldnt1_gather_x0_u64_s64offset:
212 ** ldnt1d z0\.d, p0/z, \[z0\.d, x0\]
215 TEST_LOAD_GATHER_SZ (ldnt1_gather_x0_u64_s64offset
, svuint64_t
, uint64_t, svint64_t
,
216 z0_res
= svldnt1_gather_s64offset_u64 (p0
, x0
, z0
),
217 z0_res
= svldnt1_gather_offset (p0
, x0
, z0
))
220 ** ldnt1_gather_tied1_u64_s64offset:
221 ** ldnt1d z0\.d, p0/z, \[z0\.d, x0\]
224 TEST_LOAD_GATHER_SZ (ldnt1_gather_tied1_u64_s64offset
, svuint64_t
, uint64_t, svint64_t
,
225 z0_res
= svldnt1_gather_s64offset_u64 (p0
, x0
, z0
),
226 z0_res
= svldnt1_gather_offset (p0
, x0
, z0
))
229 ** ldnt1_gather_untied_u64_s64offset:
230 ** ldnt1d z0\.d, p0/z, \[z1\.d, x0\]
233 TEST_LOAD_GATHER_SZ (ldnt1_gather_untied_u64_s64offset
, svuint64_t
, uint64_t, svint64_t
,
234 z0_res
= svldnt1_gather_s64offset_u64 (p0
, x0
, z1
),
235 z0_res
= svldnt1_gather_offset (p0
, x0
, z1
))
238 ** ldnt1_gather_x0_u64_u64offset:
239 ** ldnt1d z0\.d, p0/z, \[z0\.d, x0\]
242 TEST_LOAD_GATHER_SZ (ldnt1_gather_x0_u64_u64offset
, svuint64_t
, uint64_t, svuint64_t
,
243 z0_res
= svldnt1_gather_u64offset_u64 (p0
, x0
, z0
),
244 z0_res
= svldnt1_gather_offset (p0
, x0
, z0
))
247 ** ldnt1_gather_tied1_u64_u64offset:
248 ** ldnt1d z0\.d, p0/z, \[z0\.d, x0\]
251 TEST_LOAD_GATHER_SZ (ldnt1_gather_tied1_u64_u64offset
, svuint64_t
, uint64_t, svuint64_t
,
252 z0_res
= svldnt1_gather_u64offset_u64 (p0
, x0
, z0
),
253 z0_res
= svldnt1_gather_offset (p0
, x0
, z0
))
256 ** ldnt1_gather_untied_u64_u64offset:
257 ** ldnt1d z0\.d, p0/z, \[z1\.d, x0\]
260 TEST_LOAD_GATHER_SZ (ldnt1_gather_untied_u64_u64offset
, svuint64_t
, uint64_t, svuint64_t
,
261 z0_res
= svldnt1_gather_u64offset_u64 (p0
, x0
, z1
),
262 z0_res
= svldnt1_gather_offset (p0
, x0
, z1
))
265 ** ldnt1_gather_x0_u64_s64index:
266 ** lsl (z[0-9]+\.d), z0\.d, #3
267 ** ldnt1d z0\.d, p0/z, \[\1, x0\]
270 TEST_LOAD_GATHER_SZ (ldnt1_gather_x0_u64_s64index
, svuint64_t
, uint64_t, svint64_t
,
271 z0_res
= svldnt1_gather_s64index_u64 (p0
, x0
, z0
),
272 z0_res
= svldnt1_gather_index (p0
, x0
, z0
))
275 ** ldnt1_gather_tied1_u64_s64index:
276 ** lsl (z[0-9]+\.d), z0\.d, #3
277 ** ldnt1d z0\.d, p0/z, \[\1, x0\]
280 TEST_LOAD_GATHER_SZ (ldnt1_gather_tied1_u64_s64index
, svuint64_t
, uint64_t, svint64_t
,
281 z0_res
= svldnt1_gather_s64index_u64 (p0
, x0
, z0
),
282 z0_res
= svldnt1_gather_index (p0
, x0
, z0
))
285 ** ldnt1_gather_untied_u64_s64index:
286 ** lsl (z[0-9]+\.d), z1\.d, #3
287 ** ldnt1d z0\.d, p0/z, \[\1, x0\]
290 TEST_LOAD_GATHER_SZ (ldnt1_gather_untied_u64_s64index
, svuint64_t
, uint64_t, svint64_t
,
291 z0_res
= svldnt1_gather_s64index_u64 (p0
, x0
, z1
),
292 z0_res
= svldnt1_gather_index (p0
, x0
, z1
))
295 ** ldnt1_gather_x0_u64_u64index:
296 ** lsl (z[0-9]+\.d), z0\.d, #3
297 ** ldnt1d z0\.d, p0/z, \[\1, x0\]
300 TEST_LOAD_GATHER_SZ (ldnt1_gather_x0_u64_u64index
, svuint64_t
, uint64_t, svuint64_t
,
301 z0_res
= svldnt1_gather_u64index_u64 (p0
, x0
, z0
),
302 z0_res
= svldnt1_gather_index (p0
, x0
, z0
))
305 ** ldnt1_gather_tied1_u64_u64index:
306 ** lsl (z[0-9]+\.d), z0\.d, #3
307 ** ldnt1d z0\.d, p0/z, \[\1, x0\]
310 TEST_LOAD_GATHER_SZ (ldnt1_gather_tied1_u64_u64index
, svuint64_t
, uint64_t, svuint64_t
,
311 z0_res
= svldnt1_gather_u64index_u64 (p0
, x0
, z0
),
312 z0_res
= svldnt1_gather_index (p0
, x0
, z0
))
315 ** ldnt1_gather_untied_u64_u64index:
316 ** lsl (z[0-9]+\.d), z1\.d, #3
317 ** ldnt1d z0\.d, p0/z, \[\1, x0\]
320 TEST_LOAD_GATHER_SZ (ldnt1_gather_untied_u64_u64index
, svuint64_t
, uint64_t, svuint64_t
,
321 z0_res
= svldnt1_gather_u64index_u64 (p0
, x0
, z1
),
322 z0_res
= svldnt1_gather_index (p0
, x0
, z1
))