(j3.2006) BEQ, BNE?
Keith Bierman
khbkhb
Sun Feb 3 17:23:25 EST 2013
Really? Surely on such a processor the ABS function would "normalize" to
one or the other.
Keith Bierman
khbkhb at gmail.com
kbiermank AIM
303 997 2749
On Sun, Feb 3, 2013 at 3:18 PM, Van Snyder <van.snyder at jpl.nasa.gov> wrote:
> On Sun, 2013-02-03 at 05:58 -0700, Dan Nagle wrote:
> > Hi,
> >
> > For integers, how difficult is it to understand the idiom
> >
> > abs( i) < 1
> >
> > or
> >
> > abs( i - j) < 1
>
> There is no problem understanding this, except it doesn't work for bits
> if all zero bits and all one bits both represent numeric zero.
>
> >
> > On Feb 3, 2013, at 05:12 , Robert Corbett <robert.corbett at oracle.com>
> wrote:
> >
> > > On 02/01/13 12:07, Van Snyder wrote:
> > >> On Fri, 2013-02-01 at 10:10 -0700, Keith Bierman wrote:
> > >>> The no so obvious thing is what cost(s) that may impose on the
> > >>> implementors. Folks who were certain there were fixed numbers of
> > >>> intrinsics may have "hard" limits, the interactions with optimization
> > >>> and debuggers, etc. Different implementors could face very different
> > >>> costs (from what very little I recall of the NAG compiler, once upon
> a
> > >>> time I think it would have been small for Malcolm). For some other
> > >>> compilers, not so small (not huge, but the combination of scarce
> > >>> development, integration and test resources for most compiler groups
> > >>> should never be underestimated. The more highly optimizing the
> > >>> environment, the more likely it is that even trivial changes will
> have
> > >>> more considerable impact).
> > >> Bob Corbett argued that if one has written
> > >>
> > >> if ( popcnt(ieor(i,j)) == 0 )
> > >> or
> > >> if ( BLE(i,j) .and. BLE(j,i) )
> > >> or
> > >> if ( BGE(i,j) .and. BGE(j,i) )
> > >> or
> > >> any of the dozen or so other ways to say the same thing,
> > >>
> > >> a competent optimizing compiler will have optimized "the idioms" to an
> > >> unsigned test for equality.
> > >>
> > >> How is that "easier" than implementing BEQ and BNE?
> > >
> > > It does not require changing the compiler front-end other than at the
> final step
> > > when the next lower level of intermediate code is produced. Adding a
> new
> > > intrinsic function to Oracle Solaris Studio Fortran requires extending
> the
> > > front-end intermediate code, adding new entries to the intrinsic
> function
> > > table, adding new code for semantic checking, extending the module
> file format,
> > > updating the module file reader and writer, and updating the constant
> folding
> > > routines. I might well have missed some steps.
> > >
> > > Bob Corbett
> > > _______________________________________________
> > > J3 mailing list
> > > J3 at mailman.j3-fortran.org
> > > http://mailman.j3-fortran.org/mailman/listinfo/j3
> >
>
>
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.j3-fortran.org/mailman/listinfo/j3
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.j3-fortran.org/pipermail/j3/attachments/20130203/9fe1f65d/attachment.html
More information about the J3
mailing list