Yip, picked that up after I sent it. Thanks.
2009/5/19 Jim Wilson :
> On Mon, 2009-05-18 at 19:58 +1200, Michael Hope wrote:
>> (set (match_operand:SI 3 "register_operand" "=1")
>> (not:SI (xor:SI (match_dup 1) (match_dup 2]
>
> not xor is aka xnor. You probably want this without the
On Mon, 2009-05-18 at 19:58 +1200, Michael Hope wrote:
> (set (match_operand:SI 3 "register_operand" "=1")
> (not:SI (xor:SI (match_dup 1) (match_dup 2]
not xor is aka xnor. You probably want this without the two "not"
operations.
Jim
Thanks, that worked. I ended up using:
(define_insn "cmpcc_xor"
[(set (match_operand:CC 0 "register_operand" "=C")
(compare:CC
(not:SI (xor:SI (match_operand:SI 1 "register_operand" "%r")
(match_operand:SI 2 "register_operand" "b")))
(const_int
Michael Hope wrote:
* Using a define_insn to mark it as both a destructive xor and
compare in parallel, such as:
When a compare is in a parallel, the compare must be the first
operation. You have it second. This kind of pattern should work. You
can find many examples of it in the sparc.md