| /* PR middle-end/114073 */ |
| /* { dg-do compile { target bitint } } */ |
| /* { dg-options "-O2 -Wno-psabi" } */ |
| /* { dg-additional-options "-mavx512f" { target i?86-*-* x86_64-*-* } } */ |
| |
| typedef int V __attribute__((vector_size (sizeof (_BitInt(256))))); |
| typedef int W __attribute__((vector_size (sizeof (_BitInt(512))))); |
| |
| #if __BITINT_MAXWIDTH__ >= 256 && defined (__SIZEOF_INT128__) |
| _Complex __int128 |
| f1 (_BitInt(256) x) |
| { |
| union U { _BitInt(256) x; _Complex __int128 y; } u; |
| u.x = x; |
| return u.y; |
| } |
| |
| _Complex __int128 |
| f2 (_BitInt(254) x) |
| { |
| union U { _BitInt(254) x; _Complex __int128 y; } u; |
| u.x = x; |
| return u.y; |
| } |
| |
| _BitInt(256) |
| f3 (_Complex __int128 x) |
| { |
| union U { _BitInt(256) x; _Complex __int128 y; } u; |
| u.y = x; |
| return u.x; |
| } |
| |
| _BitInt(252) |
| f4 (_Complex __int128 x) |
| { |
| union U { _BitInt(252) x; _Complex __int128 y; } u; |
| u.y = x; |
| return u.x; |
| } |
| |
| _Complex __int128 |
| f5 (_BitInt(256) x) |
| { |
| union U { _BitInt(256) x; _Complex __int128 y; } u; |
| u.x = x + 1; |
| return u.y; |
| } |
| |
| _Complex __int128 |
| f6 (_BitInt(254) x) |
| { |
| union U { _BitInt(254) x; _Complex __int128 y; } u; |
| u.x = x + 1; |
| return u.y; |
| } |
| |
| _Complex __int128 |
| f7 (_BitInt(256) *x) |
| { |
| union U { _BitInt(256) x; _Complex __int128 y; } u; |
| u.x = *x + 1; |
| return u.y; |
| } |
| |
| _Complex __int128 |
| f8 (_BitInt(254) *x) |
| { |
| union U { _BitInt(254) x; _Complex __int128 y; } u; |
| u.x = *x + 1; |
| return u.y; |
| } |
| |
| _BitInt(256) |
| f9 (_Complex __int128 x) |
| { |
| union U { _BitInt(256) x; _Complex __int128 y; } u; |
| u.y = x; |
| return u.x + 1; |
| } |
| |
| _BitInt(252) |
| f10 (_Complex __int128 x) |
| { |
| union U { _BitInt(252) x; _Complex __int128 y; } u; |
| u.y = x; |
| return u.x + 1; |
| } |
| #endif |
| |
| #if __BITINT_MAXWIDTH__ >= 256 |
| V |
| f11 (_BitInt(256) x) |
| { |
| union U { _BitInt(256) x; V y; } u; |
| u.x = x; |
| return u.y; |
| } |
| |
| V |
| f12 (_BitInt(254) x) |
| { |
| union U { _BitInt(254) x; V y; } u; |
| u.x = x; |
| return u.y; |
| } |
| |
| _BitInt(256) |
| f13 (V x) |
| { |
| union U { _BitInt(256) x; V y; } u; |
| u.y = x; |
| return u.x; |
| } |
| |
| _BitInt(252) |
| f14 (V x) |
| { |
| union U { _BitInt(252) x; V y; } u; |
| u.y = x; |
| return u.x; |
| } |
| |
| V |
| f15 (_BitInt(256) x) |
| { |
| union U { _BitInt(256) x; V y; } u; |
| u.x = x + 1; |
| return u.y; |
| } |
| |
| V |
| f16 (_BitInt(254) x) |
| { |
| union U { _BitInt(254) x; V y; } u; |
| u.x = x + 1; |
| return u.y; |
| } |
| |
| V |
| f17 (_BitInt(256) *x) |
| { |
| union U { _BitInt(256) x; V y; } u; |
| u.x = *x + 1; |
| return u.y; |
| } |
| |
| V |
| f18 (_BitInt(254) *x) |
| { |
| union U { _BitInt(254) x; V y; } u; |
| u.x = *x + 1; |
| return u.y; |
| } |
| |
| _BitInt(256) |
| f19 (V x) |
| { |
| union U { _BitInt(256) x; V y; } u; |
| u.y = x; |
| return u.x + 1; |
| } |
| |
| _BitInt(252) |
| f20 (V x) |
| { |
| union U { _BitInt(252) x; V y; } u; |
| u.y = x; |
| return u.x + 1; |
| } |
| #endif |
| |
| #if __BITINT_MAXWIDTH__ >= 512 |
| W |
| f21 (_BitInt(512) x) |
| { |
| union U { _BitInt(512) x; W y; } u; |
| u.x = x; |
| return u.y; |
| } |
| |
| W |
| f22 (_BitInt(509) x) |
| { |
| union U { _BitInt(509) x; W y; } u; |
| u.x = x; |
| return u.y; |
| } |
| |
| _BitInt(512) |
| f23 (W x) |
| { |
| union U { _BitInt(512) x; W y; } u; |
| u.y = x; |
| return u.x; |
| } |
| |
| _BitInt(506) |
| f24 (W x) |
| { |
| union U { _BitInt(506) x; W y; } u; |
| u.y = x; |
| return u.x; |
| } |
| |
| W |
| f25 (_BitInt(512) x) |
| { |
| union U { _BitInt(512) x; W y; } u; |
| u.x = x + 1; |
| return u.y; |
| } |
| |
| W |
| f26 (_BitInt(509) x) |
| { |
| union U { _BitInt(509) x; W y; } u; |
| u.x = x + 1; |
| return u.y; |
| } |
| |
| W |
| f27 (_BitInt(512) *x) |
| { |
| union U { _BitInt(512) x; W y; } u; |
| u.x = *x + 1; |
| return u.y; |
| } |
| |
| W |
| f28 (_BitInt(509) *x) |
| { |
| union U { _BitInt(509) x; W y; } u; |
| u.x = *x + 1; |
| return u.y; |
| } |
| |
| _BitInt(512) |
| f29 (W x) |
| { |
| union U { _BitInt(512) x; W y; } u; |
| u.y = x; |
| return u.x + 1; |
| } |
| |
| _BitInt(506) |
| f30 (W x) |
| { |
| union U { _BitInt(506) x; W y; } u; |
| u.y = x; |
| return u.x + 1; |
| } |
| #endif |