Commit dd88c722 by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/54073 (SciMark Monte Carlo test performance has…

re PR tree-optimization/54073 (SciMark Monte Carlo test performance has seriously decreased in recent GCC releases)

	PR target/54073
	* config/i386/i386.md (mov<mode>cc): Use comparison_operator
	instead of ordered_comparison_operator resp.
	ix86_fp_comparison_operator predicates.
	* config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
	or for -m32 DImode comparisons.

From-SVN: r193554
parent 0c46ead2
2012-11-16 Jakub Jelinek <jakub@redhat.com>
PR target/54073
* config/i386/i386.md (mov<mode>cc): Use comparison_operator
instead of ordered_comparison_operator resp.
ix86_fp_comparison_operator predicates.
* config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
or for -m32 DImode comparisons.
2012-11-16 Jan Hubicka <jh@suse.cz> 2012-11-16 Jan Hubicka <jh@suse.cz>
PR tree-optimization/54717 PR tree-optimization/54717
...@@ -19957,6 +19957,11 @@ ix86_expand_fp_movcc (rtx operands[]) ...@@ -19957,6 +19957,11 @@ ix86_expand_fp_movcc (rtx operands[])
return true; return true;
} }
if (GET_MODE (op0) == TImode
|| (GET_MODE (op0) == DImode
&& !TARGET_64BIT))
return false;
/* The floating point conditional move instructions don't directly /* The floating point conditional move instructions don't directly
support conditions resulting from a signed integer comparison. */ support conditions resulting from a signed integer comparison. */
...@@ -16121,7 +16121,7 @@ ...@@ -16121,7 +16121,7 @@
(define_expand "mov<mode>cc" (define_expand "mov<mode>cc"
[(set (match_operand:SWIM 0 "register_operand") [(set (match_operand:SWIM 0 "register_operand")
(if_then_else:SWIM (match_operand 1 "ordered_comparison_operator") (if_then_else:SWIM (match_operand 1 "comparison_operator")
(match_operand:SWIM 2 "<general_operand>") (match_operand:SWIM 2 "<general_operand>")
(match_operand:SWIM 3 "<general_operand>")))] (match_operand:SWIM 3 "<general_operand>")))]
"" ""
...@@ -16238,7 +16238,7 @@ ...@@ -16238,7 +16238,7 @@
(define_expand "mov<mode>cc" (define_expand "mov<mode>cc"
[(set (match_operand:X87MODEF 0 "register_operand") [(set (match_operand:X87MODEF 0 "register_operand")
(if_then_else:X87MODEF (if_then_else:X87MODEF
(match_operand 1 "ix86_fp_comparison_operator") (match_operand 1 "comparison_operator")
(match_operand:X87MODEF 2 "register_operand") (match_operand:X87MODEF 2 "register_operand")
(match_operand:X87MODEF 3 "register_operand")))] (match_operand:X87MODEF 3 "register_operand")))]
"(TARGET_80387 && TARGET_CMOVE) "(TARGET_80387 && TARGET_CMOVE)
......
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