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;
}

Reply via email to