Re: Question about compare rtl

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Aurelien Buhrig <aurelien.buhrig.gcc@xxxxxxxxx> writes:

> What I mean is I do not have any define_insn that matches a cbranch, but
> the cbranch named pattern is expanded during expand pass using a
> define_expand into:
> (set (reg:CC CC_REGNO) (compare:CC op0 op1))
> (set (pc) (if_then_else (match_operator 1 "xxx"
>   [(reg:CC CC_REGNO)(const_int 0)]) (label_ref ()) (pc)))
>
> Then the first insn can be combined with such a sub pattern:
> [(set (reg:CC CC_REGNO) (compare:CC op1 op2))
>  (set op0 (minus (match_dup 1) (match_dup 2))]
>
> And my question was about the correctness of the previous pattern
> compared with the following when an overflow occurs (and the comparison
> operator is lt).
> [(set (reg:CC CC_REGNO) (compare:CC (minus (op1 op2)) (const_int 0)))
>  (set op0 (minus (match_dup 1) (match_dup 2))]
>
> You helped me (thanks!) come to the conclusion that both are valid, and
> that the N xor V test is enough for the two, right?

Sounds right.

Ian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux