[Bug rtl-optimization/78085] extra sign extend if used to store in 32bit and return 64bit and the upper bits are known to be zeroed.

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 26 16:29:42 GMT 2022


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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
>From REE:
Trying to eliminate extension:
(insn 9 8 15 2 (set (reg:DI 0 ax [orig:88 _3 ] [88])
        (sign_extend:DI (reg:SI 0 ax [orig:84 _3 ] [84]))) "a.c":6:9 160
{*extendsidi2_rex64}
     (nil))
Tentatively merged extension with definition :
(insn 7 6 8 2 (parallel [
            (set (reg:DI 0 ax)
                (zero_extend:DI (and:SI (reg:SI 0 ax [86])
                        (const_int 3 [0x3]))))
            (clobber (reg:CC 17 flags))
        ]) "a.c":5:4 -1
     (nil))
deferring rescan insn with uid = 7.
All merges were successful.
Eliminated the extension.
deferring deletion of insn with uid = 9.
Elimination opportunities = 1 realized = 1


More information about the Gcc-bugs mailing list