Commit 5584677e by Jim Wilson

Correct DEFINE_SPLITs added Jul 27.

Correct DEFINE_SPLITs added Jul 27.  They would
overwrite the input register if it was the same as the result reg.

From-SVN: r1776
parent a291e551
...@@ -1996,15 +1996,16 @@ ...@@ -1996,15 +1996,16 @@
(define_split (define_split
[(set (match_operand:SI 0 "register_operand" "") [(set (match_operand:SI 0 "register_operand" "")
(and:SI (match_operand:SI 1 "register_operand" "") (and:SI (match_operand:SI 1 "register_operand" "")
(match_operand:SI 2 "" "")))] (match_operand:SI 2 "" "")))
(clobber (match_operand:SI 3 "register_operand" ""))]
"GET_CODE (operands[2]) == CONST_INT "GET_CODE (operands[2]) == CONST_INT
&& !SMALL_INT (operands[2]) && !SMALL_INT (operands[2])
&& (INTVAL (operands[2]) & 0x3ff) == 0x3ff" && (INTVAL (operands[2]) & 0x3ff) == 0x3ff"
[(set (match_dup 0) (match_dup 3)) [(set (match_dup 3) (match_dup 4))
(set (match_dup 0) (and:SI (not:SI (match_dup 0)) (match_dup 1)))] (set (match_dup 0) (and:SI (not:SI (match_dup 3)) (match_dup 1)))]
" "
{ {
operands[3] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2])); operands[4] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2]));
}") }")
(define_insn "" (define_insn ""
...@@ -2070,15 +2071,16 @@ ...@@ -2070,15 +2071,16 @@
(define_split (define_split
[(set (match_operand:SI 0 "register_operand" "") [(set (match_operand:SI 0 "register_operand" "")
(ior:SI (match_operand:SI 1 "register_operand" "") (ior:SI (match_operand:SI 1 "register_operand" "")
(match_operand:SI 2 "" "")))] (match_operand:SI 2 "" "")))
(clobber (match_operand:SI 3 "register_operand" ""))]
"GET_CODE (operands[2]) == CONST_INT "GET_CODE (operands[2]) == CONST_INT
&& !SMALL_INT (operands[2]) && !SMALL_INT (operands[2])
&& (INTVAL (operands[2]) & 0x3ff) == 0x3ff" && (INTVAL (operands[2]) & 0x3ff) == 0x3ff"
[(set (match_dup 0) (match_dup 3)) [(set (match_dup 3) (match_dup 4))
(set (match_dup 0) (ior:SI (not:SI (match_dup 0)) (match_dup 1)))] (set (match_dup 0) (ior:SI (not:SI (match_dup 3)) (match_dup 1)))]
" "
{ {
operands[3] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2])); operands[4] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2]));
}") }")
(define_insn "" (define_insn ""
...@@ -2144,29 +2146,31 @@ ...@@ -2144,29 +2146,31 @@
(define_split (define_split
[(set (match_operand:SI 0 "register_operand" "") [(set (match_operand:SI 0 "register_operand" "")
(xor:SI (match_operand:SI 1 "register_operand" "") (xor:SI (match_operand:SI 1 "register_operand" "")
(match_operand:SI 2 "" "")))] (match_operand:SI 2 "" "")))
(clobber (match_operand:SI 3 "register_operand" ""))]
"GET_CODE (operands[2]) == CONST_INT "GET_CODE (operands[2]) == CONST_INT
&& !SMALL_INT (operands[2]) && !SMALL_INT (operands[2])
&& (INTVAL (operands[2]) & 0x3ff) == 0x3ff" && (INTVAL (operands[2]) & 0x3ff) == 0x3ff"
[(set (match_dup 0) (match_dup 3)) [(set (match_dup 3) (match_dup 4))
(set (match_dup 0) (not:SI (xor:SI (match_dup 0) (match_dup 1))))] (set (match_dup 0) (not:SI (xor:SI (match_dup 3) (match_dup 1))))]
" "
{ {
operands[3] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2])); operands[4] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2]));
}") }")
(define_split (define_split
[(set (match_operand:SI 0 "register_operand" "") [(set (match_operand:SI 0 "register_operand" "")
(not:SI (xor:SI (match_operand:SI 1 "register_operand" "") (not:SI (xor:SI (match_operand:SI 1 "register_operand" "")
(match_operand:SI 2 "" ""))))] (match_operand:SI 2 "" ""))))
(clobber (match_operand:SI 3 "register_operand" ""))]
"GET_CODE (operands[2]) == CONST_INT "GET_CODE (operands[2]) == CONST_INT
&& !SMALL_INT (operands[2]) && !SMALL_INT (operands[2])
&& (INTVAL (operands[2]) & 0x3ff) == 0x3ff" && (INTVAL (operands[2]) & 0x3ff) == 0x3ff"
[(set (match_dup 0) (match_dup 3)) [(set (match_dup 3) (match_dup 4))
(set (match_dup 0) (xor:SI (match_dup 0) (match_dup 1)))] (set (match_dup 0) (xor:SI (match_dup 3) (match_dup 1)))]
" "
{ {
operands[3] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2])); operands[4] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2]));
}") }")
;; xnor patterns. Note that (a ^ ~b) == (~a ^ b) == ~(a ^ b). ;; xnor patterns. Note that (a ^ ~b) == (~a ^ b) == ~(a ^ b).
......
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