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.

Reply via email to