http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46088
--- Comment #4 from Uros Bizjak <ubizjak at gmail dot com> 2010-11-04 16:32:57 UTC --- The insn that was matched looks like: (gdb) up #1 0x0000000000b9da94 in recog_7 (x0=0x7ffff1f329d8, insn=0x7ffff1f296c0, pnum_clobbers=0x7fffffffdc9c) at ../../gcc-svn/trunk/gcc/config/i386/i386.md:10089 10089 && ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)" (gdb) p debug_rtx (insn) (insn 7 6 8 2 (set (reg:CCZ 17 flags) (compare:CCZ (lshiftrt:SI (reg/v:SI 60 [ i ]) (const_int 3 [0x3])) (const_int 0 [0]))) pr46088.c:5 2 {*cmpsi_ccno_1} (nil)) $1 = void So, clobber of the scratch reg is missing, but the insn is recognized as *lshrsi3_cconly anyway.