[Bug target/106277] missed-optimization: redundant movzx

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jul 13 15:49:52 GMT 2022


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-07-13
     Ever confirmed|0                           |1

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Because the RTL does not describe the load is zero-extended to SI:
(insn 9 8 10 2 (set (reg:QI 91 [ *b_6(D) ])
        (mem:QI (reg:DI 93) [0 *b_6(D)+0 S1 A8])) "/app/example.cpp":4:31 85
{*movqi_internal}
     (expr_list:REG_DEAD (reg:DI 93)
        (nil)))
(insn 10 9 11 2 (parallel [
            (set (reg:QI 89)
                (plus:QI (mem:QI (reg:DI 92) [0 *a_5(D)+0 S1 A8])
                    (reg:QI 91 [ *b_6(D) ])))
            (clobber (reg:CC 17 flags))
        ]) "/app/example.cpp":4:31 235 {*addqi_1}
     (expr_list:REG_DEAD (reg:DI 92)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (expr_list:REG_DEAD (reg:QI 91 [ *b_6(D) ])
                (nil)))))
(insn 11 10 16 2 (set (reg:SI 88)
        (zero_extend:SI (reg:QI 89))) "/app/example.cpp":4:35 152
{*zero_extendqisi2}
     (expr_list:REG_DEAD (reg:QI 89)
        (nil)))

That is why.


More information about the Gcc-bugs mailing list