]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u64.c
[AArch64] Add support for the SVE2 ACLE
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve2 / acle / asm / stnt1_scatter_u64.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2
3 #include "test_sve_acle.h"
4
5 /*
6 ** stnt1_scatter_u64:
7 ** stnt1d z0\.d, p0, \[z1\.d\]
8 ** ret
9 */
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))
13
14 /*
15 ** stnt1_scatter_x0_u64_offset:
16 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
17 ** ret
18 */
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))
22
23 /*
24 ** stnt1_scatter_m8_u64_offset:
25 ** mov (x[0-9]+), #?-8
26 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
27 ** ret
28 */
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))
32
33 /*
34 ** stnt1_scatter_0_u64_offset:
35 ** stnt1d z0\.d, p0, \[z1\.d\]
36 ** ret
37 */
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))
41
42 /*
43 ** stnt1_scatter_9_u64_offset:
44 ** mov (x[0-9]+), #?9
45 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
46 ** ret
47 */
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))
51
52 /*
53 ** stnt1_scatter_10_u64_offset:
54 ** mov (x[0-9]+), #?10
55 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
56 ** ret
57 */
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))
61
62 /*
63 ** stnt1_scatter_11_u64_offset:
64 ** mov (x[0-9]+), #?11
65 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
66 ** ret
67 */
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))
71
72 /*
73 ** stnt1_scatter_12_u64_offset:
74 ** mov (x[0-9]+), #?12
75 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
76 ** ret
77 */
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))
81
82 /*
83 ** stnt1_scatter_13_u64_offset:
84 ** mov (x[0-9]+), #?13
85 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
86 ** ret
87 */
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))
91
92 /*
93 ** stnt1_scatter_14_u64_offset:
94 ** mov (x[0-9]+), #?14
95 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
96 ** ret
97 */
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))
101
102 /*
103 ** stnt1_scatter_15_u64_offset:
104 ** mov (x[0-9]+), #?15
105 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
106 ** ret
107 */
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))
111
112 /*
113 ** stnt1_scatter_16_u64_offset:
114 ** mov (x[0-9]+), #?16
115 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
116 ** ret
117 */
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))
121
122 /*
123 ** stnt1_scatter_248_u64_offset:
124 ** mov (x[0-9]+), #?248
125 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
126 ** ret
127 */
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))
131
132 /*
133 ** stnt1_scatter_256_u64_offset:
134 ** mov (x[0-9]+), #?256
135 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
136 ** ret
137 */
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))
141
142 /*
143 ** stnt1_scatter_x0_u64_index:
144 ** lsl (x[0-9]+), x0, #?3
145 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
146 ** ret
147 */
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))
151
152 /*
153 ** stnt1_scatter_m1_u64_index:
154 ** mov (x[0-9]+), #?-8
155 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
156 ** ret
157 */
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))
161
162 /*
163 ** stnt1_scatter_0_u64_index:
164 ** stnt1d z0\.d, p0, \[z1\.d\]
165 ** ret
166 */
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))
170
171 /*
172 ** stnt1_scatter_5_u64_index:
173 ** mov (x[0-9]+), #?40
174 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
175 ** ret
176 */
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))
180
181 /*
182 ** stnt1_scatter_31_u64_index:
183 ** mov (x[0-9]+), #?248
184 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
185 ** ret
186 */
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))
190
191 /*
192 ** stnt1_scatter_32_u64_index:
193 ** mov (x[0-9]+), #?256
194 ** stnt1d z0\.d, p0, \[z1\.d, \1\]
195 ** ret
196 */
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))
200
201 /*
202 ** stnt1_scatter_x0_u64_s64offset:
203 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
204 ** ret
205 */
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))
209
210 /*
211 ** stnt1_scatter_u64_s64offset:
212 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
213 ** ret
214 */
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))
218
219 /*
220 ** stnt1_scatter_x0_u64_u64offset:
221 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
222 ** ret
223 */
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))
227
228 /*
229 ** stnt1_scatter_u64_u64offset:
230 ** stnt1d z0\.d, p0, \[z1\.d, x0\]
231 ** ret
232 */
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))
236
237 /*
238 ** stnt1_scatter_x0_u64_s64index:
239 ** lsl (z[0-9]+\.d), z1\.d, #3
240 ** stnt1d z0\.d, p0, \[\1, x0\]
241 ** ret
242 */
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))
246
247 /*
248 ** stnt1_scatter_u64_s64index:
249 ** lsl (z[0-9]+\.d), z1\.d, #3
250 ** stnt1d z0\.d, p0, \[\1, x0\]
251 ** ret
252 */
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))
256
257 /*
258 ** stnt1_scatter_x0_u64_u64index:
259 ** lsl (z[0-9]+\.d), z1\.d, #3
260 ** stnt1d z0\.d, p0, \[\1, x0\]
261 ** ret
262 */
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))
266
267 /*
268 ** stnt1_scatter_u64_u64index:
269 ** lsl (z[0-9]+\.d), z1\.d, #3
270 ** stnt1d z0\.d, p0, \[\1, x0\]
271 ** ret
272 */
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))