[Bug target/18641] New: Another ICE caused by reload of a psuedo reg into f0 for a DImode expr
fjahanian at apple dot com
gcc-bugzilla@gcc.gnu.org
Wed Nov 24 01:16:00 GMT 2004
This is similar to PR/152866. In the following test case compiled with -O0
gcc-4.0 produces following patter in reload phase:
(insn 68 47 67 7 (set (reg:DI 32 f0)
(const_int 4294967295 [0xffffffff])) 354 {*movdi_internal32} (nil)
(nil))
This pattern cause ICE in gen_reg_rtx.
This is the usual problem. Reload decides to use a float register for a 'long long' expression, a
constant in this case because this is legit. for powerpc. But ppc patterns cannot handle it.
/* Test case */
void crc()
{
int toread;
long long nleft;
unsigned char buf[(128 * 1024)];
nleft = 0;
while (toread = (nleft < (2147483647 * 2U + 1U)) ? nleft: (2147483647 * 2U + 1U) )
;
}
--
Summary: Another ICE caused by reload of a psuedo reg into f0 for
a DImode expr
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: uweigand at de dot ibm dot com
ReportedBy: fjahanian at apple dot com
CC: dje at gcc dot gnu dot org,gcc-bugs at gcc dot gnu dot
org
GCC build triplet: powerpc-apple-darwin7.0.0
GCC host triplet: powerpc-apple-darwin7.0.0
GCC target triplet: powerpc-apple-darwin7.0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18641
More information about the Gcc-bugs
mailing list