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
(16) |
2
(23) |
3
(15) |
|
4
(19) |
5
(21) |
6
(27) |
7
(18) |
8
(17) |
9
(15) |
10
(11) |
|
11
(9) |
12
(18) |
13
(26) |
14
(28) |
15
(26) |
16
(20) |
17
(27) |
|
18
(16) |
19
(40) |
20
(2) |
21
(11) |
22
(27) |
23
(24) |
24
(16) |
|
25
(10) |
26
(12) |
27
(16) |
28
(7) |
29
(6) |
30
(15) |
31
(5) |
|
From: Michael S. <ms...@xi...> - 2005-12-14 23:13:12
|
On 12/14/05, Stephen McCamant <sm...@cs...> wrote: > > When I was in need of something similar recently, I spent some time > munging the Vorbis audio encoder program oggenc and its associated > libraries into a program that compiled as a single file; it's > available at > > http://pag.csail.mit.edu/~smcc/projects/single-file-programs/ I'd been intending to suggest doing something like this, though I didn't realise someone had already done the munging-into-single-file part. Thanks! > > Here's my understanding of how it stacks up: > > JS> Essential requirements: > > JS> - must be available under an open-source license. > > Check. Mixture of GPL and BSDish. Right. I don't think that's an issue, but I'll happily relicense the oggenc parts of it if there's an issue. > > JS> - must be written in C, and work correctly on both 32- and 64-bit > JS> platforms, big- and little-endian > > Check. There's a bit of inline x86 assembly for setting the rounding > mode, but there's also a pure-C fallback. Yes. They're also only used for decoding. Encoding is more interesting as a benchmark, probably. Ripping them out for a benchmark version would be fine (does valgrind even obey these properly?). > > JS> - must be predominantly double-precision floating-point in > JS> workload > > Mixture of float, double, and some pure-integer parts (e.g., > bitpacking). After doing a s/float/double/g, it still seems to > run. The computationally expensive parts are almost entirely single precision floats, though as you note, it's safe to convert them to doubles everywhere. That would probably make it a decent match for the requirements Julian wanted. If you have any more questions about the vorbis codebase, or want some help with getting it in shape for valgrind benchmarking, please let me know (I wrote oggenc, as well as some small bits of libvorbis, and I know the code reasonably well). Mike |
|
From: Stephen M.
|
>>>>> "JS" == Julian Seward <js...@ac...> writes: JS> We are looking for a good floating point test program for the JS> suite. When I was in need of something similar recently, I spent some time munging the Vorbis audio encoder program oggenc and its associated libraries into a program that compiled as a single file; it's available at http://pag.csail.mit.edu/~smcc/projects/single-file-programs/ Here's my understanding of how it stacks up: JS> Essential requirements: JS> - must be available under an open-source license. Check. Mixture of GPL and BSDish. JS> - must be written in C, and work correctly on both 32- and 64-bit JS> platforms, big- and little-endian Check. There's a bit of inline x86 assembly for setting the rounding mode, but there's also a pure-C fallback. JS> - must be predominantly double-precision floating-point in JS> workload Mixture of float, double, and some pure-integer parts (e.g., bitpacking). After doing a s/float/double/g, it still seems to run. JS> - must have several innermost loops/hotspots. Seems that way from a brief glance with callgrind here. It does an FFT in one place and an FFT-like operation (MDCT) in another, but also a bunch of other signal processing stuff and a qsort() by fabs(). JS> A program of at least moderate complexity is desired (1000-10000 JS> lines of C). It's somewhat big: 58k lines and 1.7MB of source (though a bunch of that is static tables). A related disadvantage is that the inputs you would want to run it on would be pretty big. -- Stephen |
|
From: <sv...@va...> - 2005-12-14 22:24:49
|
Author: cerion Date: 2005-12-14 22:24:45 +0000 (Wed, 14 Dec 2005) New Revision: 5344 Log: Added fp regtest - needed some hackery to get around VEX's loss of accuracy. ------------------------------ Added test for fsqrt (fp square root) Enabled stfs(u)(x) (fp single-precision stores) - VEX implementation not great: ends up rounding twice, losing accuracy, but is good enough for this test's small fp argument array. Changed fp arg setup - no denormals (for VEX inaccuracy) All fp tests - don't print CR, XER flags, as VEX doesn't set them. 3 arg fp arith tests (fp 'multiply and add' etc) - no 'special' fp vals (for VEX inaccuracy) - zap lo byte (for VEX inaccuracy) fctiw, fctiwz (fp convert to int) - zap high 32bits of result (is undefined) Added: trunk/none/tests/ppc32/jm-fp.stderr.exp trunk/none/tests/ppc32/jm-fp.stdout.exp trunk/none/tests/ppc32/jm-fp.vgtest Modified: trunk/none/tests/ppc32/Makefile.am trunk/none/tests/ppc32/jm-insns.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 2005-12-14 17:59:35 UTC (rev 5343) +++ trunk/none/tests/ppc32/Makefile.am 2005-12-14 22:24:45 UTC (rev 5344) @@ -4,6 +4,7 @@ EXTRA_DIST =3D $(noinst_SCRIPTS) \ lsw.stderr.exp lsw.stdout.exp lsw.vgtest \ 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 \ testVMX.stderr.exp testVMX.stdout.exp testVMX.vgtest =20 Added: trunk/none/tests/ppc32/jm-fp.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/jm-fp.stderr.exp (rev = 0) +++ trunk/none/tests/ppc32/jm-fp.stderr.exp 2005-12-14 22:24:45 UTC (rev = 5344) @@ -0,0 +1,2 @@ + + Added: trunk/none/tests/ppc32/jm-fp.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/jm-fp.stdout.exp (rev = 0) +++ trunk/none/tests/ppc32/jm-fp.stdout.exp 2005-12-14 22:24:45 UTC (rev = 5344) @@ -0,0 +1,1363 @@ +PPC floating point arith insns with three args: + fsel 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fsel 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 0= 010000000000000 + fsel 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 0100094e0000300 + fsel 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 8= 0100094e0000300 + fsel 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fsel 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 0= 010000000000000 + fsel 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 0100094e0000300 + fsel 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 8= 0100094e0000300 + fsel bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fsel bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fsel bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 010000000000000 + fsel bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + + fmadd 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fmadd 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 010000000000000 + fmadd 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 018004a70000100 + fmadd 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 0= 007ff6b1d4b5e00 + fmadd 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 008000000000000 + fmadd bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 018004a70000100 + fmadd bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + + fmadds 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fmadds 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fmadds 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fmadds 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fmadds 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fmadds bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fmadds bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + + fmsub 0010000000000001, 0010000000000001, 0010000000000001 =3D> 8= 010000000000000 + fmsub 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 010000000000000 + fmsub 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 8= 007ffb58ffffe00 + fmsub 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 0180094e2b4a100 + fmsub 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 8= 018000000000000 + fmsub bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 007ffb58ffffe00 + fmsub bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + + fmsubs 0010000000000001, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fmsubs 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fmsubs 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fmsubs 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fmsubs 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fmsubs bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fmsubs bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + + fnmadd 0010000000000001, 0010000000000001, 0010000000000001 =3D> 8= 010000000000000 + fnmadd 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 010000000000000 + fnmadd 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 8= 018004a70000100 + fnmadd 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 007ff6b1d4b5e00 + fnmadd 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 8= 008000000000000 + fnmadd bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 018004a70000100 + fnmadd bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + + fnmadds 0010000000000001, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fnmadds 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fnmadds 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fnmadds 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fnmadds 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fnmadds bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fnmadds bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + + fnmsub 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fnmsub 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 010000000000000 + fnmsub 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 007ffb58ffffe00 + fnmsub 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 0= 0180094e2b4a100 + fnmsub 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 018000000000000 + fnmsub bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 007ffb58ffffe00 + fnmsub bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + + fnmsubs 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + +PPC floating point arith insns + with three args with flags update: + fsel. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fsel. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 0= 010000000000000 + fsel. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 0100094e0000300 + fsel. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 8= 0100094e0000300 + fsel. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fsel. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 0= 010000000000000 + fsel. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 0100094e0000300 + fsel. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 8= 0100094e0000300 + fsel. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fsel. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fsel. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 010000000000000 + fsel. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + + fmadd. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fmadd. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 010000000000000 + fmadd. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 018004a70000100 + fmadd. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 0= 007ff6b1d4b5e00 + fmadd. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 008000000000000 + fmadd. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fmadd. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 018004a70000100 + fmadd. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + + fmadds. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fmadds. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fmadds. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fmadds. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fmadds. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fmadds. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fmadds. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fmadds. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + + fmsub. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 8= 010000000000000 + fmsub. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 010000000000000 + fmsub. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 8= 007ffb58ffffe00 + fmsub. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 0180094e2b4a100 + fmsub. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 8= 018000000000000 + fmsub. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fmsub. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 007ffb58ffffe00 + fmsub. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + + fmsubs. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fmsubs. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fmsubs. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fmsubs. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fmsubs. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fmsubs. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fmsubs. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fmsubs. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + + fnmadd. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 8= 010000000000000 + fnmadd. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 010000000000000 + fnmadd. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 8= 018004a70000100 + fnmadd. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 007ff6b1d4b5e00 + fnmadd. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 8= 008000000000000 + fnmadd. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000300 + fnmadd. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 018004a70000100 + fnmadd. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000300 + + fnmadds. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fnmadds. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fnmadds. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fnmadds. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fnmadds. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 8= 000000000000000 + fnmadds. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> 3= fe00094e0000000 + fnmadds. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 8= 000000000000000 + fnmadds. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> 3= fe00094e0000000 + + fnmsub. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 010000000000000 + fnmsub. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 010000000000000 + fnmsub. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 007ffb58ffffe00 + fnmsub. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 0= 0180094e2b4a100 + fnmsub. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 018000000000000 + fnmsub. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000300 + fnmsub. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 007ffb58ffffe00 + fnmsub. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000300 + + fnmsubs. 0010000000000001, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs. 0010000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs. 0010000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs. 0010000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs. 3fe00094e0000359, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs. 3fe00094e0000359, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs. 3fe00094e0000359, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs. 3fe00094e0000359, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs. bfe0000000000001, 0010000000000001, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs. bfe0000000000001, 0010000000000001, bfe00094e0000359 =3D> b= fe00094e0000000 + fnmsubs. bfe0000000000001, 80100094e0000359, 0010000000000001 =3D> 0= 000000000000000 + fnmsubs. bfe0000000000001, 80100094e0000359, bfe00094e0000359 =3D> b= fe00094e0000000 + +PPC floating point arith insns with two args: + fadd 0010000000000001, 0010000000000001 =3D> 0020000000000001 + fadd 0010000000000001, 80100094e0000359 =3D> 80000094e0000358 + fadd 0010000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fadd 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fadd 3fe00094e0000359, 0010000000000001 =3D> 3fe00094e0000359 + fadd 3fe00094e0000359, 80100094e0000359 =3D> 3fe00094e0000359 + fadd 3fe00094e0000359, 7ff0000000000000 =3D> 7ff0000000000000 + fadd 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fadd bfe0000000000001, 0010000000000001 =3D> bfe0000000000001 + fadd bfe0000000000001, 80100094e0000359 =3D> bfe0000000000001 + fadd bfe0000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fadd bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fadd 8000000000000000, 0010000000000001 =3D> 0010000000000001 + fadd 8000000000000000, 80100094e0000359 =3D> 80100094e0000359 + fadd 8000000000000000, 7ff0000000000000 =3D> 7ff0000000000000 + fadd 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fadd 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffffffffff + fadd 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffffffffff + fadd 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffffffffff + fadd 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffffffffff + fadd fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fadd fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fadd fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fadd fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fadds 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fadds 0010000000000001, 80100094e0000359 =3D> 8000000000000000 + fadds 0010000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fadds 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fadds 3fe00094e0000359, 0010000000000001 =3D> 3fe00094e0000000 + fadds 3fe00094e0000359, 80100094e0000359 =3D> 3fe00094e0000000 + fadds 3fe00094e0000359, 7ff0000000000000 =3D> 7ff0000000000000 + fadds 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fadds bfe0000000000001, 0010000000000001 =3D> bfe0000000000000 + fadds bfe0000000000001, 80100094e0000359 =3D> bfe0000000000000 + fadds bfe0000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fadds bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fadds 8000000000000000, 0010000000000001 =3D> 0000000000000000 + fadds 8000000000000000, 80100094e0000359 =3D> 8000000000000000 + fadds 8000000000000000, 7ff0000000000000 =3D> 7ff0000000000000 + fadds 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fadds 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffe0000000 + fadds 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffe0000000 + fadds 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffe0000000 + fadds 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffe0000000 + fadds fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fadds fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fadds fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fadds fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fsub 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fsub 0010000000000001, 80100094e0000359 =3D> 0020004a700001ad + fsub 0010000000000001, 7ff0000000000000 =3D> fff0000000000000 + fsub 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fsub 3fe00094e0000359, 0010000000000001 =3D> 3fe00094e0000359 + fsub 3fe00094e0000359, 80100094e0000359 =3D> 3fe00094e0000359 + fsub 3fe00094e0000359, 7ff0000000000000 =3D> fff0000000000000 + fsub 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fsub bfe0000000000001, 0010000000000001 =3D> bfe0000000000001 + fsub bfe0000000000001, 80100094e0000359 =3D> bfe0000000000001 + fsub bfe0000000000001, 7ff0000000000000 =3D> fff0000000000000 + fsub bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fsub 8000000000000000, 0010000000000001 =3D> 8010000000000001 + fsub 8000000000000000, 80100094e0000359 =3D> 00100094e0000359 + fsub 8000000000000000, 7ff0000000000000 =3D> fff0000000000000 + fsub 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fsub 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffffffffff + fsub 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffffffffff + fsub 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffffffffff + fsub 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffffffffff + fsub fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fsub fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fsub fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fsub fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fsubs 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fsubs 0010000000000001, 80100094e0000359 =3D> 0000000000000000 + fsubs 0010000000000001, 7ff0000000000000 =3D> fff0000000000000 + fsubs 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fsubs 3fe00094e0000359, 0010000000000001 =3D> 3fe00094e0000000 + fsubs 3fe00094e0000359, 80100094e0000359 =3D> 3fe00094e0000000 + fsubs 3fe00094e0000359, 7ff0000000000000 =3D> fff0000000000000 + fsubs 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fsubs bfe0000000000001, 0010000000000001 =3D> bfe0000000000000 + fsubs bfe0000000000001, 80100094e0000359 =3D> bfe0000000000000 + fsubs bfe0000000000001, 7ff0000000000000 =3D> fff0000000000000 + fsubs bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fsubs 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fsubs 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fsubs 8000000000000000, 7ff0000000000000 =3D> fff0000000000000 + fsubs 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fsubs 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffe0000000 + fsubs 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffe0000000 + fsubs 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffe0000000 + fsubs 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffe0000000 + fsubs fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fsubs fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fsubs fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fsubs fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fmul 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fmul 0010000000000001, 80100094e0000359 =3D> 8000000000000000 + fmul 0010000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fmul 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fmul 3fe00094e0000359, 0010000000000001 =3D> 0008004a700001ad + fmul 3fe00094e0000359, 80100094e0000359 =3D> 80080094e2b4a179 + fmul 3fe00094e0000359, 7ff0000000000000 =3D> 7ff0000000000000 + fmul 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fmul bfe0000000000001, 0010000000000001 =3D> 8008000000000001 + fmul bfe0000000000001, 80100094e0000359 =3D> 0008004a700001ad + fmul bfe0000000000001, 7ff0000000000000 =3D> fff0000000000000 + fmul bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fmul 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fmul 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fmul 8000000000000000, 7ff0000000000000 =3D> 7ff8000000000000 + fmul 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fmul 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffffffffff + fmul 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffffffffff + fmul 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffffffffff + fmul 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffffffffff + fmul fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fmul fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fmul fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fmul fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fmuls 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fmuls 0010000000000001, 80100094e0000359 =3D> 8000000000000000 + fmuls 0010000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fmuls 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fmuls 3fe00094e0000359, 0010000000000001 =3D> 0000000000000000 + fmuls 3fe00094e0000359, 80100094e0000359 =3D> 8000000000000000 + fmuls 3fe00094e0000359, 7ff0000000000000 =3D> 7ff0000000000000 + fmuls 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fmuls bfe0000000000001, 0010000000000001 =3D> 8000000000000000 + fmuls bfe0000000000001, 80100094e0000359 =3D> 0000000000000000 + fmuls bfe0000000000001, 7ff0000000000000 =3D> fff0000000000000 + fmuls bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fmuls 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fmuls 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fmuls 8000000000000000, 7ff0000000000000 =3D> 7ff8000000000000 + fmuls 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fmuls 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffe0000000 + fmuls 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffe0000000 + fmuls 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffe0000000 + fmuls 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffe0000000 + fmuls fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fmuls fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fmuls fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fmuls fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fdiv 0010000000000001, 0010000000000001 =3D> 3ff0000000000000 + fdiv 0010000000000001, 80100094e0000359 =3D> bfeffed64ad20d22 + fdiv 0010000000000001, 7ff0000000000000 =3D> 0000000000000000 + fdiv 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fdiv 3fe00094e0000359, 0010000000000001 =3D> 7fc00094e0000358 + fdiv 3fe00094e0000359, 80100094e0000359 =3D> ffc0000000000000 + fdiv 3fe00094e0000359, 7ff0000000000000 =3D> 0000000000000000 + fdiv 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fdiv bfe0000000000001, 0010000000000001 =3D> ffc0000000000000 + fdiv bfe0000000000001, 80100094e0000359 =3D> 7fbffed64ad20d22 + fdiv bfe0000000000001, 7ff0000000000000 =3D> 8000000000000000 + fdiv bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fdiv 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fdiv 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fdiv 8000000000000000, 7ff0000000000000 =3D> 8000000000000000 + fdiv 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fdiv 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffffffffff + fdiv 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffffffffff + fdiv 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffffffffff + fdiv 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffffffffff + fdiv fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fdiv fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fdiv fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fdiv fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fdivs 0010000000000001, 0010000000000001 =3D> 3ff0000000000000 + fdivs 0010000000000001, 80100094e0000359 =3D> bfeffed640000000 + fdivs 0010000000000001, 7ff0000000000000 =3D> 0000000000000000 + fdivs 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fdivs 3fe00094e0000359, 0010000000000001 =3D> 7ff0000000000000 + fdivs 3fe00094e0000359, 80100094e0000359 =3D> fff0000000000000 + fdivs 3fe00094e0000359, 7ff0000000000000 =3D> 0000000000000000 + fdivs 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fdivs bfe0000000000001, 0010000000000001 =3D> fff0000000000000 + fdivs bfe0000000000001, 80100094e0000359 =3D> 7ff0000000000000 + fdivs bfe0000000000001, 7ff0000000000000 =3D> 8000000000000000 + fdivs bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fdivs 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fdivs 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fdivs 8000000000000000, 7ff0000000000000 =3D> 8000000000000000 + fdivs 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fdivs 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffe0000000 + fdivs 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffe0000000 + fdivs 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffe0000000 + fdivs 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffe0000000 + fdivs fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fdivs fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fdivs fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fdivs fff8000000000000, fff8000000000000 =3D> fff8000000000000 + +PPC floating point arith insns + with two args with flags update: + fadd. 0010000000000001, 0010000000000001 =3D> 0020000000000001 + fadd. 0010000000000001, 80100094e0000359 =3D> 80000094e0000358 + fadd. 0010000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fadd. 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fadd. 3fe00094e0000359, 0010000000000001 =3D> 3fe00094e0000359 + fadd. 3fe00094e0000359, 80100094e0000359 =3D> 3fe00094e0000359 + fadd. 3fe00094e0000359, 7ff0000000000000 =3D> 7ff0000000000000 + fadd. 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fadd. bfe0000000000001, 0010000000000001 =3D> bfe0000000000001 + fadd. bfe0000000000001, 80100094e0000359 =3D> bfe0000000000001 + fadd. bfe0000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fadd. bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fadd. 8000000000000000, 0010000000000001 =3D> 0010000000000001 + fadd. 8000000000000000, 80100094e0000359 =3D> 80100094e0000359 + fadd. 8000000000000000, 7ff0000000000000 =3D> 7ff0000000000000 + fadd. 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fadd. 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffffffffff + fadd. 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffffffffff + fadd. 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffffffffff + fadd. 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffffffffff + fadd. fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fadd. fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fadd. fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fadd. fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fadds. 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fadds. 0010000000000001, 80100094e0000359 =3D> 8000000000000000 + fadds. 0010000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fadds. 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fadds. 3fe00094e0000359, 0010000000000001 =3D> 3fe00094e0000000 + fadds. 3fe00094e0000359, 80100094e0000359 =3D> 3fe00094e0000000 + fadds. 3fe00094e0000359, 7ff0000000000000 =3D> 7ff0000000000000 + fadds. 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fadds. bfe0000000000001, 0010000000000001 =3D> bfe0000000000000 + fadds. bfe0000000000001, 80100094e0000359 =3D> bfe0000000000000 + fadds. bfe0000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fadds. bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fadds. 8000000000000000, 0010000000000001 =3D> 0000000000000000 + fadds. 8000000000000000, 80100094e0000359 =3D> 8000000000000000 + fadds. 8000000000000000, 7ff0000000000000 =3D> 7ff0000000000000 + fadds. 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fadds. 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffe0000000 + fadds. 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffe0000000 + fadds. 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffe0000000 + fadds. 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffe0000000 + fadds. fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fadds. fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fadds. fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fadds. fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fsub. 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fsub. 0010000000000001, 80100094e0000359 =3D> 0020004a700001ad + fsub. 0010000000000001, 7ff0000000000000 =3D> fff0000000000000 + fsub. 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fsub. 3fe00094e0000359, 0010000000000001 =3D> 3fe00094e0000359 + fsub. 3fe00094e0000359, 80100094e0000359 =3D> 3fe00094e0000359 + fsub. 3fe00094e0000359, 7ff0000000000000 =3D> fff0000000000000 + fsub. 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fsub. bfe0000000000001, 0010000000000001 =3D> bfe0000000000001 + fsub. bfe0000000000001, 80100094e0000359 =3D> bfe0000000000001 + fsub. bfe0000000000001, 7ff0000000000000 =3D> fff0000000000000 + fsub. bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fsub. 8000000000000000, 0010000000000001 =3D> 8010000000000001 + fsub. 8000000000000000, 80100094e0000359 =3D> 00100094e0000359 + fsub. 8000000000000000, 7ff0000000000000 =3D> fff0000000000000 + fsub. 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fsub. 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffffffffff + fsub. 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffffffffff + fsub. 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffffffffff + fsub. 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffffffffff + fsub. fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fsub. fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fsub. fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fsub. fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fsubs. 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fsubs. 0010000000000001, 80100094e0000359 =3D> 0000000000000000 + fsubs. 0010000000000001, 7ff0000000000000 =3D> fff0000000000000 + fsubs. 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fsubs. 3fe00094e0000359, 0010000000000001 =3D> 3fe00094e0000000 + fsubs. 3fe00094e0000359, 80100094e0000359 =3D> 3fe00094e0000000 + fsubs. 3fe00094e0000359, 7ff0000000000000 =3D> fff0000000000000 + fsubs. 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fsubs. bfe0000000000001, 0010000000000001 =3D> bfe0000000000000 + fsubs. bfe0000000000001, 80100094e0000359 =3D> bfe0000000000000 + fsubs. bfe0000000000001, 7ff0000000000000 =3D> fff0000000000000 + fsubs. bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fsubs. 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fsubs. 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fsubs. 8000000000000000, 7ff0000000000000 =3D> fff0000000000000 + fsubs. 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fsubs. 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffe0000000 + fsubs. 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffe0000000 + fsubs. 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffe0000000 + fsubs. 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffe0000000 + fsubs. fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fsubs. fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fsubs. fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fsubs. fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fmul. 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fmul. 0010000000000001, 80100094e0000359 =3D> 8000000000000000 + fmul. 0010000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fmul. 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fmul. 3fe00094e0000359, 0010000000000001 =3D> 0008004a700001ad + fmul. 3fe00094e0000359, 80100094e0000359 =3D> 80080094e2b4a179 + fmul. 3fe00094e0000359, 7ff0000000000000 =3D> 7ff0000000000000 + fmul. 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fmul. bfe0000000000001, 0010000000000001 =3D> 8008000000000001 + fmul. bfe0000000000001, 80100094e0000359 =3D> 0008004a700001ad + fmul. bfe0000000000001, 7ff0000000000000 =3D> fff0000000000000 + fmul. bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fmul. 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fmul. 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fmul. 8000000000000000, 7ff0000000000000 =3D> 7ff8000000000000 + fmul. 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fmul. 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffffffffff + fmul. 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffffffffff + fmul. 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffffffffff + fmul. 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffffffffff + fmul. fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fmul. fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fmul. fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fmul. fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fmuls. 0010000000000001, 0010000000000001 =3D> 0000000000000000 + fmuls. 0010000000000001, 80100094e0000359 =3D> 8000000000000000 + fmuls. 0010000000000001, 7ff0000000000000 =3D> 7ff0000000000000 + fmuls. 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fmuls. 3fe00094e0000359, 0010000000000001 =3D> 0000000000000000 + fmuls. 3fe00094e0000359, 80100094e0000359 =3D> 8000000000000000 + fmuls. 3fe00094e0000359, 7ff0000000000000 =3D> 7ff0000000000000 + fmuls. 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fmuls. bfe0000000000001, 0010000000000001 =3D> 8000000000000000 + fmuls. bfe0000000000001, 80100094e0000359 =3D> 0000000000000000 + fmuls. bfe0000000000001, 7ff0000000000000 =3D> fff0000000000000 + fmuls. bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fmuls. 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fmuls. 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fmuls. 8000000000000000, 7ff0000000000000 =3D> 7ff8000000000000 + fmuls. 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fmuls. 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffe0000000 + fmuls. 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffe0000000 + fmuls. 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffe0000000 + fmuls. 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffe0000000 + fmuls. fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fmuls. fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fmuls. fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fmuls. fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fdiv. 0010000000000001, 0010000000000001 =3D> 3ff0000000000000 + fdiv. 0010000000000001, 80100094e0000359 =3D> bfeffed64ad20d22 + fdiv. 0010000000000001, 7ff0000000000000 =3D> 0000000000000000 + fdiv. 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fdiv. 3fe00094e0000359, 0010000000000001 =3D> 7fc00094e0000358 + fdiv. 3fe00094e0000359, 80100094e0000359 =3D> ffc0000000000000 + fdiv. 3fe00094e0000359, 7ff0000000000000 =3D> 0000000000000000 + fdiv. 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fdiv. bfe0000000000001, 0010000000000001 =3D> ffc0000000000000 + fdiv. bfe0000000000001, 80100094e0000359 =3D> 7fbffed64ad20d22 + fdiv. bfe0000000000001, 7ff0000000000000 =3D> 8000000000000000 + fdiv. bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fdiv. 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fdiv. 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fdiv. 8000000000000000, 7ff0000000000000 =3D> 8000000000000000 + fdiv. 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fdiv. 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffffffffff + fdiv. 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffffffffff + fdiv. 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffffffffff + fdiv. 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffffffffff + fdiv. fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fdiv. fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fdiv. fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fdiv. fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fdivs. 0010000000000001, 0010000000000001 =3D> 3ff0000000000000 + fdivs. 0010000000000001, 80100094e0000359 =3D> bfeffed640000000 + fdivs. 0010000000000001, 7ff0000000000000 =3D> 0000000000000000 + fdivs. 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fdivs. 3fe00094e0000359, 0010000000000001 =3D> 7ff0000000000000 + fdivs. 3fe00094e0000359, 80100094e0000359 =3D> fff0000000000000 + fdivs. 3fe00094e0000359, 7ff0000000000000 =3D> 0000000000000000 + fdivs. 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fdivs. bfe0000000000001, 0010000000000001 =3D> fff0000000000000 + fdivs. bfe0000000000001, 80100094e0000359 =3D> 7ff0000000000000 + fdivs. bfe0000000000001, 7ff0000000000000 =3D> 8000000000000000 + fdivs. bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fdivs. 8000000000000000, 0010000000000001 =3D> 8000000000000000 + fdivs. 8000000000000000, 80100094e0000359 =3D> 0000000000000000 + fdivs. 8000000000000000, 7ff0000000000000 =3D> 8000000000000000 + fdivs. 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fdivs. 7ff7ffffffffffff, 0010000000000001 =3D> 7fffffffe0000000 + fdivs. 7ff7ffffffffffff, 80100094e0000359 =3D> 7fffffffe0000000 + fdivs. 7ff7ffffffffffff, 7ff0000000000000 =3D> 7fffffffe0000000 + fdivs. 7ff7ffffffffffff, fff8000000000000 =3D> 7fffffffe0000000 + fdivs. fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fdivs. fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fdivs. fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fdivs. fff8000000000000, fff8000000000000 =3D> fff8000000000000 + +PPC floating point compare insns (two args): + fcmpo 0010000000000001, 0010000000000001 =3D> fff8000000000000 + fcmpo 0010000000000001, 80100094e0000359 =3D> fff8000000000000 + fcmpo 0010000000000001, 7ff0000000000000 =3D> fff8000000000000 + fcmpo 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fcmpo 3fe00094e0000359, 0010000000000001 =3D> fff8000000000000 + fcmpo 3fe00094e0000359, 80100094e0000359 =3D> fff8000000000000 + fcmpo 3fe00094e0000359, 7ff0000000000000 =3D> fff8000000000000 + fcmpo 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fcmpo bfe0000000000001, 0010000000000001 =3D> fff8000000000000 + fcmpo bfe0000000000001, 80100094e0000359 =3D> fff8000000000000 + fcmpo bfe0000000000001, 7ff0000000000000 =3D> fff8000000000000 + fcmpo bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fcmpo 8000000000000000, 0010000000000001 =3D> fff8000000000000 + fcmpo 8000000000000000, 80100094e0000359 =3D> fff8000000000000 + fcmpo 8000000000000000, 7ff0000000000000 =3D> fff8000000000000 + fcmpo 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fcmpo 7ff7ffffffffffff, 0010000000000001 =3D> fff8000000000000 + fcmpo 7ff7ffffffffffff, 80100094e0000359 =3D> fff8000000000000 + fcmpo 7ff7ffffffffffff, 7ff0000000000000 =3D> fff8000000000000 + fcmpo 7ff7ffffffffffff, fff8000000000000 =3D> fff8000000000000 + fcmpo fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fcmpo fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fcmpo fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fcmpo fff8000000000000, fff8000000000000 =3D> fff8000000000000 + + fcmpu 0010000000000001, 0010000000000001 =3D> fff8000000000000 + fcmpu 0010000000000001, 80100094e0000359 =3D> fff8000000000000 + fcmpu 0010000000000001, 7ff0000000000000 =3D> fff8000000000000 + fcmpu 0010000000000001, fff8000000000000 =3D> fff8000000000000 + fcmpu 3fe00094e0000359, 0010000000000001 =3D> fff8000000000000 + fcmpu 3fe00094e0000359, 80100094e0000359 =3D> fff8000000000000 + fcmpu 3fe00094e0000359, 7ff0000000000000 =3D> fff8000000000000 + fcmpu 3fe00094e0000359, fff8000000000000 =3D> fff8000000000000 + fcmpu bfe0000000000001, 0010000000000001 =3D> fff8000000000000 + fcmpu bfe0000000000001, 80100094e0000359 =3D> fff8000000000000 + fcmpu bfe0000000000001, 7ff0000000000000 =3D> fff8000000000000 + fcmpu bfe0000000000001, fff8000000000000 =3D> fff8000000000000 + fcmpu 8000000000000000, 0010000000000001 =3D> fff8000000000000 + fcmpu 8000000000000000, 80100094e0000359 =3D> fff8000000000000 + fcmpu 8000000000000000, 7ff0000000000000 =3D> fff8000000000000 + fcmpu 8000000000000000, fff8000000000000 =3D> fff8000000000000 + fcmpu 7ff7ffffffffffff, 0010000000000001 =3D> fff8000000000000 + fcmpu 7ff7ffffffffffff, 80100094e0000359 =3D> fff8000000000000 + fcmpu 7ff7ffffffffffff, 7ff0000000000000 =3D> fff8000000000000 + fcmpu 7ff7ffffffffffff, fff8000000000000 =3D> fff8000000000000 + fcmpu fff8000000000000, 0010000000000001 =3D> fff8000000000000 + fcmpu fff8000000000000, 80100094e0000359 =3D> fff8000000000000 + fcmpu fff8000000000000, 7ff0000000000000 =3D> fff8000000000000 + fcmpu fff8000000000000, fff8000000000000 =3D> fff8000000000000 + +PPC floating point arith insns with one arg: + frsp 0010000000000001 =3D> 0000000000000000 + frsp 00100094e0000359 =3D> 0000000000000000 + frsp 3fe0000000000001 =3D> 3fe0000000000000 + frsp 3fe00094e0000359 =3D> 3fe00094e0000000 + frsp 8010000000000001 =3D> 8000000000000000 + frsp 80100094e0000359 =3D> 8000000000000000 + frsp bfe0000000000001 =3D> bfe0000000000000 + frsp bfe00094e0000359 =3D> bfe00094e0000000 + frsp 0000000000000000 =3D> 0000000000000000 + frsp 8000000000000000 =3D> 8000000000000000 + frsp 7ff0000000000000 =3D> 7ff0000000000000 + frsp fff0000000000000 =3D> fff0000000000000 + frsp 7ff7ffffffffffff =3D> 7fffffffe0000000 + frsp fff7ffffffffffff =3D> ffffffffe0000000 + frsp 7ff8000000000000 =3D> 7ff8000000000000 + frsp fff8000000000000 =3D> fff8000000000000 + + fctiw 0010000000000001 =3D> 0000000000000000 + fctiw 00100094e0000359 =3D> 0000000000000000 + fctiw 3fe0000000000001 =3D> 0000000000000001 + fctiw 3fe00094e0000359 =3D> 0000000000000001 + fctiw 8010000000000001 =3D> 0000000000000000 + fctiw 80100094e0000359 =3D> 0000000000000000 + fctiw bfe0000000000001 =3D> 00000000ffffffff + fctiw bfe00094e0000359 =3D> 00000000ffffffff + fctiw 0000000000000000 =3D> 0000000000000000 + fctiw 8000000000000000 =3D> 0000000000000000 + fctiw 7ff0000000000000 =3D> 000000007fffffff + fctiw fff0000000000000 =3D> 0000000080000000 + fctiw 7ff7ffffffffffff =3D> 0000000080000000 + fctiw fff7ffffffffffff =3D> 0000000080000000 + fctiw 7ff8000000000000 =3D> 0000000080000000 + fctiw fff8000000000000 =3D> 0000000080000000 + + fctiwz 0010000000000001 =3D> 0000000000000000 + fctiwz 00100094e0000359 =3D> 0000000000000000 + fctiwz 3fe0000000000001 =3D> 0000000000000000 + fctiwz 3fe00094e0000359 =3D> 0000000000000000 + fctiwz 8010000000000001 =3D> 0000000000000000 + fctiwz 80100094e0000359 =3D> 0000000000000000 + fctiwz bfe0000000000001 =3D> 0000000000000000 + fctiwz bfe00094e0000359 =3D> 0000000000000000 + fctiwz 0000000000000000 =3D> 0000000000000000 + fctiwz 8000000000000000 =3D> 0000000000000000 + fctiwz 7ff0000000000000 =3D> 000000007fffffff + fctiwz fff0000000000000 =3D> 0000000080000000 + fctiwz 7ff7ffffffffffff =3D> 0000000080000000 + fctiwz fff7ffffffffffff =3D> 0000000080000000 + fctiwz 7ff8000000000000 =3D> 0000000080000000 + fctiwz fff8000000000000 =3D> 0000000080000000 + + fmr 0010000000000001 =3D> 0010000000000001 + fmr 00100094e0000359 =3D> 00100094e0000359 + fmr 3fe0000000000001 =3D> 3fe0000000000001 + fmr 3fe00094e0000359 =3D> 3fe00094e0000359 + fmr 8010000000000001 =3D> 8010000000000001 + fmr 80100094e0000359 =3D> 80100094e0000359 + fmr bfe0000000000001 =3D> bfe0000000000001 + fmr bfe00094e0000359 =3D> bfe00094e0000359 + fmr 0000000000000000 =3D> 0000000000000000 + fmr 8000000000000000 =3D> 8000000000000000 + fmr 7ff0000000000000 =3D> 7ff0000000000000 + fmr fff0000000000000 =3D> fff0000000000000 + fmr 7ff7ffffffffffff =3D> 7ff7ffffffffffff + fmr fff7ffffffffffff =3D> fff7ffffffffffff + fmr 7ff8000000000000 =3D> 7ff8000000000000 + fmr fff8000000000000 =3D> fff8000000000000 + + fneg 0010000000000001 =3D> 8010000000000001 + fneg 00100094e0000359 =3D> 80100094e0000359 + fneg 3fe0000000000001 =3D> bfe0000000000001 + fneg 3fe00094e0000359 =3D> bfe00094e0000359 + fneg 8010000000000001 =3D> 0010000000000001 + fneg 80100094e0000359 =3D> 00100094e0000359 + fneg bfe0000000000001 =3D> 3fe0000000000001 + fneg bfe00094e0000359 =3D> 3fe00094e0000359 + fneg 0000000000000000 =3D> 8000000000000000 + fneg 8000000000000000 =3D> 0000000000000000 + fneg 7ff0000000000000 =3D> fff0000000000000 + fneg fff0000000000000 =3D> 7ff0000000000000 + fneg 7ff7ffffffffffff =3D> fff7ffffffffffff + fneg fff7ffffffffffff =3D> 7ff7ffffffffffff + fneg 7ff8000000000000 =3D> fff8000000000000 + fneg fff8000000000000 =3D> 7ff8000000000000 + + fabs 0010000000000001 =3D> 0010000000000001 + fabs 00100094e0000359 =3D> 00100094e0000359 + fabs 3fe0000000000001 =3D> 3fe0000000000001 + fabs 3fe00094e0000359 =3D> 3fe00094e0000359 + fabs 8010000000000001 =3D> 0010000000000001 + fabs 80100094e0000359 =3D> 00100094e0000359 + fabs bfe0000000000001 =3D> 3fe0000000000001 + fabs bfe00094e0000359 =3D> 3fe00094e0000359 + fabs 0000000000000000 =3D> 0000000000000000 + fabs 8000000000000000 =3D> 0000000000000000 + fabs 7ff0000000000000 =3D> 7ff0000000000000 + fabs fff0000000000000 =3D> 7ff0000000000000 + fabs 7ff7ffffffffffff =3D> 7ff7ffffffffffff + fabs fff7ffffffffffff =3D> 7ff7ffffffffffff + fabs 7ff8000000000000 =3D> 7ff8000000000000 + fabs fff8000000000000 =3D> 7ff8000000000000 + + fnabs 0010000000000001 =3D> 8010000000000001 + fnabs 00100094e0000359 =3D> 80100094e0000359 + fnabs 3fe0000000000001 =3D> bfe0000000000001 + fnabs 3fe00094e0000359 =3D> bfe00094e0000359 + fnabs 8010000000000001 =3D> 8010000000000001 + fnabs 80100094e0000359 =3D> 80100094e0000359 + fnabs bfe0000000000001 =3D> bfe0000000000001 + fnabs bfe00094e0000359 =3D> bfe00094e0000359 + fnabs 0000000000000000 =3D> 8000000000000000 + fnabs 8000000000000000 =3D> 8000000000000000 + fnabs 7ff0000000000000 =3D> fff0000000000000 + fnabs fff0000000000000 =3D> fff0000000000000 + fnabs 7ff7ffffffffffff =3D> fff7ffffffffffff + fnabs fff7ffffffffffff =3D> fff7ffffffffffff + fnabs 7ff8000000000000 =3D> fff8000000000000 + fnabs fff8000000000000 =3D> fff8000000000000 + + fsqrt 0010000000000001 =3D> 2000000000000000 + fsqrt 00100094e0000359 =3D> 2000004a6f52dd4a + fsqrt 3fe0000000000001 =3D> 3fe6a09e667f3bcd + fsqrt 3fe00094e0000359 =3D> 3fe6a107aacb50df + fsqrt 8010000000000001 =3D> 7ff8000000000000 + fsqrt 80100094e0000359 =3D> 7ff8000000000000 + fsqrt bfe0000000000001 =3D> 7ff8000000000000 + fsqrt bfe00094e0000359 =3D> 7ff8000000000000 + fsqrt 0000000000000000 =3D> 0000000000000000 + fsqrt 8000000000000000 =3D> 8000000000000000 + fsqrt 7ff0000000000000 =3D> 7ff0000000000000 + fsqrt fff0000000000000 =3D> 7ff8000000000000 + fsqrt 7ff7ffffffffffff =3D> 7fffffffffffffff + fsqrt fff7ffffffffffff =3D> ffffffffffffffff + fsqrt 7ff8000000000000 =3D> 7ff8000000000000 + fsqrt fff8000000000000 =3D> fff8000000000000 + +PPC floating point arith insns + with one arg with flags update: + frsp. 0010000000000001 =3D> 0000000000000000 + frsp. 00100094e0000359 =3D> 0000000000000000 + frsp. 3fe0000000000001 =3D> 3fe0000000000000 + frsp. 3fe00094e0000359 =3D> 3fe00094e0000000 + frsp. 8010000000000001 =3D> 8000000000000000 + frsp. 80100094e0000359 =3D> 8000000000000000 + frsp. bfe0000000000001 =3D> bfe0000000000000 + frsp. bfe00094e0000359 =3D> bfe00094e0000000 + frsp. 0000000000000000 =3D> 0000000000000000 + frsp. 8000000000000000 =3D> 8000000000000000 + frsp. 7ff000000000... [truncated message content] |
|
From: <sv...@va...> - 2005-12-14 22:01:07
|
Author: cerion
Date: 2005-12-14 22:00:53 +0000 (Wed, 14 Dec 2005)
New Revision: 1492
Log:
Enable fsqrt
Document store fp single-precision problem
Modified:
trunk/priv/guest-ppc32/toIR.c
Modified: trunk/priv/guest-ppc32/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-ppc32/toIR.c 2005-12-14 10:22:25 UTC (rev 1491)
+++ trunk/priv/guest-ppc32/toIR.c 2005-12-14 22:00:53 UTC (rev 1492)
@@ -5584,6 +5584,10 @@
case 0x34: // stfs (Store Float Single, PPC32 p518)
DIP("stfs fr%u,%d(r%u)\n", frS_addr, simm16, rA_addr);
assign( EA, ea_rAor0_simm(rA_addr, simm16) );
+ /* TODO
+ This implementation ends up rounding twice, losing accuracy.
+ - first via F64toF32, and then by the backend fp store (stfs)
+ */
storeBE( mkexpr(EA),
binop(Iop_F64toF32, get_roundingmode(), mkexpr(frS)) );
break;
@@ -5595,6 +5599,7 @@
}
DIP("stfsu fr%u,%d(r%u)\n", frS_addr, simm16, rA_addr);
assign( EA, ea_rA_simm(rA_addr, simm16) );
+ /* This implementation loses accuracy - see note for stfs */
storeBE( mkexpr(EA),
binop(Iop_F64toF32, get_roundingmode(), mkexpr(frS)) );
putIReg( rA_addr, mkexpr(EA) );
@@ -5627,6 +5632,7 @@
case 0x297: // stfsx (Store Float Single Indexed, PPC32 p521)
DIP("stfsx fr%u,r%u,r%u\n", frS_addr, rA_addr, rB_addr);
assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
+ /* This implementation loses accuracy - see note for stfs */
storeBE( mkexpr(EA),
binop(Iop_F64toF32, get_roundingmode(), mkexpr(frS)) )=
;
break;
@@ -5638,6 +5644,7 @@
}
DIP("stfsux fr%u,r%u,r%u\n", frS_addr, rA_addr, rB_addr);
assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
+ /* This implementation loses accuracy - see note for stfs */
storeBE( mkexpr(EA),
binop(Iop_F64toF32, get_roundingmode(), mkexpr(frS)) )=
;
putIReg( rA_addr, mkexpr(EA) );
@@ -5810,15 +5817,15 @@
assign( frD, binop( Iop_AddF64, mkexpr(frA), mkexpr(frB) ) );
break;
=20
-//zz case 0x16: // fsqrt (Floating SqRt (Double-Precision), PPC32 =
p427)
-//zz if (frA_addr !=3D 0 || frC_addr !=3D 0) {
-//zz vex_printf("dis_fp_arith(PPC32)(instr,fsqrt)\n");
-//zz return False;
-//zz }
-//zz DIP("fsqrt%s fr%u,fr%u\n", flag_rC ? "." : "",
-//zz frD_addr, frB_addr);
-//zz assign( frD, unop( Iop_SqrtF64, mkexpr(frB) ) );
-//zz break;
+ case 0x16: // fsqrt (Floating SqRt (Double-Precision), PPC32 p427)
+ if (frA_addr !=3D 0 || frC_addr !=3D 0) {
+ vex_printf("dis_fp_arith(PPC32)(instr,fsqrt)\n");
+ return False;
+ }
+ DIP("fsqrt%s fr%u,fr%u\n", flag_rC ? "." : "",
+ frD_addr, frB_addr);
+ assign( frD, unop( Iop_SqrtF64, mkexpr(frB) ) );
+ break;
=20
case 0x17: { // fsel (Floating Select, PPC32 p426)
IRTemp cc =3D newTemp(Ity_I32);
|
|
From: Julian S. <js...@ac...> - 2005-12-14 20:31:43
|
On Wednesday 14 December 2005 20:26, Nicholas Nethercote wrote: > On Wed, 14 Dec 2005, Julian Seward wrote: > >> wouldn't that be a good candidate: > >> http://www.fftw.org/ > > We already have an FFT benchmark, would the FFTW program also be dominated > by a single loop? Quite possibly, yes (at a guess). J |
|
From: Nicholas N. <nj...@cs...> - 2005-12-14 20:26:23
|
On Wed, 14 Dec 2005, Julian Seward wrote: >> wouldn't that be a good candidate: >> http://www.fftw.org/ > > Maybe. The problem is we don't really have much time > to investigate whether it could be turned into a suitable > standalone, portable benchmark. Can you do that? > >> Otherwise I could code you a little mandelbrot-generator. > > Well, that would probably fail the ... > >>> - must have several innermost loops/hotspots. A program of at >>> least moderate complexity is desired (1000-10000 lines of C). >>> Our existing FP benchmarks are synthetic benchmarks and do not >>> meet this requirement. > > ... requirement. We already have an FFT benchmark, would the FFTW program also be dominated by a single loop? Nick |
|
From: Julian S. <js...@ac...> - 2005-12-14 20:21:41
|
On Wednesday 14 December 2005 20:17, Stefan Kost wrote: > Hi Julian, > > wouldn't that be a good candidate: > http://www.fftw.org/ Maybe. The problem is we don't really have much time to investigate whether it could be turned into a suitable standalone, portable benchmark. Can you do that? > Otherwise I could code you a little mandelbrot-generator. Well, that would probably fail the ... > > - must have several innermost loops/hotspots. A program of at > > least moderate complexity is desired (1000-10000 lines of C). > > Our existing FP benchmarks are synthetic benchmarks and do not > > meet this requirement. ... requirement. J |
|
From: Stefan K. <en...@ho...> - 2005-12-14 20:03:35
|
Hi Julian, wouldn't that be a good candidate: http://www.fftw.org/ Otherwise I could code you a little mandelbrot-generator. Stefan Julian Seward wrote: > One of the Valgrind developers (Nick) has recently started > putting together a collection of programs intended to measure > Valgrind's performance (in perf/ if you have a recent svn checkout). > > This is a good thing. For the first time it allows us to > systematically measure Valgrind's performance across a range > of different program types and different CPUs. Even at this > early stage it has uncovered some performance problems, the > fixes for which will be in 3.2.0. > > We are looking for a good floating point test program for the > suite. There are already two FP programs in it, but neither meets > the following set of requirements. If you know of a program > which does meet them, and especially if you have the time/expertise > to help modify an existing program to meet them, we would be pleased > to hear from you. > > Essential requirements: > > - must be available under an open-source license. Doesn't have > to be GPL since is not being linked into Valgrind. > > - must be written in C, and work correctly on both 32- and 64-bit > platforms, big- and little-endian > > - must be predominantly double-precision floating-point in workload > > - must have several innermost loops/hotspots. A program of at > least moderate complexity is desired (1000-10000 lines of C). > Our existing FP benchmarks are synthetic benchmarks and do not > meet this requirement. > > Perhaps something like a simple raytracer, fluid dynamics code, > or audio codec would be suitable. > > J > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users > |
|
From: <sv...@va...> - 2005-12-14 17:59:45
|
Author: cerion Date: 2005-12-14 17:59:35 +0000 (Wed, 14 Dec 2005) New Revision: 5343 Log: Changed jm_insns.c usage to use one of flags 'i|f|a' to run int|fp|av ins= ns respectively. Removed integer test insns for jm-vmx.vgtest - already tested in jm-int.v= gtest Added: trunk/none/tests/ppc32/jm-int.stderr.exp trunk/none/tests/ppc32/jm-int.stdout.exp trunk/none/tests/ppc32/jm-int.vgtest Removed: trunk/none/tests/ppc32/jm-insns.stderr.exp trunk/none/tests/ppc32/jm-insns.stdout.exp trunk/none/tests/ppc32/jm-insns.vgtest Modified: trunk/none/tests/ppc32/Makefile.am trunk/none/tests/ppc32/jm-insns.c trunk/none/tests/ppc32/jm-vmx.stdout.exp [... diff too large to include ...] |
|
From: Dirk M. <dm...@gm...> - 2005-12-14 16:20:22
|
On Wednesday 14 December 2005 15:42, Julian Seward wrote: > Perhaps something like a simple raytracer, fluid dynamics code, > or audio codec would be suitable. http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/tramp3d.cpp.gz matches this pretty good, except that its C++ and used as a compiler optimisation testcase (it needs 3-4 minutes to compile even). Dirk |
|
From: Dirk M. <dm...@gm...> - 2005-12-14 15:09:57
|
On Wednesday 14 December 2005 15:06, ls...@vi... wrote: > File coregrind/m_machine.c fails on line ~362 fails bc instruction "vor" > does not exist. fails to compile or fails to run? it is supposed to be run to see if the processor actually supports it. Dirk |
|
From: Julian S. <js...@ac...> - 2005-12-14 14:42:36
|
One of the Valgrind developers (Nick) has recently started putting together a collection of programs intended to measure Valgrind's performance (in perf/ if you have a recent svn checkout). This is a good thing. For the first time it allows us to systematically measure Valgrind's performance across a range of different program types and different CPUs. Even at this early stage it has uncovered some performance problems, the fixes for which will be in 3.2.0. We are looking for a good floating point test program for the suite. There are already two FP programs in it, but neither meets the following set of requirements. If you know of a program which does meet them, and especially if you have the time/expertise to help modify an existing program to meet them, we would be pleased to hear from you. Essential requirements: - must be available under an open-source license. Doesn't have to be GPL since is not being linked into Valgrind. - must be written in C, and work correctly on both 32- and 64-bit platforms, big- and little-endian - must be predominantly double-precision floating-point in workload - must have several innermost loops/hotspots. A program of at least moderate complexity is desired (1000-10000 lines of C). Our existing FP benchmarks are synthetic benchmarks and do not meet this requirement. Perhaps something like a simple raytracer, fluid dynamics code, or audio codec would be suitable. J |
|
From: <sv...@va...> - 2005-12-14 14:14:27
|
Author: sewardj Date: 2005-12-14 14:14:26 +0000 (Wed, 14 Dec 2005) New Revision: 257 Log: Make it (even) easier for people to build from svn, by saying what to do right on the web page. Modified: trunk/downloads/repository.html Modified: trunk/downloads/repository.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/downloads/repository.html 2005-12-14 13:58:19 UTC (rev 256) +++ trunk/downloads/repository.html 2005-12-14 14:14:26 UTC (rev 257) @@ -31,10 +31,27 @@ svn co svn://svn.valgrind.org/valgrind/trunk valgrind </pre> =20 +<p>As of December 2005, the code from this repository works +well on x86/Linux, AMD64/Linux and PPC32/Linux. PPC64/Linux is +under development. +</p> + <p> To build the checked out code, follow the instructions in the -<code>README</code> file that the checkout should give you.</p> +<code>README</code> file that the checkout should give you. +Alternatively, the following should work:</p> =20 +<pre> + cd valgrind + ./autogen.sh + ./configure --prefix=3D... + make + make install +</pre> + +<p>You'll need autoconf, and automake version 1.7 or later. These +should come as standard on any non-ancient Linux distribution.</p> + <!-- <p> If you are behind a firewall that doesn't allow the svn protocol, you @@ -50,11 +67,6 @@ </p> --> =20 -<p><b>Note:</b> as of October 2005, the code from the 3.0+ repository wo= rks -well on x86/Linux <b>and AMD64/Linux</b>. On <b>PPC32/Linux</b> it work= s -reasonably well and is under active development. If you are interested = in -PPC32/Linux, the code should be stable enough to be worth trying out. -</p> =20 =20 <div class=3D"hr_brown"><hr/></div> |
|
From: <ls...@vi...> - 2005-12-14 14:06:33
|
Hi, File coregrind/m_machine.c fails on line ~362 fails bc instruction "vor" does not exist. Worked around it by unconditionally setting have_vmx to False, but this should probably be handled by a configure check. It seems to work fine now. Thanks for this software. hope this helps, luis & luis |
|
From: <sv...@va...> - 2005-12-14 13:58:26
|
Author: cerion Date: 2005-12-14 13:58:19 +0000 (Wed, 14 Dec 2005) New Revision: 256 Log: Update repository page to reflect non-availability of repo via http. Modified: trunk/downloads/repository.html Modified: trunk/downloads/repository.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/downloads/repository.html 2005-11-27 20:09:24 UTC (rev 255) +++ trunk/downloads/repository.html 2005-12-14 13:58:19 UTC (rev 256) @@ -35,6 +35,7 @@ To build the checked out code, follow the instructions in the <code>README</code> file that the checkout should give you.</p> =20 +<!-- <p> If you are behind a firewall that doesn't allow the svn protocol, you can do an http checkout instead: @@ -47,6 +48,7 @@ Older versions of Subversion may not support the <code>--ignore-externals</code> flag. </p> +--> =20 <p><b>Note:</b> as of October 2005, the code from the 3.0+ repository wo= rks well on x86/Linux <b>and AMD64/Linux</b>. On <b>PPC32/Linux</b> it work= s |
|
From: <sv...@va...> - 2005-12-14 13:30:58
|
Author: cerion Date: 2005-12-14 13:30:44 +0000 (Wed, 14 Dec 2005) New Revision: 5342 Log: svn:ignores Modified: trunk/perf/ Property changes on: trunk/perf ___________________________________________________________________ Name: svn:ignore - .deps Makefile Makefile.in fbench vg_perf ffbench bz2 sarp + .deps Makefile Makefile.in fbench vg_perf ffbench bz2 sarp bigcode |
|
From: <as...@qu...> - 2005-12-14 10:57:11
|
Hi,
I've attached a patch to fix up a small error in the valgrind output
when using --gen-suppressions=3Dall. It removes the spurious "{ =
<insert
a suppression name here>" lines shown below.
Ashley,
=3D=3D8325=3D=3D Memcheck, a memory error detector.
=3D=3D8325=3D=3D Copyright (C) 2002-2005, and GNU GPL'd, by Julian =
Seward et al.
=3D=3D8325=3D=3D Using LibVEX rev 1426, a library for dynamic binary =
translation.
=3D=3D8325=3D=3D Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks =
LLP.
=3D=3D8325=3D=3D Using valgrind-3.2.0.SVN, a dynamic binary =
instrumentation framework.
=3D=3D8325=3D=3D Copyright (C) 2000-2005, and GNU GPL'd, by Julian =
Seward et al.
=3D=3D8325=3D=3D For more details, rerun with: -v
=3D=3D8325=3D=3D=20
=3D=3D8325=3D=3D My PID =3D 8325, parent PID =3D 8324. Prog and args =
are:
=3D=3D8325=3D=3D ./MPI_Bsend_err10
=3D=3D8325=3D=3D=20
=3D=3D8325=3D=3D Log file qualifier: var RMS_RANK, value 0.
=3D=3D8325=3D=3D=20
=3D=3D8325=3D=3D Warning: set address range perms: large range =
134225920, a 0, v 0
=3D=3D8325=3D=3D Warning: set address range perms: large range =
134225920, a 0, v 0
=3D=3D8325=3D=3D Warning: set address range perms: large range =
134217728, a 0, v 0
=3D=3D8325=3D=3D Uninitialised byte(s) found during client check request
=3D=3D8325=3D=3D at 0x4BC672A: elan_gather (groupGather.c:606)
=3D=3D8325=3D=3D by 0x4A39BB8: rma_init_state (elan_rma.c:222)
=3D=3D8325=3D=3D by 0x4A2BF1E: MPID_Init (adi2init.c:653)
=3D=3D8325=3D=3D by 0x4A44D77: MPIR_Init (initutil.c:170)
=3D=3D8325=3D=3D by 0x4A44BC8: MPI_Init (init.c:163)
=3D=3D8325=3D=3D by 0x4019FC: main (in =
/home/ashley/q/head/quadrics/qstests/tmp/MPI_Bsend_err10)
=3D=3D8325=3D=3D Address 0x4EAD580 is 16 bytes inside a block of size =
64 alloc'd
=3D=3D8325=3D=3D at 0x4904A86: malloc (vg_replace_malloc.c:149)
=3D=3D8325=3D=3D by 0x4A39B67: rma_init_state (elan_rma.c:208)
=3D=3D8325=3D=3D by 0x4A2BF1E: MPID_Init (adi2init.c:653)
=3D=3D8325=3D=3D by 0x4A44D77: MPIR_Init (initutil.c:170)
=3D=3D8325=3D=3D by 0x4A44BC8: MPI_Init (init.c:163)
=3D=3D8325=3D=3D by 0x4019FC: main (in =
/home/ashley/q/head/quadrics/qstests/tmp/MPI_Bsend_err10)
{
<insert a suppression name here>
=3D=3D8325=3D=3D (tool does not allow error to be suppressed)
=3D=3D8325=3D=3D=20
=3D=3D8325=3D=3D ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 9 =
from 4)
=3D=3D8325=3D=3D malloc/free: in use at exit: 2,747,320 bytes in 284 =
blocks.
=3D=3D8325=3D=3D malloc/free: 417 allocs, 133 frees, 3,008,604 bytes =
allocated.
=3D=3D8325=3D=3D For a detailed leak analysis, rerun with: =
--leak-check=3Dyes
=3D=3D8325=3D=3D For counts of detected errors, rerun with: -v
|
|
From: <sv...@va...> - 2005-12-14 10:22:31
|
Author: cerion Date: 2005-12-14 10:22:25 +0000 (Wed, 14 Dec 2005) New Revision: 1491 Log: More svn:ignores for VEX. Modified: trunk/ trunk/auxprogs/ trunk/priv/main/ trunk/pub/ Property changes on: trunk ___________________________________________________________________ Name: svn:ignore + libvex*.a TAG_* Property changes on: trunk/auxprogs ___________________________________________________________________ Name: svn:ignore + genoffsets Property changes on: trunk/priv/main ___________________________________________________________________ Name: svn:ignore + vex_svnversion.h Property changes on: trunk/pub ___________________________________________________________________ Name: svn:ignore + libvex_guest_offsets.h |
|
From: <sv...@va...> - 2005-12-14 05:33:37
|
Author: njn
Date: 2005-12-14 05:33:35 +0000 (Wed, 14 Dec 2005)
New Revision: 5341
Log:
Added a stress test which measures the cost of translation.
Added:
trunk/perf/bigcode.c
trunk/perf/bigcode1.vgperf
trunk/perf/bigcode2.vgperf
Modified:
trunk/perf/Makefile.am
trunk/perf/README
Modified: trunk/perf/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/perf/Makefile.am 2005-12-14 05:33:17 UTC (rev 5340)
+++ trunk/perf/Makefile.am 2005-12-14 05:33:35 UTC (rev 5341)
@@ -2,13 +2,14 @@
noinst_SCRIPTS =3D vg_perf
=20
EXTRA_DIST =3D $(noinst_SCRIPTS) \
+ bigcode.vgperf \
bz2.vgperf \
fbench.vgperf \
ffbench.vgperf \
sarp.vgperf
=20
check_PROGRAMS =3D \
- bz2 fbench ffbench sarp
+ bigcode bz2 fbench ffbench sarp
=20
AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -O
AM_CPPFLAGS =3D -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_builddir=
)/include
Modified: trunk/perf/README
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/perf/README 2005-12-14 05:33:17 UTC (rev 5340)
+++ trunk/perf/README 2005-12-14 05:33:35 UTC (rev 5341)
@@ -1,9 +1,27 @@
-------------------------------------------------------------------------=
-----
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Notes about performance benchmarks
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+For each benchmark, here is a brief description and notes about its
+strengths and weaknesses.
+
------------------------------------------------------------------------=
-----
-For each benchmark, here is a brief description and notes about strength=
s
-and weaknesses of the benchmark.
+Artificial stress tests
+------------------------------------------------------------------------=
-----
+bigcode1, bigcode2:
+- Description: Executes a lot of (nonsensical) code.
+- Strengths: Demonstrates the cost of translation which is a large par=
t
+ of runtime, particularly on larger programs.
+- Weaknesses: Highly artificial.
=20
+sarp:
+- Description: Does a lot of stack allocation and deallocation.
+- Strengths: Tests for a specific performance bug that existed in 3.1.=
0 and
+ all earlier versions.
+- Weaknesses: Highly artificial.
+
+------------------------------------------------------------------------=
-----
+Real programs
+------------------------------------------------------------------------=
-----
bz2:
- Description: Burrows-Wheeler compression and decompression.
- Strengths: A real, widely used program, very similar to the 256.bzip=
2
@@ -26,9 +44,4 @@
- Weaknesses: Dominated by the inner loop, which is quite long and flat=
ters
Valgrind due to the small dispatcher overhead.
=20
-sarp:
-- Description: Does a lot of stack allocation and deallocation.
-- Strengths: Tests for a specific performance bug that existed in 3.1.=
0 and
- all earlier versions.
-- Weaknesses: Highly artificial.
=20
Added: trunk/perf/bigcode.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/perf/bigcode.c (rev 0)
+++ trunk/perf/bigcode.c 2005-12-14 05:33:35 UTC (rev 5341)
@@ -0,0 +1,73 @@
+// This artificial program runs a lot of code. The exact amount depends=
on
+// the command line -- if any command line args are given, it does exact=
ly
+// the same amount of work, but using four times as much code.
+//
+// It's a stress test for Valgrind's translation speed; natively the tw=
o
+// modes run in about the same time (the I-cache effects aren't big enou=
gh
+// to make a difference), but under Valgrind the one running more code i=
s
+// significantly slower due to the extra translation time.
+
+#include <stdio.h>
+#include <string.h>
+
+#define FN_SIZE 996 // Must be big enough to hold the compiled f(=
)
+#define N_LOOPS 20000 // Should be divisible by four
+#define RATIO 4 // Ratio of code sizes between the two modes
+
+int f(int x, int y)
+{
+ int i;
+ for (i =3D 0; i < 5000; i++) {
+ switch (x % 8) {
+ case 1: y +=3D 3;
+ case 2: y +=3D x;
+ case 3: y *=3D 2;
+ default: y--;
+ }
+ }
+ return y;
+}
+
+static char a[FN_SIZE * N_LOOPS];
+
+int main(int argc, char* argv[])
+{
+ int h, i, sum1 =3D 0, sum2 =3D 0, sum3 =3D 0, sum4 =3D 0;
+ int n_fns, n_reps;
+
+ if (argc <=3D 1) {
+ // Mode 1: not so much code
+ n_fns =3D N_LOOPS / RATIO;
+ n_reps =3D RATIO;
+ printf("mode 1: ");
+ } else {
+ // Mode 2: lots of code
+ n_fns =3D N_LOOPS;
+ n_reps =3D 1;
+ printf("mode 1: ");
+ }
+ printf("%d copies of f(), %d reps\n", n_fns, n_reps);
+ =20
+ // Make a whole lot of copies of f(). FN_SIZE is much bigger than f(=
)
+ // will ever be (we hope).
+ for (i =3D 0; i < n_fns; i++) {
+ memcpy(&a[FN_SIZE*i], f, FN_SIZE);
+ }
+ =20
+ for (h =3D 0; h < n_reps; h +=3D 1) {
+ for (i =3D 0; i < n_fns; i +=3D 4) {
+ int(*f1)(int,int) =3D (void*)&a[FN_SIZE*(i+0)];
+ int(*f2)(int,int) =3D (void*)&a[FN_SIZE*(i+1)];
+ int(*f3)(int,int) =3D (void*)&a[FN_SIZE*(i+2)];
+ int(*f4)(int,int) =3D (void*)&a[FN_SIZE*(i+3)];
+ sum1 +=3D f1(i+0, n_fns-i+0);
+ sum2 +=3D f2(i+1, n_fns-i+1);
+ sum3 +=3D f3(i+2, n_fns-i+2);
+ sum4 +=3D f4(i+3, n_fns-i+3);
+ if (i % 1000 =3D=3D 0)
+ printf(".");
+ }
+ }
+ printf("result =3D %d\n", sum1 + sum2 + sum3 + sum4);
+ return 0;
+}
Added: trunk/perf/bigcode1.vgperf
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/perf/bigcode1.vgperf (rev 0)
+++ trunk/perf/bigcode1.vgperf 2005-12-14 05:33:35 UTC (rev 5341)
@@ -0,0 +1,2 @@
+prog: bigcode
+tools: none memcheck
Added: trunk/perf/bigcode2.vgperf
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/perf/bigcode2.vgperf (rev 0)
+++ trunk/perf/bigcode2.vgperf 2005-12-14 05:33:35 UTC (rev 5341)
@@ -0,0 +1,3 @@
+prog: bigcode
+args: 0
+tools: none memcheck
|
|
From: <sv...@va...> - 2005-12-14 05:33:20
|
Author: njn
Date: 2005-12-14 05:33:17 +0000 (Wed, 14 Dec 2005)
New Revision: 5340
Log:
Ensure that f() doesn't get inlined.
Modified:
trunk/perf/sarp.c
Modified: trunk/perf/sarp.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/perf/sarp.c 2005-12-14 02:58:23 UTC (rev 5339)
+++ trunk/perf/sarp.c 2005-12-14 05:33:17 UTC (rev 5340)
@@ -13,12 +13,13 @@
=20
#define REPS 1000*1000*10
=20
+__attribute__((noinline))
int f(int i)
{
// This nonsense is just to ensure that the compiler does not optimis=
e
// away the stack allocation.
char big_array[500];
- big_array[0] =3D 12;
+ big_array[ 0] =3D 12;
big_array[ 23] =3D 34;
big_array[256] =3D 56;
big_array[434] =3D 78;
|
|
From: <js...@ac...> - 2005-12-14 03:58:18
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2005-12-14 03:30:01 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 == 208 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2005-12-14 03:47:18
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2005-12-14 04:40:00 CET 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 == 175 tests, 15 stderr failures, 0 stdout failures ================= memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/xml1 (stderr) massif/tests/toobig-allocs (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) |
|
From: Tom H. <to...@co...> - 2005-12-14 03:42:26
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-12-14 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 == 210 tests, 7 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) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-12-14 03:29:53
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-12-14 03:15:08 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 == 209 tests, 17 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (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/leakotron (stdout) 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) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-12-14 03:27:27
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-12-14 03:10:11 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 == 227 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/mempool (stderr) memcheck/tests/x86/scalar (stderr) none/tests/amd64/faultstatus (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |