https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101877
--- Comment #1 from Marius Hillenbrand <mhillen at linux dot ibm.com> --- After narrowing down what triggers this bug, it is most likely a duplicate of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101876 when the pragma sets 'vx' before the typedef, then the resulting type definition appears broken. when enabling 'vx' only after the typedef, then the example compiles successfully. extended example -- causes ICE with -DBROKEN: #include <vecintrin.h> #ifdef BROKEN #pragma GCC target("arch=z13,no-vx") #else #pragma GCC target("arch=z13,vx") #endif typedef unsigned long long v2di __attribute__((vector_size(16))); #pragma GCC target("arch=z13,vx") v2di bar() { v2di v = vec_splat_u64(0); return v; }