When bootstrapping GCC trunk on Solaris 10 x86, sse3-movddup.c gives an ICE. However, this test shouldn't even be running since I don't think my CPU has sse3. dev-zero:{bretta}$ isainfo -v 64-bit amd64 applications sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc cx8 tsc fpu 32-bit i386 applications sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc cx8 tsc fpu Here's the output when compiling sse3-movddup.c dev-zero:{bretta}$ /u01/var/tmp/gcc_trunk_svn/gcc_20061201/gcc/xgcc -B/u01/var/tmp/gcc_trunk_svn/gcc_20061201/gcc/ /u01/var/tmp/gcc_trunk_svn/gcc/gcc/testsuite/gcc.target/i386/sse3-movddup.c -O2 -msse3 -fno-show-column -lm -o ./sse3-movddup.exe /u01/var/tmp/gcc_trunk_svn/gcc/gcc/testsuite/gcc.target/i386/sse3-movddup.c: In function 'main': /u01/var/tmp/gcc_trunk_svn/gcc/gcc/testsuite/gcc.target/i386/sse3-movddup.c:21: internal compiler error: Segmentation Fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions.
This testcase should be testing on your machine. GCC should not ICE on this testcase anyways. Also when it runs the if statement: /* Run SSE3 test only if host has SSE3 support. */ if ((cpu_facilities & bit_SSE3)) Should be false.
This also fails on x86_64: http://gcc.gnu.org/ml/gcc-testresults/2006-12/msg00083.html
(In reply to comment #2) > This also fails on x86_64: > http://gcc.gnu.org/ml/gcc-testresults/2006-12/msg00083.html Assembling functions: i386_cpuid_edx chk_pd {GC 5328k -> 2784k} i386_cpuid_ecx main Program received signal SIGSEGV, Segmentation fault. 0x0000000000972c05 in memory_operand (op=0xabababababababab, mode=VOIDmode) at ../../gcc-svn/trunk/gcc/recog.c:1356 /home/uros/gcc-svn/trunk/gcc/recog.c:1356:37911:beg:0x972c05 (gdb) bt #0 0x0000000000972c05 in memory_operand (op=0xabababababababab, mode=VOIDmode) at ../../gcc-svn/trunk/gcc/recog.c:1356 #1 0x000000000084154c in get_attr_memory (insn=0x2aaaadc16f50) at ../../gcc-svn/trunk/gcc/config/i386/i386.md:405 #2 0x00000000007c71b3 in insn_default_latency (insn=0x2aaaadc16f50) at ../../gcc-svn/trunk/gcc/config/i386/i386.md:205 #3 0x0000000000bb53b7 in insn_cost1 (insn=0x2aaaadc16f50, dep_type=REG_DEP_ANTI, link=0x2aaaadfc5100, used=0x2aaaaddf8ea0) at ../../gcc-svn/trunk/gcc/haifa-sched.c:647 #4 0x0000000000bb57b7 in priority (insn=0x2aaaadc16f50) at ../../gcc-svn/trunk/gcc/haifa-sched.c:764 #5 0x0000000000bb9699 in set_priorities (head=0x2aaaadc1e3c0, tail=0x2aaaaddf8ea0) at ../../gcc-svn/trunk/gcc/haifa-sched.c:2505 #6 0x0000000000c066ea in schedule_region (rgn=2) at ../../gcc-svn/trunk/gcc/sched-rgn.c:2705 #7 0x0000000000c07098 in schedule_insns () at ../../gcc-svn/trunk/gcc/sched-rgn.c:2937 >
Subject: Bug 30041 Author: uros Date: Sun Dec 3 19:40:06 2006 New Revision: 119468 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119468 Log: PR target/30041 * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and operands[1] in insn constraint. Correct type attribute to sselog1. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/sse.md
Fixed.
Subject: Bug 30041 Author: uros Date: Mon May 21 11:31:14 2007 New Revision: 124900 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124900 Log: PR target/31167 Backport from mainline. * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use x86_64_general_operand as operand[2] predicate. Remove "iF" from operand constraints and use "e" constraint instead. (*subti3_1, *subti3_1 splitter): Ditto. (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as operand[1] predicate. PR target/30041 Backport from mainline. * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and operands[1] in insn constraint. Correct type attribute to sselog1. testsuite/ChangeLog Backport from mainline. * gcc.target/i386/pr31167.c: New test. Added: branches/gcc-4_2-branch/gcc/testsuite/gcc.target/i386/pr31167.c - copied unchanged from r122945, trunk/gcc/testsuite/gcc.target/i386/pr31167.c Modified: branches/gcc-4_2-branch/gcc/ChangeLog branches/gcc-4_2-branch/gcc/config/i386/i386.md branches/gcc-4_2-branch/gcc/config/i386/sse.md branches/gcc-4_2-branch/gcc/testsuite/ChangeLog