[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ICE with vector code when -mno-sse2



>Submitter-Id:	net
>Originator:	Joel Yliluoma
>Organization:	
>Confidential:	no
>Synopsis:	ICE with vector code when -mno-sse2 on amd64
>Severity:	serious
>Priority:	low
>Category:	target
>Class:		ice-on-legal-code
>Release:	gcc-4.1 (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
>Environment:
System: Linux chii 2.6.20 #3 SMP Sun Feb 11 23:52:47 EET 2007 x86_64 GNU/Linux
Architecture: x86_64

	
host: x86_64-pc-linux-gnu
build: x86_64-pc-linux-gnu
target: x86_64-pc-linux-gnu
configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release x86_64-linux-gnu
>Description:
	Compilation of the attached code yields an ICE in certain cases.
>How-To-Repeat:
Compile this code:
	typedef double ss2 __attribute__((vector_size(2*sizeof(double))));
	ss2 b = {1,1};
	extern ss2 a2(ss2 a,ss2 b);
	void test2() { b = a2(b,b); }
With these commandline options:
	gcc-4.1 -mno-sse2 -S -o- test3.c
The output comes as follows:
		.file   "test3.c"
	.globl b
		.data
		.align 16
		.type   b, @object
		.size   b, 16
	b:
		.long   0
		.long   1072693248
		.long   0
		.long   1072693248
	test3.c: In function 'test2':
	test3.c:6: internal compiler error: in emit_move_insn, at expr.c:3162
	Please submit a full bug report,
	with preprocessed source if appropriate.
	(rest of output omitted for brevity)
It does not occur if "double" is changed to "float", "long double", "short", "int" or "char".
It does occur if "double", "long int" or "long long int" is used.
It does not occur if 2 is changed to 4.

Architecture:
CPU=AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
CPU features=fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow
pni lahf_lm cmp_legacy

GCC is:
Target: x86_64-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-mpfr --enable-checking=release
x86_64-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
>Fix:
	



Reply to: