https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107190

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|rtl-optimization            |middle-end

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I think it is the expansion of the add with overflow causing things to be
worse.
(insn 16 15 17 (set (reg:DI 102 [ _17+8 ])
        (const_int 0 [0])) -1
     (nil))

(insn 17 16 18 (parallel [
            (set (reg:CC_C 66 cc)
                (compare:CC_C (plus:DI (reg:DI 109 [ m ])
                        (reg:DI 111 [ m1 ]))
                    (reg:DI 109 [ m ])))
            (set (reg:DI 112)
                (plus:DI (reg:DI 109 [ m ])
                    (reg:DI 111 [ m1 ])))
        ]) -1
     (nil))

(jump_insn 18 17 19 (set (pc)
        (if_then_else (ltu (reg:CC_C 66 cc)
                (const_int 0 [0]))
            (label_ref 21)
            (pc))) -1
     (int_list:REG_BR_PROB 536868 (nil)))

(jump_insn 19 18 20 (set (pc)
        (label_ref 23)) -1
     (nil))

(barrier 20 19 21)

(code_label 21 20 22 3 (nil) [0 uses])

(insn 22 21 23 (set (reg:DI 102 [ _17+8 ])
        (const_int 1 [0x1])) -1
     (nil))

(code_label 23 22 24 2 (nil) [0 uses])


I don't see why we need to expand to a jump here rather than a cset?
I think there is another bug about this already too.

Reply via email to