cvs commit: src/lib/msun/src e_hypot.c e_hypotf.c

Bruce Evans bde at
Sun Mar 30 11:07:13 PDT 2008

bde         2008-03-30 18:07:12 UTC

  FreeBSD src repository

  Modified files:
    lib/msun/src         e_hypot.c e_hypotf.c 
  Use fabs[f]() instead of bit fiddling for setting absolute values.
  This makes little difference in float precision, but in double
  precision gives a speedup of about 30% on amd64 (A64 CPU) and i386
  (A64).  This depends on fabs[f]() being inline and efficient.  The
  bit fiddling (or any use of SET_HIGH_WORD(), which libm does too
  much because it was best on old 32-bit machines) always causes
  packing overheads and sometimes causes stalls in the packing, since
  it operates on only part of a variable in the double precision case.
  It apparently did cause stalls in a critical path here.
  Revision  Changes    Path
  1.12      +2 -2      src/lib/msun/src/e_hypot.c
  1.13      +2 -2      src/lib/msun/src/e_hypotf.c

More information about the cvs-src mailing list