Home | History | Annotate | Download | only in tests
      1 signed char fun_char (void) { return 5; }
      2 short fun_short (void) { return 6; }
      3 int fun_int (void) { return 7; }
      4 void *fun_ptr (void) { return &fun_ptr; }
      5 int fun_iptr (void) { return 8; }
      6 long fun_long (void) { return 9; }
      7 __int128 fun_int128 (void) { return 10; }
      8 
      9 typedef struct { int i[10]; } large_struct1_t;
     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;
     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 
     22 float fun_float (void) { return 1.5; }
     23 float _Complex fun_float_complex (void) { return 1.5 + 2.5i; }
     24 
     25 double fun_double (void) { return 2.5; }
     26 double _Complex fun_double_complex (void) { return 2.5 + 3.5i; }
     27 
     28 long double fun_long_double (void) { return 3.5; }
     29 long 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 
     37 typedef signed char __attribute__ ((vector_size (8))) vec_char_8_t;
     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;
     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;
     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;
     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;
     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
     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;
     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;
     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;
     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;
     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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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 
    825 int main(int argc, char *argv[])
    826 {
    827   return 0;
    828 }
    829