www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/07/14/06:36:35

From: horst DOT kraemer AT snafu DOT de (Horst Kraemer)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: DJGPP division optimisations
Date: Tue, 14 Jul 1998 10:19:31 GMT
Organization: Unlimited Surprise Systems, Berlin
Message-ID: <35ab1f95.79373671@news.snafu.de>
References: <35AA8994 DOT 3FC1 AT virgin DOT net> <6oe4in$1m7$1 AT rosenews DOT rose DOT hp DOT com> <35AAA705 DOT 1BDE AT cam DOT org>
NNTP-Posting-Host: n31-172.berlin.snafu.de
Lines: 17
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

On Mon, 13 Jul 1998 20:32:05 -0400, Vic <tudor AT cam DOT org> wrote:


>it's true, I checked this. I put "unsigned" in front of the variables
>and the 2 loops performed the same (2.74 seconds)

And the reason is clear. The operations x/2 and x>>1 are different if
x is a negative number. As you declared x to be a signed type the
compiler may not "pessimize" /2 to >>1. It doesn't know when compiling
that x will never be negative.

        int i = -1;
	printf("%d %d\n", i/2 , i>>1 );

Regards
Horst

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019