1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
7 ** stnt1d z0\.d, p0, \[z1\.d\]
10 TEST_STORE_SCATTER_ZS (stnt1_scatter_u64
, svuint64_t
, svuint64_t
,
11 svstnt1_scatter_u64base_u64 (p0
, z1
, z0
),
12 svstnt1_scatter (p0
, z1
, z0
))
15 ** stnt1_scatter_x0_u64_offset:
16 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
19 TEST_STORE_SCATTER_ZS (stnt1_scatter_x0_u64_offset
, svuint64_t
, svuint64_t
,
20 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, x0
, z0
),
21 svstnt1_scatter_offset (p0
, z1
, x0
, z0
))
24 ** stnt1_scatter_m8_u64_offset:
25 ** mov (x[0-9]+), #?-8
26 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
29 TEST_STORE_SCATTER_ZS (stnt1_scatter_m8_u64_offset
, svuint64_t
, svuint64_t
,
30 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, -8, z0
),
31 svstnt1_scatter_offset (p0
, z1
, -8, z0
))
34 ** stnt1_scatter_0_u64_offset:
35 ** stnt1d z0\.d, p0, \[z1\.d\]
38 TEST_STORE_SCATTER_ZS (stnt1_scatter_0_u64_offset
, svuint64_t
, svuint64_t
,
39 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 0, z0
),
40 svstnt1_scatter_offset (p0
, z1
, 0, z0
))
43 ** stnt1_scatter_9_u64_offset:
45 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
48 TEST_STORE_SCATTER_ZS (stnt1_scatter_9_u64_offset
, svuint64_t
, svuint64_t
,
49 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 9, z0
),
50 svstnt1_scatter_offset (p0
, z1
, 9, z0
))
53 ** stnt1_scatter_10_u64_offset:
54 ** mov (x[0-9]+), #?10
55 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
58 TEST_STORE_SCATTER_ZS (stnt1_scatter_10_u64_offset
, svuint64_t
, svuint64_t
,
59 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 10, z0
),
60 svstnt1_scatter_offset (p0
, z1
, 10, z0
))
63 ** stnt1_scatter_11_u64_offset:
64 ** mov (x[0-9]+), #?11
65 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
68 TEST_STORE_SCATTER_ZS (stnt1_scatter_11_u64_offset
, svuint64_t
, svuint64_t
,
69 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 11, z0
),
70 svstnt1_scatter_offset (p0
, z1
, 11, z0
))
73 ** stnt1_scatter_12_u64_offset:
74 ** mov (x[0-9]+), #?12
75 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
78 TEST_STORE_SCATTER_ZS (stnt1_scatter_12_u64_offset
, svuint64_t
, svuint64_t
,
79 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 12, z0
),
80 svstnt1_scatter_offset (p0
, z1
, 12, z0
))
83 ** stnt1_scatter_13_u64_offset:
84 ** mov (x[0-9]+), #?13
85 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
88 TEST_STORE_SCATTER_ZS (stnt1_scatter_13_u64_offset
, svuint64_t
, svuint64_t
,
89 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 13, z0
),
90 svstnt1_scatter_offset (p0
, z1
, 13, z0
))
93 ** stnt1_scatter_14_u64_offset:
94 ** mov (x[0-9]+), #?14
95 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
98 TEST_STORE_SCATTER_ZS (stnt1_scatter_14_u64_offset
, svuint64_t
, svuint64_t
,
99 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 14, z0
),
100 svstnt1_scatter_offset (p0
, z1
, 14, z0
))
103 ** stnt1_scatter_15_u64_offset:
104 ** mov (x[0-9]+), #?15
105 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
108 TEST_STORE_SCATTER_ZS (stnt1_scatter_15_u64_offset
, svuint64_t
, svuint64_t
,
109 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 15, z0
),
110 svstnt1_scatter_offset (p0
, z1
, 15, z0
))
113 ** stnt1_scatter_16_u64_offset:
114 ** mov (x[0-9]+), #?16
115 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
118 TEST_STORE_SCATTER_ZS (stnt1_scatter_16_u64_offset
, svuint64_t
, svuint64_t
,
119 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 16, z0
),
120 svstnt1_scatter_offset (p0
, z1
, 16, z0
))
123 ** stnt1_scatter_248_u64_offset:
124 ** mov (x[0-9]+), #?248
125 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
128 TEST_STORE_SCATTER_ZS (stnt1_scatter_248_u64_offset
, svuint64_t
, svuint64_t
,
129 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 248, z0
),
130 svstnt1_scatter_offset (p0
, z1
, 248, z0
))
133 ** stnt1_scatter_256_u64_offset:
134 ** mov (x[0-9]+), #?256
135 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
138 TEST_STORE_SCATTER_ZS (stnt1_scatter_256_u64_offset
, svuint64_t
, svuint64_t
,
139 svstnt1_scatter_u64base_offset_u64 (p0
, z1
, 256, z0
),
140 svstnt1_scatter_offset (p0
, z1
, 256, z0
))
143 ** stnt1_scatter_x0_u64_index:
144 ** lsl (x[0-9]+), x0, #?3
145 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
148 TEST_STORE_SCATTER_ZS (stnt1_scatter_x0_u64_index
, svuint64_t
, svuint64_t
,
149 svstnt1_scatter_u64base_index_u64 (p0
, z1
, x0
, z0
),
150 svstnt1_scatter_index (p0
, z1
, x0
, z0
))
153 ** stnt1_scatter_m1_u64_index:
154 ** mov (x[0-9]+), #?-8
155 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
158 TEST_STORE_SCATTER_ZS (stnt1_scatter_m1_u64_index
, svuint64_t
, svuint64_t
,
159 svstnt1_scatter_u64base_index_u64 (p0
, z1
, -1, z0
),
160 svstnt1_scatter_index (p0
, z1
, -1, z0
))
163 ** stnt1_scatter_0_u64_index:
164 ** stnt1d z0\.d, p0, \[z1\.d\]
167 TEST_STORE_SCATTER_ZS (stnt1_scatter_0_u64_index
, svuint64_t
, svuint64_t
,
168 svstnt1_scatter_u64base_index_u64 (p0
, z1
, 0, z0
),
169 svstnt1_scatter_index (p0
, z1
, 0, z0
))
172 ** stnt1_scatter_5_u64_index:
173 ** mov (x[0-9]+), #?40
174 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
177 TEST_STORE_SCATTER_ZS (stnt1_scatter_5_u64_index
, svuint64_t
, svuint64_t
,
178 svstnt1_scatter_u64base_index_u64 (p0
, z1
, 5, z0
),
179 svstnt1_scatter_index (p0
, z1
, 5, z0
))
182 ** stnt1_scatter_31_u64_index:
183 ** mov (x[0-9]+), #?248
184 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
187 TEST_STORE_SCATTER_ZS (stnt1_scatter_31_u64_index
, svuint64_t
, svuint64_t
,
188 svstnt1_scatter_u64base_index_u64 (p0
, z1
, 31, z0
),
189 svstnt1_scatter_index (p0
, z1
, 31, z0
))
192 ** stnt1_scatter_32_u64_index:
193 ** mov (x[0-9]+), #?256
194 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
197 TEST_STORE_SCATTER_ZS (stnt1_scatter_32_u64_index
, svuint64_t
, svuint64_t
,
198 svstnt1_scatter_u64base_index_u64 (p0
, z1
, 32, z0
),
199 svstnt1_scatter_index (p0
, z1
, 32, z0
))
202 ** stnt1_scatter_x0_u64_s64offset:
203 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
206 TEST_STORE_SCATTER_SZ (stnt1_scatter_x0_u64_s64offset
, svuint64_t
, uint64_t, svint64_t
,
207 svstnt1_scatter_s64offset_u64 (p0
, x0
, z1
, z0
),
208 svstnt1_scatter_offset (p0
, x0
, z1
, z0
))
211 ** stnt1_scatter_u64_s64offset:
212 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
215 TEST_STORE_SCATTER_SZ (stnt1_scatter_u64_s64offset
, svuint64_t
, uint64_t, svint64_t
,
216 svstnt1_scatter_s64offset_u64 (p0
, x0
, z1
, z0
),
217 svstnt1_scatter_offset (p0
, x0
, z1
, z0
))
220 ** stnt1_scatter_x0_u64_u64offset:
221 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
224 TEST_STORE_SCATTER_SZ (stnt1_scatter_x0_u64_u64offset
, svuint64_t
, uint64_t, svuint64_t
,
225 svstnt1_scatter_u64offset_u64 (p0
, x0
, z1
, z0
),
226 svstnt1_scatter_offset (p0
, x0
, z1
, z0
))
229 ** stnt1_scatter_u64_u64offset:
230 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
233 TEST_STORE_SCATTER_SZ (stnt1_scatter_u64_u64offset
, svuint64_t
, uint64_t, svuint64_t
,
234 svstnt1_scatter_u64offset_u64 (p0
, x0
, z1
, z0
),
235 svstnt1_scatter_offset (p0
, x0
, z1
, z0
))
238 ** stnt1_scatter_x0_u64_s64index:
239 ** lsl (z[0-9]+\.d), z1\.d, #3
240 ** stnt1d z0\.d, p0, \[\1, x0\]
243 TEST_STORE_SCATTER_SZ (stnt1_scatter_x0_u64_s64index
, svuint64_t
, uint64_t, svint64_t
,
244 svstnt1_scatter_s64index_u64 (p0
, x0
, z1
, z0
),
245 svstnt1_scatter_index (p0
, x0
, z1
, z0
))
248 ** stnt1_scatter_u64_s64index:
249 ** lsl (z[0-9]+\.d), z1\.d, #3
250 ** stnt1d z0\.d, p0, \[\1, x0\]
253 TEST_STORE_SCATTER_SZ (stnt1_scatter_u64_s64index
, svuint64_t
, uint64_t, svint64_t
,
254 svstnt1_scatter_s64index_u64 (p0
, x0
, z1
, z0
),
255 svstnt1_scatter_index (p0
, x0
, z1
, z0
))
258 ** stnt1_scatter_x0_u64_u64index:
259 ** lsl (z[0-9]+\.d), z1\.d, #3
260 ** stnt1d z0\.d, p0, \[\1, x0\]
263 TEST_STORE_SCATTER_SZ (stnt1_scatter_x0_u64_u64index
, svuint64_t
, uint64_t, svuint64_t
,
264 svstnt1_scatter_u64index_u64 (p0
, x0
, z1
, z0
),
265 svstnt1_scatter_index (p0
, x0
, z1
, z0
))
268 ** stnt1_scatter_u64_u64index:
269 ** lsl (z[0-9]+\.d), z1\.d, #3
270 ** stnt1d z0\.d, p0, \[\1, x0\]
273 TEST_STORE_SCATTER_SZ (stnt1_scatter_u64_u64index
, svuint64_t
, uint64_t, svuint64_t
,
274 svstnt1_scatter_u64index_u64 (p0
, x0
, z1
, z0
),
275 svstnt1_scatter_index (p0
, x0
, z1
, z0
))