https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63260
--- Comment #1 from Oleg Endo <olegendo at gcc dot gnu.org> --- The following functions should not show any mode changes: float test_0 (float x) { return -x; } double test_1 (double x) { return -x; } float test_2 (float x) { return __builtin_fabs (x); } double test_3 (double x) { return __builtin_abs (x); }