fun_char(void)1 signed char fun_char (void) { return 5; }
fun_short(void)2 short fun_short (void) { return 6; }
fun_int(void)3 int fun_int (void) { return 7; }
fun_ptr(void)4 void *fun_ptr (void) { return &fun_ptr; }
fun_iptr(void)5 int fun_iptr (void) { return 8; }
fun_long(void)6 long fun_long (void) { return 9; }
fun_int128(void)7 __int128 fun_int128 (void) { return 10; }
8
9 typedef struct { int i[10]; } large_struct1_t;
fun_large_struct1(void)10 large_struct1_t fun_large_struct1 (void) {
11 large_struct1_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } };
12 return ret;
13 }
14
15 typedef struct { int i1; int i2; int i3; int i4; int i5;
16 int i6; int i7; int i8; int i9; int i10; } large_struct2_t;
fun_large_struct2(void)17 large_struct2_t fun_large_struct2 (void) {
18 large_struct2_t ret = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
19 return ret;
20 }
21
fun_float(void)22 float fun_float (void) { return 1.5; }
fun_float_complex(void)23 float _Complex fun_float_complex (void) { return 1.5 + 2.5i; }
24
fun_double(void)25 double fun_double (void) { return 2.5; }
fun_double_complex(void)26 double _Complex fun_double_complex (void) { return 2.5 + 3.5i; }
27
fun_long_double(void)28 long double fun_long_double (void) { return 3.5; }
fun_long_double_complex(void)29 long double _Complex fun_long_double_complex (void) { return 4.5 + 5.5i; }
30
31 #ifdef FLOAT128
fun_float128(void)32 __float128 fun_float128 (void) { return 3.5; }
33 #endif
34
35 // 8 byte vectors.
36
37 typedef signed char __attribute__ ((vector_size (8))) vec_char_8_t;
fun_vec_char_8(void)38 vec_char_8_t fun_vec_char_8 (void) {
39 vec_char_8_t ret = { 1, 2, 3, 4, 5, 6, 7, 8 };
40 return ret;
41 }
42
43 typedef short __attribute__ ((vector_size (8))) vec_short_8_t;
fun_vec_short_8(void)44 vec_short_8_t fun_vec_short_8 (void) {
45 vec_short_8_t ret = { 2, 3, 4, 5 };
46 return ret;
47 }
48
49 typedef int __attribute__ ((vector_size (8))) vec_int_8_t;
fun_vec_int_8(void)50 vec_int_8_t fun_vec_int_8 (void) {
51 vec_int_8_t ret = { 3, 4 };
52 return ret;
53 }
54
55 typedef long __attribute__ ((vector_size (8))) vec_long_8_t;
fun_vec_long_8(void)56 vec_long_8_t fun_vec_long_8 (void) {
57 vec_long_8_t ret = { 5 };
58 return ret;
59 }
60
61 typedef float __attribute__ ((vector_size (8))) vec_float_8_t;
fun_vec_float_8(void)62 vec_float_8_t fun_vec_float_8 (void) {
63 vec_float_8_t ret = { 1.5, 2.5 };
64 return ret;
65 }
66
67 typedef double __attribute__ ((vector_size (8))) vec_double_8_t;
68 #ifndef AARCH64_BUG_1032854
69 // https://bugzilla.redhat.com/show_bug.cgi?id=1032854
fun_vec_double_8(void)70 vec_double_8_t fun_vec_double_8 (void) {
71 vec_double_8_t ret = { 3.5 };
72 return ret;
73 }
74 #endif
75
76 // 16 byte vectors.
77
78 typedef signed char __attribute__ ((vector_size (16))) vec_char_16_t;
fun_vec_char_16(void)79 vec_char_16_t fun_vec_char_16 (void) {
80 vec_char_16_t ret = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
81 return ret;
82 }
83
84 typedef short __attribute__ ((vector_size (16))) vec_short_16_t;
fun_vec_short_16(void)85 vec_short_16_t fun_vec_short_16 (void) {
86 vec_short_16_t ret = { 2, 3, 4, 5, 6, 7, 8 };
87 return ret;
88 }
89
90 typedef int __attribute__ ((vector_size (16))) vec_int_16_t;
fun_vec_int_16(void)91 vec_int_16_t fun_vec_int_16 (void) {
92 vec_int_16_t ret = { 2, 3, 4 };
93 return ret;
94 }
95
96 typedef long __attribute__ ((vector_size (16))) vec_long_16_t;
fun_vec_long_16(void)97 vec_long_16_t fun_vec_long_16 (void) {
98 vec_long_16_t ret = { 3, 4 };
99 return ret;
100 }
101
102 typedef __int128 __attribute__ ((vector_size (16))) vec_int128_16_t;
fun_vec_int128_16(void)103 vec_int128_16_t fun_vec_int128_16 (void) {
104 vec_int128_16_t ret = { 999 };
105 return ret;
106 }
107
108 typedef float __attribute__ ((vector_size (16))) vec_float_16_t;
fun_vec_float_16(void)109 vec_float_16_t fun_vec_float_16 (void) {
110 vec_float_16_t ret = { 1.5, 2.5, 3.5, 4.5 };
111 return ret;
112 }
113
114 typedef double __attribute__ ((vector_size (16))) vec_double_16_t;
fun_vec_double_16(void)115 vec_double_16_t fun_vec_double_16 (void) {
116 vec_double_16_t ret = { 2.5, 5 };
117 return ret;
118 }
119
120 #ifdef FLOAT128
121 typedef __float128 __attribute__ ((vector_size (16))) vec_float128_16_t;
fun_vec_float128_16(void)122 vec_float128_16_t fun_vec_float128_16 (void) {
123 vec_float128_16_t ret = { 7.5 };
124 return ret;
125 }
126 #endif
127
128 // Homogeneous floating-point aggregates.
129
130 typedef struct { float f; } hfa1_float_t;
fun_hfa1_float(void)131 hfa1_float_t fun_hfa1_float (void) {
132 hfa1_float_t ret = { 1.5 };
133 return ret;
134 }
135
136 typedef struct { double f; } hfa1_double_t;
fun_hfa1_double(void)137 hfa1_double_t fun_hfa1_double (void) {
138 hfa1_double_t ret = { 3.0 };
139 return ret;
140 }
141
142 typedef struct { long double f; } hfa1_long_double_t;
fun_hfa1_long_double(void)143 hfa1_long_double_t fun_hfa1_long_double (void) {
144 hfa1_long_double_t ret = { 3.0 };
145 return ret;
146 }
147
148 typedef struct { float f[1]; } hfa1_float_a_t;
fun_hfa1_float_a(void)149 hfa1_float_a_t fun_hfa1_float_a (void) {
150 hfa1_float_a_t ret = { { 1.5 } };
151 return ret;
152 }
153
154 typedef struct { double f[1]; } hfa1_double_a_t;
fun_hfa1_double_a(void)155 hfa1_double_a_t fun_hfa1_double_a (void) {
156 hfa1_double_a_t ret = { { 3.0 } };
157 return ret;
158 }
159
160 typedef struct { long double f[1]; } hfa1_long_double_a_t;
fun_hfa1_long_double_a(void)161 hfa1_long_double_a_t fun_hfa1_long_double_a (void) {
162 hfa1_long_double_a_t ret = { { 3.0 } };
163 return ret;
164 }
165
166 typedef struct { float f; float g; } hfa2_float_t;
fun_hfa2_float(void)167 hfa2_float_t fun_hfa2_float (void) {
168 hfa2_float_t ret = { 1.5, 3.0 };
169 return ret;
170 }
171
172 typedef struct { double f; double g; } hfa2_double_t;
fun_hfa2_double(void)173 hfa2_double_t fun_hfa2_double (void) {
174 hfa2_double_t ret = { 3.0, 4.5 };
175 return ret;
176 }
177
178 typedef struct { long double f; long double g; } hfa2_long_double_t;
fun_hfa2_long_double(void)179 hfa2_long_double_t fun_hfa2_long_double (void) {
180 hfa2_long_double_t ret = { 3.0, 4.5 };
181 return ret;
182 }
183
184 typedef struct { float f[2]; } hfa2_float_a_t;
fun_hfa2_float_a(void)185 hfa2_float_a_t fun_hfa2_float_a (void) {
186 hfa2_float_a_t ret = { { 2.5, 3.5 } };
187 return ret;
188 }
189
190 typedef struct { double f[2]; } hfa2_double_a_t;
fun_hfa2_double_a(void)191 hfa2_double_a_t fun_hfa2_double_a (void) {
192 hfa2_double_a_t ret = { { 3.0, 3.5 } };
193 return ret;
194 }
195
196 typedef struct { long double f[2]; } hfa2_long_double_a_t;
fun_hfa2_long_double_a(void)197 hfa2_long_double_a_t fun_hfa2_long_double_a (void) {
198 hfa2_long_double_a_t ret = { { 3.0, 4.0 } };
199 return ret;
200 }
201
202 typedef struct { float f; float g; float h; } hfa3_float_t;
fun_hfa3_float(void)203 hfa3_float_t fun_hfa3_float (void) {
204 hfa3_float_t ret = { 1.5, 3.0, 4.5 };
205 return ret;
206 }
207
208 typedef struct { double f; double g; double h; } hfa3_double_t;
fun_hfa3_double(void)209 hfa3_double_t fun_hfa3_double (void) {
210 hfa3_double_t ret = { 3.0, 4.5, 9.5 };
211 return ret;
212 }
213
214 typedef struct { long double f; long double g; long double h; } hfa3_long_double_t;
fun_hfa3_long_double(void)215 hfa3_long_double_t fun_hfa3_long_double (void) {
216 hfa3_long_double_t ret = { 3.0, 4.5, 9.5 };
217 return ret;
218 }
219
220 typedef struct { float f[3]; } hfa3_float_a_t;
fun_hfa3_float_a(void)221 hfa3_float_a_t fun_hfa3_float_a (void) {
222 hfa3_float_a_t ret = { { 3.5, 4.5, 5.5 } };
223 return ret;
224 }
225
226 typedef struct { double f[3]; } hfa3_double_a_t;
fun_hfa3_double_a(void)227 hfa3_double_a_t fun_hfa3_double_a (void) {
228 hfa3_double_a_t ret = { { 3.0, 3.5, 4.0 } };
229 return ret;
230 }
231
232 typedef struct { long double f[3]; } hfa3_long_double_a_t;
fun_hfa3_long_double_a(void)233 hfa3_long_double_a_t fun_hfa3_long_double_a (void) {
234 hfa3_long_double_a_t ret = { { 3.0, 4.0, 5.0 } };
235 return ret;
236 }
237
238 typedef struct { float f; float g; float h; float i; } hfa4_float_t;
fun_hfa4_float(void)239 hfa4_float_t fun_hfa4_float (void) {
240 hfa4_float_t ret = { 1.5, 3.5, 4.5, 9.5 };
241 return ret;
242 }
243
244 typedef struct { double f; double g; double h; double i; } hfa4_double_t;
fun_hfa4_double(void)245 hfa4_double_t fun_hfa4_double (void) {
246 hfa4_double_t ret = { 3.5, 4.5, 9.5, 1.5 };
247 return ret;
248 }
249
250 typedef struct { long double f; long double g; long double h; long double i; } hfa4_long_double_t;
fun_hfa4_long_double(void)251 hfa4_long_double_t fun_hfa4_long_double (void) {
252 hfa4_long_double_t ret = { 3.5, 4.5, 9.5, 1.5 };
253 return ret;
254 }
255
256 typedef struct { float f[4]; } hfa4_float_a_t;
fun_hfa4_float_a(void)257 hfa4_float_a_t fun_hfa4_float_a (void) {
258 hfa4_float_a_t ret = { { 4.5, 5.5, 6.5, 7.5 } };
259 return ret;
260 }
261
262 typedef struct { double f[4]; } hfa4_double_a_t;
fun_hfa4_double_a(void)263 hfa4_double_a_t fun_hfa4_double_a (void) {
264 hfa4_double_a_t ret = { { 3.0, 4.5, 5.0, 5.5 } };
265 return ret;
266 }
267
268 typedef struct { long double f[4]; } hfa4_long_double_a_t;
fun_hfa4_long_double_a(void)269 hfa4_long_double_a_t fun_hfa4_long_double_a (void) {
270 hfa4_long_double_a_t ret = { { 3.0, 4.0, 5.0, 6.0 } };
271 return ret;
272 }
273
274 typedef struct { float f; float g; float h; float i; float j; } nfa5_float_t;
fun_nfa5_float(void)275 nfa5_float_t fun_nfa5_float (void) {
276 nfa5_float_t ret = { 1.5, 3.5, 4.5, 9.5, 10.5 };
277 return ret;
278 }
279
280 typedef struct { double f; double g; double h; double i; double j; } nfa5_double_t;
fun_nfa5_double(void)281 nfa5_double_t fun_nfa5_double (void) {
282 nfa5_double_t ret = { 3.5, 4.5, 9.5, 1.5, 2.5 };
283 return ret;
284 }
285
286 typedef struct { long double f; long double g; long double h; long double i; long double j; } nfa5_long_double_t;
fun_nfa5_long_double(void)287 nfa5_long_double_t fun_nfa5_long_double (void) {
288 nfa5_long_double_t ret = { 3.5, 4.5, 9.5, 1.5, 2.5 };
289 return ret;
290 }
291
292 typedef struct { float f[5]; } nfa5_float_a_t;
fun_nfa5_float_a(void)293 nfa5_float_a_t fun_nfa5_float_a (void) {
294 nfa5_float_a_t ret = { { 4.5, 5.5, 6.5, 7.5, 9.5 } };
295 return ret;
296 }
297
298 typedef struct { double f[5]; } nfa5_double_a_t;
fun_nfa5_double_a(void)299 nfa5_double_a_t fun_nfa5_double_a (void) {
300 nfa5_double_a_t ret = { { 3.0, 4.5, 5.0, 5.5, 6.5 } };
301 return ret;
302 }
303
304 typedef struct { long double f[5]; } nfa5_long_double_a_t;
fun_nfa5_long_double_a(void)305 nfa5_long_double_a_t fun_nfa5_long_double_a (void) {
306 nfa5_long_double_a_t ret = { { 3.0, 4.0, 5.0, 6.0, 7.0 } };
307 return ret;
308 }
309
310 #ifdef FLOAT128
311 typedef struct { __float128 f; } hfa1_float128_t;
fun_hfa1_float128(void)312 hfa1_float128_t fun_hfa1_float128 (void) {
313 hfa1_float128_t ret = { 4.5 };
314 return ret;
315 }
316
317 typedef struct { __float128 f; __float128 g; } hfa2_float128_t;
fun_hfa2_float128(void)318 hfa2_float128_t fun_hfa2_float128 (void) {
319 hfa2_float128_t ret = { 4.5, 9.5 };
320 return ret;
321 }
322
323 typedef struct { __float128 f; __float128 g; __float128 h; } hfa3_float128_t;
fun_hfa3_float128(void)324 hfa3_float128_t fun_hfa3_float128 (void) {
325 hfa3_float128_t ret = { 4.5, 9.5, 12.5 };
326 return ret;
327 }
328
329 typedef struct { __float128 f; __float128 g; __float128 h; __float128 i; } hfa4_float128_t;
fun_hfa4_float128(void)330 hfa4_float128_t fun_hfa4_float128 (void) {
331 hfa4_float128_t ret = { 4.5, 9.5, 3.5, 1.5 };
332 return ret;
333 }
334 #endif
335
336 // Homogeneous vector aggregates of 1 element.
337
338 typedef struct { vec_char_8_t a; } hva1_vec_char_8_t;
fun_hva1_vec_char_8(void)339 hva1_vec_char_8_t fun_hva1_vec_char_8 (void) {
340 hva1_vec_char_8_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8 } };
341 return ret;
342 }
343
344 typedef struct { vec_short_8_t a; } hva1_vec_short_8_t;
fun_hva1_vec_short_8(void)345 hva1_vec_short_8_t fun_hva1_vec_short_8 (void) {
346 hva1_vec_short_8_t ret = { { 2, 3, 4, 5 } };
347 return ret;
348 }
349
350 typedef struct { vec_int_8_t a; } hva1_vec_int_8_t;
fun_hva1_vec_int_8(void)351 hva1_vec_int_8_t fun_hva1_vec_int_8 (void) {
352 hva1_vec_int_8_t ret = { { 3, 4 } };
353 return ret;
354 }
355
356 typedef struct { vec_long_8_t a; } hva1_vec_long_8_t;
fun_hva1_vec_long_8(void)357 hva1_vec_long_8_t fun_hva1_vec_long_8 (void) {
358 hva1_vec_long_8_t ret = { { 5 } };
359 return ret;
360 }
361
362 typedef struct { vec_float_8_t a; } hva1_vec_float_8_t;
fun_hva1_vec_float_8(void)363 hva1_vec_float_8_t fun_hva1_vec_float_8 (void) {
364 hva1_vec_float_8_t ret = { { 1.5, 2.5 } };
365 return ret;
366 }
367
368 typedef struct { vec_double_8_t a; } hva1_vec_double_8_t;
fun_hva1_vec_double_8(void)369 hva1_vec_double_8_t fun_hva1_vec_double_8 (void) {
370 hva1_vec_double_8_t ret = { { 3.5 } };
371 return ret;
372 }
373
374 typedef struct { vec_char_16_t a; } hva1_vec_char_16_t;
fun_hva1_vec_char_16_t(void)375 hva1_vec_char_16_t fun_hva1_vec_char_16_t (void) {
376 hva1_vec_char_16_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8,
377 9, 10, 11, 12, 13, 14, 15, 16 } };
378 return ret;
379 }
380
381 typedef struct { vec_short_16_t a; } hva1_vec_short_16_t;
fun_hva1_vec_short_16_t(void)382 hva1_vec_short_16_t fun_hva1_vec_short_16_t (void) {
383 hva1_vec_short_16_t ret = { { 2, 3, 4, 5, 6, 7, 8, 9 } };
384 return ret;
385 }
386
387 typedef struct { vec_int_16_t a; } hva1_vec_int_16_t;
fun_hva1_vec_int_16_t(void)388 hva1_vec_int_16_t fun_hva1_vec_int_16_t (void) {
389 hva1_vec_int_16_t ret = { { 3, 4, 5, 6 } };
390 return ret;
391 }
392
393 typedef struct { vec_long_16_t a; } hva1_vec_long_16_t;
fun_hva1_vec_long_16_t(void)394 hva1_vec_long_16_t fun_hva1_vec_long_16_t (void) {
395 hva1_vec_long_16_t ret = { { 4, 5 } };
396 return ret;
397 }
398
399 typedef struct { vec_int128_16_t a; } hva1_vec_int128_16_t;
fun_hva1_vec_int128_16_t(void)400 hva1_vec_int128_16_t fun_hva1_vec_int128_16_t (void) {
401 hva1_vec_int128_16_t ret = { { 6 } };
402 return ret;
403 }
404
405 typedef struct { vec_float_16_t a; } hva1_vec_float_16_t;
fun_hva1_vec_float_16_t(void)406 hva1_vec_float_16_t fun_hva1_vec_float_16_t (void) {
407 hva1_vec_float_16_t ret = { { 1.5, 2.5, 3.5, 4.5 } };
408 return ret;
409 }
410
411 typedef struct { vec_double_16_t a; } hva1_vec_double_16_t;
fun_hva1_vec_double_16_t(void)412 hva1_vec_double_16_t fun_hva1_vec_double_16_t (void) {
413 hva1_vec_double_16_t ret = { { 2.5, 3.5 } };
414 return ret;
415 }
416
417 #ifdef FLOAT128
418 typedef struct { vec_float128_16_t a; } hva1_vec_float128_16_t;
fun_hva1_vec_float128_16_t(void)419 hva1_vec_float128_16_t fun_hva1_vec_float128_16_t (void) {
420 hva1_vec_float128_16_t ret = { { 4.5 } };
421 return ret;
422 }
423 #endif
424
425 // Homogeneous vector aggregates of 2 elements.
426
427 typedef struct { vec_char_8_t a; vec_char_8_t b; } hva2_vec_char_8_t;
fun_hva2_vec_char_8(void)428 hva2_vec_char_8_t fun_hva2_vec_char_8 (void) {
429 hva2_vec_char_8_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8 },
430 { 2, 3, 4, 5, 6, 7, 8, 9 } };
431 return ret;
432 }
433
434 typedef struct { vec_short_8_t a; vec_short_8_t b; } hva2_vec_short_8_t;
fun_hva2_vec_short_8(void)435 hva2_vec_short_8_t fun_hva2_vec_short_8 (void) {
436 hva2_vec_short_8_t ret = { { 2, 3, 4, 5 },
437 { 3, 4, 5, 6 } };
438 return ret;
439 }
440
441 typedef struct { vec_int_8_t a; vec_int_8_t b; } hva2_vec_int_8_t;
fun_hva2_vec_int_8(void)442 hva2_vec_int_8_t fun_hva2_vec_int_8 (void) {
443 hva2_vec_int_8_t ret = { { 3, 4 },
444 { 4, 5 } };
445 return ret;
446 }
447
448 typedef struct { vec_long_8_t a; vec_long_8_t b; } hva2_vec_long_8_t;
fun_hva2_vec_long_8(void)449 hva2_vec_long_8_t fun_hva2_vec_long_8 (void) {
450 hva2_vec_long_8_t ret = { { 5 },
451 { 6 } };
452 return ret;
453 }
454
455 typedef struct { vec_float_8_t a; vec_float_8_t b; } hva2_vec_float_8_t;
fun_hva2_vec_float_8(void)456 hva2_vec_float_8_t fun_hva2_vec_float_8 (void) {
457 hva2_vec_float_8_t ret = { { 1.5, 2.5 },
458 { 2.5, 3.5 } };
459 return ret;
460 }
461
462 typedef struct { vec_double_8_t a; vec_double_8_t b; } hva2_vec_double_8_t;
fun_hva2_vec_double_8(void)463 hva2_vec_double_8_t fun_hva2_vec_double_8 (void) {
464 hva2_vec_double_8_t ret = { { 3.5 },
465 { 4.5 } };
466 return ret;
467 }
468
469 typedef struct { vec_char_16_t a; vec_char_16_t b; } hva2_vec_char_16_t;
fun_hva2_vec_char_16_t(void)470 hva2_vec_char_16_t fun_hva2_vec_char_16_t (void) {
471 hva2_vec_char_16_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8,
472 9, 10, 11, 12, 13, 14, 15, 16 },
473 { 2, 3, 4, 5, 6, 7, 8, 9,
474 10, 11, 12, 13, 14, 15, 16, 17 } };
475 return ret;
476 }
477
478 typedef struct { vec_short_16_t a; vec_short_16_t b; } hva2_vec_short_16_t;
fun_hva2_vec_short_16_t(void)479 hva2_vec_short_16_t fun_hva2_vec_short_16_t (void) {
480 hva2_vec_short_16_t ret = { { 2, 3, 4, 5, 6, 7, 8, 9 },
481 { 3, 4, 5, 6, 7, 8, 9, 10 } };
482 return ret;
483 }
484
485 typedef struct { vec_int_16_t a; vec_int_16_t b; } hva2_vec_int_16_t;
fun_hva2_vec_int_16_t(void)486 hva2_vec_int_16_t fun_hva2_vec_int_16_t (void) {
487 hva2_vec_int_16_t ret = { { 3, 4, 5, 6 },
488 { 4, 5, 6, 7 } };
489 return ret;
490 }
491
492 typedef struct { vec_long_16_t a; vec_long_16_t b; } hva2_vec_long_16_t;
fun_hva2_vec_long_16_t(void)493 hva2_vec_long_16_t fun_hva2_vec_long_16_t (void) {
494 hva2_vec_long_16_t ret = { { 4, 5 },
495 { 5, 6 } };
496 return ret;
497 }
498
499 typedef struct { vec_int128_16_t a; vec_int128_16_t b; } hva2_vec_int128_16_t;
fun_hva2_vec_int128_16_t(void)500 hva2_vec_int128_16_t fun_hva2_vec_int128_16_t (void) {
501 hva2_vec_int128_16_t ret = { { 6 },
502 { 7 } };
503 return ret;
504 }
505
506 typedef struct { vec_float_16_t a; vec_float_16_t b; } hva2_vec_float_16_t;
fun_hva2_vec_float_16_t(void)507 hva2_vec_float_16_t fun_hva2_vec_float_16_t (void) {
508 hva2_vec_float_16_t ret = { { 1.5, 2.5, 3.5, 4.5 },
509 { 2.5, 3.5, 4.5, 5.5 } };
510 return ret;
511 }
512
513 typedef struct { vec_double_16_t a; vec_double_16_t b; } hva2_vec_double_16_t;
fun_hva2_vec_double_16_t(void)514 hva2_vec_double_16_t fun_hva2_vec_double_16_t (void) {
515 hva2_vec_double_16_t ret = { { 2.5, 3.5 },
516 { 3.5, 4.5 } };
517 return ret;
518 }
519
520 #ifdef FLOAT128
521 typedef struct { vec_float128_16_t a; vec_float128_16_t b; } hva2_vec_float128_16_t;
fun_hva2_vec_float128_16_t(void)522 hva2_vec_float128_16_t fun_hva2_vec_float128_16_t (void) {
523 hva2_vec_float128_16_t ret = { { 4.5 },
524 { 5.5 } };
525 return ret;
526 }
527 #endif
528
529 // Homogeneous vector aggregates of 3 elements.
530
531 typedef struct { vec_char_8_t a; vec_char_8_t b; vec_char_8_t c; } hva3_vec_char_8_t;
fun_hva3_vec_char_8(void)532 hva3_vec_char_8_t fun_hva3_vec_char_8 (void) {
533 hva3_vec_char_8_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8 },
534 { 2, 3, 4, 5, 6, 7, 8, 9 },
535 { 3, 4, 5, 6, 7, 8, 9, 10 } };
536 return ret;
537 }
538
539 typedef struct { vec_short_8_t a; vec_short_8_t b; vec_short_8_t c; } hva3_vec_short_8_t;
fun_hva3_vec_short_8(void)540 hva3_vec_short_8_t fun_hva3_vec_short_8 (void) {
541 hva3_vec_short_8_t ret = { { 2, 3, 4, 5 },
542 { 3, 4, 5, 6 },
543 { 4, 5, 6, 7 } };
544 return ret;
545 }
546
547 typedef struct { vec_int_8_t a; vec_int_8_t b; vec_int_8_t c; } hva3_vec_int_8_t;
fun_hva3_vec_int_8(void)548 hva3_vec_int_8_t fun_hva3_vec_int_8 (void) {
549 hva3_vec_int_8_t ret = { { 3, 4 },
550 { 4, 5 },
551 { 5, 6 } };
552 return ret;
553 }
554
555 typedef struct { vec_long_8_t a; vec_long_8_t b; vec_long_8_t c; } hva3_vec_long_8_t;
fun_hva3_vec_long_8(void)556 hva3_vec_long_8_t fun_hva3_vec_long_8 (void) {
557 hva3_vec_long_8_t ret = { { 5 },
558 { 6 },
559 { 7 } };
560 return ret;
561 }
562
563 typedef struct { vec_float_8_t a; vec_float_8_t b; vec_float_8_t c; } hva3_vec_float_8_t;
fun_hva3_vec_float_8(void)564 hva3_vec_float_8_t fun_hva3_vec_float_8 (void) {
565 hva3_vec_float_8_t ret = { { 1.5, 2.5 },
566 { 2.5, 3.5 },
567 { 3.5, 4.5 } };
568 return ret;
569 }
570
571 typedef struct { vec_double_8_t a; vec_double_8_t b; vec_double_8_t c; } hva3_vec_double_8_t;
fun_hva3_vec_double_8(void)572 hva3_vec_double_8_t fun_hva3_vec_double_8 (void) {
573 hva3_vec_double_8_t ret = { { 3.5 },
574 { 4.5 },
575 { 5.5 } };
576 return ret;
577 }
578
579 typedef struct { vec_char_16_t a; vec_char_16_t b; vec_char_16_t c; } hva3_vec_char_16_t;
fun_hva3_vec_char_16_t(void)580 hva3_vec_char_16_t fun_hva3_vec_char_16_t (void) {
581 hva3_vec_char_16_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8,
582 9, 10, 11, 12, 13, 14, 15, 16 },
583 { 2, 3, 4, 5, 6, 7, 8, 9,
584 10, 11, 12, 13, 14, 15, 16, 17 },
585 { 3, 4, 5, 6, 7, 8, 9, 10,
586 11, 12, 13, 14, 15, 16, 17, 18 } };
587 return ret;
588 }
589
590 typedef struct { vec_short_16_t a; vec_short_16_t b; vec_short_16_t c; } hva3_vec_short_16_t;
fun_hva3_vec_short_16_t(void)591 hva3_vec_short_16_t fun_hva3_vec_short_16_t (void) {
592 hva3_vec_short_16_t ret = { { 2, 3, 4, 5, 6, 7, 8, 9 },
593 { 3, 4, 5, 6, 7, 8, 9, 10 },
594 { 4, 5, 6, 7, 8, 9, 10, 11 } };
595 return ret;
596 }
597
598 typedef struct { vec_int_16_t a; vec_int_16_t b; vec_int_16_t c; } hva3_vec_int_16_t;
fun_hva3_vec_int_16_t(void)599 hva3_vec_int_16_t fun_hva3_vec_int_16_t (void) {
600 hva3_vec_int_16_t ret = { { 3, 4, 5, 6 },
601 { 4, 5, 6, 7 },
602 { 5, 6, 7, 8 } };
603 return ret;
604 }
605
606 typedef struct { vec_long_16_t a; vec_long_16_t b; vec_long_16_t c; } hva3_vec_long_16_t;
fun_hva3_vec_long_16_t(void)607 hva3_vec_long_16_t fun_hva3_vec_long_16_t (void) {
608 hva3_vec_long_16_t ret = { { 3, 4 },
609 { 4, 5 },
610 { 5, 6 } };
611 return ret;
612 }
613
614 typedef struct { vec_int128_16_t a; vec_int128_16_t b; vec_int128_16_t c; } hva3_vec_int128_16_t;
fun_hva3_vec_int128_16_t(void)615 hva3_vec_int128_16_t fun_hva3_vec_int128_16_t (void) {
616 hva3_vec_int128_16_t ret = { { 6 },
617 { 7 },
618 { 8 } };
619 return ret;
620 }
621
622 typedef struct { vec_float_16_t a; vec_float_16_t b; vec_float_16_t c; } hva3_vec_float_16_t;
fun_hva3_vec_float_16_t(void)623 hva3_vec_float_16_t fun_hva3_vec_float_16_t (void) {
624 hva3_vec_float_16_t ret = { { 1.5, 2.5, 3.5, 4.5 },
625 { 2.5, 3.5, 4.5, 5.5 },
626 { 3.5, 4.5, 5.5, 6.5 } };
627 return ret;
628 }
629
630 typedef struct { vec_double_16_t a; vec_double_16_t b; vec_double_16_t c; } hva3_vec_double_16_t;
fun_hva3_vec_double_16_t(void)631 hva3_vec_double_16_t fun_hva3_vec_double_16_t (void) {
632 hva3_vec_double_16_t ret = { { 2.5, 3.5 },
633 { 3.5, 4.5 },
634 { 4.5, 5.5 } };
635 return ret;
636 }
637
638 #ifdef FLOAT128
639 typedef struct { vec_float128_16_t a; vec_float128_16_t b; vec_float128_16_t c; } hva3_vec_float128_16_t;
fun_hva3_vec_float128_16_t(void)640 hva3_vec_float128_16_t fun_hva3_vec_float128_16_t (void) {
641 hva3_vec_float128_16_t ret = { { 4.5 },
642 { 5.5 },
643 { 6.5 } };
644 return ret;
645 }
646 #endif
647
648 // Homogeneous vector aggregates of 3 elements.
649
650 typedef struct { vec_char_8_t a; vec_char_8_t b; vec_char_8_t c; vec_char_8_t d; } hva4_vec_char_8_t;
fun_hva4_vec_char_8(void)651 hva4_vec_char_8_t fun_hva4_vec_char_8 (void) {
652 hva4_vec_char_8_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8 },
653 { 2, 3, 4, 5, 6, 7, 8, 9 },
654 { 3, 4, 5, 6, 7, 8, 9, 10 },
655 { 4, 5, 6, 7, 8, 9, 10, 11 } };
656 return ret;
657 }
658
659 typedef struct { vec_short_8_t a; vec_short_8_t b; vec_short_8_t c; vec_short_8_t d; } hva4_vec_short_8_t;
fun_hva4_vec_short_8(void)660 hva4_vec_short_8_t fun_hva4_vec_short_8 (void) {
661 hva4_vec_short_8_t ret = { { 2, 3, 4, 5 },
662 { 3, 4, 5, 6 },
663 { 4, 5, 6, 7 },
664 { 5, 6, 7, 8 } };
665 return ret;
666 }
667
668 typedef struct { vec_int_8_t a; vec_int_8_t b; vec_int_8_t c; vec_int_8_t d; } hva4_vec_int_8_t;
fun_hva4_vec_int_8(void)669 hva4_vec_int_8_t fun_hva4_vec_int_8 (void) {
670 hva4_vec_int_8_t ret = { { 3, 4 },
671 { 4, 5 },
672 { 5, 6 },
673 { 6, 7 } };
674 return ret;
675 }
676
677 typedef struct { vec_long_8_t a; vec_long_8_t b; vec_long_8_t c; vec_long_8_t d; } hva4_vec_long_8_t;
fun_hva4_vec_long_8(void)678 hva4_vec_long_8_t fun_hva4_vec_long_8 (void) {
679 hva4_vec_long_8_t ret = { { 5 },
680 { 6 },
681 { 7 },
682 { 8 } };
683 return ret;
684 }
685
686 typedef struct { vec_float_8_t a; vec_float_8_t b; vec_float_8_t c; vec_float_8_t d; } hva4_vec_float_8_t;
fun_hva4_vec_float_8(void)687 hva4_vec_float_8_t fun_hva4_vec_float_8 (void) {
688 hva4_vec_float_8_t ret = { { 1.5, 2.5 },
689 { 2.5, 3.5 },
690 { 3.5, 4.5 },
691 { 4.5, 5.5 } };
692 return ret;
693 }
694
695 typedef struct { vec_double_8_t a; vec_double_8_t b; vec_double_8_t c; vec_double_8_t d; } hva4_vec_double_8_t;
fun_hva4_vec_double_8(void)696 hva4_vec_double_8_t fun_hva4_vec_double_8 (void) {
697 hva4_vec_double_8_t ret = { { 3.5 },
698 { 4.5 },
699 { 5.5 },
700 { 6.5 } };
701 return ret;
702 }
703
704 typedef struct { vec_char_16_t a; vec_char_16_t b; vec_char_16_t c; vec_char_16_t d; } hva4_vec_char_16_t;
fun_hva4_vec_char_16_t(void)705 hva4_vec_char_16_t fun_hva4_vec_char_16_t (void) {
706 hva4_vec_char_16_t ret = { { 1, 2, 3, 4, 5, 6, 7, 8,
707 9, 10, 11, 12, 13, 14, 15, 16 },
708 { 2, 3, 4, 5, 6, 7, 8, 9,
709 10, 11, 12, 13, 14, 15, 16, 17 },
710 { 3, 4, 5, 6, 7, 8, 9, 10,
711 11, 12, 13, 14, 15, 16, 17, 18 },
712 { 4, 5, 6, 7, 8, 9, 10, 11,
713 12, 13, 14, 15, 16, 17, 18, 19 } };
714 return ret;
715 }
716
717 typedef struct { vec_short_16_t a; vec_short_16_t b; vec_short_16_t c; vec_short_16_t d; } hva4_vec_short_16_t;
fun_hva4_vec_short_16_t(void)718 hva4_vec_short_16_t fun_hva4_vec_short_16_t (void) {
719 hva4_vec_short_16_t ret = { { 2, 3, 4, 5, 6, 7, 8, 9 },
720 { 3, 4, 5, 6, 7, 8, 9, 10 },
721 { 4, 5, 6, 7, 8, 9, 10, 11 },
722 { 5, 6, 7, 8, 9, 10, 11, 12 } };
723 return ret;
724 }
725
726 typedef struct { vec_int_16_t a; vec_int_16_t b; vec_int_16_t c; vec_int_16_t d; } hva4_vec_int_16_t;
fun_hva4_vec_int_16_t(void)727 hva4_vec_int_16_t fun_hva4_vec_int_16_t (void) {
728 hva4_vec_int_16_t ret = { { 3, 4, 5, 6 },
729 { 4, 5, 6, 7 },
730 { 5, 6, 7, 8 },
731 { 6, 7, 8, 9 } };
732 return ret;
733 }
734
735 typedef struct { vec_long_16_t a; vec_long_16_t b; vec_long_16_t c; vec_long_16_t d; } hva4_vec_long_16_t;
fun_hva4_vec_long_16_t(void)736 hva4_vec_long_16_t fun_hva4_vec_long_16_t (void) {
737 hva4_vec_long_16_t ret = { { 3, 4 },
738 { 4, 5 },
739 { 5, 6 },
740 { 6, 7 } };
741 return ret;
742 }
743
744 typedef struct { vec_int128_16_t a; vec_int128_16_t b; vec_int128_16_t c; vec_int128_16_t d; } hva4_vec_int128_16_t;
fun_hva4_vec_int128_16_t(void)745 hva4_vec_int128_16_t fun_hva4_vec_int128_16_t (void) {
746 hva4_vec_int128_16_t ret = { { 6 },
747 { 7 },
748 { 8 },
749 { 9 } };
750 return ret;
751 }
752
753 typedef struct { vec_float_16_t a; vec_float_16_t b; vec_float_16_t c; vec_float_16_t d; } hva4_vec_float_16_t;
fun_hva4_vec_float_16_t(void)754 hva4_vec_float_16_t fun_hva4_vec_float_16_t (void) {
755 hva4_vec_float_16_t ret = { { 1.5, 2.5, 3.5, 4.5 },
756 { 2.5, 3.5, 4.5, 5.5 },
757 { 3.5, 4.5, 5.5, 6.5 },
758 { 4.5, 5.5, 6.5, 7.5 } };
759 return ret;
760 }
761
762 typedef struct { vec_double_16_t a; vec_double_16_t b; vec_double_16_t c; vec_double_16_t d; } hva4_vec_double_16_t;
fun_hva4_vec_double_16_t(void)763 hva4_vec_double_16_t fun_hva4_vec_double_16_t (void) {
764 hva4_vec_double_16_t ret = { { 2.5, 3.5 },
765 { 3.5, 4.5 },
766 { 4.5, 5.5 },
767 { 5.5, 6.5 } };
768 return ret;
769 }
770
771 #ifdef FLOAT128
772 typedef struct { vec_float128_16_t a; vec_float128_16_t b; vec_float128_16_t c; vec_float128_16_t d; } hva4_vec_float128_16_t;
fun_hva4_vec_float128_16_t(void)773 hva4_vec_float128_16_t fun_hva4_vec_float128_16_t (void) {
774 hva4_vec_float128_16_t ret = { { 4.5 },
775 { 5.5 },
776 { 6.5 },
777 { 7.5 } };
778 return ret;
779 }
780 #endif
781
782 // Mixed HFA.
783 typedef struct { float _Complex a; float b; } mixed_hfa3_cff_t;
fun_mixed_hfa3_cff(void)784 mixed_hfa3_cff_t fun_mixed_hfa3_cff (void) {
785 mixed_hfa3_cff_t ret = { 1.5 + 2.5i, 3.5 };
786 return ret;
787 }
788
789 typedef struct { double _Complex a; double b; } mixed_hfa3_cdd_t;
fun_mixed_hfa3_cdd(void)790 mixed_hfa3_cdd_t fun_mixed_hfa3_cdd (void) {
791 mixed_hfa3_cdd_t ret = { 1.5 + 2.5i, 3.5 };
792 return ret;
793 }
794
795 typedef struct { long double _Complex a; long double b; } mixed_hfa3_cldld_t;
fun_mixed_hfa3_cldld(void)796 mixed_hfa3_cldld_t fun_mixed_hfa3_cldld (void) {
797 mixed_hfa3_cldld_t ret = { 1.5 + 2.5i, 3.5 };
798 return ret;
799 }
800
801 typedef struct { float b; float _Complex a; } mixed_hfa3_fcf_t;
fun_mixed_hfa3_fcf(void)802 mixed_hfa3_fcf_t fun_mixed_hfa3_fcf (void) {
803 mixed_hfa3_fcf_t ret = { 3.5, 1.5 + 2.5i };
804 return ret;
805 }
806
807 typedef struct { double b; double _Complex a; } mixed_hfa3_dcd_t;
fun_mixed_hfa3_dcd(void)808 mixed_hfa3_dcd_t fun_mixed_hfa3_dcd (void) {
809 mixed_hfa3_dcd_t ret = { 3.5, 1.5 + 2.5i };
810 return ret;
811 }
812
813 typedef struct { long double b; long double _Complex a; } mixed_hfa3_ldcld_t;
fun_mixed_hfa3_ldcld(void)814 mixed_hfa3_ldcld_t fun_mixed_hfa3_ldcld (void) {
815 mixed_hfa3_ldcld_t ret = { 3.5, 1.5 + 2.5i };
816 return ret;
817 }
818
819 typedef struct { vec_float_8_t a; vec_short_8_t b; } mixed_hfa2_fltsht_t;
fun_mixed_hfa2_fltsht_t(void)820 mixed_hfa2_fltsht_t fun_mixed_hfa2_fltsht_t (void) {
821 mixed_hfa2_fltsht_t ret = { { 3.5, 4.5 }, { 1, 2, 3, 4 } };
822 return ret;
823 }
824
main(int argc,char * argv[])825 int main(int argc, char *argv[])
826 {
827 return 0;
828 }
829