Compile the attached code with -O3. It produces an redundent cmpl following a subl:
subl 28(%ebp), %eax cmpl $0, %eax je L12 jg L10 Looks like it's missing a insn pattern so combine would combine subl + cmpl. See http://gcc.gnu.org/ml/gcc/2005-10/msg00347.html -- Summary: Redudant compare to zero not eliminated Product: gcc Version: 4.0.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: evancheng at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24418