This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/37823] Missed optimization - ffs() from strings.h
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Oct 2008 09:31:25 -0000
- Subject: [Bug target/37823] Missed optimization - ffs() from strings.h
- References: <bug-37823-10113@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from rguenth at gcc dot gnu dot org 2008-10-14 09:31 -------
Trunk produces:
foo:
pushl %ebp
xorl %eax, %eax
movl %esp, %ebp
bsfl 12(%ebp), %edx
sete %al
negl %eax
orl %eax, %edx
movl 8(%ebp), %eax
addl $1, %edx
popl %ebp
leal -1(%edx,%eax), %eax
ret
and
foo:
.LFB0:
.cfi_startproc
bsfl %esi, %eax
movl $-1, %edx
cmove %edx, %eax
addl %edi, %eax
ret
So the 64bit version is fine, the 32bit version is still funny.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |enhancement
Status|UNCONFIRMED |NEW
Component|c |target
Ever Confirmed|0 |1
GCC host triplet|x86_64-redhat-linux |
GCC target triplet|x86_64-redhat-linux |i?86-*-*
Keywords| |missed-optimization
Last reconfirmed|0000-00-00 00:00:00 |2008-10-14 09:31:25
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37823