From 2b3969faee4094c5b857bf024e8ce4b7d832dc2d Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 14 Aug 2006 11:55:52 +0000 Subject: re PR rtl-optimization/28634 (rounding problem with -fdelayed-branch on hppa/mips) gcc/ PR rtl-optimization/28634 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A for floating-point modes unless flag_unsafe_math_optimizations. gcc/testsuite/ PR rtl-optimization/28634 * gcc.c-torture/execute/ieee/pr28634.c: New test. From-SVN: r116124 --- gcc/reorg.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/reorg.c') diff --git a/gcc/reorg.c b/gcc/reorg.c index 42ecda0..8c097dc 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -2817,6 +2817,8 @@ fill_slots_from_thread (rtx insn, rtx condition, rtx thread, dest = SET_DEST (pat), src = SET_SRC (pat); if ((GET_CODE (src) == PLUS || GET_CODE (src) == MINUS) && rtx_equal_p (XEXP (src, 0), dest) + && (!FLOAT_MODE_P (GET_MODE (src)) + || flag_unsafe_math_optimizations) && ! reg_overlap_mentioned_p (dest, XEXP (src, 1)) && ! side_effects_p (pat)) { -- cgit v1.1