From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29164 invoked by alias); 3 Jul 2011 14:39:48 -0000 Received: (qmail 29153 invoked by uid 22791); 3 Jul 2011 14:39:47 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_FX,TW_ZJ X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 03 Jul 2011 14:39:33 +0000 From: "ubizjak at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/49583] Reloading stack operands in the wrong order, so needs to insert fxch X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: ubizjak at gmail dot com X-Bugzilla-Status: RESOLVED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Status Resolution Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Sun, 03 Jul 2011 14:39:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-07/txt/msg00132.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49583 Uros Bizjak changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |WONTFIX --- Comment #2 from Uros Bizjak 2011-07-03 14:38:54 UTC --- You should use powf instead of pow. Many of these moves are actually double->float and float->double x87 conversion instructions. You can use -ffast-math to avoid these conversions, but using powf on float values is probably what you want. Other moves are necessary to pass arguments to the function via stack and to save live values from registers around the call. Also, don't worry about fxch or two, these are extremely fast instructions.