https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103406
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> --- simplify_binary_operation_1 has /* ((-a) + b) -> (b - a) and similarly for (a + (-b)). These transformations are safe even for IEEE. */ if (GET_CODE (op0) == NEG) return simplify_gen_binary (MINUS, mode, op1, XEXP (op0, 0)); else if (GET_CODE (op1) == NEG) return simplify_gen_binary (MINUS, mode, op0, XEXP (op1, 0));