Commit 05f68097 by David Edelsohn Committed by David Edelsohn

rs6000.md (eqsi_power): New.

	* config/rs6000/rs6000.md (eqsi_power): New.
	(neg_eq0si): Add TARGET_POWER to final condition.
	(neg_eqsi): Same.

From-SVN: r105089
parent cb120852
2005-10-07 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (eqsi_power): New.
(neg_eq0si): Add TARGET_POWER to final condition.
(neg_eqsi): Same.
2005-10-06 Richard Henderson <rth@redhat.com> 2005-10-06 Richard Henderson <rth@redhat.com>
* config/rs6000/rs6000.c: Revert last change. * config/rs6000/rs6000.c: Revert last change.
......
...@@ -11229,6 +11229,21 @@ ...@@ -11229,6 +11229,21 @@
operands[5] = GEN_INT (exact_log2 (GET_MODE_BITSIZE (<MODE>mode))); operands[5] = GEN_INT (exact_log2 (GET_MODE_BITSIZE (<MODE>mode)));
}) })
(define_insn "*eqsi_power"
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r")
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
(match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I")))
(clobber (match_scratch:SI 3 "=r,&r,r,r,r"))]
"TARGET_POWER"
"@
xor %0,%1,%2\;{sfi|subfic} %3,%0,0\;{ae|adde} %0,%3,%0
{sfi|subfic} %3,%1,0\;{ae|adde} %0,%3,%1
{xoril|xori} %0,%1,%b2\;{sfi|subfic} %3,%0,0\;{ae|adde} %0,%3,%0
{xoriu|xoris} %0,%1,%u2\;{sfi|subfic} %3,%0,0\;{ae|adde} %0,%3,%0
{sfi|subfic} %0,%1,%2\;{sfi|subfic} %3,%0,0\;{ae|adde} %0,%3,%0"
[(set_attr "type" "three,two,three,three,three")
(set_attr "length" "12,8,12,12,12")])
;; We have insns of the form shown by the first define_insn below. If ;; We have insns of the form shown by the first define_insn below. If
;; there is something inside the comparison operation, we must split it. ;; there is something inside the comparison operation, we must split it.
(define_split (define_split
...@@ -11349,7 +11364,7 @@ ...@@ -11349,7 +11364,7 @@
[(set (match_operand:P 0 "gpc_reg_operand" "=r") [(set (match_operand:P 0 "gpc_reg_operand" "=r")
(neg:P (eq:P (match_operand:P 1 "gpc_reg_operand" "r") (neg:P (eq:P (match_operand:P 1 "gpc_reg_operand" "r")
(const_int 0))))] (const_int 0))))]
"optimize_size" "optimize_size || TARGET_POWER"
"{ai|addic} %0,%1,-1\;{sfe|subfe} %0,%0,%0" "{ai|addic} %0,%1,-1\;{sfe|subfe} %0,%0,%0"
[(set_attr "type" "two") [(set_attr "type" "two")
(set_attr "length" "8")]) (set_attr "length" "8")])
...@@ -11358,9 +11373,9 @@ ...@@ -11358,9 +11373,9 @@
[(set (match_operand:P 0 "gpc_reg_operand" "=r") [(set (match_operand:P 0 "gpc_reg_operand" "=r")
(neg:P (eq:P (match_operand:P 1 "gpc_reg_operand" "%r") (neg:P (eq:P (match_operand:P 1 "gpc_reg_operand" "%r")
(match_operand:P 2 "scc_eq_operand" "<scc_eq_op2>"))))] (match_operand:P 2 "scc_eq_operand" "<scc_eq_op2>"))))]
"optimize_size" "optimize_size || TARGET_POWER"
"#" "#"
"optimize_size" "optimize_size || TARGET_POWER"
[(set (match_dup 0) (neg:P (eq:P (match_dup 3) (const_int 0))))] [(set (match_dup 0) (neg:P (eq:P (match_dup 3) (const_int 0))))]
{ {
if (GET_CODE (operands[2]) != CONST_INT || INTVAL (operands[2]) != 0) if (GET_CODE (operands[2]) != CONST_INT || INTVAL (operands[2]) != 0)
......
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