From owner-FreeBSD-users-jp@jp.freebsd.org  Thu Jan  7 15:23:28 1999
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) id PAA05372;
	Thu, 7 Jan 1999 15:23:28 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from sraigw.sra.co.jp (sraigw.sra.co.jp [202.32.10.2])
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) with ESMTP id PAA05362
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 7 Jan 1999 15:23:26 +0900 (JST)
	(envelope-from soda@sra.co.jp)
Received: from srasvf.sra.co.jp (srasvf [133.137.28.2])
	by sraigw.sra.co.jp (8.8.7/3.6Wbeta7-sraigw) with ESMTP id PAA25452
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 7 Jan 1999 15:23:23 +0900 (JST)
Received: from srapc342.sra.co.jp (srapc342 [133.137.28.111])
	by srasvf.sra.co.jp (8.8.7/3.6Wbeta7-srambox) with ESMTP id PAA17560
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 7 Jan 1999 15:23:09 +0900 (JST)
Received: (from soda@localhost) by srapc342.sra.co.jp (8.8.8/3.4W-sra) id PAA11865 for FreeBSD-users-jp@jp.freebsd.org; Thu, 7 Jan 1999 15:23:21 +0900 (JST)
Date: Thu, 7 Jan 1999 15:23:21 +0900 (JST)
From: Noriyuki Soda <soda@sra.co.jp>
Message-Id: <199901070623.PAA11865@srapc342.sra.co.jp>
To: FreeBSD-users-jp@jp.freebsd.org
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+981115
X-Sequence: FreeBSD-users-jp 37128
Subject: [FreeBSD-users-jp 37128] Re: Recommended benchmark program
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: soda@sra.co.jp

> >  $B$3$N<o$N(B trade off $B$G!"$b$&0l$D;W$$=P$9$N$O!"IbF0>.?tE@1i;;$N@_Dj(B
> >  $B$G$9$1$I!"$3$l$K$D$$$F$b(B *BSD $B$NJ}$,0BA4B&$K?6$C$F$$$k$J$"!D(B)
> 
> $B$3$NE@!";d$A$g$C$HM}2r$G$-$F$$$^$;$s!#$9$_$^$;$s!#(B
> $B6qBNE*$K$O$I$s$J$3$H$J$s$G$7$g$&$+!)(B $B65$($F$$$?$@$1$^$9$G$7$g$&$+!)(B

$B@N!"(Bfj $B$GOCBj$K$J$C$?2<5-$N$h$&$JOC$G$9!#(B
$B$A$g$&$I:G6a!"?H6a$G$3$NOCBj$,=P$?$N$G;W$$=P$7$?$@$1$G!"B>$K$b$3$&$$$&(B
$BOCBj$OBt;3$"$k$G$7$g$&!#(B($BNc$($P(B libc $B$N(B major $BHV9f$N4IM}$H$+!#(B:-))
$B$=$NCf$K$O!"(BLinux $B$NJ}$,0BA4B&$K?6$C$F$$$kNc$H$$$&$N$b!"$-$C$H$"$k$s$8$c(B
$B$J$+$H;W$$$^$9$N$G(B ($B$h$/CN$i$J$$$1$I(B :-)) $BG0$N$?$a!D(B

$B2<5-$N5-=R$b!";d$O!"(BNetBSD/FreeBSD $B%f!<%6!<$J$N$G!"$=$b$=$b4pK\E*$K5-(B
$B=R$K%P%$%"%9$,$+$+$C$F$^$9$N$GCm0U!#(B:-)

========================================================================
i386 $B$N(B double $B$O!"2>?tIt$O(B 53bit $B$^$G$7$+J];}$G$-$^$;$s!#$H$3$m$,!"(B
FPU $B<+BN$O!"2>?tIt(B 64bit $B$G7W;;$9$k$3$H$,$G$-$^$9!#(B
Linux/i386 $B$O!"%G%U%)!<%k%H$G2>?tIt(B 64bit $B$G7W;;$9$k$N$G!"0l8+IT2D;W5D(B
$B$J7k2L$,=P$k$3$H$,$"$j$^$9!#$H$$$&$N$O7W;;$NCf4V7k2L$O2>?tIt(B 64bit $B$J(B
$B$N$K!"0lEYJQ?t$KBeF~$7$?$j!"$"$k$$$O%W%m%0%i%`Cf$NDj?t$@$C$?$j$9$k$H!"(B
$B2>?tIt(B 53bit $B$K$J$C$F$7$^$&$+$i$G$9!#(B

$BNc$($P!"KvHx$K$D$1$k%W%m%0%i%`$r<B9T$7$?>l9g!"(B
	NetBSD $B$d(B FreeBSD:	1 / 3 == 0.333333 <-> 0.333333 ? yes
	Linux:			1 / 3 == 0.333333 <-> 0.333333 ? no
$B$H$J$j$^$9!#(B

$B$U$D$&$O(B NetBSD $B$d(B FreeBSD $B$NJ}K!$N?6$k$^$$$NJ}$,!"6C$-$O>/$J$$$G$7$g(B
$B$&!#(BLinux $B$N%G%U%)!<%k%H$NF0:n$N>l9g(B
$B!&Dj?t1i;;$+$I$&$+$G7W;;7k2L$K0c$$$,=P$k(B
$B!&1i;;FbMF$r%a%b%j>e$K0l;~E*$KJ];}$7$?$+$I$&$+$G7W;;7k2L$K0c$$$,=P$k(B
$B$+$i$G$9!#(B

$B$^$?!"(BNetBSD $B$d(B FreeBSD $B$G$b!"0J2<$N$I$A$i$+$NJ}K!$G!"(BLinux $B$HF1$8(B
$B$U$k$^$$!J7W;;$NESCf7k2L$r(B 64bit $B$GJ];}$9$k!K$K$9$k$3$H$,$G$-$^$9!#(B

1. $BFCDj$N%W%m%0%i%`$@$1@:EY$rA}$d$9!#(B
  $B%W%m%0%i%`$N@hF,$G!"(BFPU control word $B$r@_Dj$9$k!#(B
  $B6qBNE*$K$O!"0J2<$N%W%m%0%i%`Nc$G$O(B
	cc -DLONG_PRECISION -o hoge hoge.c
  $B$H$7$F%3%s%Q%$%k$9$l$PNI$$!#(B

$B$"$k$$$O!"(B

2. $B$9$Y$F$N%W%m%0%i%`$K$D$$$F!"%G%U%)!<%k%H$N@:EY$r(B 64bit $B$K$9$k!#(B
  $B%+!<%M%k$r:n$jD>$9!#6qBNE*$K$O(B
	$B!&(BNetBSD $B$N>l9g!"(B
		sys/arch/i386/include/npx.h $B$N(B  __NetBSD_NPXCW__ $B$r!"(B
		0x37f $B$KJQ99$9$k!#(B
	$B!&(BFreeBSD $B$N>l9g!"(B
		$B%+!<%M%k$N(B config $B%U%!%$%k$K(B
			options __BROKEN_NPXCW__
		$B$rF~$l$F%+!<%M%k$r:n$jD>$9(B

------------------------------ $B$3$3$+$i(B ------------------------------
#include <stdio.h>

void hoge(double x, double y, double z);

main(int argc, char **argv)
{
	double x, y;
#ifdef LONG_PRECISION
	/* compat linux: long precision: 53-bit -> 64-bit */
	int fpu_control_word = 0x37f;

	__asm("fldcw %0" : : "m" (*&fpu_control_word));
#endif
	hoge(1.0, 3.0, 1.0 / 3.0);
	return 0;
}

void
hoge(double x, double y, double z)
{
	printf("%g / %g == %g <-> %g ? %s\n",
	       x, y, x / y, z,
	       x / y == z ? "yes" : "no");
}
------------------------------ $B$3$3$^$G(B ------------------------------
--
soda
