http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58675

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-02-10
                 CC|                            |amodra at gmail dot com
     Ever confirmed|0                           |1

--- Comment #3 from Alan Modra <amodra at gmail dot com> ---
I reckon this is overly restrictive checking in rs6000_secondary_reload_inner.

rtl during reload is a little messy.  I'll bet that
 (plus:DI (plus:DI (reg/f:DI 1 1)
                   (const_int 65536 [0x10000]))
          (const_int -30176 [0xffffffffffff8a20]))
has a reload pushed for the inner plus.

ie. what you really have here is
 (plus:DI (reg:DI some_gpr)
          (const_int -30176 [0xffffffffffff8a20]))
which is perfectly fine.

(No, I haven't looked at this testcase under gdb to confirm this is exactly
what is going on, but I've looked at reload enough in the past to risk an
opinion here.)

Reply via email to