1010// Properties: guard="sve,(sve2p3|sme2p3)" streaming_guard="sme,(sve2p3|sme2p3)" flags="feature-dependent"
1111
1212void test (void ) {
13+ int8_t int8_t_val ;
14+ int16_t int16_t_val ;
15+ int32_t int32_t_val ;
1316 svbool_t svbool_t_val ;
1417 svint8_t svint8_t_val ;
1518 svint16_t svint16_t_val ;
@@ -19,7 +22,34 @@ void test(void) {
1922 svuint16_t svuint16_t_val ;
2023 svuint32_t svuint32_t_val ;
2124 svuint64_t svuint64_t_val ;
25+ uint8_t uint8_t_val ;
26+ uint16_t uint16_t_val ;
27+ uint32_t uint32_t_val ;
2228
29+ svabal (svint16_t_val , svint8_t_val , int8_t_val );
30+ svabal (svint16_t_val , svint8_t_val , svint8_t_val );
31+ svabal (svint32_t_val , svint16_t_val , int16_t_val );
32+ svabal (svint32_t_val , svint16_t_val , svint16_t_val );
33+ svabal (svint64_t_val , svint32_t_val , int32_t_val );
34+ svabal (svint64_t_val , svint32_t_val , svint32_t_val );
35+ svabal (svuint16_t_val , svuint8_t_val , svuint8_t_val );
36+ svabal (svuint16_t_val , svuint8_t_val , uint8_t_val );
37+ svabal (svuint32_t_val , svuint16_t_val , svuint16_t_val );
38+ svabal (svuint32_t_val , svuint16_t_val , uint16_t_val );
39+ svabal (svuint64_t_val , svuint32_t_val , svuint32_t_val );
40+ svabal (svuint64_t_val , svuint32_t_val , uint32_t_val );
41+ svabal_n_s16 (svint16_t_val , svint8_t_val , int8_t_val );
42+ svabal_n_s32 (svint32_t_val , svint16_t_val , int16_t_val );
43+ svabal_n_s64 (svint64_t_val , svint32_t_val , int32_t_val );
44+ svabal_n_u16 (svuint16_t_val , svuint8_t_val , uint8_t_val );
45+ svabal_n_u32 (svuint32_t_val , svuint16_t_val , uint16_t_val );
46+ svabal_n_u64 (svuint64_t_val , svuint32_t_val , uint32_t_val );
47+ svabal_s16 (svint16_t_val , svint8_t_val , svint8_t_val );
48+ svabal_s32 (svint32_t_val , svint16_t_val , svint16_t_val );
49+ svabal_s64 (svint64_t_val , svint32_t_val , svint32_t_val );
50+ svabal_u16 (svuint16_t_val , svuint8_t_val , svuint8_t_val );
51+ svabal_u32 (svuint32_t_val , svuint16_t_val , svuint16_t_val );
52+ svabal_u64 (svuint64_t_val , svuint32_t_val , svuint32_t_val );
2353 svaddqp (svint8_t_val , svint8_t_val );
2454 svaddqp (svint16_t_val , svint16_t_val );
2555 svaddqp (svint32_t_val , svint32_t_val );
@@ -62,20 +92,28 @@ void test(void) {
6292 svsubp_m (svbool_t_val , svuint64_t_val , svuint64_t_val );
6393 svsubp_s8_m (svbool_t_val , svint8_t_val , svint8_t_val );
6494 svsubp_s8_x (svbool_t_val , svint8_t_val , svint8_t_val );
95+ svsubp_s8_z (svbool_t_val , svint8_t_val , svint8_t_val );
6596 svsubp_s16_m (svbool_t_val , svint16_t_val , svint16_t_val );
6697 svsubp_s16_x (svbool_t_val , svint16_t_val , svint16_t_val );
98+ svsubp_s16_z (svbool_t_val , svint16_t_val , svint16_t_val );
6799 svsubp_s32_m (svbool_t_val , svint32_t_val , svint32_t_val );
68100 svsubp_s32_x (svbool_t_val , svint32_t_val , svint32_t_val );
101+ svsubp_s32_z (svbool_t_val , svint32_t_val , svint32_t_val );
69102 svsubp_s64_m (svbool_t_val , svint64_t_val , svint64_t_val );
70103 svsubp_s64_x (svbool_t_val , svint64_t_val , svint64_t_val );
104+ svsubp_s64_z (svbool_t_val , svint64_t_val , svint64_t_val );
71105 svsubp_u8_m (svbool_t_val , svuint8_t_val , svuint8_t_val );
72106 svsubp_u8_x (svbool_t_val , svuint8_t_val , svuint8_t_val );
107+ svsubp_u8_z (svbool_t_val , svuint8_t_val , svuint8_t_val );
73108 svsubp_u16_m (svbool_t_val , svuint16_t_val , svuint16_t_val );
74109 svsubp_u16_x (svbool_t_val , svuint16_t_val , svuint16_t_val );
110+ svsubp_u16_z (svbool_t_val , svuint16_t_val , svuint16_t_val );
75111 svsubp_u32_m (svbool_t_val , svuint32_t_val , svuint32_t_val );
76112 svsubp_u32_x (svbool_t_val , svuint32_t_val , svuint32_t_val );
113+ svsubp_u32_z (svbool_t_val , svuint32_t_val , svuint32_t_val );
77114 svsubp_u64_m (svbool_t_val , svuint64_t_val , svuint64_t_val );
78115 svsubp_u64_x (svbool_t_val , svuint64_t_val , svuint64_t_val );
116+ svsubp_u64_z (svbool_t_val , svuint64_t_val , svuint64_t_val );
79117 svsubp_x (svbool_t_val , svint8_t_val , svint8_t_val );
80118 svsubp_x (svbool_t_val , svint16_t_val , svint16_t_val );
81119 svsubp_x (svbool_t_val , svint32_t_val , svint32_t_val );
@@ -84,9 +122,20 @@ void test(void) {
84122 svsubp_x (svbool_t_val , svuint16_t_val , svuint16_t_val );
85123 svsubp_x (svbool_t_val , svuint32_t_val , svuint32_t_val );
86124 svsubp_x (svbool_t_val , svuint64_t_val , svuint64_t_val );
125+ svsubp_z (svbool_t_val , svint8_t_val , svint8_t_val );
126+ svsubp_z (svbool_t_val , svint16_t_val , svint16_t_val );
127+ svsubp_z (svbool_t_val , svint32_t_val , svint32_t_val );
128+ svsubp_z (svbool_t_val , svint64_t_val , svint64_t_val );
129+ svsubp_z (svbool_t_val , svuint8_t_val , svuint8_t_val );
130+ svsubp_z (svbool_t_val , svuint16_t_val , svuint16_t_val );
131+ svsubp_z (svbool_t_val , svuint32_t_val , svuint32_t_val );
132+ svsubp_z (svbool_t_val , svuint64_t_val , svuint64_t_val );
87133}
88134
89135void test_streaming (void ) __arm_streaming {
136+ int8_t int8_t_val ;
137+ int16_t int16_t_val ;
138+ int32_t int32_t_val ;
90139 svbool_t svbool_t_val ;
91140 svint8_t svint8_t_val ;
92141 svint16_t svint16_t_val ;
@@ -96,7 +145,34 @@ void test_streaming(void) __arm_streaming{
96145 svuint16_t svuint16_t_val ;
97146 svuint32_t svuint32_t_val ;
98147 svuint64_t svuint64_t_val ;
148+ uint8_t uint8_t_val ;
149+ uint16_t uint16_t_val ;
150+ uint32_t uint32_t_val ;
99151
152+ svabal (svint16_t_val , svint8_t_val , int8_t_val );
153+ svabal (svint16_t_val , svint8_t_val , svint8_t_val );
154+ svabal (svint32_t_val , svint16_t_val , int16_t_val );
155+ svabal (svint32_t_val , svint16_t_val , svint16_t_val );
156+ svabal (svint64_t_val , svint32_t_val , int32_t_val );
157+ svabal (svint64_t_val , svint32_t_val , svint32_t_val );
158+ svabal (svuint16_t_val , svuint8_t_val , svuint8_t_val );
159+ svabal (svuint16_t_val , svuint8_t_val , uint8_t_val );
160+ svabal (svuint32_t_val , svuint16_t_val , svuint16_t_val );
161+ svabal (svuint32_t_val , svuint16_t_val , uint16_t_val );
162+ svabal (svuint64_t_val , svuint32_t_val , svuint32_t_val );
163+ svabal (svuint64_t_val , svuint32_t_val , uint32_t_val );
164+ svabal_n_s16 (svint16_t_val , svint8_t_val , int8_t_val );
165+ svabal_n_s32 (svint32_t_val , svint16_t_val , int16_t_val );
166+ svabal_n_s64 (svint64_t_val , svint32_t_val , int32_t_val );
167+ svabal_n_u16 (svuint16_t_val , svuint8_t_val , uint8_t_val );
168+ svabal_n_u32 (svuint32_t_val , svuint16_t_val , uint16_t_val );
169+ svabal_n_u64 (svuint64_t_val , svuint32_t_val , uint32_t_val );
170+ svabal_s16 (svint16_t_val , svint8_t_val , svint8_t_val );
171+ svabal_s32 (svint32_t_val , svint16_t_val , svint16_t_val );
172+ svabal_s64 (svint64_t_val , svint32_t_val , svint32_t_val );
173+ svabal_u16 (svuint16_t_val , svuint8_t_val , svuint8_t_val );
174+ svabal_u32 (svuint32_t_val , svuint16_t_val , svuint16_t_val );
175+ svabal_u64 (svuint64_t_val , svuint32_t_val , svuint32_t_val );
100176 svaddqp (svint8_t_val , svint8_t_val );
101177 svaddqp (svint16_t_val , svint16_t_val );
102178 svaddqp (svint32_t_val , svint32_t_val );
@@ -139,20 +215,28 @@ void test_streaming(void) __arm_streaming{
139215 svsubp_m (svbool_t_val , svuint64_t_val , svuint64_t_val );
140216 svsubp_s8_m (svbool_t_val , svint8_t_val , svint8_t_val );
141217 svsubp_s8_x (svbool_t_val , svint8_t_val , svint8_t_val );
218+ svsubp_s8_z (svbool_t_val , svint8_t_val , svint8_t_val );
142219 svsubp_s16_m (svbool_t_val , svint16_t_val , svint16_t_val );
143220 svsubp_s16_x (svbool_t_val , svint16_t_val , svint16_t_val );
221+ svsubp_s16_z (svbool_t_val , svint16_t_val , svint16_t_val );
144222 svsubp_s32_m (svbool_t_val , svint32_t_val , svint32_t_val );
145223 svsubp_s32_x (svbool_t_val , svint32_t_val , svint32_t_val );
224+ svsubp_s32_z (svbool_t_val , svint32_t_val , svint32_t_val );
146225 svsubp_s64_m (svbool_t_val , svint64_t_val , svint64_t_val );
147226 svsubp_s64_x (svbool_t_val , svint64_t_val , svint64_t_val );
227+ svsubp_s64_z (svbool_t_val , svint64_t_val , svint64_t_val );
148228 svsubp_u8_m (svbool_t_val , svuint8_t_val , svuint8_t_val );
149229 svsubp_u8_x (svbool_t_val , svuint8_t_val , svuint8_t_val );
230+ svsubp_u8_z (svbool_t_val , svuint8_t_val , svuint8_t_val );
150231 svsubp_u16_m (svbool_t_val , svuint16_t_val , svuint16_t_val );
151232 svsubp_u16_x (svbool_t_val , svuint16_t_val , svuint16_t_val );
233+ svsubp_u16_z (svbool_t_val , svuint16_t_val , svuint16_t_val );
152234 svsubp_u32_m (svbool_t_val , svuint32_t_val , svuint32_t_val );
153235 svsubp_u32_x (svbool_t_val , svuint32_t_val , svuint32_t_val );
236+ svsubp_u32_z (svbool_t_val , svuint32_t_val , svuint32_t_val );
154237 svsubp_u64_m (svbool_t_val , svuint64_t_val , svuint64_t_val );
155238 svsubp_u64_x (svbool_t_val , svuint64_t_val , svuint64_t_val );
239+ svsubp_u64_z (svbool_t_val , svuint64_t_val , svuint64_t_val );
156240 svsubp_x (svbool_t_val , svint8_t_val , svint8_t_val );
157241 svsubp_x (svbool_t_val , svint16_t_val , svint16_t_val );
158242 svsubp_x (svbool_t_val , svint32_t_val , svint32_t_val );
@@ -161,9 +245,20 @@ void test_streaming(void) __arm_streaming{
161245 svsubp_x (svbool_t_val , svuint16_t_val , svuint16_t_val );
162246 svsubp_x (svbool_t_val , svuint32_t_val , svuint32_t_val );
163247 svsubp_x (svbool_t_val , svuint64_t_val , svuint64_t_val );
248+ svsubp_z (svbool_t_val , svint8_t_val , svint8_t_val );
249+ svsubp_z (svbool_t_val , svint16_t_val , svint16_t_val );
250+ svsubp_z (svbool_t_val , svint32_t_val , svint32_t_val );
251+ svsubp_z (svbool_t_val , svint64_t_val , svint64_t_val );
252+ svsubp_z (svbool_t_val , svuint8_t_val , svuint8_t_val );
253+ svsubp_z (svbool_t_val , svuint16_t_val , svuint16_t_val );
254+ svsubp_z (svbool_t_val , svuint32_t_val , svuint32_t_val );
255+ svsubp_z (svbool_t_val , svuint64_t_val , svuint64_t_val );
164256}
165257
166258void test_streaming_compatible (void ) __arm_streaming_compatible {
259+ int8_t int8_t_val ;
260+ int16_t int16_t_val ;
261+ int32_t int32_t_val ;
167262 svbool_t svbool_t_val ;
168263 svint8_t svint8_t_val ;
169264 svint16_t svint16_t_val ;
@@ -173,7 +268,34 @@ void test_streaming_compatible(void) __arm_streaming_compatible{
173268 svuint16_t svuint16_t_val ;
174269 svuint32_t svuint32_t_val ;
175270 svuint64_t svuint64_t_val ;
271+ uint8_t uint8_t_val ;
272+ uint16_t uint16_t_val ;
273+ uint32_t uint32_t_val ;
176274
275+ svabal (svint16_t_val , svint8_t_val , int8_t_val );
276+ svabal (svint16_t_val , svint8_t_val , svint8_t_val );
277+ svabal (svint32_t_val , svint16_t_val , int16_t_val );
278+ svabal (svint32_t_val , svint16_t_val , svint16_t_val );
279+ svabal (svint64_t_val , svint32_t_val , int32_t_val );
280+ svabal (svint64_t_val , svint32_t_val , svint32_t_val );
281+ svabal (svuint16_t_val , svuint8_t_val , svuint8_t_val );
282+ svabal (svuint16_t_val , svuint8_t_val , uint8_t_val );
283+ svabal (svuint32_t_val , svuint16_t_val , svuint16_t_val );
284+ svabal (svuint32_t_val , svuint16_t_val , uint16_t_val );
285+ svabal (svuint64_t_val , svuint32_t_val , svuint32_t_val );
286+ svabal (svuint64_t_val , svuint32_t_val , uint32_t_val );
287+ svabal_n_s16 (svint16_t_val , svint8_t_val , int8_t_val );
288+ svabal_n_s32 (svint32_t_val , svint16_t_val , int16_t_val );
289+ svabal_n_s64 (svint64_t_val , svint32_t_val , int32_t_val );
290+ svabal_n_u16 (svuint16_t_val , svuint8_t_val , uint8_t_val );
291+ svabal_n_u32 (svuint32_t_val , svuint16_t_val , uint16_t_val );
292+ svabal_n_u64 (svuint64_t_val , svuint32_t_val , uint32_t_val );
293+ svabal_s16 (svint16_t_val , svint8_t_val , svint8_t_val );
294+ svabal_s32 (svint32_t_val , svint16_t_val , svint16_t_val );
295+ svabal_s64 (svint64_t_val , svint32_t_val , svint32_t_val );
296+ svabal_u16 (svuint16_t_val , svuint8_t_val , svuint8_t_val );
297+ svabal_u32 (svuint32_t_val , svuint16_t_val , svuint16_t_val );
298+ svabal_u64 (svuint64_t_val , svuint32_t_val , svuint32_t_val );
177299 svaddqp (svint8_t_val , svint8_t_val );
178300 svaddqp (svint16_t_val , svint16_t_val );
179301 svaddqp (svint32_t_val , svint32_t_val );
@@ -216,20 +338,28 @@ void test_streaming_compatible(void) __arm_streaming_compatible{
216338 svsubp_m (svbool_t_val , svuint64_t_val , svuint64_t_val );
217339 svsubp_s8_m (svbool_t_val , svint8_t_val , svint8_t_val );
218340 svsubp_s8_x (svbool_t_val , svint8_t_val , svint8_t_val );
341+ svsubp_s8_z (svbool_t_val , svint8_t_val , svint8_t_val );
219342 svsubp_s16_m (svbool_t_val , svint16_t_val , svint16_t_val );
220343 svsubp_s16_x (svbool_t_val , svint16_t_val , svint16_t_val );
344+ svsubp_s16_z (svbool_t_val , svint16_t_val , svint16_t_val );
221345 svsubp_s32_m (svbool_t_val , svint32_t_val , svint32_t_val );
222346 svsubp_s32_x (svbool_t_val , svint32_t_val , svint32_t_val );
347+ svsubp_s32_z (svbool_t_val , svint32_t_val , svint32_t_val );
223348 svsubp_s64_m (svbool_t_val , svint64_t_val , svint64_t_val );
224349 svsubp_s64_x (svbool_t_val , svint64_t_val , svint64_t_val );
350+ svsubp_s64_z (svbool_t_val , svint64_t_val , svint64_t_val );
225351 svsubp_u8_m (svbool_t_val , svuint8_t_val , svuint8_t_val );
226352 svsubp_u8_x (svbool_t_val , svuint8_t_val , svuint8_t_val );
353+ svsubp_u8_z (svbool_t_val , svuint8_t_val , svuint8_t_val );
227354 svsubp_u16_m (svbool_t_val , svuint16_t_val , svuint16_t_val );
228355 svsubp_u16_x (svbool_t_val , svuint16_t_val , svuint16_t_val );
356+ svsubp_u16_z (svbool_t_val , svuint16_t_val , svuint16_t_val );
229357 svsubp_u32_m (svbool_t_val , svuint32_t_val , svuint32_t_val );
230358 svsubp_u32_x (svbool_t_val , svuint32_t_val , svuint32_t_val );
359+ svsubp_u32_z (svbool_t_val , svuint32_t_val , svuint32_t_val );
231360 svsubp_u64_m (svbool_t_val , svuint64_t_val , svuint64_t_val );
232361 svsubp_u64_x (svbool_t_val , svuint64_t_val , svuint64_t_val );
362+ svsubp_u64_z (svbool_t_val , svuint64_t_val , svuint64_t_val );
233363 svsubp_x (svbool_t_val , svint8_t_val , svint8_t_val );
234364 svsubp_x (svbool_t_val , svint16_t_val , svint16_t_val );
235365 svsubp_x (svbool_t_val , svint32_t_val , svint32_t_val );
@@ -238,4 +368,12 @@ void test_streaming_compatible(void) __arm_streaming_compatible{
238368 svsubp_x (svbool_t_val , svuint16_t_val , svuint16_t_val );
239369 svsubp_x (svbool_t_val , svuint32_t_val , svuint32_t_val );
240370 svsubp_x (svbool_t_val , svuint64_t_val , svuint64_t_val );
371+ svsubp_z (svbool_t_val , svint8_t_val , svint8_t_val );
372+ svsubp_z (svbool_t_val , svint16_t_val , svint16_t_val );
373+ svsubp_z (svbool_t_val , svint32_t_val , svint32_t_val );
374+ svsubp_z (svbool_t_val , svint64_t_val , svint64_t_val );
375+ svsubp_z (svbool_t_val , svuint8_t_val , svuint8_t_val );
376+ svsubp_z (svbool_t_val , svuint16_t_val , svuint16_t_val );
377+ svsubp_z (svbool_t_val , svuint32_t_val , svuint32_t_val );
378+ svsubp_z (svbool_t_val , svuint64_t_val , svuint64_t_val );
241379}
0 commit comments