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

--- Comment #5 from Georg-Johann Lay <gjl at gcc dot gnu.org> ---
It happens in postreload.cc::reload_cse_move2add() when


(insn 45 16 17 2 (set (reg/f:HI 30 r30 [60])
        (reg/v/f:HI 16 r16 [orig:51 self ] [51])) "fail1.c":29:9 101
{*movhi_split} (nil))
(insn 17 45 18 2 (parallel [
            (set (reg/f:HI 30 r30 [60])
                (plus:HI (reg/f:HI 30 r30 [60])
                    (const_int 66 [0x42])))
            (clobber (scratch:QI))
        ]) "fail1.c":29:9 175 {addhi3_clobber} (nil))

is transformed to:

(insn 17 16 18 2 (set (reg/f:HI 30 r30 [60])
        (plus:HI (reg/f:HI 30 r30 [60])
            (const_int 2 [0x2]))) "fail1.c":29:9 165 {*addhi3_split} (nil))

The wrong setting of "success" is in postreload.cc:2028 as of the following, so
the condition that leads to there is bogus.

https://gcc.gnu.org/git/?p=gcc.git;a=blame;f=gcc/postreload.cc;h=fb392651e1b6a60e12bf3d36bc302bf9be8bc608;hb=03c7c418baa01f0642817bc9b44192d134102aa9#l2028

Reply via email to