www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/09/20/11:16:09

From: Endlisnis <s257m AT unb DOT ca>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Floating/fixed point
Date: Sun, 20 Sep 1998 10:54:03 -0300
Organization: NBTel Internet
Lines: 58
Message-ID: <360508FB.3610E852@unb.ca>
References: <000201bde24f$5e1d1560$a14e08c3 AT arthur>
NNTP-Posting-Host: fctnts10c63.nbnet.nb.ca
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Arthur wrote:
> >       I am using a Genuine Pentium 150 (Classic).  And floating
> > point operations
> > take much longer than integer.  I think it is about 5 times slower for
> > floating point stuff.  A floating point multiply takes about the
> > same time as
> > a floating point add, so if fadd's were as fast as add's then
> > fmul's would be
> > significantly faster than mul's.  And everyone would use fmul's!!
> I'll have to see your benchmark code to be convinced. Float-integer
> conversion is very slow, as are if() statements. So no, people wouldn't use
> fmul instead of mul.

	Here is the benchmark code.  It revieled that my Pentium150 takes 3 clock
cycles for 'fadd' while it only takes 1 cycles for 'add'.  Therefore,
regardless of how optimized your loop will be, fadd's will take at least 3
times longer than add's.

#include <iostream.h>
#include <timer.h>  //Code to check the Pentium cycle counter.

float add(float a, float b)
{
 float Ret;
 asm ("fadd %2, %0"
 : "=&t" (Ret)
 : "0" (a), "u" (b)
 );
 return Ret;
 }

float noadd(float a, float b)
{
 float Ret;
 asm (""
 : "=&t" (Ret)
 : "0" (a), "u" (b)
 );
 return Ret;
 }

int main()
{
 float a=6, b=6;
 add(a,9.5);
 noadd(b,9.5);

 cout << NumCycles( for(int c=0; c<10000; c++) a=add(a,9.5); ) << endl;
 cout << NumCycles( for(int c=0; c<10000; c++) b=noadd(b,9.5); );
 return 0;
 }
-- 
     (\/) Endlisnis (\/)
          s257m AT unb DOT ca
          Endlisnis AT GeoCities DOT com
          Endlis AT nbnet DOT nb DOT ca


- Raw text -


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