https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82692
--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Segher Boessenkool from comment #5) > The combination 8 -> 9 (where the GE is introduced) does not call > SELECT_CC_MODE at all. The problematic conversion is 7 -> 9, *after* 8 -> 9 is performed. Please see this gdb session: (gdb) b ix86_cc_mode Breakpoint 1, ix86_cc_mode (code=GE, op0=0x7fffeff09ab0, op1=0x7fffeff09960) at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:21718 21718 { (gdb) bt #0 ix86_cc_mode (code=GE, op0=0x7fffeff09ab0, op1=0x7fffeff09960) at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:21718 #1 0x00000000012eb45d in simplify_set (x=x@entry=0x7fffeff09c60) at /home/uros/gcc-svn/trunk/gcc/combine.c:6788 #2 0x00000000012ecb48 in combine_simplify_rtx(rtx_def*, machine_mode, int, int) () at /home/uros/gcc-svn/trunk/gcc/combine.c:6293 #3 0x00000000012eee32 in subst(rtx_def*, rtx_def*, rtx_def*, int, int, int) () at /home/uros/gcc-svn/trunk/gcc/combine.c:5573 #4 0x00000000012f1e42 in try_combine(rtx_insn*, rtx_insn*, rtx_insn*, rtx_insn*, int*, rtx_insn*) () at /home/uros/gcc-svn/trunk/gcc/combine.c:3332 #5 0x00000000012f7d91 in combine_instructions (nregs=<optimized out>, f=<optimized out>) at /home/uros/gcc-svn/trunk/gcc/combine.c:1301 (gdb) f4 #4 0x00000000012f1e42 in try_combine(rtx_insn*, rtx_insn*, rtx_insn*, rtx_insn*, int*, rtx_insn*) () at /home/uros/gcc-svn/trunk/gcc/combine.c:3332 3332 newpat = subst (PATTERN (i3), i2dest, i2src, 0, 0, (gdb) p debug_rtx (i3) (insn 9 8 10 2 (set (reg:CCFPU 17 flags) (compare:CCFPU (reg:DF 95) (reg/v:DF 91 [ x ]))) "pr82692.c":9 2147483647 {NOOP_MOVE} (nil)) (gdb) b combine.c:3333 Breakpoint 2 at 0x12f1dfb: file /home/uros/gcc-svn/trunk/gcc/combine.c, line 3333. (gdb) c Continuing. Breakpoint 2, try_combine(rtx_insn*, rtx_insn*, rtx_insn*, rtx_insn*, int*, rtx_insn*) () at /home/uros/gcc-svn/trunk/gcc/combine.c:3334 3334 || ((i0_feeds_i2_n || (i0_feeds_i1_n && i1_feeds_i2_n)) (gdb) p debug_rtx (newpat) (set (reg:CCFP 17 flags) (compare:CCFP (reg:DF 95) (reg/v:DF 91 [ x ]))) And also changes mode of the conditional jump.