https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63491
--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> --- Slightly simplified test case that still fails without a function call: typedef __int128_t __attribute__((__vector_size__(16))) vector_128_t; typedef unsigned long long scalar_64_t; vector_128_t foo (void) { union { scalar_64_t i64[2]; vector_128_t v128; } u; u.i64[0] = 1; u.i64[1] = 2; return u.v128; }