https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116896

--- Comment #18 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Uroš Bizjak from comment #17)
> e.g.:
> 
> float case:
>         xorl    %eax,%eax
>         comiss  %xmm1, %xmm0
>         jp      .L2
>         seta    %al
>         sbbl    $0, %eax
>         ret
> .L2:
>         movl    $2, %eax
>         ret
> 
> This is *really* good sequence!

And if we don't want to burden non-jp path (but IIRC, XORLs are "free"):

float case:
        comiss  %xmm1, %xmm0
        jp      .L2
        mov     $0, %eax
        seta    %al
        sbbl    $0, %eax
        ret
.L2:
        movl    $2, %eax
        ret

Reply via email to