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