https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92768
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- So I think it's unfortunate that we break testcases like this using _mm_xor_ps with -ffast-math since users expect the mask to not be treated as signed zero/zero. The error here obviously lies in the use of FP vectors for arguments to _mm_xor_ps but I have no idea how we can rectify users (correct) expectation here. As Jakub says fixing the regression doesn't really solve the issue in general. Still I'd not expect middle-end core-infrastructure like the vector builder to strip off signs from zeros.