------- Comment #3 from ubizjak at gmail dot com  2008-10-18 18:18 -------
(In reply to comment #2)

> > So the 64bit version is fine, the 32bit version is still funny.
> Default 32bit target doesn't have cmov insn.
> -O3 -m32 -msse produces expected asm:

This is further optimized by the patch at [1], so mainline now generates:

foo:
        bsfl    8(%esp), %eax
        movl    $-1, %edx
        cmove   %edx, %eax
        addl    4(%esp), %eax
        ret

(using -fomit-frame-pointer, of course)

[1] http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00777.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37823

Reply via email to