+2000-09-11 Jakub Jelinek <jakub@redhat.com>
+
+ * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
+ to a if the comparison is floating mode and not -ffast-math.
+ * simplify-rtx.c (simplify_ternary_operation): Likewise.
+
Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
* sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
/* Convert a == b ? b : a to "a". */
if (true_code == EQ && ! side_effects_p (cond)
+ && (! FLOAT_MODE_P (mode) || flag_fast_math)
&& rtx_equal_p (XEXP (cond, 0), false)
&& rtx_equal_p (XEXP (cond, 1), true))
return false;
else if (true_code == NE && ! side_effects_p (cond)
+ && (! FLOAT_MODE_P (mode) || flag_fast_math)
&& rtx_equal_p (XEXP (cond, 0), true)
&& rtx_equal_p (XEXP (cond, 1), false))
return true;
/* Convert a == b ? b : a to "a". */
if (GET_CODE (op0) == NE && ! side_effects_p (op0)
+ && (! FLOAT_MODE_P (mode) || flag_fast_math)
&& rtx_equal_p (XEXP (op0, 0), op1)
&& rtx_equal_p (XEXP (op0, 1), op2))
return op1;
else if (GET_CODE (op0) == EQ && ! side_effects_p (op0)
+ && (! FLOAT_MODE_P (mode) || flag_fast_math)
&& rtx_equal_p (XEXP (op0, 1), op1)
&& rtx_equal_p (XEXP (op0, 0), op2))
return op2;