http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59968
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
For
int
__attribute__((noinline))
foo1 (int x, int y)
{
x &= (1 << y);
return x != 0;
}
we generate
movl %esi, %ecx
movl $1, %eax
sall %cl, %eax
testl %edi, %eax
setne %al
movzbl %al, %eax
ret
I am expecting:
bt %esi, %edi
setc %al
movzbl %al, %eax
ret
