https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91154
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |uros at gcc dot gnu.org --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- One x86 option is to peephole (insn 635 632 637 17 (set (reg:CCGC 17 flags) (compare:CCGC (reg:SI 0 ax [1735]) (const_int -987654321 [0xffffffffc521974f]))) 11 {*cmpsi_1} (nil)) (insn 637 635 638 17 (set (reg:SI 0 ax [1737]) (if_then_else:SI (ge (reg:CCGC 17 flags) (const_int 0 [0])) (reg:SI 0 ax [1735]) (reg:SI 3 bx [2395]))) 947 {*movsicc_noc} (expr_list:REG_DEAD (reg:CCGC 17 flags) (expr_list:REG_EQUAL (if_then_else:SI (ge (reg:CCGC 17 flags) (const_int 0 [0])) (reg:SI 0 ax [1735]) (const_int -987654321 [0xffffffffc521974f])) (nil)))) into a compare-and-jump sequence. Benchmarking on a more recent microarchitecture is probably also in order.