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