18582 – [3.4 Regression] Internal compiler error with arrays of type V2DF (original) (raw)

Description Steffen Boerm 2004-11-20 20:09:27 UTC

Using

gcc -c ice.c

with the following file "ice.c"

typedef double v2df attribute((mode(V2DF))); void sse_interpolate_kernel() { double x2[2]; v2df xs[2]; xs[0] = __builtin_ia32_loadupd(x2); }

leads to the following internal compiler error:

ice.c: In function `sse_interpolate_kernel': ice.c:11: internal compiler error: in instantiate_virtual_regs_lossage, at function.c:3756 Please submit a full bug report,

The error seems to disappear if I replace the array xs by simple variables or if I use "-O".

Comment 1 Drea Pinski 2004-11-20 20:21:56 UTC

: Search converges between 2003-01-27-trunk (#173) and 2003-02-03-trunk (#174). : Search converges between 2003-01-28-3.3 (#19) and 2003-02-04-3.3 (#20).

Fixed on the mainline by the merge of the tree-ssa: : Search converges between 2004-05-11-trunk (#454) and 2004-05-14-trunk (#455). Fixed on the tree-ssa branch: : Search converges between 2003-08-15-ssa (#58) and 2003-08-16-ssa (#59).

(note this does not make sense as usually the things are fixed by the tree-ssa when optimizing).

Comment 2 Richard Sandiford 2005-08-02 15:46:10 UTC

This is a bug in the i386 builtin expansion code. Testing a fix.

Comment 6 Richard Sandiford 2005-08-03 14🔞19 UTC

Patch applied to 3.4. Relevant parts of testcase also applied to HEAD and 4.0.