blob: 7e20f526549ef285ce1b9384bdf18e505d968880 [file] [log] [blame]
Petr Machata98c8a732013-11-26 03:10:31 +01001signed char fun_char (void) { return 5; }
2short fun_short (void) { return 6; }
3int fun_int (void) { return 7; }
4void *fun_ptr (void) { return &fun_ptr; }
5int fun_iptr (void) { return 8; }
6long fun_long (void) { return 9; }
7__int128 fun_int128 (void) { return 10; }
8
9typedef struct { int i[10]; } large_struct1_t;
10large_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
15typedef 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;
17large_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
22float fun_float (void) { return 1.5; }
23float _Complex fun_float_complex (void) { return 1.5 + 2.5i; }
24
25double fun_double (void) { return 2.5; }
26double _Complex fun_double_complex (void) { return 2.5 + 3.5i; }
27
28long double fun_long_double (void) { return 3.5; }
29long double _Complex fun_long_double_complex (void) { return 4.5 + 5.5i; }
30
31#ifdef FLOAT128
32__float128 fun_float128 (void) { return 3.5; }
33#endif
34
35// 8 byte vectors.
36
37typedef signed char __attribute__ ((vector_size (8))) vec_char_8_t;
38vec_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
43typedef short __attribute__ ((vector_size (8))) vec_short_8_t;
44vec_short_8_t fun_vec_short_8 (void) {
45 vec_short_8_t ret = { 2, 3, 4, 5 };
46 return ret;
47}
48
49typedef int __attribute__ ((vector_size (8))) vec_int_8_t;
50vec_int_8_t fun_vec_int_8 (void) {
51 vec_int_8_t ret = { 3, 4 };
52 return ret;
53}
54
55typedef long __attribute__ ((vector_size (8))) vec_long_8_t;
56vec_long_8_t fun_vec_long_8 (void) {
57 vec_long_8_t ret = { 5 };
58 return ret;
59}
60
61typedef float __attribute__ ((vector_size (8))) vec_float_8_t;
62vec_float_8_t fun_vec_float_8 (void) {
63 vec_float_8_t ret = { 1.5, 2.5 };
64 return ret;
65}
66
67typedef double __attribute__ ((vector_size (8))) vec_double_8_t;
68#ifndef AARCH64_BUG_1032854
69// https://bugzilla.redhat.com/show_bug.cgi?id=1032854
70vec_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
78typedef signed char __attribute__ ((vector_size (16))) vec_char_16_t;
79vec_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
84typedef short __attribute__ ((vector_size (16))) vec_short_16_t;
85vec_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
90typedef int __attribute__ ((vector_size (16))) vec_int_16_t;
91vec_int_16_t fun_vec_int_16 (void) {
92 vec_int_16_t ret = { 2, 3, 4 };
93 return ret;
94}
95
96typedef long __attribute__ ((vector_size (16))) vec_long_16_t;
97vec_long_16_t fun_vec_long_16 (void) {
98 vec_long_16_t ret = { 3, 4 };
99 return ret;
100}
101
102typedef __int128 __attribute__ ((vector_size (16))) vec_int128_16_t;
103vec_int128_16_t fun_vec_int128_16 (void) {
104 vec_int128_16_t ret = { 999 };
105 return ret;
106}
107
108typedef float __attribute__ ((vector_size (16))) vec_float_16_t;
109vec_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
114typedef double __attribute__ ((vector_size (16))) vec_double_16_t;
115vec_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
121typedef __float128 __attribute__ ((vector_size (16))) vec_float128_16_t;
122vec_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
130typedef struct { float f; } hfa1_float_t;
131hfa1_float_t fun_hfa1_float (void) {
132 hfa1_float_t ret = { 1.5 };
133 return ret;
134}
135
136typedef struct { double f; } hfa1_double_t;
137hfa1_double_t fun_hfa1_double (void) {
138 hfa1_double_t ret = { 3.0 };
139 return ret;
140}
141
142typedef struct { long double f; } hfa1_long_double_t;
143hfa1_long_double_t fun_hfa1_long_double (void) {
144 hfa1_long_double_t ret = { 3.0 };
145 return ret;
146}
147
148typedef struct { float f[1]; } hfa1_float_a_t;
149hfa1_float_a_t fun_hfa1_float_a (void) {
150 hfa1_float_a_t ret = { { 1.5 } };
151 return ret;
152}
153
154typedef struct { double f[1]; } hfa1_double_a_t;
155hfa1_double_a_t fun_hfa1_double_a (void) {
156 hfa1_double_a_t ret = { { 3.0 } };
157 return ret;
158}
159
160typedef struct { long double f[1]; } hfa1_long_double_a_t;
161hfa1_long_double_a_t fun_hfa1_long_double_a (void) {
162 hfa1_long_double_a_t ret = { { 3.0 } };
163 return ret;
164}
165
166typedef struct { float f; float g; } hfa2_float_t;
167hfa2_float_t fun_hfa2_float (void) {
168 hfa2_float_t ret = { 1.5, 3.0 };
169 return ret;
170}
171
172typedef struct { double f; double g; } hfa2_double_t;
173hfa2_double_t fun_hfa2_double (void) {
174 hfa2_double_t ret = { 3.0, 4.5 };
175 return ret;
176}
177
178typedef struct { long double f; long double g; } hfa2_long_double_t;
179hfa2_long_double_t fun_hfa2_long_double (void) {
180 hfa2_long_double_t ret = { 3.0, 4.5 };
181 return ret;
182}
183
184typedef struct { float f[2]; } hfa2_float_a_t;
185hfa2_float_a_t fun_hfa2_float_a (void) {
186 hfa2_float_a_t ret = { { 2.5, 3.5 } };
187 return ret;
188}
189
190typedef struct { double f[2]; } hfa2_double_a_t;
191hfa2_double_a_t fun_hfa2_double_a (void) {
192 hfa2_double_a_t ret = { { 3.0, 3.5 } };
193 return ret;
194}
195
196typedef struct { long double f[2]; } hfa2_long_double_a_t;
197hfa2_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
202typedef struct { float f; float g; float h; } hfa3_float_t;
203hfa3_float_t fun_hfa3_float (void) {
204 hfa3_float_t ret = { 1.5, 3.0, 4.5 };
205 return ret;
206}
207
208typedef struct { double f; double g; double h; } hfa3_double_t;
209hfa3_double_t fun_hfa3_double (void) {
210 hfa3_double_t ret = { 3.0, 4.5, 9.5 };
211 return ret;
212}
213
214typedef struct { long double f; long double g; long double h; } hfa3_long_double_t;
215hfa3_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
220typedef struct { float f[3]; } hfa3_float_a_t;
221hfa3_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
226typedef struct { double f[3]; } hfa3_double_a_t;
227hfa3_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
232typedef struct { long double f[3]; } hfa3_long_double_a_t;
233hfa3_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
238typedef struct { float f; float g; float h; float i; } hfa4_float_t;
239hfa4_float_t fun_hfa4_float (void) {
240 hfa4_float_t ret = { 1.5, 3.5, 4.5, 9.5 };
241 return ret;
242}
243
244typedef struct { double f; double g; double h; double i; } hfa4_double_t;
245hfa4_double_t fun_hfa4_double (void) {
246 hfa4_double_t ret = { 3.5, 4.5, 9.5, 1.5 };
247 return ret;
248}
249
250typedef struct { long double f; long double g; long double h; long double i; } hfa4_long_double_t;
251hfa4_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
256typedef struct { float f[4]; } hfa4_float_a_t;
257hfa4_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
262typedef struct { double f[4]; } hfa4_double_a_t;
263hfa4_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
268typedef struct { long double f[4]; } hfa4_long_double_a_t;
269hfa4_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
274typedef struct { float f; float g; float h; float i; float j; } nfa5_float_t;
275nfa5_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
280typedef struct { double f; double g; double h; double i; double j; } nfa5_double_t;
281nfa5_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
286typedef struct { long double f; long double g; long double h; long double i; long double j; } nfa5_long_double_t;
287nfa5_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
292typedef struct { float f[5]; } nfa5_float_a_t;
293nfa5_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
298typedef struct { double f[5]; } nfa5_double_a_t;
299nfa5_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
304typedef struct { long double f[5]; } nfa5_long_double_a_t;
305nfa5_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
311typedef struct { __float128 f; } hfa1_float128_t;
312hfa1_float128_t fun_hfa1_float128 (void) {
313 hfa1_float128_t ret = { 4.5 };
314 return ret;
315}
316
317typedef struct { __float128 f; __float128 g; } hfa2_float128_t;
318hfa2_float128_t fun_hfa2_float128 (void) {
319 hfa2_float128_t ret = { 4.5, 9.5 };
320 return ret;
321}
322
323typedef struct { __float128 f; __float128 g; __float128 h; } hfa3_float128_t;
324hfa3_float128_t fun_hfa3_float128 (void) {
325 hfa3_float128_t ret = { 4.5, 9.5, 12.5 };
326 return ret;
327}
328
329typedef struct { __float128 f; __float128 g; __float128 h; __float128 i; } hfa4_float128_t;
330hfa4_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
338typedef struct { vec_char_8_t a; } hva1_vec_char_8_t;
339hva1_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
344typedef struct { vec_short_8_t a; } hva1_vec_short_8_t;
345hva1_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
350typedef struct { vec_int_8_t a; } hva1_vec_int_8_t;
351hva1_vec_int_8_t fun_hva1_vec_int_8 (void) {
352 hva1_vec_int_8_t ret = { { 3, 4 } };
353 return ret;
354}
355
356typedef struct { vec_long_8_t a; } hva1_vec_long_8_t;
357hva1_vec_long_8_t fun_hva1_vec_long_8 (void) {
358 hva1_vec_long_8_t ret = { { 5 } };
359 return ret;
360}
361
362typedef struct { vec_float_8_t a; } hva1_vec_float_8_t;
363hva1_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
368typedef struct { vec_double_8_t a; } hva1_vec_double_8_t;
369hva1_vec_double_8_t fun_hva1_vec_double_8 (void) {
370 hva1_vec_double_8_t ret = { { 3.5 } };
371 return ret;
372}
373
374typedef struct { vec_char_16_t a; } hva1_vec_char_16_t;
375hva1_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
381typedef struct { vec_short_16_t a; } hva1_vec_short_16_t;
382hva1_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
387typedef struct { vec_int_16_t a; } hva1_vec_int_16_t;
388hva1_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
393typedef struct { vec_long_16_t a; } hva1_vec_long_16_t;
394hva1_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
399typedef struct { vec_int128_16_t a; } hva1_vec_int128_16_t;
400hva1_vec_int128_16_t fun_hva1_vec_int128_16_t (void) {
401 hva1_vec_int128_16_t ret = { { 6 } };
402 return ret;
403}
404
405typedef struct { vec_float_16_t a; } hva1_vec_float_16_t;
406hva1_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
411typedef struct { vec_double_16_t a; } hva1_vec_double_16_t;
412hva1_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
418typedef struct { vec_float128_16_t a; } hva1_vec_float128_16_t;
419hva1_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
427typedef struct { vec_char_8_t a; vec_char_8_t b; } hva2_vec_char_8_t;
428hva2_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
434typedef struct { vec_short_8_t a; vec_short_8_t b; } hva2_vec_short_8_t;
435hva2_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
441typedef struct { vec_int_8_t a; vec_int_8_t b; } hva2_vec_int_8_t;
442hva2_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
448typedef struct { vec_long_8_t a; vec_long_8_t b; } hva2_vec_long_8_t;
449hva2_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
455typedef struct { vec_float_8_t a; vec_float_8_t b; } hva2_vec_float_8_t;
456hva2_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
462typedef struct { vec_double_8_t a; vec_double_8_t b; } hva2_vec_double_8_t;
463hva2_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
469typedef struct { vec_char_16_t a; vec_char_16_t b; } hva2_vec_char_16_t;
470hva2_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
478typedef struct { vec_short_16_t a; vec_short_16_t b; } hva2_vec_short_16_t;
479hva2_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
485typedef struct { vec_int_16_t a; vec_int_16_t b; } hva2_vec_int_16_t;
486hva2_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
492typedef struct { vec_long_16_t a; vec_long_16_t b; } hva2_vec_long_16_t;
493hva2_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
499typedef struct { vec_int128_16_t a; vec_int128_16_t b; } hva2_vec_int128_16_t;
500hva2_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
506typedef struct { vec_float_16_t a; vec_float_16_t b; } hva2_vec_float_16_t;
507hva2_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
513typedef struct { vec_double_16_t a; vec_double_16_t b; } hva2_vec_double_16_t;
514hva2_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
521typedef struct { vec_float128_16_t a; vec_float128_16_t b; } hva2_vec_float128_16_t;
522hva2_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
531typedef struct { vec_char_8_t a; vec_char_8_t b; vec_char_8_t c; } hva3_vec_char_8_t;
532hva3_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
539typedef struct { vec_short_8_t a; vec_short_8_t b; vec_short_8_t c; } hva3_vec_short_8_t;
540hva3_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
547typedef struct { vec_int_8_t a; vec_int_8_t b; vec_int_8_t c; } hva3_vec_int_8_t;
548hva3_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
555typedef struct { vec_long_8_t a; vec_long_8_t b; vec_long_8_t c; } hva3_vec_long_8_t;
556hva3_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
563typedef struct { vec_float_8_t a; vec_float_8_t b; vec_float_8_t c; } hva3_vec_float_8_t;
564hva3_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
571typedef struct { vec_double_8_t a; vec_double_8_t b; vec_double_8_t c; } hva3_vec_double_8_t;
572hva3_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
579typedef struct { vec_char_16_t a; vec_char_16_t b; vec_char_16_t c; } hva3_vec_char_16_t;
580hva3_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
590typedef struct { vec_short_16_t a; vec_short_16_t b; vec_short_16_t c; } hva3_vec_short_16_t;
591hva3_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
598typedef struct { vec_int_16_t a; vec_int_16_t b; vec_int_16_t c; } hva3_vec_int_16_t;
599hva3_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
606typedef struct { vec_long_16_t a; vec_long_16_t b; vec_long_16_t c; } hva3_vec_long_16_t;
607hva3_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
614typedef struct { vec_int128_16_t a; vec_int128_16_t b; vec_int128_16_t c; } hva3_vec_int128_16_t;
615hva3_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
622typedef struct { vec_float_16_t a; vec_float_16_t b; vec_float_16_t c; } hva3_vec_float_16_t;
623hva3_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
630typedef struct { vec_double_16_t a; vec_double_16_t b; vec_double_16_t c; } hva3_vec_double_16_t;
631hva3_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
639typedef struct { vec_float128_16_t a; vec_float128_16_t b; vec_float128_16_t c; } hva3_vec_float128_16_t;
640hva3_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
650typedef 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;
651hva4_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
659typedef 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;
660hva4_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
668typedef 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;
669hva4_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
677typedef 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;
678hva4_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
686typedef 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;
687hva4_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
695typedef 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;
696hva4_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
704typedef 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;
705hva4_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
717typedef 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;
718hva4_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
726typedef 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;
727hva4_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
735typedef 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;
736hva4_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
744typedef 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;
745hva4_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
753typedef 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;
754hva4_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
762typedef 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;
763hva4_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
772typedef 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;
773hva4_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.
783typedef struct { float _Complex a; float b; } mixed_hfa3_cff_t;
784mixed_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
789typedef struct { double _Complex a; double b; } mixed_hfa3_cdd_t;
790mixed_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
795typedef struct { long double _Complex a; long double b; } mixed_hfa3_cldld_t;
796mixed_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
801typedef struct { float b; float _Complex a; } mixed_hfa3_fcf_t;
802mixed_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
807typedef struct { double b; double _Complex a; } mixed_hfa3_dcd_t;
808mixed_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
813typedef struct { long double b; long double _Complex a; } mixed_hfa3_ldcld_t;
814mixed_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
819typedef struct { vec_float_8_t a; vec_short_8_t b; } mixed_hfa2_fltsht_t;
820mixed_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
825int main(int argc, char *argv[])
826{
827 return 0;
828}