User account creation filtered due to spam.

Bug 19584

Summary: [4.0 Regression] ICE: insn does not satisfy its constraints
Product: gcc Reporter: Andreas Jaeger <aj>
Component: targetAssignee: Richard Henderson <rth>
Severity: normal CC: gcc-bugs, rth
Priority: P2 Keywords: ice-on-valid-code, ssemmx
Version: 4.0.0   
Target Milestone: 4.0.0   
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

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) 
s_fma2.i:123: internal compiler error: in reload_cse_simplify_operands, at 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <URL:> 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 CVS Commits 2005-01-25 18:44:27 UTC
Subject: Bug 19584

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	2005-01-25 18:44:05

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

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/ (movsi_1, movdi_2): Set type to "mmx" for pxor.


Comment 4 Richard Henderson 2005-01-25 18:51:18 UTC