is subreg with subreg_byte outside source valid?

Jan Hubicka jh@suse.cz
Fri May 18 14:09:00 GMT 2001


Hi
I am just investigating the second failure in powerpc testsuite.
The problem is caused by combine converting:
(set (reg:QI 102)
    (subreg:QI (ior:SI (reg:SI 87)
            (subreg:SI (reg:HI 86) 0)) 3))
to:
(set (reg:QI 102)
    (subreg:QI (reg:HI 86) 3))
The subreg_byte is 3 and points outside.  Is this valid? (I doubt so,
since if we place there memory destination later, we run out of the
value).

If it is not valid, can I optimize it somehow (for instance by replacing
it by const0)?, or do I need to prohibit such converison entriely, as
combine may expect some magic valud at that place?

Thanks,
Honza



More information about the Gcc mailing list