https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92768
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Even more reduced: #include <xmmintrin.h> __m128 foo (__m128 x) { int f[4] __attribute__((aligned (16))) = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 }; return _mm_xor_ps (x, *(__m128 *) f); } int main () { __m128 a = { -1.0f, -1.0f, -1.0f, -1.0f }; if (foo (a)[1] != 1.0) __builtin_abort (); return 0; } Though, with -fno-signed-zeros, we say that the sign of a zero isn't significant, but for this testcase it is very much significant. So, maybe invalid?