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