[Bug middle-end/40952] version 150336 broke bootstrap on ia64-hp-hpux11.23

sje at cup dot hp dot com gcc-bugzilla@gcc.gnu.org
Tue Aug 4 17:47:00 GMT 2009



------- Comment #5 from sje at cup dot hp dot com  2009-08-04 17:46 -------
Created an attachment (id=18301)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18301&action=view)
Better test case

Here is a better test case that actually shows bad code being generated.  In
r150335, we extend r32 with 'addp4 r32 = 0, r32' and that is fine.  In the new
code we combine the addp4 with a move and generate 'addp4 r8 = r32, r0'  This
is wrong, if we generated 'addp4 - r0, r32' then we would be OK.  addp4 is not
a symetrical operation and the first argument should be an offset (often zero)
and the second argument should be a 32 bit pointer that we want to extend to 64
bits before dereferencing.  addp4 uses the REG_POINTER attribute to distinguish
between offsets and pointers.


-- 


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



More information about the Gcc-bugs mailing list