From 8766652c6e5781bf288ebbacf678fce26204d519 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 22 Mar 2007 15:59:10 +0100 Subject: [PATCH] i386.md (cmp): Rename from cmpsf and cmpdf. * config/i386/i386.md (cmp): Rename from cmpsf and cmpdf. Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P. (*cmpfp_): Rename from *cmpfp_sf and *cmpfp_df. Macroize insn pattern using X87MODEF12 mode macro. From-SVN: r123128 --- gcc/ChangeLog | 9 +++++++- gcc/config/i386/i386.md | 48 +++++++++++------------------------------ 2 files changed, 20 insertions(+), 37 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 84cd54419c9..f88b0ed5dc2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2007-03-22 Uros Bizjak + + * config/i386/i386.md (cmp): Rename from cmpsf and cmpdf. + Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P. + (*cmpfp_): Rename from *cmpfp_sf and *cmpfp_df. Macroize + insn pattern using X87MODEF12 mode macro. + 2007-03-21 Seongbae Park * regmove.c (regmove_optimize): Use reg_mentioned_p @@ -7,7 +14,7 @@ * c.opt: Fixup for Objective-C/C++. -2007-02-21 Steve Ellcey +2007-03-21 Steve Ellcey * explow.c (convert_memory_address): Fold memory reference when POINTERS_EXTEND_UNSIGNED < 0 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index df1bacfc41b..fddd1c2d258 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -839,22 +839,11 @@ DONE; }) -(define_expand "cmpdf" +(define_expand "cmp" [(set (reg:CC FLAGS_REG) - (compare:CC (match_operand:DF 0 "cmp_fp_expander_operand" "") - (match_operand:DF 1 "cmp_fp_expander_operand" "")))] - "TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)" -{ - ix86_compare_op0 = operands[0]; - ix86_compare_op1 = operands[1]; - DONE; -}) - -(define_expand "cmpsf" - [(set (reg:CC FLAGS_REG) - (compare:CC (match_operand:SF 0 "cmp_fp_expander_operand" "") - (match_operand:SF 1 "cmp_fp_expander_operand" "")))] - "TARGET_80387 || TARGET_SSE_MATH" + (compare:CC (match_operand:SSEMODEF 0 "cmp_fp_expander_operand" "") + (match_operand:SSEMODEF 1 "cmp_fp_expander_operand" "")))] + "TARGET_80387 || (SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH)" { ix86_compare_op0 = operands[0]; ix86_compare_op1 = operands[1]; @@ -891,44 +880,31 @@ ] (const_string "XF")))]) -(define_insn "*cmpfp_sf" - [(set (match_operand:HI 0 "register_operand" "=a") - (unspec:HI - [(compare:CCFP - (match_operand:SF 1 "register_operand" "f") - (match_operand:SF 2 "nonimmediate_operand" "fm"))] - UNSPEC_FNSTSW))] - "TARGET_80387" - "* return output_fp_compare (insn, operands, 0, 0);" - [(set_attr "type" "multi") - (set_attr "unit" "i387") - (set_attr "mode" "SF")]) - -(define_insn "*cmpfp_df" +(define_insn "*cmpfp_xf" [(set (match_operand:HI 0 "register_operand" "=a") (unspec:HI [(compare:CCFP - (match_operand:DF 1 "register_operand" "f") - (match_operand:DF 2 "nonimmediate_operand" "fm"))] + (match_operand:XF 1 "register_operand" "f") + (match_operand:XF 2 "register_operand" "f"))] UNSPEC_FNSTSW))] "TARGET_80387" "* return output_fp_compare (insn, operands, 0, 0);" [(set_attr "type" "multi") (set_attr "unit" "i387") - (set_attr "mode" "DF")]) + (set_attr "mode" "XF")]) -(define_insn "*cmpfp_xf" +(define_insn "*cmpfp_" [(set (match_operand:HI 0 "register_operand" "=a") (unspec:HI [(compare:CCFP - (match_operand:XF 1 "register_operand" "f") - (match_operand:XF 2 "register_operand" "f"))] + (match_operand:X87MODEF12 1 "register_operand" "f") + (match_operand:X87MODEF12 2 "nonimmediate_operand" "fm"))] UNSPEC_FNSTSW))] "TARGET_80387" "* return output_fp_compare (insn, operands, 0, 0);" [(set_attr "type" "multi") (set_attr "unit" "i387") - (set_attr "mode" "XF")]) + (set_attr "mode" "")]) (define_insn "*cmpfp_u" [(set (match_operand:HI 0 "register_operand" "=a") -- 2.30.2