Bug 30041 - FAIL: gcc.target/i386/sse3-movddup.c (internal compiler error)
Summary: FAIL: gcc.target/i386/sse3-movddup.c (internal compiler error)
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.3.0
: P3 normal
Target Milestone: 4.3.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2006-12-01 15:39 UTC by Brett Albertson
Modified: 2006-12-03 21:08 UTC (History)
2 users (show)

See Also:
Host:
Target: i?86-* x86_64-*-*
Build:
Known to work:
Known to fail:
Last reconfirmed: 2006-12-02 20:22:06


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Brett Albertson 2006-12-01 15:39:55 UTC
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.
Comment 1 Andrew Pinski 2006-12-02 07:27:32 UTC
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.
Comment 2 Andrew Pinski 2006-12-02 18:17:12 UTC
This also fails on x86_64:
http://gcc.gnu.org/ml/gcc-testresults/2006-12/msg00083.html
Comment 3 Uroš Bizjak 2006-12-02 20:22:06 UTC
(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
> 
Comment 4 uros 2006-12-03 19:40:17 UTC
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

Comment 5 Andrew Pinski 2006-12-03 21:08:14 UTC
Fixed.
Comment 6 uros 2007-05-21 12:31:45 UTC
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