This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: c/7723: Internal compiler error - Pentium3 sse - gcc 3.2
- From: Marco Morandini <morandini at aero dot polimi dot it>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 26 Aug 2002 14:16:02 -0000
- Subject: Re: c/7723: Internal compiler error - Pentium3 sse - gcc 3.2
- Reply-to: Marco Morandini <morandini at aero dot polimi dot it>
The following reply was made to PR middle-end/7723; it has been noted by GNATS.
From: Marco Morandini <morandini@aero.polimi.it>
To: tprince@computer.org
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c/7723: Internal compiler error - Pentium3 sse - gcc 3.2
Date: Mon, 26 Aug 2002 16:19:06 +0200
Tim Prince wrote:
> On Monday 26 August 2002 03:01, morandini@aero.polimi.it wrote:
>
>>>Number: 7723
>>>Category: c
>>>Synopsis: Internal compiler error - Pentium3 sse - gcc 3.2
>>>Confidential: no
>>>Severity: serious
>>>Priority: medium
>>>Responsible: unassigned
>>>State: open
>>>Class: ice-on-legal-code
>>
>>>Description:
>>
>>1)
>>with this code:
>>/*-------------------*/
>>typedef int v4sf __attribute__ ((mode(V4SF)));
>>int main(void) {
>> v4sf a={0.,0.,0.,0.};
>> return 0;
>>};
>>/*------------------*/
>>
>>marco@pc-31c:~> gcc -msse -march=pentium3 -mfpmath=sse main1.c: In function
>>`main': main1.c:5: Internal compiler error in instantiate_virtual_regs_1,
>>at function.c:3972
>>
>>2)this code is compiled, but the program gives a SIGSEGV. What's wrong?
>>(binutils 2.13.90.0.4 20020814)
>>/*------------------*/
>>typedef int v4sf __attribute__ ((mode(V4SF)));
>>int main(void) {
>> v4sf a={1.,1.,1.,1.};
>> v4sf b={2.,2.,2.,2.};
>> v4sf c;
>> c=__builtin_ia32_addss (a, b);
>> return 0;
>>};
>
> Some might argue about characterizing this as "legal code." Perhaps it
> should be flagged as an error. gcc doesn't support alignment in main(), so
> it seems that any code which is not standard C and depends on alignment might
> not be "legal."
Opsss.....
Yes, I do not get the SIGSEGV after moving everything to a function
(If I understand correctly your answer, but I'm definitely not a
good programmer)
However, I'm still getting the ICE with this:
/*-------------------*/
typedef int v4sf __attribute__ ((mode(V4SF)));
void dummy(void) {
v4sf c={0.,0.,0.,0.};
return;
};
/*-----------------*/
Perhaps I'm simply not smart enough to use SIMD gcc support :(