Bug 19427 - [4.0 Regression] gcc.c-torture/execute/simd-1.c compilation fails for i686 with -msse
Summary: [4.0 Regression] gcc.c-torture/execute/simd-1.c compilation fails for i686 wi...
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-13 15:16 UTC by Uroš Bizjak
Modified: 2005-01-20 06:37 UTC (History)
1 user (show)

See Also:
Host:
Target: i686-*, x86_64-*
Build:
Known to work:
Known to fail:
Last reconfirmed: 2005-01-20 01:03:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Uroš Bizjak 2005-01-13 15:16:58 UTC
This testsuite failure can be reproduced for both x86_64 and i686 with -msse2:

FAIL: gcc.c-torture/execute/simd-1.c compilation,  -O0 
UNRESOLVED: gcc.c-torture/execute/simd-1.c execution,  -O0 
FAIL: gcc.c-torture/execute/simd-1.c compilation,  -O1 
UNRESOLVED: gcc.c-torture/execute/simd-1.c execution,  -O1 
FAIL: gcc.c-torture/execute/simd-1.c compilation,  -O2 
UNRESOLVED: gcc.c-torture/execute/simd-1.c execution,  -O2 
FAIL: gcc.c-torture/execute/simd-1.c compilation,  -O3 -fomit-frame-pointer 
UNRESOLVED: gcc.c-torture/execute/simd-1.c execution,  -O3 -fomit-frame-pointer 
FAIL: gcc.c-torture/execute/simd-1.c compilation,  -O3 -g 
UNRESOLVED: gcc.c-torture/execute/simd-1.c execution,  -O3 -g 
FAIL: gcc.c-torture/execute/simd-1.c compilation,  -Os 
UNRESOLVED: gcc.c-torture/execute/simd-1.c execution,  -Os 

simd-1.c:74: error: unrecognizable insn:
(insn 47 46 48 0 (set (reg:SI 78 [ D.1529 ])
        (vec_select:SI (reg:V4SI 154)
            (parallel [
                    (const_int 1 [0x1])
                ]))) -1 (nil)
    (expr_list:REG_DEAD (reg:V4SI 154)
        (nil)))
simd-1.c:74: internal compiler error: in extract_insn, at recog.c:2020

However, on i686 with -msse, the error is different:

simd-1.c:74: error: unrecognizable insn:
(insn 24 23 25 0 (set (reg:V4SF 218)
        (vec_select:V4SF (vec_concat:V8SF (subreg:V4SF (reg:V4SI 207 [ i.0 ]) 0)
                (subreg:V4SF (reg:V4SI 207 [ i.0 ]) 0))
            (parallel [
                    (const_int 1 [0x1])
                    (const_int 1 [0x1])
                    (const_int 1 [0x1])
                    (const_int 1 [0x1])
                ]))) -1 (nil)
    (nil))
simd-1.c:74: internal compiler error: in extract_insn, at recog.c:2020
Comment 1 Andrew Pinski 2005-01-13 20:45:32 UTC
Does this work now after RTH's patches?
Comment 2 Uroš Bizjak 2005-01-14 07:17:06 UTC
Testcase now works for -msse2 (x86_64 implies -msse2), but it still fails for
i686 with -msse. It also fails for x86_64 with -mno-sse2 with the same error, FWIW.
Comment 3 Richard Henderson 2005-01-20 01:02:59 UTC
Testing a patch.
Comment 4 CVS Commits 2005-01-20 06:35:48 UTC
Subject: Bug 19427

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rth@gcc.gnu.org	2005-01-20 06:35:38

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

Log message:
	PR target/19427
	* config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
	shufps elements.
	(ix86_expand_vector_extract): Likewise.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7194&r2=2.7195
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&r1=1.781&r2=1.782

Comment 5 Richard Henderson 2005-01-20 06:37:42 UTC
Fixed.