diff options
author | Uros Bizjak <uros@kss-loka.si> | 2005-01-04 11:40:52 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2005-01-04 11:40:52 +0100 |
commit | 9e4ae64b32ea22fb02baaada60a7fa41b156cf22 (patch) | |
tree | 34b2da3073a31a6cf036ced68d0c6e9cff9ff829 | |
parent | c756af790178b0bbed82dd277e242375bcaf6db9 (diff) | |
download | gcc-9e4ae64b32ea22fb02baaada60a7fa41b156cf22.zip gcc-9e4ae64b32ea22fb02baaada60a7fa41b156cf22.tar.gz gcc-9e4ae64b32ea22fb02baaada60a7fa41b156cf22.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 19e9aed..54746d0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-01-04 Uros Bizjak <uros@kss-loka.si> + + 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 <rth@redhat.com> * 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 add15a8..eb2eee8 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);" |