[Bug middle-end/30798] mode_dependent_address_p not checked when simplifying subreg

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Aug 27 23:07:00 GMT 2014


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I have a similar issue with a GCC 4.7 based one with the aarch64 target
backported to it (and a few other patches installed too).

We start out with:
(insn 6074 7812 7824 701 (set (reg:DI 5635)
        (ashift:DI (reg:DI 5253)
            (subreg:QI (mem:HI (post_inc:DI (reg:DI 5418)) [0 MEM[base:
D.35344_2, offset: 0B]+0 S2 A16]) 0))) reload1.c:1280 526
{*aarch64_ashl_sisd_or_int_di3}
     (expr_list:REG_INC (reg:DI 5418)
        (nil)))

And reload comes along and changes that to:
(insn 12175 7812 6074 701 (set (reg:QI 7 x7)
        (mem:QI (post_inc:DI (reg:DI 3 x3 [5418])) [0 MEM[base: D.35344_2,
offset: 0B]+0 S1 A16])) reload1.c:1280 30 {*movqi_aarch64}
     (expr_list:REG_INC (reg:DI 3 x3 [5418])
        (nil)))

(insn 6074 12175 7824 701 (set (reg:DI 6 x6 [5635])
        (ashift:DI (reg:DI 2 x2 [5253])
            (reg:QI 7 x7))) reload1.c:1280 526 {*aarch64_ashl_sisd_or_int_di3}
     (nil))



More information about the Gcc-bugs mailing list