From: Jakub Jelinek Date: Fri, 16 Nov 2012 11:40:39 +0000 (+0100) Subject: re PR tree-optimization/54073 (SciMark Monte Carlo test performance has seriously... X-Git-Tag: upstream/12.2.0~72781 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dd88c7227940f3586ee66e88754006cedf5302bb;p=platform%2Fupstream%2Fgcc.git re PR tree-optimization/54073 (SciMark Monte Carlo test performance has seriously decreased in recent GCC releases) PR target/54073 * config/i386/i386.md (movcc): 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b0c8ad3..ff0ebec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2012-11-16 Jakub Jelinek + + PR target/54073 + * config/i386/i386.md (movcc): 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 PR tree-optimization/54717 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b4e4e72..03c6675 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -19957,6 +19957,11 @@ ix86_expand_fp_movcc (rtx operands[]) return true; } + if (GET_MODE (op0) == TImode + || (GET_MODE (op0) == DImode + && !TARGET_64BIT)) + return false; + /* The floating point conditional move instructions don't directly support conditions resulting from a signed integer comparison. */ diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index f21e5cc..aa75d6b 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -16121,7 +16121,7 @@ (define_expand "movcc" [(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 "") (match_operand:SWIM 3 "")))] "" @@ -16238,7 +16238,7 @@ (define_expand "movcc" [(set (match_operand:X87MODEF 0 "register_operand") (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 3 "register_operand")))] "(TARGET_80387 && TARGET_CMOVE)