Commit aebfea10 by Jan Hubicka Committed by Jan Hubicka

* i386.md (fop_*_comm_*): allow nonimmediate in the first operand.

From-SVN: r49725
parent 8e4949e7
Wed Feb 13 10:35:56 CET 2002 Jan Hubicka <jh@suse.cz>
* i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
2002-02-12 Aldy Hernandez <aldyh@redhat.com> 2002-02-12 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.md: Use predicate altivec_register_operand * config/rs6000/rs6000.md: Use predicate altivec_register_operand
......
...@@ -13858,10 +13858,11 @@ ...@@ -13858,10 +13858,11 @@
(define_insn "*fop_sf_comm_nosse" (define_insn "*fop_sf_comm_nosse"
[(set (match_operand:SF 0 "register_operand" "=f") [(set (match_operand:SF 0 "register_operand" "=f")
(match_operator:SF 3 "binary_fp_operator" (match_operator:SF 3 "binary_fp_operator"
[(match_operand:SF 1 "register_operand" "%0") [(match_operand:SF 1 "nonimmediate_operand" "%0")
(match_operand:SF 2 "nonimmediate_operand" "fm")]))] (match_operand:SF 2 "nonimmediate_operand" "fm")]))]
"TARGET_80387 && !TARGET_SSE_MATH "TARGET_80387 && !TARGET_SSE_MATH
&& GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'" && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
&& (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
[(set (attr "type") [(set (attr "type")
(if_then_else (match_operand:SF 3 "mult_operator" "") (if_then_else (match_operand:SF 3 "mult_operator" "")
...@@ -13872,10 +13873,11 @@ ...@@ -13872,10 +13873,11 @@
(define_insn "*fop_sf_comm" (define_insn "*fop_sf_comm"
[(set (match_operand:SF 0 "register_operand" "=f#x,x#f") [(set (match_operand:SF 0 "register_operand" "=f#x,x#f")
(match_operator:SF 3 "binary_fp_operator" (match_operator:SF 3 "binary_fp_operator"
[(match_operand:SF 1 "register_operand" "%0,0") [(match_operand:SF 1 "nonimmediate_operand" "%0,0")
(match_operand:SF 2 "nonimmediate_operand" "fm#x,xm#f")]))] (match_operand:SF 2 "nonimmediate_operand" "fm#x,xm#f")]))]
"TARGET_80387 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387 "TARGET_80387 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387
&& GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'" && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
&& (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
[(set (attr "type") [(set (attr "type")
(if_then_else (eq_attr "alternative" "1") (if_then_else (eq_attr "alternative" "1")
...@@ -13888,9 +13890,10 @@ ...@@ -13888,9 +13890,10 @@
(define_insn "*fop_sf_comm_sse" (define_insn "*fop_sf_comm_sse"
[(set (match_operand:SF 0 "register_operand" "=x") [(set (match_operand:SF 0 "register_operand" "=x")
(match_operator:SF 3 "binary_fp_operator" (match_operator:SF 3 "binary_fp_operator"
[(match_operand:SF 1 "register_operand" "%0") [(match_operand:SF 1 "nonimmediate_operand" "%0")
(match_operand:SF 2 "nonimmediate_operand" "xm")]))] (match_operand:SF 2 "nonimmediate_operand" "xm")]))]
"TARGET_SSE_MATH && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'" "TARGET_SSE_MATH && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
&& (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
[(set_attr "type" "sse") [(set_attr "type" "sse")
(set_attr "mode" "SF")]) (set_attr "mode" "SF")])
...@@ -13898,10 +13901,11 @@ ...@@ -13898,10 +13901,11 @@
(define_insn "*fop_df_comm_nosse" (define_insn "*fop_df_comm_nosse"
[(set (match_operand:DF 0 "register_operand" "=f") [(set (match_operand:DF 0 "register_operand" "=f")
(match_operator:DF 3 "binary_fp_operator" (match_operator:DF 3 "binary_fp_operator"
[(match_operand:DF 1 "register_operand" "%0") [(match_operand:DF 1 "nonimmediate_operand" "%0")
(match_operand:DF 2 "nonimmediate_operand" "fm")]))] (match_operand:DF 2 "nonimmediate_operand" "fm")]))]
"TARGET_80387 && (!TARGET_SSE2 || !TARGET_SSE_MATH) "TARGET_80387 && (!TARGET_SSE2 || !TARGET_SSE_MATH)
&& GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'" && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
&& (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
[(set (attr "type") [(set (attr "type")
(if_then_else (match_operand:SF 3 "mult_operator" "") (if_then_else (match_operand:SF 3 "mult_operator" "")
...@@ -13912,10 +13916,11 @@ ...@@ -13912,10 +13916,11 @@
(define_insn "*fop_df_comm" (define_insn "*fop_df_comm"
[(set (match_operand:DF 0 "register_operand" "=f#Y,Y#f") [(set (match_operand:DF 0 "register_operand" "=f#Y,Y#f")
(match_operator:DF 3 "binary_fp_operator" (match_operator:DF 3 "binary_fp_operator"
[(match_operand:DF 1 "register_operand" "%0,0") [(match_operand:DF 1 "nonimmediate_operand" "%0,0")
(match_operand:DF 2 "nonimmediate_operand" "fm#Y,Ym#f")]))] (match_operand:DF 2 "nonimmediate_operand" "fm#Y,Ym#f")]))]
"TARGET_80387 && TARGET_SSE_MATH && TARGET_SSE2 && TARGET_MIX_SSE_I387 "TARGET_80387 && TARGET_SSE_MATH && TARGET_SSE2 && TARGET_MIX_SSE_I387
&& GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'" && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
&& (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
[(set (attr "type") [(set (attr "type")
(if_then_else (eq_attr "alternative" "1") (if_then_else (eq_attr "alternative" "1")
...@@ -13928,10 +13933,11 @@ ...@@ -13928,10 +13933,11 @@
(define_insn "*fop_df_comm_sse" (define_insn "*fop_df_comm_sse"
[(set (match_operand:DF 0 "register_operand" "=Y") [(set (match_operand:DF 0 "register_operand" "=Y")
(match_operator:DF 3 "binary_fp_operator" (match_operator:DF 3 "binary_fp_operator"
[(match_operand:DF 1 "register_operand" "%0") [(match_operand:DF 1 "nonimmediate_operand" "%0")
(match_operand:DF 2 "nonimmediate_operand" "Ym")]))] (match_operand:DF 2 "nonimmediate_operand" "Ym")]))]
"TARGET_SSE2 && TARGET_SSE_MATH "TARGET_SSE2 && TARGET_SSE_MATH
&& GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'" && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
&& (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
[(set_attr "type" "sse") [(set_attr "type" "sse")
(set_attr "mode" "DF")]) (set_attr "mode" "DF")])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment