i386.md (cmp<mode>): Rename from cmpsf and cmpdf.

* config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
	Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
	(*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
	insn pattern using X87MODEF12 mode macro.

From-SVN: r123128
This commit is contained in:
Uros Bizjak 2007-03-22 15:59:10 +01:00
parent a584cdf253
commit 8766652c6e
2 changed files with 25 additions and 42 deletions

View file

@ -1,3 +1,10 @@
2007-03-22 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
(*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
insn pattern using X87MODEF12 mode macro.
2007-03-21 Seongbae Park <seongbae.park@gmail.com>
* regmove.c (regmove_optimize): Use reg_mentioned_p
@ -7,7 +14,7 @@
* c.opt: Fixup for Objective-C/C++.
2007-02-21 Steve Ellcey <sje@cup.hp.com>
2007-03-21 Steve Ellcey <sje@cup.hp.com>
* explow.c (convert_memory_address): Fold memory reference when
POINTERS_EXTEND_UNSIGNED < 0

View file

@ -839,22 +839,11 @@
DONE;
})
(define_expand "cmpdf"
(define_expand "cmp<mode>"
[(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>mode) && TARGET_SSE_MATH)"
{
ix86_compare_op0 = operands[0];
ix86_compare_op1 = operands[1];
@ -891,32 +880,6 @@
]
(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"
[(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"))]
UNSPEC_FNSTSW))]
"TARGET_80387"
"* return output_fp_compare (insn, operands, 0, 0);"
[(set_attr "type" "multi")
(set_attr "unit" "i387")
(set_attr "mode" "DF")])
(define_insn "*cmpfp_xf"
[(set (match_operand:HI 0 "register_operand" "=a")
(unspec:HI
@ -930,6 +893,19 @@
(set_attr "unit" "i387")
(set_attr "mode" "XF")])
(define_insn "*cmpfp_<mode>"
[(set (match_operand:HI 0 "register_operand" "=a")
(unspec:HI
[(compare:CCFP
(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" "<MODE>")])
(define_insn "*cmpfp_u"
[(set (match_operand:HI 0 "register_operand" "=a")
(unspec:HI