Commit 1f36a2dd by Jan Hubicka Committed by Jan Hubicka

simplify-rtx.c (simplify_relational_operation): Always simplify ORDERED and…

simplify-rtx.c (simplify_relational_operation): Always simplify ORDERED and UNORDERED when FLAG_FAST_MATH.


	* simplify-rtx.c (simplify_relational_operation): Always simplify
	ORDERED and UNORDERED when FLAG_FAST_MATH.  Handle properly UNLE
	and UNGE.

From-SVN: r38775
parent 69bc0a1f
Sun Jan 7 14:39:07 MET 2001 Jan Hubicka <jh@suse.cz>
* simplify-rtx.c (simplify_relational_operation): Always simplify
ORDERED and UNORDERED when FLAG_FAST_MATH. Handle properly UNLE
and UNGE.
Sun Jan 7 14:35:13 MET 2001 Jan Hubicka <jh@suse.cz> Sun Jan 7 14:35:13 MET 2001 Jan Hubicka <jh@suse.cz>
* combine.c (combine_simplify_rtx): Recognize the unordered compares. * combine.c (combine_simplify_rtx): Recognize the unordered compares.
......
...@@ -1762,6 +1762,12 @@ simplify_relational_operation (code, mode, op0, op1) ...@@ -1762,6 +1762,12 @@ simplify_relational_operation (code, mode, op0, op1)
return simplify_relational_operation (signed_condition (code), return simplify_relational_operation (signed_condition (code),
mode, tem, const0_rtx); mode, tem, const0_rtx);
if (flag_fast_math && code == ORDERED)
return const_true_rtx;
if (flag_fast_math && code == UNORDERED)
return const0_rtx;
/* For non-IEEE floating-point, if the two operands are equal, we know the /* For non-IEEE floating-point, if the two operands are equal, we know the
result. */ result. */
if (rtx_equal_p (op0, op1) if (rtx_equal_p (op0, op1)
...@@ -1953,8 +1959,10 @@ simplify_relational_operation (code, mode, op0, op1) ...@@ -1953,8 +1959,10 @@ simplify_relational_operation (code, mode, op0, op1)
case GTU: case GTU:
return op1ltu ? const_true_rtx : const0_rtx; return op1ltu ? const_true_rtx : const0_rtx;
case LE: case LE:
case UNLE:
return equal || op0lt ? const_true_rtx : const0_rtx; return equal || op0lt ? const_true_rtx : const0_rtx;
case GE: case GE:
case UNGE:
return equal || op1lt ? const_true_rtx : const0_rtx; return equal || op1lt ? const_true_rtx : const0_rtx;
case LEU: case LEU:
return equal || op0ltu ? const_true_rtx : const0_rtx; return equal || op0ltu ? const_true_rtx : const0_rtx;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment