From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18052 invoked by alias); 23 Apr 2004 14:24:20 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 18032 invoked by uid 48); 23 Apr 2004 14:24:19 -0000 Date: Fri, 23 Apr 2004 15:09:00 -0000 From: "ahu at ds9a dot nl" To: gcc-bugs@gcc.gnu.org Message-ID: <20040423142416.15101.ahu@ds9a.nl> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug optimization/15101] New: Trying to use diouble precision SIMD vector causes: internal compiler error: in extract_bit_field, at expmed.c:1152 X-Bugzilla-Reason: CC X-SW-Source: 2004-04/txt/msg02172.txt.bz2 List-Id: The documentation claims that gcc can write out double precision floating point arithmetic if the hardware can't do it SIMD. When compiling with -O3, this results in the ICE above, when compiling without -O, it produces bogus results. Compiled with: gcc -Wall -ggdb -march=pentium3 -msse simd.c -o simd -O3 Code: typedef int v4df __attribute__ ((mode(V4DF))); typedef int v4sf __attribute__ ((mode(V4SF))); union dvector4 { v4df vect; double e[4]; }; union fvector4 { v4sf vect; float e[4]; }; int main() { int n; union dvector4 a, b; a.e[0]=0; a.e[1]=10; a.e[2]=20; a.e[3]=30; b.e[0]=0; b.e[1]=0; b.e[2]=0; b.e[3]=0; for(n=0;n<1000;++n) { b.vect = b.vect + a.vect; /* b.e[0] = b.e[0] + a.e[0]; b.e[1] = b.e[1] + a.e[1]; b.e[2] = b.e[2] + a.e[2]; b.e[3] = b.e[3] + a.e[3]; */ } // printf("%f, %f, %f, %f\n", c.e[0], c.e[1], c.e[2], c.e[3]); return 0; } -- Summary: Trying to use diouble precision SIMD vector causes: internal compiler error: in extract_bit_field, at expmed.c:1152 Product: gcc Version: 3.4.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ahu at ds9a dot nl CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15101