[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