User account creation filtered due to spam.

Bug 25242 - [3.4 only] failure in i386-sse-2.c on x86_64-unknown-linux-gnu
Summary: [3.4 only] failure in i386-sse-2.c on x86_64-unknown-linux-gnu
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 3.4.6
: P3 normal
Target Milestone: 4.0.3
Assignee: Not yet assigned to anyone
URL:
Keywords: ssemmx
Depends on:
Blocks: 25583
  Show dependency treegraph
 
Reported: 2005-12-03 13:44 UTC by Kaveh Ghazi
Modified: 2006-03-01 05:03 UTC (History)
1 user (show)

See Also:
Host:
Target: x86_64-unknown-linux-gnu
Build:
Known to work: 4.0.3
Known to fail: 3.4.6
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kaveh Ghazi 2005-12-03 13:44:42 UTC
When running the 3.4 testsuite on x86_64-unknown-linux-gnu, I'm getting the following error:

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

as shown here:
http://gcc.gnu.org/ml/gcc-testresults/2005-12/msg00083.html

The logfile says:

In file included from gcc/include/xmmintrin.h:1216,
                 from testsuite/gcc.dg/i386-sse-2.c:12:
gcc/include/emmintrin.h: In function `_mm_sqrt_sd':
gcc/include/emmintrin.h:248: internal compiler error: in instantiate_virtual_regs_lossage, at function.c:3765

Other than comments, the testcase merely has these lines:

#define static
#define __inline
#include <xmmintrin.h>
Comment 1 Kaveh Ghazi 2005-12-03 19:39:30 UTC
I configured with --enable-checking=yes,rtl however I don't think that's necessary to trigger the error.  I see another report without checking here that fails the test.

http://gcc.gnu.org/ml/gcc-testresults/2005-12/msg00129.html
Comment 2 Kaveh Ghazi 2005-12-03 19:41:58 UTC
Here's a reduced testcase, compile it with cc1 targetted to x86_64-unknown-linux-gnu:

cc1 -fpreprocessed i386-sse-2.i -quiet -dumpbase i386-sse-2.c -msse -mtune=k8 -auxbase-strip i386-sse-2.s -O0 -version -o i386-sse-2.s


typedef double __v2df __attribute__ ((mode (V2DF)));
 __v2df
_mm_sqrt_sd (__v2df __A, __v2df __B)
{
  __v2df __tmp = __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
  return (__v2df)__builtin_ia32_sqrtsd ((__v2df)__tmp);
}
Comment 3 Gabriel Dos Reis 2006-03-01 05:03:18 UTC
Fixed in 4.0.3 and up.