| /* PR middle-end/114209 */ |
| /* { dg-do compile { target bitint } } */ |
| /* { dg-options "-Og -std=c23 -fno-strict-aliasing" } */ |
| /* { dg-add-options float128 } */ |
| /* { dg-require-effective-target float128 } */ |
| |
| typedef signed char V __attribute__((__vector_size__(16))); |
| typedef _Float128 W __attribute__((__vector_size__(16))); |
| |
| _Float128 |
| foo (void *p) |
| { |
| signed char c = *(_BitInt(128) *) p; |
| _Float128 f = *(_Float128 *) p; |
| W w = *(W *) p; |
| signed char r = ((union { W a; signed char b[16]; }) w).b[1]; |
| return r + f; |
| } |