http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59968
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-01-28 Ever confirmed|0 |1 --- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> --- For int __attribute__((noinline)) foo1 (int x, int y) { x |= 1 << y; return x; } we generate movl %esi, %ecx movl $1, %eax sall %cl, %eax orl %edi, %eax ret I am expecting movl %edi, %eax bts %esi, %eax ret