int main(char **argv, int argc)
__asm__("movl $0x10000000,%%eax; shl $3,%%eax; jno x; movl $1,%0; jmp end; x: movl $2,%0; end:"
printf("The result is %d\n",result);
The SHL instruction is not setting the overflow flag on the Core Duo.
Update: Andy Hefner in #lisp says "overflow flag is undefined if the shift count is not equal to 1". So its not a bug after all.