Bug 23668 - [4.1 Regression] gcc.dg/i386-sse-11.c and gcc.target/i386/pr13366.c fail
Summary: [4.1 Regression] gcc.dg/i386-sse-11.c and gcc.target/i386/pr13366.c fail
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.1.0
: P2 normal
Target Milestone: 4.1.0
Assignee: Richard Henderson
Keywords: ice-on-valid-code, ssemmx
Depends on:
Reported: 2005-09-01 01:48 UTC by Joseph S. Myers
Modified: 2005-09-02 00:28 UTC (History)
2 users (show)

See Also:
Target: i?86-*-*
Known to work:
Known to fail:
Last reconfirmed: 2005-09-01 06:00:00


Note You need to log in before you can comment on or make changes to this bug.
Description Joseph S. Myers 2005-09-01 01:48:56 UTC
Between 20050830 and 20050831 the following FAILs of tests which previously
passed appeared on mainline on i686-pc-linux-gnu.

FAIL: gcc.dg/i386-sse-11.c (test for excess errors)
FAIL: gcc.target/i386/pr13366.c (test for excess errors)

In function 'bar':
error: unrecognizable insn:
(insn 41 40 42 5 (set (reg:V4SF 74)
        (parallel:V4SF [
                (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])
                (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])
                (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])
                (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])
            ])) -1 (nil)
internal compiler error: in extract_insn, at recog.c:2084

(Other ICE much the same.)
Comment 1 Uroš Bizjak 2005-09-01 05:59:58 UTC
This breakage was caused by:

	2005-08-29  Geoffrey Keating  <geoffk@apple.com>
	* config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
	parts of 'vals'.
Comment 2 Geoff Keating 2005-09-01 18:48:16 UTC
Yup, this one's mine.
Comment 3 Geoff Keating 2005-09-01 18:58:25 UTC
... but why didn't it happen before?  The problem seems to be that ix86_expand_vector_init_one_var is 
creating an all-zero vector that isn't the same as CONST0_RTX, which is wrong, but the previous code did 
the same thing and didn't get this problem.
Comment 4 Richard Henderson 2005-09-01 22:41:52 UTC
No, Geoff, look closer at the failure message.  The biggest problem is that
you deleted the line that converted a PARALLEL to a CONST_VECTOR node.

Testing a fix now.
Comment 5 CVS Commits 2005-09-02 00:28:29 UTC
Subject: Bug 23668

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rth@gcc.gnu.org	2005-09-02 00:28:00

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

Log message:
	PR 23668
	* config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
	conversion to CONST_VECTOR.


Comment 6 Richard Henderson 2005-09-02 00:28:53 UTC