| /* PR middle-end/114157 */ |
| /* { dg-do compile { target bitint } } */ |
| /* { dg-options "-O2 -std=c23 -Wno-psabi -w" } */ |
| |
| #if __BITINT_MAXWIDTH__ >= 256 |
| _BitInt(256) d; |
| _BitInt(255) e; |
| |
| void |
| foo (long __attribute__((vector_size (64))) s) |
| { |
| __builtin_memmove (&d, &s, sizeof (d)); |
| } |
| |
| void |
| bar (_BitInt(512) x) |
| { |
| long __attribute__((vector_size (64))) s; |
| __builtin_memcpy (&s, &x, sizeof (s)); |
| __builtin_memcpy (&d, &s, sizeof (d)); |
| } |
| |
| void |
| baz (long __attribute__((vector_size (64))) s) |
| { |
| _BitInt(256) d; |
| __builtin_memmove (&d, &s, sizeof (d)); |
| e = d; |
| } |
| |
| void |
| qux (long __attribute__((vector_size (64))) s) |
| { |
| _BitInt(192) d; |
| __builtin_memmove (&d, &s, sizeof (d)); |
| e = d; |
| } |
| #else |
| int i; |
| #endif |
| |
| #if __BITINT_MAXWIDTH__ >= 1024 |
| _BitInt(512) |
| corge (long __attribute__((vector_size (1024))) s) |
| { |
| _BitInt(512) d; |
| __builtin_memcpy (&d, &s, sizeof (d)); |
| return d; |
| } |
| #endif |