From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13568 invoked by alias); 31 Aug 2004 23:45:51 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 13542 invoked from network); 31 Aug 2004 23:45:50 -0000 Received: from unknown (HELO mail.codesourcery.com) (65.74.133.10) by sourceware.org with SMTP; 31 Aug 2004 23:45:50 -0000 Received: (qmail 8838 invoked from network); 31 Aug 2004 23:45:49 -0000 Received: from taltos.codesourcery.com (zack@66.92.218.83) by mail.codesourcery.com with DES-CBC3-SHA encrypted SMTP; 31 Aug 2004 23:45:49 -0000 Received: by taltos.codesourcery.com (sSMTP sendmail emulation); Tue, 31 Aug 2004 16:45:49 -0700 To: sje@cup.hp.com Cc: gcc@gcc.gnu.org Subject: Re: IA64 floating point division question References: <200408312246.PAA26407@hpsje.cup.hp.com> From: Zack Weinberg Date: Tue, 31 Aug 2004 23:58:00 -0000 In-Reply-To: <200408312246.PAA26407@hpsje.cup.hp.com> (Steve Ellcey's message of "Tue, 31 Aug 2004 15:46:47 -0700 (PDT)") Message-ID: <87656y3m8i.fsf@codesourcery.com> User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-08/txt/msg01699.txt.bz2 Steve Ellcey writes: > y.c: In function `foo': > y.c:9: error: unrecognizable insn: > (insn 36 19 37 0 (parallel [ > (set (reg:SF 351) > (div:SF (const_int 1 [0x1]) > (reg:SF 350 [ b ]))) > (set (scratch:BI) > (unspec:BI [ > (reg:SF 349 [ a ]) > (reg:SF 350 [ b ]) > ] 14)) > (use (const_int 1 [0x1])) > ]) -1 (nil) > (expr_list:REG_UNUSED (scratch:BI) > (expr_list:REG_UNUSED (scratch:BI) > (nil)))) > y.c:9: internal compiler error: in extract_insn, at recog.c:2037 I'm fairly sure that your problem is with the "*recip_approx" instruction, which is what is supposed to match this pattern. The catch is, it *only* allows XFmode operands, whereas you're trying to feed it SFmode. I'm not sure how to fix this. When I tried to do something similar, I got completely stuck because I couldn't make GCC refer to the *same* pseudo register in two different modes. zw