https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119196
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. In fre we have: _3 = _1 < _2; _7 = _1 == _2; _26 = _3 | _7; Note the T definition is enough for this is just: typedef int T1; typedef __attribute__((vector_size(sizeof(T1)))) T1 T;