Bug 19584 - [4.0 Regression] ICE: insn does not satisfy its constraints
Summary: [4.0 Regression] ICE: insn does not satisfy its constraints
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.0.0
: P2 normal
Target Milestone: 4.0.0
Assignee: Richard Henderson
URL:
Keywords: ice-on-valid-code, ssemmx
Depends on:
Blocks:
 
Reported: 2005-01-23 09:27 UTC by Andreas Jaeger
Modified: 2005-01-25 18:51 UTC (History)
2 users (show)

See Also:
Host: x86_64-linux-gnu
Target: x86_64-linux-gnu
Build: x86_64-linux-gnu
Known to work:
Known to fail:
Last reconfirmed: 2005-01-24 01:32:13


Attachments
Reduced testcase (697 bytes, text/plain)
2005-01-23 09:28 UTC, Andreas Jaeger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Jaeger 2005-01-23 09:27:34 UTC
With current GCC CVS (4.0.0 20050122) I get the following ICE compiling glibc: 
 
/opt/gcc/4.0-devel/libexec/gcc/x86_64-suse-linux-gnu/4.0.0/cc1 -fpreprocessed 
s_fma2.i -quiet -dumpbase s_fma.c -mtune=k8-auxbase-strip /tmp/s_fma.o -g -O2 
-Wall -Winline -Wno-pointer-sign -Wstrict-prototypes -Wwrite-strings 
-Wno-uninitialized -std=gnu99 -version -o s_fma.s 
GNU C version 4.0.0 20050122 (experimental) (x86_64-suse-linux-gnu) 
        compiled by GNU C version 4.0.0 20050122 (experimental). 
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 
s_fma2.i: In function ?__fma?: 
s_fma2.i:123: error: insn does not satisfy its constraints: 
(insn 268 84 86 7 s_fma2.i:5 (set (reg/v:DI 21 xmm0 [orig:79 _bitsy ] [79]) 
        (const_int 2310346608841064448 [0x2010000000000000])) 81 
{*movdi_1_rex64} (nil) 
    (nil)) 
s_fma2.i:123: internal compiler error: in reload_cse_simplify_operands, at 
postreload.c:391 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Comment 1 Andreas Jaeger 2005-01-23 09:28:19 UTC
Created attachment 8042 [details]
Reduced testcase
Comment 2 Andrew Pinski 2005-01-23 16:15:16 UTC
Confirmed, fully reduced testcase:
double __fma(void)
{
  double t,t1;
  {union {double d; unsigned long long i;} _bitsy; _bitsy.i = 0x2010000000000000LL; t1 = _bitsy.d;};
  {union {double d; unsigned long long i;} _bitsy; _bitsy.i = 0x2010000000000000LL; t = _bitsy.d;};
  return t1*t;
}
Comment 3 GCC Commits 2005-01-25 18:44:27 UTC
Subject: Bug 19584

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rth@gcc.gnu.org	2005-01-25 18:44:05

Modified files:
	gcc            : ChangeLog 
	gcc/config/i386: i386.c i386.md 

Log message:
	PR target/19556
	PR target/19584
	* config/i386/i386.c (x86_inter_unit_moves): Zero.
	(ix86_preferred_reload_class): Rewrite fp-constant section, with
	80387 enabled, to return a proper subclass.  Return the subset that
	overlaps with GENERAL_REGS for PLUS.
	* config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7270&r2=2.7271
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&r1=1.789&r2=1.790
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcc&r1=1.612&r2=1.613

Comment 4 Richard Henderson 2005-01-25 18:51:18 UTC
http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01815.html