https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86855
--- Comment #5 from vincenzo Innocente <vincenzo.innocente at cern dot ch> --- I have indeed worked-around with const __m128i neg = _mm_set_epi32(0,0,0x80000000,0); __m128i ret = __m128i(_mm_sub_ps(v5, v3)); return __m128(_mm_xor_si128(ret,neg)); const __m256i neg = _mm256_set_epi64x(0,0,0x8000000000000000,0); return __m256d(_mm256_xor_si256(__m256i(ret), neg)); etc