From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14336 invoked by alias); 7 Nov 2002 09:32:26 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 14327 invoked from network); 7 Nov 2002 09:32:25 -0000 Received: from unknown (HELO devserv.devel.redhat.com) (66.187.233.200) by sources.redhat.com with SMTP; 7 Nov 2002 09:32:25 -0000 Received: (from jakub@localhost) by devserv.devel.redhat.com (8.11.6/8.11.0) id gA79WLZ27889; Thu, 7 Nov 2002 04:32:21 -0500 Date: Thu, 07 Nov 2002 01:32:00 -0000 From: Jakub Jelinek To: Jan Hubicka Cc: Gabriel Dos Reis , Richard Henderson , gcc-patches@gcc.gnu.org, aj@suse.de Subject: Re: Converting floor to rint Message-ID: <20021107043221.K10988@devserv.devel.redhat.com> Reply-To: Jakub Jelinek References: <20021105171400.GX14655@kam.mff.cuni.cz> <20021105173800.GD20534@redhat.com> <20021106092310.GE22059@kam.mff.cuni.cz> <20021106175441.GZ22059@kam.mff.cuni.cz> <20021106180930.GA22066@redhat.com> <20021106211059.GB1316@atrey.karlin.mff.cuni.cz> <20021106222922.GH1316@atrey.karlin.mff.cuni.cz> <20021107092112.GF7964@kam.mff.cuni.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <20021107092112.GF7964@kam.mff.cuni.cz>; from jh@suse.cz on Thu, Nov 07, 2002 at 10:21:12AM +0100 X-SW-Source: 2002-11/txt/msg00426.txt.bz2 On Thu, Nov 07, 2002 at 10:21:12AM +0100, Jan Hubicka wrote: > > | On the related note. How bad would you consider converting > > | floor(x) into rint(x-0.5) in the fast-math mode? > > > > If you think you do want to do that transformation, then I would > > prefer this > > > > floor(x) -> nearbyint(x-0.5) > > > > | That transformation would do a miracles for i386, where rint is faster > > | than floor by quite a lot and should suffice for 3D application in > > | reliablility. I can imagine it to fail only for very large numbers... > > > > Not really. floor(1) == 1 and rint(1 - 0.5) maybe be 0 or 1 depending > > on the current rounding mode. > Hmm, is rint really expected to be dependent on the rouding mode? > Man page claims: > The nearbyint functions round their argument to an integer value > in floating point format, using the current > rounding direction and without raising the inexact > exception. > > The rint functions do the same, but will raise the > inexact exception when the result differs in value > from the argument. > > I can builtinize nearbyint too if it makes sense. I am bit confused by > rint. Does it imply that rint will raise exception for any non-integral > arugment? If FE_INEXACT is enabled, yes. Jakub