1signed 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}
829