This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/18641] New: Another ICE caused by reload of a psuedo reg into f0 for a DImode expr
- From: "fjahanian at apple dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Nov 2004 01:16:37 -0000
- Subject: [Bug target/18641] New: Another ICE caused by reload of a psuedo reg into f0 for a DImode expr
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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