From 9e4ae64b32ea22fb02baaada60a7fa41b156cf22 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 4 Jan 2005 11:40:52 +0100 Subject: [PATCH] re PR target/19240 (runtime performance regression in floating point heavy code, x86/SSE) PR target/19240 * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH. (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH). From-SVN: r92891 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.md | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 19e9aed72c4..54746d08328 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-01-04 Uros Bizjak + + PR target/19240 + * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH. + (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH). + 2005-01-03 Richard Henderson * fold-const.c (force_fit_type): Cope with types larger than 2 HWI. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index add15a8781c..eb2eee895fc 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -14199,12 +14199,13 @@ (const_string "sseadd"))) (set_attr "mode" "SF")]) +;; This pattern is not fully shadowed by the pattern above. (define_insn "*fop_sf_1_i387" [(set (match_operand:SF 0 "register_operand" "=f,f") (match_operator:SF 3 "binary_fp_operator" [(match_operand:SF 1 "nonimmediate_operand" "0,fm") (match_operand:SF 2 "nonimmediate_operand" "fm,0")]))] - "TARGET_80387 + "TARGET_80387 && !TARGET_SSE_MATH && !COMMUTATIVE_ARITH_P (operands[3]) && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "* return output_387_binary_op (insn, operands);" @@ -14345,12 +14346,13 @@ ] (const_string "sseadd")))]) +;; This pattern is not fully shadowed by the pattern above. (define_insn "*fop_df_1_i387" [(set (match_operand:DF 0 "register_operand" "=f,f") (match_operator:DF 3 "binary_fp_operator" [(match_operand:DF 1 "nonimmediate_operand" "0,fm") (match_operand:DF 2 "nonimmediate_operand" "fm,0")]))] - "TARGET_80387 + "TARGET_80387 && !(TARGET_SSE2 && TARGET_SSE_MATH) && !COMMUTATIVE_ARITH_P (operands[3]) && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "* return output_387_binary_op (insn, operands);" -- 2.30.2