You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(10) |
2
(22) |
3
(15) |
4
(14) |
5
(8) |
6
(10) |
7
(14) |
|
8
(9) |
9
(10) |
10
(21) |
11
(16) |
12
(17) |
13
(15) |
14
(8) |
|
15
(12) |
16
(8) |
17
(44) |
18
(24) |
19
(29) |
20
(29) |
21
(17) |
|
22
(17) |
23
(16) |
24
(18) |
25
(16) |
26
(15) |
27
(16) |
28
(11) |
|
29
(11) |
30
(10) |
31
(12) |
|
|
|
|
|
From: <sv...@va...> - 2006-01-29 18:18:23
|
Author: sewardj Date: 2006-01-29 18:18:18 +0000 (Sun, 29 Jan 2006) New Revision: 5602 Log: Bring these tests into operation. Added: trunk/none/tests/ppc32/test_fx.stderr.exp trunk/none/tests/ppc32/test_fx.stdout.exp trunk/none/tests/ppc32/test_fx.vgtest trunk/none/tests/ppc32/test_gx.stderr.exp trunk/none/tests/ppc32/test_gx.stdout.exp trunk/none/tests/ppc32/test_gx.vgtest Modified: trunk/none/tests/ppc32/Makefile.am trunk/none/tests/ppc32/test_gx.c Modified: trunk/none/tests/ppc32/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/ppc32/Makefile.am 2006-01-29 17:08:58 UTC (rev 5601) +++ trunk/none/tests/ppc32/Makefile.am 2006-01-29 18:18:18 UTC (rev 5602) @@ -6,10 +6,12 @@ jm-int.stderr.exp jm-int.stdout.exp jm-int.vgtest \ jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest \ jm-vmx.stderr.exp jm-vmx.stdout.exp jm-vmx.vgtest \ + test_fx.stderr.exp test_fx.stdout.exp test_fx.vgtest \ + test_gx.stderr.exp test_gx.stdout.exp test_gx.vgtest \ testVMX.stderr.exp testVMX.stdout.exp testVMX.vgtest =20 check_PROGRAMS =3D \ - lsw jm-insns testVMX + lsw jm-insns test_fx test_gx testVMX =20 AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc= lude \ @FLAG_M32@ Added: trunk/none/tests/ppc32/test_fx.stderr.exp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/ppc32/test_fx.stderr.exp (re= v 0) +++ trunk/none/tests/ppc32/test_fx.stderr.exp 2006-01-29 18:18:18 UTC (re= v 5602) @@ -0,0 +1,2 @@ + + Added: trunk/none/tests/ppc32/test_fx.stdout.exp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/ppc32/test_fx.stdout.exp (re= v 0) +++ trunk/none/tests/ppc32/test_fx.stdout.exp 2006-01-29 18:18:18 UTC (re= v 5602) @@ -0,0 +1,40 @@ + +fsqrt 0.000000e+00 -> 0.00000000000000e+00 +fsqrt inf -> inf +fsqrt -inf -> nan +fsqrt nan -> nan +fsqrt nan -> nan +fsqrt -5.000000e+100 -> nan +fsqrt -5.000000e+20 -> nan +fsqrt -5.010000e+02 -> nan +fsqrt -6.000000e+00 -> nan +fsqrt -1.000000e+00 -> nan +fsqrt -2.000000e-20 -> nan +fsqrt -2.000000e-200 -> nan +fsqrt 2.000000e-200 -> 1.41421356237310e-100 +fsqrt 2.000000e-20 -> 1.41421356237310e-10 +fsqrt 1.000000e+00 -> 1.00000000000000e+00 +fsqrt 6.000000e+00 -> 2.44948974278318e+00 +fsqrt 5.010000e+02 -> 2.23830292855994e+01 +fsqrt 5.000000e+20 -> 2.23606797749979e+10 +fsqrt 5.000000e+100 -> 2.23606797749979e+50 + +fsqrts 0.000000e+00 -> 0.000000e+00 +fsqrts inf -> inf +fsqrts -inf -> nan +fsqrts nan -> nan +fsqrts nan -> nan +fsqrts -5.000000e+100 -> nan +fsqrts -5.000000e+20 -> nan +fsqrts -5.010000e+02 -> nan +fsqrts -6.000000e+00 -> nan +fsqrts -1.000000e+00 -> nan +fsqrts -2.000000e-20 -> nan +fsqrts -2.000000e-200 -> nan +fsqrts 2.000000e-200 -> 1.414214e-100 +fsqrts 2.000000e-20 -> 1.414214e-10 +fsqrts 1.000000e+00 -> 1.000000e+00 +fsqrts 6.000000e+00 -> 2.449490e+00 +fsqrts 5.010000e+02 -> 2.238303e+01 +fsqrts 5.000000e+20 -> 2.236068e+10 +fsqrts 5.000000e+100 -> 2.236068e+50 Added: trunk/none/tests/ppc32/test_fx.vgtest =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/ppc32/test_fx.vgtest (rev 0) +++ trunk/none/tests/ppc32/test_fx.vgtest 2006-01-29 18:18:18 UTC (rev 56= 02) @@ -0,0 +1 @@ +prog: test_fx Modified: trunk/none/tests/ppc32/test_gx.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/ppc32/test_gx.c 2006-01-29 17:08:58 UTC (rev 5601) +++ trunk/none/tests/ppc32/test_gx.c 2006-01-29 18:18:18 UTC (rev 5602) @@ -102,22 +102,22 @@ args[6] =3D -5e20; args[7] =3D -501.0; args[8] =3D -6.0; - args[9] =3D -1.0; + args[9] =3D -1.01; args[10] =3D -2e-20; args[11] =3D -2e-200; args[12] =3D 2e-200; args[13] =3D 2e-20; - args[14] =3D 1.0; + args[14] =3D 1.01; args[15] =3D 6.0; args[16] =3D 501.0; args[17] =3D 5e20; args[18] =3D 5e100; =20 - do_one( "fre", do_fre, args, nargs, "%e", "%e"); - do_one( "fres", do_fres, args, nargs, "%e", "%e"); + do_one( "fre", do_fre, args, nargs, "%e", "%4.1e"); + do_one( "fres", do_fres, args, nargs, "%e", "%4.1e"); =20 - do_one( "frsqrte", do_frsqrte, args, nargs, "%e", "%e"); - do_one( "frsqrtes", do_frsqrtes, args, nargs, "%e", "%e"); + do_one( "frsqrte", do_frsqrte, args, nargs, "%e", "%4.1e"); + do_one( "frsqrtes", do_frsqrtes, args, nargs, "%e", "%4.1e"); =20 free(args); return 0; Added: trunk/none/tests/ppc32/test_gx.stderr.exp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/ppc32/test_gx.stderr.exp (re= v 0) +++ trunk/none/tests/ppc32/test_gx.stderr.exp 2006-01-29 18:18:18 UTC (re= v 5602) @@ -0,0 +1,2 @@ + + Added: trunk/none/tests/ppc32/test_gx.stdout.exp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/ppc32/test_gx.stdout.exp (re= v 0) +++ trunk/none/tests/ppc32/test_gx.stdout.exp 2006-01-29 18:18:18 UTC (re= v 5602) @@ -0,0 +1,80 @@ + +fre 0.000000e+00 -> inf +fre inf -> 0.0e+00 +fre -inf -> -0.0e+00 +fre nan -> nan +fre nan -> nan +fre -5.000000e+100 -> -2.0e-101 +fre -5.000000e+20 -> -2.0e-21 +fre -5.010000e+02 -> -2.0e-03 +fre -6.000000e+00 -> -1.7e-01 +fre -1.010000e+00 -> -9.9e-01 +fre -2.000000e-20 -> -5.0e+19 +fre -2.000000e-200 -> -5.0e+199 +fre 2.000000e-200 -> 5.0e+199 +fre 2.000000e-20 -> 5.0e+19 +fre 1.010000e+00 -> 9.9e-01 +fre 6.000000e+00 -> 1.7e-01 +fre 5.010000e+02 -> 2.0e-03 +fre 5.000000e+20 -> 2.0e-21 +fre 5.000000e+100 -> 2.0e-101 + +fres 0.000000e+00 -> inf +fres inf -> 0.0e+00 +fres -inf -> -0.0e+00 +fres nan -> nan +fres nan -> nan +fres -5.000000e+100 -> -0.0e+00 +fres -5.000000e+20 -> -2.0e-21 +fres -5.010000e+02 -> -2.0e-03 +fres -6.000000e+00 -> -1.7e-01 +fres -1.010000e+00 -> -9.9e-01 +fres -2.000000e-20 -> -5.0e+19 +fres -2.000000e-200 -> -inf +fres 2.000000e-200 -> inf +fres 2.000000e-20 -> 5.0e+19 +fres 1.010000e+00 -> 9.9e-01 +fres 6.000000e+00 -> 1.7e-01 +fres 5.010000e+02 -> 2.0e-03 +fres 5.000000e+20 -> 2.0e-21 +fres 5.000000e+100 -> 0.0e+00 + +frsqrte 0.000000e+00 -> inf +frsqrte inf -> 0.0e+00 +frsqrte -inf -> nan +frsqrte nan -> nan +frsqrte nan -> nan +frsqrte -5.000000e+100 -> nan +frsqrte -5.000000e+20 -> nan +frsqrte -5.010000e+02 -> nan +frsqrte -6.000000e+00 -> nan +frsqrte -1.010000e+00 -> nan +frsqrte -2.000000e-20 -> nan +frsqrte -2.000000e-200 -> nan +frsqrte 2.000000e-200 -> 7.0e+99 +frsqrte 2.000000e-20 -> 7.1e+09 +frsqrte 1.010000e+00 -> 9.7e-01 +frsqrte 6.000000e+00 -> 4.0e-01 +frsqrte 5.010000e+02 -> 4.5e-02 +frsqrte 5.000000e+20 -> 4.5e-11 +frsqrte 5.000000e+100 -> 4.4e-51 + +frsqrtes 0.000000e+00 -> inf +frsqrtes inf -> 0.0e+00 +frsqrtes -inf -> nan +frsqrtes nan -> nan +frsqrtes nan -> nan +frsqrtes -5.000000e+100 -> nan +frsqrtes -5.000000e+20 -> nan +frsqrtes -5.010000e+02 -> nan +frsqrtes -6.000000e+00 -> nan +frsqrtes -1.010000e+00 -> nan +frsqrtes -2.000000e-20 -> nan +frsqrtes -2.000000e-200 -> nan +frsqrtes 2.000000e-200 -> 7.0e+99 +frsqrtes 2.000000e-20 -> 7.1e+09 +frsqrtes 1.010000e+00 -> 9.7e-01 +frsqrtes 6.000000e+00 -> 4.0e-01 +frsqrtes 5.010000e+02 -> 4.5e-02 +frsqrtes 5.000000e+20 -> 4.5e-11 +frsqrtes 5.000000e+100 -> 4.4e-51 Added: trunk/none/tests/ppc32/test_gx.vgtest =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/ppc32/test_gx.vgtest (rev 0) +++ trunk/none/tests/ppc32/test_gx.vgtest 2006-01-29 18:18:18 UTC (rev 56= 02) @@ -0,0 +1 @@ +prog: test_gx |
|
From: <sv...@va...> - 2006-01-29 17:09:04
|
Author: sewardj
Date: 2006-01-29 17:08:58 +0000 (Sun, 29 Jan 2006)
New Revision: 5601
Log:
Add test cases for soem FX (general-purpose) and GX (graphics) optional i=
nsns.
Added:
trunk/none/tests/ppc32/test_fx.c
trunk/none/tests/ppc32/test_gx.c
Added: trunk/none/tests/ppc32/test_fx.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc32/test_fx.c (rev 0)
+++ trunk/none/tests/ppc32/test_fx.c 2006-01-29 17:08:58 UTC (rev 5601)
@@ -0,0 +1,86 @@
+
+#include <stdio.h>
+#include <malloc.h>
+
+double do_fsqrt ( double x )
+{
+ double block[2];
+ block[0] =3D x;
+ __asm__ __volatile__(
+ "lfd %%f1, 0(%0)\n\t"
+ "fsqrt %%f1,%%f1\n\t"
+ "stfd %%f1, 8(%0)"
+ : /*out*/
+ : /*in*/ "b" (&block[0])
+ : /*trash*/ "memory", "fr1"
+ );
+ return block[1];
+}
+
+double do_fsqrts ( double x )
+{
+ double block[2];
+ block[0] =3D x;
+ __asm__ __volatile__(
+ "lfd %%f1, 0(%0)\n\t"
+ "fsqrts %%f1,%%f1\n\t"
+ "stfd %%f1, 8(%0)"
+ : /*out*/
+ : /*in*/ "b" (&block[0])
+ : /*trash*/ "memory", "fr1"
+ );
+ return block[1];
+}
+
+////////////////////////////////////////////////////////////
+
+void do_one ( char* name,=20
+ double(*f)(double),=20
+ double* args, int nargs,=20
+ char* argfmt, char* resfmt )
+{
+ int i;
+ double a, r;
+ printf("\n");
+
+ for (i =3D 0; i < nargs; i++) {
+ a =3D args[i];
+ r =3D f(a);
+ printf("%s ", name);
+ printf(argfmt, a);
+ printf(" -> ");
+ printf(resfmt, r);
+ printf("\n");
+ }
+}
+
+int main ( void )
+{
+ int nargs =3D 19;
+ double* args =3D malloc(nargs * sizeof(double));
+ args[0] =3D 0.0;
+ args[1] =3D 1.0 / 0.0; // inf
+ args[2] =3D -args[1]; // -inf
+ args[3] =3D args[2]/args[2]; // nan
+ args[4] =3D -args[3]; // -nan
+ args[5] =3D -5e100;
+ args[6] =3D -5e20;
+ args[7] =3D -501.0;
+ args[8] =3D -6.0;
+ args[9] =3D -1.0;
+ args[10] =3D -2e-20;
+ args[11] =3D -2e-200;
+ args[12] =3D 2e-200;
+ args[13] =3D 2e-20;
+ args[14] =3D 1.0;
+ args[15] =3D 6.0;
+ args[16] =3D 501.0;
+ args[17] =3D 5e20;
+ args[18] =3D 5e100;
+
+ do_one( "fsqrt", do_fsqrt, args, nargs, "%e", "%20.14e");
+ do_one( "fsqrts", do_fsqrts, args, nargs, "%e", "%e");
+
+ free(args);
+ return 0;
+}
Added: trunk/none/tests/ppc32/test_gx.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc32/test_gx.c (rev 0)
+++ trunk/none/tests/ppc32/test_gx.c 2006-01-29 17:08:58 UTC (rev 5601)
@@ -0,0 +1,124 @@
+
+#include <stdio.h>
+#include <malloc.h>
+
+/* This is a Marie Celeste instruction. Some IBM documents think it
+ exists, others don't. The same appears to be true for
+ implementations - ppc970 doesn't think it exists, but POWER5
+ does. */
+double do_fre ( double x )
+{
+ double block[2];
+ block[0] =3D x;
+ __asm__ __volatile__(
+ "lfd %%f1, 0(%0)\n\t"
+ ".long 0xfc200830\n\t" /* =3D=3D fre %%f1,%%f1 */
+ "stfd %%f1, 8(%0)"
+ : /*out*/
+ : /*in*/ "b" (&block[0])
+ : /*trash*/ "memory", "fr1"
+ );
+ return block[1];
+}
+
+double do_fres ( double x )
+{
+ double block[2];
+ block[0] =3D x;
+ __asm__ __volatile__(
+ "lfd %%f1, 0(%0)\n\t"
+ "fres %%f1,%%f1\n\t"
+ "stfd %%f1, 8(%0)"
+ : /*out*/
+ : /*in*/ "b" (&block[0])
+ : /*trash*/ "memory", "fr1"
+ );
+ return block[1];
+}
+
+double do_frsqrte ( double x )
+{
+ double block[2];
+ block[0] =3D x;
+ __asm__ __volatile__(
+ "lfd %%f1, 0(%0)\n\t"
+ "frsqrte %%f1,%%f1\n\t"
+ "stfd %%f1, 8(%0)"
+ : /*out*/
+ : /*in*/ "b" (&block[0])
+ : /*trash*/ "memory", "fr1"
+ );
+ return block[1];
+}
+
+/* Another Marie Celeste insn. */
+double do_frsqrtes ( double x )
+{
+ double block[2];
+ block[0] =3D x;
+ __asm__ __volatile__(
+ "lfd %%f1, 0(%0)\n\t"
+ ".long 0xec200834\n\t" /* =3D=3D frsqrtes %%f1,%%f1 */
+ "stfd %%f1, 8(%0)"
+ : /*out*/
+ : /*in*/ "b" (&block[0])
+ : /*trash*/ "memory", "fr1"
+ );
+ return block[1];
+}
+
+////////////////////////////////////////////////////////////
+
+void do_one ( char* name,=20
+ double(*f)(double),=20
+ double* args, int nargs,=20
+ char* argfmt, char* resfmt )
+{
+ int i;
+ double a, r;
+ printf("\n");
+
+ for (i =3D 0; i < nargs; i++) {
+ a =3D args[i];
+ r =3D f(a);
+ printf("%s ", name);
+ printf(argfmt, a);
+ printf(" -> ");
+ printf(resfmt, r);
+ printf("\n");
+ }
+}
+
+int main ( void )
+{
+ int nargs =3D 19;
+ double* args =3D malloc(nargs * sizeof(double));
+ args[0] =3D 0.0;
+ args[1] =3D 1.0 / 0.0; // inf
+ args[2] =3D -args[1]; // -inf
+ args[3] =3D args[2]/args[2]; // nan
+ args[4] =3D -args[3]; // -nan
+ args[5] =3D -5e100;
+ args[6] =3D -5e20;
+ args[7] =3D -501.0;
+ args[8] =3D -6.0;
+ args[9] =3D -1.0;
+ args[10] =3D -2e-20;
+ args[11] =3D -2e-200;
+ args[12] =3D 2e-200;
+ args[13] =3D 2e-20;
+ args[14] =3D 1.0;
+ args[15] =3D 6.0;
+ args[16] =3D 501.0;
+ args[17] =3D 5e20;
+ args[18] =3D 5e100;
+
+ do_one( "fre", do_fre, args, nargs, "%e", "%e");
+ do_one( "fres", do_fres, args, nargs, "%e", "%e");
+
+ do_one( "frsqrte", do_frsqrte, args, nargs, "%e", "%e");
+ do_one( "frsqrtes", do_frsqrtes, args, nargs, "%e", "%e");
+
+ free(args);
+ return 0;
+}
|
|
From: <sv...@va...> - 2006-01-29 17:08:08
|
Author: sewardj
Date: 2006-01-29 17:07:57 +0000 (Sun, 29 Jan 2006)
New Revision: 1559
Log:
Handle fre and frsqrtes. Even though the IBM docs manage to
contradict themselves about whether these insns exist or not.
Modified:
trunk/priv/guest-ppc/toIR.c
Modified: trunk/priv/guest-ppc/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc/toIR.c 2006-01-28 17:07:19 UTC (rev 1558)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-29 17:07:57 UTC (rev 1559)
@@ -5710,7 +5710,9 @@
}
DIP("fsqrts%s fr%u,fr%u\n", flag_rC ? ".":"",
frD_addr, frB_addr);
- assign( frD, roundToSgl( unop(Iop_SqrtF64, mkexpr(frB)) ));
+ // however illogically, on ppc970 this insn behaves identically
+ // to fsqrt (double-precision). So don't do round-to-single.
+ assign( frD, unop(Iop_SqrtF64, mkexpr(frB)) );
break;
=20
case 0x18: // fres (Floating Reciprocal Estimate Single, PPC32 p42=
1)
@@ -5735,6 +5737,18 @@
mkexpr(frA), mkexpr(frC)) ));
break;
=20
+ case 0x1A: // frsqrtes (Floating Recip SqRt Est Single)
+ // NOTE: POWERPC OPTIONAL, "Graphics Group" (PPC32_GX)
+ // Undocumented instruction?
+ if (frA_addr !=3D 0 || frC_addr !=3D 0) {
+ vex_printf("dis_fp_arith(ppc)(instr,frsqrte)\n");
+ return False;
+ }
+ DIP("frsqrtes%s fr%u,fr%u\n", flag_rC ? ".":"",
+ frD_addr, frB_addr);
+ assign( frD, unop(Iop_Est5FRSqrt, mkexpr(frB)) );
+ break;
+
default:
vex_printf("dis_fp_arith(ppc)(3B: opc2)\n");
return False;
@@ -5809,6 +5823,19 @@
break;
}
=20
+ case 0x18: // fre (Floating Reciprocal Estimate)
+ // NOTE: POWERPC OPTIONAL, "Graphics Group" (PPC32_GX)
+ // Note: unclear whether this insn really exists or not
+ // ppc970 doesn't have it, but POWER5 does
+ if (frA_addr !=3D 0 || frC_addr !=3D 0) {
+ vex_printf("dis_fp_arith(ppc)(instr,fres)\n");
+ return False;
+ }
+ DIP("fre%s fr%u,fr%u\n", flag_rC ? ".":"",
+ frD_addr, frB_addr);
+ assign( frD, unop(Iop_Est8FRecip, mkexpr(frB)) );
+ break;
+
case 0x19: // fmul (Floating Mult (Double Precision), PPC32 p413)
if (frB_addr !=3D 0) {
vex_printf("dis_fp_arith(ppc)(instr,fmul)\n");
@@ -8645,6 +8672,11 @@
case 0x1F: // fnmadds
if (dis_fp_multadd(theInstr)) goto decode_success;
goto decode_failure;
+
+ case 0x1A: // frsqrtes
+ if (!allow_GX) goto decode_noGX;
+ if (dis_fp_arith(theInstr)) goto decode_success;
+ goto decode_failure;
=20
default:
goto decode_failure;
@@ -8683,6 +8715,11 @@
case 0x1F: // fnmadd
if (dis_fp_multadd(theInstr)) goto decode_success;
goto decode_failure;
+
+ case 0x18: // fre
+ if (!allow_GX) goto decode_noGX;
+ if (dis_fp_arith(theInstr)) goto decode_success;
+ goto decode_failure;
=20
default:
break; // Fall through
|
|
From: <js...@ac...> - 2006-01-29 10:47:40
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-01-29 05:00:01 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 188 tests, 10 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) |
|
From: <js...@ac...> - 2006-01-29 04:03:07
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-01-29 03:30:02 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 221 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 221 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 29 03:46:49 2006 --- new.short Sun Jan 29 04:03:48 2006 *************** *** 10,12 **** ! == 221 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) --- 10,12 ---- ! == 221 tests, 7 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) *************** *** 16,18 **** memcheck/tests/x86/scalar_supp (stderr) - none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) --- 16,17 ---- |
|
From: <js...@ac...> - 2006-01-29 03:57:01
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-01-29 04:40:00 CET Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 192 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 191 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 29 04:48:26 2006 --- new.short Sun Jan 29 04:56:53 2006 *************** *** 8,10 **** ! == 191 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-cycle (stderr) --- 8,10 ---- ! == 192 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-cycle (stderr) |
|
From: Tom H. <to...@co...> - 2006-01-29 03:44:18
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-01-29 03:30:05 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 223 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-29 03:30:10
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-01-29 03:15:03 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 222 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-29 03:24:07
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-01-29 03:10:06 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 5 stderr failures, 2 stdout failures ================= memcheck/tests/leakotron (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 29 03:17:39 2006 --- new.short Sun Jan 29 03:23:50 2006 *************** *** 8,10 **** ! == 242 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) --- 8,11 ---- ! == 242 tests, 5 stderr failures, 2 stdout failures ================= ! memcheck/tests/leakotron (stdout) memcheck/tests/x86/scalar (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-29 03:19:34
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-01-29 03:05:13 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-29 03:13:51
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-01-29 03:00:02 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 242 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |