[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