Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!news.glorb.com!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail NNTP-Posting-Date: Mon, 06 Feb 2012 18:10:38 -0600 Message-ID: <4F306BFB.2561@mindspring.com> Date: Mon, 06 Feb 2012 19:10:35 -0500 From: pete Reply-To: pfiland@mindspring.com Organization: PF X-Mailer: Mozilla 3.04Gold (WinNT; I) MIME-Version: 1.0 Newsgroups: comp.lang.c Subject: Re: Optimisation questions References: <20120205034114.797@kylheku.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 33 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 4.154.217.131 X-Trace: sv3-JTM5rvWVK/cbQBbHLexMg7sZUr7xe/60vgo0vhTueNa96SHpbA1445cXuN7qUbc8LTree8DfQRTfxug!we2LUJvVt6CBWjCXkkU1KauQISPI5dKSaEwzETOJjF2lH6yDP8ha1ZZSJxq3f3uNooU7hBZt2ccs!1mhvFZXCL28= X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 2260 Xref: x330-a1.tempe.blueboxinc.net comp.lang.c:16785 Stephen Sprunk wrote: > > On 04-Feb-12 21:04, Kaz Kylheku wrote: > > On 2012-02-05, James Kuyper wrote: > >> On 02/04/2012 07:00 PM, Stephen Sprunk wrote: > >>> On 04-Feb-12 17:44, James Kuyper wrote: > >>>> As a general rule, > >>>> your compiler should generate exactly the same code > >>>> for x/8 and x>>3, > >>>> because they're required to have exactly the same behavior. > >>> > >>> That only holds if x is non-negative. > >> > >> You're right > >> - the result is implementation-defined if x is negative. > > > > Yes and the point is that this is what helps to optimize it better. > > You missed the point. If x is negative, > they are not guaranteed to have the same behavior, > so the compiler is not allowed to make such an optimization. I think Kaz was talking about a different optimization. The value of (x>>3) being implementation defined for negative values of x, suggests that the resulting opcodes for (x>>3) should be simpler than they would be if (x>>3) was defined as always being equal to (x/8). -- pete