1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
6 ** ldnt1sw_gather_u64_tied1:
7 ** ldnt1sw z0\.d, p0/z, \[z0\.d\]
10 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_u64_tied1
, svuint64_t
, svuint64_t
,
11 z0_res
= svldnt1sw_gather_u64base_u64 (p0
, z0
),
12 z0_res
= svldnt1sw_gather_u64 (p0
, z0
))
15 ** ldnt1sw_gather_u64_untied:
16 ** ldnt1sw z0\.d, p0/z, \[z1\.d\]
19 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_u64_untied
, svuint64_t
, svuint64_t
,
20 z0_res
= svldnt1sw_gather_u64base_u64 (p0
, z1
),
21 z0_res
= svldnt1sw_gather_u64 (p0
, z1
))
24 ** ldnt1sw_gather_x0_u64_offset:
25 ** ldnt1sw z0\.d, p0/z, \[z0\.d, x0\]
28 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_x0_u64_offset
, svuint64_t
, svuint64_t
,
29 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, x0
),
30 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, x0
))
33 ** ldnt1sw_gather_m4_u64_offset:
34 ** mov (x[0-9]+), #?-4
35 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
38 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_m4_u64_offset
, svuint64_t
, svuint64_t
,
39 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, -4),
40 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, -4))
43 ** ldnt1sw_gather_0_u64_offset:
44 ** ldnt1sw z0\.d, p0/z, \[z0\.d\]
47 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_0_u64_offset
, svuint64_t
, svuint64_t
,
48 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, 0),
49 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, 0))
52 ** ldnt1sw_gather_5_u64_offset:
54 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
57 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_5_u64_offset
, svuint64_t
, svuint64_t
,
58 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, 5),
59 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, 5))
62 ** ldnt1sw_gather_6_u64_offset:
64 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
67 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_6_u64_offset
, svuint64_t
, svuint64_t
,
68 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, 6),
69 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, 6))
72 ** ldnt1sw_gather_7_u64_offset:
74 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
77 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_7_u64_offset
, svuint64_t
, svuint64_t
,
78 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, 7),
79 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, 7))
82 ** ldnt1sw_gather_8_u64_offset:
84 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
87 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_8_u64_offset
, svuint64_t
, svuint64_t
,
88 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, 8),
89 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, 8))
92 ** ldnt1sw_gather_124_u64_offset:
93 ** mov (x[0-9]+), #?124
94 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
97 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_124_u64_offset
, svuint64_t
, svuint64_t
,
98 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, 124),
99 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, 124))
102 ** ldnt1sw_gather_128_u64_offset:
103 ** mov (x[0-9]+), #?128
104 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
107 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_128_u64_offset
, svuint64_t
, svuint64_t
,
108 z0_res
= svldnt1sw_gather_u64base_offset_u64 (p0
, z0
, 128),
109 z0_res
= svldnt1sw_gather_offset_u64 (p0
, z0
, 128))
112 ** ldnt1sw_gather_x0_u64_index:
113 ** lsl (x[0-9]+), x0, #?2
114 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
117 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_x0_u64_index
, svuint64_t
, svuint64_t
,
118 z0_res
= svldnt1sw_gather_u64base_index_u64 (p0
, z0
, x0
),
119 z0_res
= svldnt1sw_gather_index_u64 (p0
, z0
, x0
))
122 ** ldnt1sw_gather_m1_u64_index:
123 ** mov (x[0-9]+), #?-4
124 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
127 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_m1_u64_index
, svuint64_t
, svuint64_t
,
128 z0_res
= svldnt1sw_gather_u64base_index_u64 (p0
, z0
, -1),
129 z0_res
= svldnt1sw_gather_index_u64 (p0
, z0
, -1))
132 ** ldnt1sw_gather_0_u64_index:
133 ** ldnt1sw z0\.d, p0/z, \[z0\.d\]
136 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_0_u64_index
, svuint64_t
, svuint64_t
,
137 z0_res
= svldnt1sw_gather_u64base_index_u64 (p0
, z0
, 0),
138 z0_res
= svldnt1sw_gather_index_u64 (p0
, z0
, 0))
141 ** ldnt1sw_gather_5_u64_index:
142 ** mov (x[0-9]+), #?20
143 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
146 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_5_u64_index
, svuint64_t
, svuint64_t
,
147 z0_res
= svldnt1sw_gather_u64base_index_u64 (p0
, z0
, 5),
148 z0_res
= svldnt1sw_gather_index_u64 (p0
, z0
, 5))
151 ** ldnt1sw_gather_31_u64_index:
152 ** mov (x[0-9]+), #?124
153 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
156 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_31_u64_index
, svuint64_t
, svuint64_t
,
157 z0_res
= svldnt1sw_gather_u64base_index_u64 (p0
, z0
, 31),
158 z0_res
= svldnt1sw_gather_index_u64 (p0
, z0
, 31))
161 ** ldnt1sw_gather_32_u64_index:
162 ** mov (x[0-9]+), #?128
163 ** ldnt1sw z0\.d, p0/z, \[z0\.d, \1\]
166 TEST_LOAD_GATHER_ZS (ldnt1sw_gather_32_u64_index
, svuint64_t
, svuint64_t
,
167 z0_res
= svldnt1sw_gather_u64base_index_u64 (p0
, z0
, 32),
168 z0_res
= svldnt1sw_gather_index_u64 (p0
, z0
, 32))
171 ** ldnt1sw_gather_x0_u64_s64offset:
172 ** ldnt1sw z0\.d, p0/z, \[z0\.d, x0\]
175 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_x0_u64_s64offset
, svuint64_t
, int32_t, svint64_t
,
176 z0_res
= svldnt1sw_gather_s64offset_u64 (p0
, x0
, z0
),
177 z0_res
= svldnt1sw_gather_offset_u64 (p0
, x0
, z0
))
180 ** ldnt1sw_gather_tied1_u64_s64offset:
181 ** ldnt1sw z0\.d, p0/z, \[z0\.d, x0\]
184 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_tied1_u64_s64offset
, svuint64_t
, int32_t, svint64_t
,
185 z0_res
= svldnt1sw_gather_s64offset_u64 (p0
, x0
, z0
),
186 z0_res
= svldnt1sw_gather_offset_u64 (p0
, x0
, z0
))
189 ** ldnt1sw_gather_untied_u64_s64offset:
190 ** ldnt1sw z0\.d, p0/z, \[z1\.d, x0\]
193 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_untied_u64_s64offset
, svuint64_t
, int32_t, svint64_t
,
194 z0_res
= svldnt1sw_gather_s64offset_u64 (p0
, x0
, z1
),
195 z0_res
= svldnt1sw_gather_offset_u64 (p0
, x0
, z1
))
198 ** ldnt1sw_gather_x0_u64_u64offset:
199 ** ldnt1sw z0\.d, p0/z, \[z0\.d, x0\]
202 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_x0_u64_u64offset
, svuint64_t
, int32_t, svuint64_t
,
203 z0_res
= svldnt1sw_gather_u64offset_u64 (p0
, x0
, z0
),
204 z0_res
= svldnt1sw_gather_offset_u64 (p0
, x0
, z0
))
207 ** ldnt1sw_gather_tied1_u64_u64offset:
208 ** ldnt1sw z0\.d, p0/z, \[z0\.d, x0\]
211 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_tied1_u64_u64offset
, svuint64_t
, int32_t, svuint64_t
,
212 z0_res
= svldnt1sw_gather_u64offset_u64 (p0
, x0
, z0
),
213 z0_res
= svldnt1sw_gather_offset_u64 (p0
, x0
, z0
))
216 ** ldnt1sw_gather_untied_u64_u64offset:
217 ** ldnt1sw z0\.d, p0/z, \[z1\.d, x0\]
220 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_untied_u64_u64offset
, svuint64_t
, int32_t, svuint64_t
,
221 z0_res
= svldnt1sw_gather_u64offset_u64 (p0
, x0
, z1
),
222 z0_res
= svldnt1sw_gather_offset_u64 (p0
, x0
, z1
))
225 ** ldnt1sw_gather_x0_u64_s64index:
226 ** lsl (z[0-9]+\.d), z0\.d, #2
227 ** ldnt1sw z0\.d, p0/z, \[\1, x0\]
230 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_x0_u64_s64index
, svuint64_t
, int32_t, svint64_t
,
231 z0_res
= svldnt1sw_gather_s64index_u64 (p0
, x0
, z0
),
232 z0_res
= svldnt1sw_gather_index_u64 (p0
, x0
, z0
))
235 ** ldnt1sw_gather_tied1_u64_s64index:
236 ** lsl (z[0-9]+\.d), z0\.d, #2
237 ** ldnt1sw z0\.d, p0/z, \[\1, x0\]
240 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_tied1_u64_s64index
, svuint64_t
, int32_t, svint64_t
,
241 z0_res
= svldnt1sw_gather_s64index_u64 (p0
, x0
, z0
),
242 z0_res
= svldnt1sw_gather_index_u64 (p0
, x0
, z0
))
245 ** ldnt1sw_gather_untied_u64_s64index:
246 ** lsl (z[0-9]+\.d), z1\.d, #2
247 ** ldnt1sw z0\.d, p0/z, \[\1, x0\]
250 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_untied_u64_s64index
, svuint64_t
, int32_t, svint64_t
,
251 z0_res
= svldnt1sw_gather_s64index_u64 (p0
, x0
, z1
),
252 z0_res
= svldnt1sw_gather_index_u64 (p0
, x0
, z1
))
255 ** ldnt1sw_gather_x0_u64_u64index:
256 ** lsl (z[0-9]+\.d), z0\.d, #2
257 ** ldnt1sw z0\.d, p0/z, \[\1, x0\]
260 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_x0_u64_u64index
, svuint64_t
, int32_t, svuint64_t
,
261 z0_res
= svldnt1sw_gather_u64index_u64 (p0
, x0
, z0
),
262 z0_res
= svldnt1sw_gather_index_u64 (p0
, x0
, z0
))
265 ** ldnt1sw_gather_tied1_u64_u64index:
266 ** lsl (z[0-9]+\.d), z0\.d, #2
267 ** ldnt1sw z0\.d, p0/z, \[\1, x0\]
270 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_tied1_u64_u64index
, svuint64_t
, int32_t, svuint64_t
,
271 z0_res
= svldnt1sw_gather_u64index_u64 (p0
, x0
, z0
),
272 z0_res
= svldnt1sw_gather_index_u64 (p0
, x0
, z0
))
275 ** ldnt1sw_gather_untied_u64_u64index:
276 ** lsl (z[0-9]+\.d), z1\.d, #2
277 ** ldnt1sw z0\.d, p0/z, \[\1, x0\]
280 TEST_LOAD_GATHER_SZ (ldnt1sw_gather_untied_u64_u64index
, svuint64_t
, int32_t, svuint64_t
,
281 z0_res
= svldnt1sw_gather_u64index_u64 (p0
, x0
, z1
),
282 z0_res
= svldnt1sw_gather_index_u64 (p0
, x0
, z1
))