https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84251
--- Comment #20 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm: we have: ``` (jump_insn 8 7 9 2 (set (pc) (if_then_else (ordered (reg:CCFP 17 flags) (const_int 0 [0])) (label_ref 12) (pc))) "/app/example.cpp":5:6 1055 {*jcc} (expr_list:REG_DEAD (reg:CCFP 17 flags) (int_list:REG_BR_PROB 1073741831 (nil))) -> 12) (note 9 8 10 3 [bb 3] NOTE_INSN_BASIC_BLOCK) (call_insn 10 9 12 3 (call (mem:QI (symbol_ref:DI ("abort") [flags 0x41] <function_decl 0x7f2aa863b500 __builtin_abort>) [0 __builtin_abort S1 A8]) (const_int 0 [0])) "/app/example.cpp":6:5 1062 {*call} (expr_list:REG_CALL_DECL (symbol_ref:DI ("abort") [flags 0x41] <function_decl 0x7f2aa863b500 __builtin_abort>) (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (expr_list:REG_NORETURN (const_int 0 [0]) (expr_list:REG_EH_REGION (const_int 0 [0]) (nil))))) (nil)) (code_label 12 10 13 4 2 (nil) [1 uses]) (note 13 12 15 4 [bb 4] NOTE_INSN_BASIC_BLOCK) (insn 15 13 16 4 (set (reg:QI 91) (ordered:QI (reg:CCFP 17 flags) (const_int 0 [0]))) "/app/example.cpp":7:12 1050 {*setcc_qi} (expr_list:REG_DEAD (reg:CCFP 17 flags) (nil))) ``` We know in insn 16 at this point (ordered:QI (reg:CCFP 17 flags) (const_int 0 [0])) is 1. Isn't there a pass which does that? Or is it because the differences in the modes (VOIDmode vs QImode) causing that not to happen?