From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18225 invoked by alias); 16 Jul 2002 01:16:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 18152 invoked by uid 71); 16 Jul 2002 01:16:02 -0000 Resent-Date: 16 Jul 2002 01:16:02 -0000 Resent-Message-ID: <20020716011602.18151.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Andrew Pinski Received: (qmail 14679 invoked from network); 16 Jul 2002 01:12:34 -0000 Received: from unknown (HELO physunc.phy.uc.edu) (129.137.4.6) by sources.redhat.com with SMTP; 16 Jul 2002 01:12:34 -0000 Received: from lead.geop.uc.edu (lead.geop.uc.edu [10.44.6.212]) by physunc.phy.uc.edu (8.9.3/8.9.3) with ESMTP id VAA26385 for ; Mon, 15 Jul 2002 21:12:31 -0400 (EDT) Received: (from pinskia@localhost) by lead.geop.uc.edu (8.11.6/8.9.3) id g6G1CW531259; Mon, 15 Jul 2002 21:12:32 -0400 Message-Id: <200207160112.g6G1CW531259@lead.geop.uc.edu> Date: Mon, 15 Jul 2002 18:16:00 -0000 From: Andrew Pinski To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: 3.113 Subject: c/7321: ice on vectors with -O3 and -m3dnow X-SW-Source: 2002-07/txt/msg00474.txt.bz2 List-Id: >Number: 7321 >Category: c >Synopsis: ice on vectors with -O3 and -m3dnow >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Mon Jul 15 18:16:02 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Andrew Pinski >Release: 3.2 20020715 (experimental) >Organization: Home >Environment: System: Linux lead.geop.uc.edu 2.4.18-0.13 #1 Mon Apr 1 14:59:55 EST 2002 i686 unknown Architecture: i686 host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: i686-pc-linux-gnu configured with: /home/gates/pinskia/src/gnu/gcc/src/configure --target=i686-pc-linux-gnu --prefix=/home/gates/pinskia/linux --enable-threads=posix --enable-shared >Description: gcc -O3 -m3dnow vector.c produces the following errorvector.c: In function `tempf': vector.c:20: error: unable to find a register to spill in class `FLOAT_REGS' (insn:HI 29 27 30 0 0x4007ae80 (set (reg:SF 8 st(0) [70]) (minus:SF (subreg:SF (reg/v:DI 30 rmm1 [66]) 0) (subreg:SF (reg/v:DI 30 rmm1 [66]) 4))) 556 {*fop_sf_1_nosse} (insn_list 24 (nil)) (expr_list:REG_EQUIV (mem:SF (reg/v/f:SI 2 ecx [60]) [3 S4 A32]) (expr_list:REG_DEAD (reg/v:DI 30 rmm1 [66]) (nil)))) vector.c:20: internal compiler error: Internal compiler error in spill_failure, at reload1.c:1908 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. >How-To-Repeat: gcc -O3 -m3dnow vector.c vector.c follows: floatvect2 temp={x[0],x[1]}; floatvect2 temp1={y[0],y[1]}; resfloatvect2 temp2; temp2.vector=temp+temp1; x[0]=temp2.f[0]; x[1]=temp2.f[1]; typedef float floatvect2 __attribute__((mode(V2SF))); typedef union { floatvect2 vector; float f[2]; }resfloatvect2; void tempf(float *a, float *b, float *c) { floatvect2 a1=*(floatvect2*)a; floatvect2 b1=*(floatvect2*)b; floatvect2 rb1={b[1],b[0]}; resfloatvect2 r1; resfloatvect2 r2; r1.vector=a1*b1; r2.vector=a1*rb1; c[0]=r1.f[0]-r1.f[1]; c[1]=r2.f[0]+r2.f[1]; } >Fix: unknown >Release-Note: >Audit-Trail: >Unformatted: