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: <sv...@va...> - 2005-12-17 20:50:34
|
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: Julian S. <js...@ac...> - 2005-12-17 20:40:25
|
On Saturday 17 December 2005 19:50, Nicholas Nethercote wrote: > On Sat, 17 Dec 2005, Julian Seward wrote: > > (running perf/heap.c) > > > >> P4 Northwood (suse10, x86): > >> heap trunk : 0.4s nl: 5.7s (12.9x, -----) mc:85.8s (195.0x, > >> -----) > I did the same yesterday and saw similar things. The counts in swizzle > just don't add up to the function totals. Nevertheless, as usual cachegrind does a great job of pointing out the smoking gun. Run time of this program is literally halved following r5365. J |
|
From: <sv...@va...> - 2005-12-17 20:37:39
|
Author: sewardj
Date: 2005-12-17 20:37:36 +0000 (Sat, 17 Dec 2005)
New Revision: 5365
Log:
findSb: gradually rearrange the superblock list to bring frequently
accessed blocks closer to the front. This speeds up malloc/free
intensive programs because evidently those searches cause a lot of
cache misses (so cachegrind tells us). For perf/heap.c on P4
Northwood, this halves the run-time (!) from 85.8 to 42.9 seconds.
For "real" code (start/exit ktuberling) there is a small but
worthwhile performance gain, of about 2 seconds out of 95.
Modified:
trunk/coregrind/m_mallocfree.c
Modified: trunk/coregrind/m_mallocfree.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/coregrind/m_mallocfree.c 2005-12-17 13:53:46 UTC (rev 5364)
+++ trunk/coregrind/m_mallocfree.c 2005-12-17 20:37:36 UTC (rev 5365)
@@ -597,13 +597,48 @@
Superblock* findSb ( Arena* a, Block* b )
{
Superblock* sb;
- for (sb =3D a->sblocks; sb; sb =3D sb->next)
- if ((Block*)&sb->payload_bytes[0] <=3D b
+ static UInt n_search =3D 0;
+ for (sb =3D a->sblocks; sb; sb =3D sb->next) {
+ if ((Block*)&sb->payload_bytes[0] <=3D b=20
&& b < (Block*)&sb->payload_bytes[sb->n_payload_bytes])
- return sb;
- VG_(printf)("findSb: can't find pointer %p in arena '%s'\n", b, a->na=
me );
- VG_(core_panic)("findSb: VG_(arena_free)() in wrong arena?");
- return NULL; /*NOTREACHED*/
+ break;
+ }
+ if (!sb) {
+ VG_(printf)("findSb: can't find pointer %p in arena '%s'\n",=20
+ b, a->name );
+ VG_(core_panic)("findSb: VG_(arena_free)() in wrong arena?");
+ return NULL; /*NOTREACHED*/
+ }
+
+ /* Start of performance-enhancing hack: once every 128 (chosen
+ hackily after profiling) successful searches, move the found
+ Superblock one step closer to the start of the list. This makes
+ future searches cheaper. */
+ if ((n_search & 0x7F) =3D=3D 0) {
+ /* Move sb one step closer to the start of the list. */
+ Superblock* sb0 =3D a->sblocks;
+ Superblock* sb1 =3D NULL;
+ Superblock* sb2 =3D NULL;
+ Superblock* tmp;
+ while (True) {
+ if (sb0 =3D=3D NULL) break;
+ if (sb0 =3D=3D sb) break;
+ sb2 =3D sb1;
+ sb1 =3D sb0;
+ sb0 =3D sb0->next;
+ }
+ if (sb0 =3D=3D sb && sb0 !=3D NULL && sb1 !=3D NULL && sb2 !=3D NU=
LL) {
+ /* sb0 points to sb, sb1 to its predecessor, and sb2 to sb1's
+ predecessor. Swap sb0 and sb1, that is, move sb0 one step
+ closer to the start of the list. */
+ tmp =3D sb0->next;
+ sb2->next =3D sb0;
+ sb0->next =3D sb1;
+ sb1->next =3D tmp;
+ }
+ }
+ /* End of performance-enhancing hack. */
+ return sb;
}
=20
=20
|
|
From: Nicholas N. <nj...@cs...> - 2005-12-17 19:50:32
|
On Sat, 17 Dec 2005, Julian Seward wrote: > (running perf/heap.c) > >> P4 Northwood (suse10, x86): >> heap trunk : 0.4s nl: 5.7s (12.9x, -----) mc:85.8s (195.0x, -----) > > I went looking for cache misses, and found some funny stuff. > > First thing I found is that the runtime is not proportional to the number > of iterations: 300k iters take 3 seconds, 600k take 9. > > I cachegrinded it. > There are two small fns in m_mallocfree.c which cause a lot of misses > findSb and swizzle. findSb wades through the superblock list for an > arena to find out which superblock a free has happened in. If you run > this with -d -d you can see the superblocks being allocated, and the > list quickly becomes fairly long. Perhaps a scheme of incrementally > reorganising the sb list would help. > > swizzle is a hack which is used at allocation-time. The perplexing > thing is that although the cachegrind per-fn summary lists a huge > number of read misses caused by it, the annotated source doesn't show > them. (afaics, at least). I did the same yesterday and saw similar things. The counts in swizzle just don't add up to the function totals. I'm not sure why this is, inlining can sometimes make things confusing, but perhaps it's a Cachegrind bug. I'll take a look when I have time. Nick |
|
From: Julian S. <js...@ac...> - 2005-12-17 18:05:30
|
(running perf/heap.c) > P4 Northwood (suse10, x86): > heap trunk : 0.4s nl: 5.7s (12.9x, -----) mc:85.8s (195.0x, -----) I went looking for cache misses, and found some funny stuff. First thing I found is that the runtime is not proportional to the number of iterations: 300k iters take 3 seconds, 600k take 9. I cachegrinded it. There are two small fns in m_mallocfree.c which cause a lot of misses findSb and swizzle. findSb wades through the superblock list for an arena to find out which superblock a free has happened in. If you run this with -d -d you can see the superblocks being allocated, and the list quickly becomes fairly long. Perhaps a scheme of incrementally reorganising the sb list would help. swizzle is a hack which is used at allocation-time. The perplexing thing is that although the cachegrind per-fn summary lists a huge number of read misses caused by it, the annotated source doesn't show them. (afaics, at least). Relevant excerpts in attached file (for the 600k iter case). J |
|
From: <sv...@va...> - 2005-12-17 13:54:03
|
Author: sewardj Date: 2005-12-17 13:53:46 +0000 (Sat, 17 Dec 2005) New Revision: 5364 Log: Update known-bugs summary. Modified: trunk/docs/internals/3_1_BUGSTATUS.txt Modified: trunk/docs/internals/3_1_BUGSTATUS.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/docs/internals/3_1_BUGSTATUS.txt 2005-12-17 00:29:49 UTC (rev 5= 363) +++ trunk/docs/internals/3_1_BUGSTATUS.txt 2005-12-17 13:53:46 UTC (rev 5= 364) @@ -1,5 +1,9 @@ =20 +n-i-bz =3D not in bugzilla +pending =3D is scheduled to be fixed (or at least considered) on this br= anch +wontfix =3D will not fix on this branch =20 + TRUNK 31BRANCH BUG# WHAT =20 v5262 pending n-i-bz fsub 3,3,3 in ppc32 dispatcher doesn't clea= r NaNs @@ -10,4 +14,16 @@ pending pending 117367 amd64: 0xD9 0xF4 fxtract v5256 v5260 117369 amd64: __NR_getpriority (140) vx1482 pending 117419 ppc32: lfsu f5, -4(r11) -pending pending n-i-bz ppc32: jm-insns doesn't do FP tests +vx1492 pending 117419 ppc32: fsqrt +pending wontfix n-i-bz ppc32: jm-insns doesn't do FP tests +pending wontfix 117564 __NR_clone param test (w/ partial patch) +pending pending 117936 yet another stabs-reader segfault +pending pending 118118 SIGBUS in disInstr_AMD64 after long run +pending pending 118239 amd64: 0xF 0xAE 0x3F (clflush) +pending pending 118274 amd64: 0xDD #7 (fnsave) +pending pending 118466 add %r,%r mishandled by memcheck +pending pending n-i-bz VALGRIND_COUNT_LEAKS arg types (Olly Betts) +pending pending n-i-bz memcheck/tests/mempool reads freed memory +pending pending n-i-bz AshleyP's custom-allocator assertion +pending pending n-i-bz Dirk strict-aliasing stuff +pending pending n-i-bz More space for debugger cmd line (Dan Thale= r) |
|
From: Julian S. <js...@ac...> - 2005-12-17 13:45:58
|
I've just done a quick experiment which convinces me that oggenc would be a good FP benchmark -- the FP activity is spread out over a number of blocks, which is what we want. The profile below is from a run of OggEnv 1.0.1 as supplied with SuSE10, encoding /opt/kde3/share/sounds/KDE_Startup_new.wav at level 3. It ran for 76.7 million basic blocks. The top 100 blocks account for less than 70% of the total blocks run, which is a good thing. Does the profile roughly concur with your understanding about where the inner loops in oggenc are? > Depending on how this cold progresses (as I sit here sipping my hot > honey&lemon drink), I'll either have a look at doing this this > afternoon, or I'll be in bed... we'll see! Well, if you're feeling up to it, any such help would be appreciated. J ----------------------------------------------------------- --- BEGIN BB Profile (summary of scores) --- ----------------------------------------------------------- Total score = 76732436 0: ( 2765033 3.60%) 2765033 3.60% 0x414B282 _vp_tonemask+610 1: ( 5517409 7.19%) 2752376 3.58% 0x414B26B _vp_tonemask+587 2: ( 8050022 10.49%) 2532613 3.30% 0x414B27E _vp_tonemask+606 3: ( 9440332 12.30%) 1390310 1.81% 0x414B25F _vp_tonemask+575 4: ( 10815055 14.09%) 1374723 1.79% 0x414B296 _vp_tonemask+630 5: ( 11908465 15.51%) 1093410 1.42% 0x4150B45 6: ( 13001875 16.94%) 1093410 1.42% 0x4150B82 7: ( 13972771 18.20%) 970896 1.26% 0x414AE40 _vp_remove_floor+48 8: ( 14941763 19.47%) 968992 1.26% 0x414A8E4 9: ( 15807976 20.60%) 866213 1.12% 0x414AA65 10: ( 16672368 21.72%) 864392 1.12% 0x414AA92 11: ( 17348984 22.60%) 676616 0.88% 0x414A5E6 12: ( 18024648 23.49%) 675664 0.88% 0x414A5E0 13: ( 18697971 24.36%) 673323 0.87% 0x414A870 14: ( 19369827 25.24%) 671856 0.87% 0x414B363 _vp_tonemask+835 15: ( 20027222 26.10%) 657395 0.85% 0x414B372 _vp_tonemask+850 16: ( 20653726 26.91%) 626504 0.81% 0x414B379 _vp_tonemask+857 17: ( 21265163 27.71%) 611437 0.79% 0x414B354 _vp_tonemask+820 18: ( 21869585 28.50%) 604422 0.78% 0x4148A50 19: ( 22457963 29.26%) 588378 0.76% 0x4148A7C 20: ( 23043394 30.03%) 585431 0.76% 0x414A696 21: ( 23619480 30.78%) 576086 0.75% 0x4151A0A floor1_fit+954 22: ( 24195566 31.53%) 576086 0.75% 0x4151A9E floor1_fit+1102 23: ( 24699981 32.18%) 504415 0.65% 0x414A651 24: ( 25202525 32.84%) 502544 0.65% 0x41515BB 25: ( 25705069 33.49%) 502544 0.65% 0x41515B5 26: ( 26207613 34.15%) 502544 0.65% 0x41515AE 27: ( 26699517 34.79%) 491904 0.64% 0x4148820 28: ( 27185917 35.42%) 486400 0.63% 0x414B792 _vp_offset_and_mix+674 29: ( 27672317 36.06%) 486400 0.63% 0x414B693 _vp_offset_and_mix+419 30: ( 28158717 36.69%) 486400 0.63% 0x4145B60 drft_forward+368 31: ( 28645117 37.33%) 486400 0.63% 0x414B7FA _vp_offset_and_mix+778 32: ( 29131517 37.96%) 486400 0.63% 0x414B636 _vp_offset_and_mix+326 33: ( 29617914 38.59%) 486397 0.63% 0x414AFC0 _vp_noisemask+288 34: ( 30104301 39.23%) 486387 0.63% 0x414B838 _vp_offset_and_mix+840 35: ( 30589749 39.86%) 485448 0.63% 0x414B5DD _vp_offset_and_mix+237 36: ( 31075197 40.49%) 485448 0.63% 0x414B144 _vp_tonemask+292 37: ( 31560645 41.13%) 485448 0.63% 0x41565D9 38: ( 32046093 41.76%) 485448 0.63% 0x414B404 _vp_tonemask+996 39: ( 32531541 42.39%) 485448 0.63% 0x414AFA0 _vp_noisemask+256 40: ( 33016917 43.02%) 485376 0.63% 0x414B63D _vp_offset_and_mix+333 41: ( 33501413 43.66%) 484496 0.63% 0x4156451 42: ( 33984930 44.29%) 483517 0.63% 0x4148A70 43: ( 34468186 44.91%) 483256 0.62% 0x414B82A _vp_offset_and_mix+826 44: ( 34951442 45.54%) 483256 0.62% 0x414B80A _vp_offset_and_mix+794 45: ( 35431956 46.17%) 480514 0.62% 0x4142BE0 mdct_forward+848 46: ( 35912433 46.80%) 480477 0.62% 0x415649F 47: ( 36390403 47.42%) 477970 0.62% 0x4148A60 48: ( 36858138 48.03%) 467735 0.60% 0x414B3E9 _vp_tonemask+969 49: ( 37320536 48.63%) 462398 0.60% 0x41525D4 floor1_encode+1476 50: ( 37779588 49.23%) 459052 0.59% 0x415390E 51: ( 38225886 49.81%) 446298 0.58% 0x4151A3B floor1_fit+1003 52: ( 38672184 50.39%) 446298 0.58% 0x4151A3F floor1_fit+1007 53: ( 39116995 50.97%) 444811 0.57% 0x4151A5B floor1_fit+1035 54: ( 39553540 51.54%) 436545 0.56% 0x4151A74 floor1_fit+1060 55: ( 39978692 52.10%) 425152 0.55% 0x414BFC0 56: ( 40389737 52.63%) 411045 0.53% 0x414B7E9 _vp_offset_and_mix+761 57: ( 40787608 53.15%) 397871 0.51% 0x4153980 58: ( 41177571 53.66%) 389963 0.50% 0x414A608 59: ( 41567534 54.17%) 389963 0.50% 0x414A61F 60: ( 41957187 54.67%) 389653 0.50% 0x41525E4 floor1_encode+1492 61: ( 42345557 55.18%) 388370 0.50% 0x4151580 62: ( 42730875 55.68%) 385318 0.50% 0x414A62B 63: ( 43115827 56.18%) 384952 0.50% 0x4153900 64: ( 43499130 56.68%) 383303 0.49% 0x414BF79 65: ( 43881920 57.18%) 382790 0.49% 0x41519F1 floor1_fit+929 66: ( 44258790 57.67%) 376870 0.49% 0x414BFC5 67: ( 44597574 58.12%) 338784 0.44% 0x414B06D _vp_tonemask+77 68: ( 44922222 58.54%) 324648 0.42% 0x41434C4 69: ( 45246870 58.96%) 324648 0.42% 0x414354D 70: ( 45571518 59.39%) 324648 0.42% 0x4143420 71: ( 45890710 59.80%) 319192 0.41% 0x41432D0 72: ( 46207164 60.21%) 316454 0.41% 0x414A740 73: ( 46504737 60.60%) 297573 0.38% 0x414A8FF 74: ( 46764897 60.94%) 260160 0.33% 0x4153830 75: ( 47012601 61.26%) 247704 0.32% 0x414B14F _vp_tonemask+303 76: ( 47260305 61.59%) 247704 0.32% 0x414B3D0 _vp_tonemask+944 77: ( 47504385 61.90%) 244080 0.31% 0x4148B10 78: ( 47747841 62.22%) 243456 0.31% 0x4147D16 vorbis_analysis_blockout+918 79: ( 47991041 62.54%) 243200 0.31% 0x414AF00 _vp_noisemask+96 80: ( 48234241 62.86%) 243200 0.31% 0x414D16F _vp_couple+1023 81: ( 48477441 63.17%) 243200 0.31% 0x414B0A3 _vp_tonemask+131 82: ( 48720641 63.49%) 243200 0.31% 0x4148F70 _vorbis_apply_window+304 83: ( 48963841 63.81%) 243200 0.31% 0x414AF60 _vp_noisemask+192 84: ( 49207041 64.12%) 243200 0.31% 0x4154C60 res2_forward+128 85: ( 49450241 64.44%) 243200 0.31% 0x41547B8 res2_class+408 86: ( 49693185 64.76%) 242944 0.31% 0x414BF95 87: ( 49936129 65.07%) 242944 0.31% 0x4148F40 _vorbis_apply_window+256 88: ( 50178853 65.39%) 242724 0.31% 0x414BDB6 _vp_quantize_couple_memo+262 89: ( 50421540 65.71%) 242687 0.31% 0x804BF50 90: ( 50664227 66.02%) 242687 0.31% 0x804BF2E 91: ( 50906914 66.34%) 242687 0.31% 0x804BF77 92: ( 51149364 66.65%) 242450 0.31% 0x804BF27 93: ( 51388060 66.97%) 238696 0.31% 0x414B345 _vp_tonemask+805 94: ( 51626756 67.28%) 238696 0.31% 0x414B3B4 _vp_tonemask+916 95: ( 51865452 67.59%) 238696 0.31% 0x414B13E _vp_tonemask+286 96: ( 52104148 67.90%) 238696 0.31% 0x414B30B _vp_tonemask+747 97: ( 52342844 68.21%) 238696 0.31% 0x414B39E _vp_tonemask+894 98: ( 52581540 68.52%) 238696 0.31% 0x414B3DB _vp_tonemask+955 99: ( 52819806 68.83%) 238266 0.31% 0x4148AD4 |
|
From: Julian S. <js...@ac...> - 2005-12-17 13:26:04
|
Sheesh. Look at this:
P4 Northwood (suse10, x86):
heap trunk : 0.4s nl: 5.7s (12.9x, -----) mc:85.8s (195.0x, -----)
P3 Tualatin (suse10, x86):
heap trunk : 0.8s nl: 6.6s ( 8.4x, -----) mc:63.5s (81.4x, -----)
7447 (suse10, ppc32):
heap trunk : 1.3s nl: 6.2s ( 4.8x, -----) mc:60.2s (47.0x, -----)
Looks like we hit another P4 microarchitectural lemon of some kind.
(or, glibc's malloc implementation is ultra-tuned for P4 but not for
anything else). Anybody self-hosting enthusiasts want to do
cachegrind(memcheck(perf/heap)) to see if there's a lot of cache misses
happening (since this was the cause of the previous performance disaster
on P4 ..)
J
On Saturday 17 December 2005 00:22, sv...@va... wrote:
> Author: njn
> Date: 2005-12-17 00:22:39 +0000 (Sat, 17 Dec 2005)
> New Revision: 5362
>
> Log:
> Add a malloc/free stress test.
>
> Added:
> trunk/perf/heap.c
> trunk/perf/heap.vgperf
> Modified:
> trunk/perf/Makefile.am
> trunk/perf/README
> trunk/perf/vg_perf.in
>
>
> Modified: trunk/perf/Makefile.am
> ===================================================================
> --- trunk/perf/Makefile.am 2005-12-16 17:06:37 UTC (rev 5361)
> +++ trunk/perf/Makefile.am 2005-12-17 00:22:39 UTC (rev 5362)
> @@ -6,10 +6,11 @@
> bz2.vgperf \
> fbench.vgperf \
> ffbench.vgperf \
> + heap.vgperf \
> sarp.vgperf
>
> check_PROGRAMS = \
> - bigcode bz2 fbench ffbench sarp
> + bigcode bz2 fbench ffbench heap sarp
>
> AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -O
> AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include
> -I$(top_builddir)/include
>
> Modified: trunk/perf/README
> ===================================================================
> --- trunk/perf/README 2005-12-16 17:06:37 UTC (rev 5361)
> +++ trunk/perf/README 2005-12-17 00:22:39 UTC (rev 5362)
> @@ -13,6 +13,15 @@
> of runtime, particularly on larger programs.
> - Weaknesses: Highly artificial.
>
> +heap:
> +- Description: Does a lot of heap allocation and deallocation, and has a
> lot + of heap blocks live while doing so.
> +- Strengths: Stress test for an important sub-system; bug #105039 showed
> + that inefficiencies in heap allocation can make a big
> + difference to programs that allocate a lot.
> +- Weaknesses: Highly artificial -- allocation pattern is not real, and
> only + a few different size allocations are used.
> +
> sarp:
> - Description: Does a lot of stack allocation and deallocation.
> - Strengths: Tests for a specific performance bug that existed in 3.1.0
> and
>
> Added: trunk/perf/heap.c
> ===================================================================
> --- trunk/perf/heap.c (rev 0)
> +++ trunk/perf/heap.c 2005-12-17 00:22:39 UTC (rev 5362)
> @@ -0,0 +1,39 @@
> +#include <stdio.h>
> +#include <stdlib.h>
> +
> +#define NLIVE 1000000
> +
> +#define NITERS (3*1000*1000)
> +
> +char* arr[NLIVE];
> +
> +int main ( void )
> +{
> + int i, j, nbytes = 0;
> + printf("initialising\n");
> + for (i = 0; i < NLIVE; i++)
> + arr[i] = NULL;
> +
> + printf("running\n");
> + j = -1;
> + for (i = 0; i < NITERS; i++) {
> + j++;
> + if (j == NLIVE) j = 0;
> + if (arr[j])
> + free(arr[j]);
> + arr[j] = malloc(nbytes);
> +
> + // Cycle through the sizes 0,8,16,24,32. Zero will get rounded up
> to + // 8, so the 8B bucket will get twice as much traffic.
> + nbytes += 8;
> + if (nbytes > 32)
> + nbytes = 0;
> + }
> +
> + for (i = 0; i < NLIVE; i++)
> + if (arr[i])
> + free(arr[i]);
> +
> + printf("done\n");
> + return 0;
> +}
>
> Added: trunk/perf/heap.vgperf
> ===================================================================
> --- trunk/perf/heap.vgperf (rev 0)
> +++ trunk/perf/heap.vgperf 2005-12-17 00:22:39 UTC (rev 5362)
> @@ -0,0 +1,2 @@
> +prog: heap
> +tools: none memcheck
>
> Modified: trunk/perf/vg_perf.in
> ===================================================================
> --- trunk/perf/vg_perf.in 2005-12-16 17:06:37 UTC (rev 5361)
> +++ trunk/perf/vg_perf.in 2005-12-17 00:22:39 UTC (rev 5362)
> @@ -319,10 +319,10 @@
> # the speedup.
> if (not defined $first_tTool{$tool}) {
> $first_tTool{$tool} = $tTool;
> - print(" -----) ");
> + print(" -----) ");
> } else {
> my $speedup = 100 - (100 * $tTool / $first_tTool{$tool});
> - printf("%5.1f%%) ", $speedup);
> + printf("%5.1f%%) ", $speedup);
> }
>
> $num_timings_done++;
>
>
>
> -------------------------------------------------------
> 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_idv37&alloc_id865&op=Click
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
|
|
From: Jeroen N. W. <jn...@xs...> - 2005-12-17 13:20:16
|
The result below was generated on a Pentium III (Katmai). vanilla is rev 5314, VEX rev 1486; trunk is rev 5360, VEX rev 1499; COMPVBITS is rev 5361, VEX rev 1499. 3.1.RC1-inner and COMPVBITS are configured with --enable-inner. Jeroen. -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 3.1.RC1-inner: 2.4s nl:52.4s (21.6x, -----) mc:77.2s (31.8x, -----) bigcode1 3.1.RC1-outer: 2.4s nl:51.3s (21.1x, 2.1%) mc:76.7s (31.6x, 0.7%) bigcode1 vanilla: 2.4s nl:50.1s (20.6x, 4.4%) mc:71.9s (29.6x, 7.0%) bigcode1 trunk: 2.4s nl:45.1s (18.5x, 14.0%) mc:67.1s (27.6x, 13.2%) bigcode1 COMPVBITS: 2.4s nl:45.0s (18.5x, 14.2%) mc:66.0s (27.1x, 14.6%) -- bigcode2 -- bigcode2 3.1.RC1-inner: 2.5s nl:92.6s (37.6x, -----) mc:155.4s (63.2x, -----) bigcode2 3.1.RC1-outer: 2.5s nl:91.2s (37.1x, 1.5%) mc:154.7s (62.9x, 0.4%) bigcode2 vanilla: 2.5s nl:83.2s (33.8x, 10.1%) mc:133.9s (54.5x, 13.8%) bigcode2 trunk: 2.5s nl:78.9s (32.1x, 14.8%) mc:130.1s (52.9x, 16.3%) bigcode2 COMPVBITS: 2.5s nl:78.8s (32.0x, 15.0%) mc:129.2s (52.5x, 16.9%) -- bz2 -- bz2 3.1.RC1-inner: 6.5s nl:43.8s ( 6.8x, -----) mc:147.4s (22.8x, -----) bz2 3.1.RC1-outer: 6.5s nl:43.2s ( 6.7x, 1.5%) mc:146.6s (22.6x, 0.6%) bz2 vanilla: 6.5s nl:43.9s ( 6.8x, -0.2%) mc:146.8s (22.7x, 0.4%) bz2 trunk: 6.5s nl:37.9s ( 5.8x, 13.6%) mc:139.5s (21.5x, 5.4%) bz2 COMPVBITS: 6.5s nl:37.7s ( 5.8x, 14.0%) mc:137.2s (21.2x, 6.9%) -- fbench -- fbench 3.1.RC1-inner: 4.2s nl:18.1s ( 4.3x, -----) mc:82.7s (19.6x, -----) fbench 3.1.RC1-outer: 4.2s nl:17.9s ( 4.2x, 1.1%) mc:83.2s (19.7x, -0.6%) fbench vanilla: 4.2s nl:17.4s ( 4.1x, 3.5%) mc:81.4s (19.3x, 1.6%) fbench trunk: 4.2s nl:16.5s ( 3.9x, 8.7%) mc:66.0s (15.6x, 20.2%) fbench COMPVBITS: 4.2s nl:16.4s ( 3.9x, 9.3%) mc:60.8s (14.4x, 26.5%) -- ffbench -- ffbench 3.1.RC1-inner: 6.7s nl:17.4s ( 2.6x, -----) mc:51.2s ( 7.7x, -----) ffbench 3.1.RC1-outer: 6.7s nl:17.4s ( 2.6x, -0.2%) mc:51.4s ( 7.7x, -0.3%) ffbench vanilla: 6.7s nl:17.4s ( 2.6x, 0.0%) mc:51.1s ( 7.7x, 0.1%) ffbench trunk: 6.7s nl:17.0s ( 2.5x, 2.5%) mc:51.0s ( 7.6x, 0.4%) ffbench COMPVBITS: 6.7s nl:17.5s ( 2.6x, -0.3%) mc:47.4s ( 7.1x, 7.5%) -- sarp -- sarp 3.1.RC1-inner: 0.3s nl: 3.3s (10.7x, -----) mc:67.2s (216.7x, -----) sarp 3.1.RC1-outer: 0.3s nl: 3.3s (10.6x, 0.3%) mc:67.0s (216.1x, 0.3%) sarp vanilla: 0.3s nl: 3.2s (10.4x, 3.0%) mc:66.5s (214.4x, 1.1%) sarp trunk: 0.3s nl: 3.0s ( 9.7x, 9.1%) mc:65.9s (212.5x, 1.9%) sarp COMPVBITS: 0.3s nl: 3.0s ( 9.7x, 9.1%) mc:33.9s (109.3x, 49.6%) -- Finished tests in perf ---------------------------------------------- == 6 programs, 60 timings ================= |
|
From: James B. <ja...@ha...> - 2005-12-17 13:14:05
|
Hi, On Fri, 2005-12-16 at 10:17 -0600, Nicholas Nethercote wrote: > Thanks for the info. It would be useful to see a comparison between r5348 > and 3.1.0 if you have that. You can do it with this command: > > perl perf/vg_perf --vg=<dir1> --vg=<dir2> perf/ > > Where <dir1> is the directory holding 3.1.0 and <dir2> is the directory > holding r5348. > > It would also be useful if you could compare the COMPVBITS branch, you can > check it out with: > > svn co svn://www.valgrind.org/valgrind/branches/COMPVBITS > > and just add a third --vg= option to the command line above. OK, I SVN updated to r5363 (vex r1500) re-ran the performance tests to compare V 3.1.0, current SVN and the current COMPVBITS branch. The results are below (again, slightly snipped to avoid line wrapping) -- Running tests in perf ----------------------------------------- -- bigcode1 -- bigcode1 valgrind-3.1.0: 0.5s nl:17.9s (35.8x) mc:25.3s (50.6x) bigcode1 valgrind : 0.5s nl:16.5s (33.0x, 7.8%) mc:23.0s (46.0x, 9.0%) bigcode1 compvbits : 0.5s nl:16.6s (33.2x, 7.5%) mc:22.8s (45.5x, 10.0%) -- bigcode2 -- bigcode2 valgrind-3.1.0: 0.5s nl:28.1s (55.1x) mc:46.1s (90.4x) bigcode2 valgrind : 0.5s nl:26.7s (52.3x, 5.1%) mc:42.8s (83.9x, 7.2%) bigcode2 compvbits : 0.5s nl:26.7s (52.4x, 5.0%) mc:42.8s (83.9x, 7.2%) -- bz2 -- bz2 valgrind-3.1.0: 2.5s nl:16.8s ( 6.8x) mc:58.4s (23.5x) bz2 valgrind : 2.5s nl:15.0s ( 6.0x,11.1%) mc:55.9s (22.5x, 4.3%) bz2 compvbits : 2.5s nl:14.9s ( 6.0x,11.2%) mc:60.9s (24.4x,-4.2%) -- fbench -- fbench valgrind-3.1.0: 1.8s nl: 6.0s ( 3.4x) mc:35.7s (20.2x) fbench valgrind : 1.8s nl: 5.7s ( 3.2x, 5.8%) mc:26.5s (15.0x, 25.8%) fbench compvbits : 1.8s nl: 5.7s ( 3.2x, 5.8%) mc:23.9s (13.5x, 33.1%) -- ffbench -- ffbench valgrind-3.1.0: 4.3s nl: 9.1s ( 2.1x) mc:25.2s ( 5.9x) ffbench valgrind : 4.3s nl: 8.6s ( 2.0x, 4.5%) mc:24.9s ( 5.8x, 1.5%) ffbench compvbits : 4.3s nl: 8.6s ( 2.0x, 4.8%) mc:23.5s ( 5.5x, 7.1%) -- heap -- heap valgrind-3.1.0: 0.6s nl: 8.0s (13.6x) mc:52.6s (89.2x) heap valgrind : 0.6s nl: 6.3s (10.7x,21.1%) mc:52.0s (88.1x, 1.3%) heap compvbits : 0.6s nl: 6.3s (10.6x,21.6%) mc:44.7s (75.7x, 15.1%) -- sarp -- sarp valgrind-3.1.0: 0.1s nl: 1.3s (10.5x) mc:30.3s (252.2x) sarp valgrind : 0.1s nl: 1.2s ( 9.8x, 7.1%) mc:30.1s (251.1x, 0.4%) sarp compvbits : 0.1s nl: 1.2s ( 9.8x, 7.1%) mc:13.8s (114.8x,54.5%) -- Finished tests in perf ----------------------------------------- == 7 programs, 42 timings ================= I hope this helps, Cheers, James. James Begley -- Telephone +354-575-2000 Marine Research Institute, Skulagata 4, P.O. Box 1390, 121 Reykjavik, Iceland. |
|
From: Michael S. <ms...@xi...> - 2005-12-17 13:04:22
|
On 12/17/05, Julian Seward <js...@ac...> wrote: > > Stephen, Michael, > > Thanks for the info on this. 1.7M of source is, well, a lot, but > not beyond the bounds of possibility. What worries me more is how > to generate enough workload to make it run for 2-5 seconds (natively). > I don't want to have megabytes of .wav file in the repo to achieve that. It's actually about 20 thousand lines of source - ~600kB. Then on top of that, there's about a megabyte of static tables; for a single benchmark you could create a version that used only a small subset of those. > > Michael, is it possible to get it to compress the same bunch of samples > repeatedly to achieve the necessary run-time? Do you deal in frames of > data or some such? then we could maybe add a C const array holding > one frame's worth of input, and iterate over that repeatedly. Is > that viable? I haven't looked at Stephen's single-file version of all of this yet, so I'm not sure exactly what he's kept and what he hasn't. My impression was that it was oggenc AND libvorbis. libvorbis deals in arbitrarily sized chunks of data (it collects them internally to create blocks of the sizes that it wants) that get passed in directly, so it's very easy to do what you asked here. oggenc (the command-line frontend) is structured to read from actual files, but this wouldn't be a particularly interesting part of the benchmark anyway. I expect the best option would be to hack away most of oggenc, and just make it iterate over either a file or a static array (it doesn't really matter which, so long as the data isn't just all zeros!) submitting that to libvorbis. Depending on how this cold progresses (as I sit here sipping my hot honey&lemon drink), I'll either have a look at doing this this afternoon, or I'll be in bed... we'll see! Mike |
|
From: Julian S. <js...@ac...> - 2005-12-17 12:57:26
|
> Would anyone object to changing it to: > > "All malloc'd blocks were freed -- no leaks are possible" > > ? Seems good to me. Yes, it is poorly phrased. > And I wonder if we should still output this stuff: > > ==22614== LEAK SUMMARY: > ==22614== definitely lost: 0 bytes in 0 blocks. > ==22614== possibly lost: 0 bytes in 0 blocks. > ==22614== still reachable: 0 bytes in 0 blocks. > ==22614== suppressed: 0 bytes in 0 blocks. > > in this case, to be more consistent? That might give a regression testing problem. Imagine P which does free all its blocks, but the underlying glibc may or may not do so depending on version etc. Then P's regtest output would or would not include the summary if you made that change? (All in all I prefer to leave it as it is). > (Talking about malloc/free is also a little confusing here since the user > might have used new/delete...) "All malloc/new/new[] blocks were freed -- no leaks are possible" ? J |
|
From: Julian S. <js...@ac...> - 2005-12-17 12:54:14
|
> What are the feelings about backporting this to the 3.1 branch? Think gcc - the stable branch is for critical bugfixes only. I prefer not to push potentially destabilising changes like this into it. If people want the absolute max performance right now, they can try out the svn trunk. J |
|
From: Julian S. <js...@ac...> - 2005-12-17 12:52:38
|
Stephen, Michael, Thanks for the info on this. 1.7M of source is, well, a lot, but not beyond the bounds of possibility. What worries me more is how to generate enough workload to make it run for 2-5 seconds (natively). I don't want to have megabytes of .wav file in the repo to achieve that. Michael, is it possible to get it to compress the same bunch of samples repeatedly to achieve the necessary run-time? Do you deal in frames of data or some such? then we could maybe add a C const array holding one frame's worth of input, and iterate over that repeatedly. Is that viable? J On Wednesday 14 December 2005 23:13, Michael Smith wrote: > 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: Julian S. <js...@ac...> - 2005-12-17 12:43:29
|
Dirk, did you detect these problems by compiling with gcc-4.1.0, or how? J On Friday 09 December 2005 18:13, Dirk Mueller wrote: > Hi, > > there is a strict aliasing violation in VEX. it tries to print the memory > of a "double" by casting it to "ULong" and then reading it as "long long > int" for printf. double and ulong however may not alias. > > The fix is rather simple, just accessing the memory via F64i fixes the > issue, since both are a union, and the second one is declared ULong. > > Below is the patch, would be great if this could be committed to VEX (3_1 > and trunk). > > Thanks, > Dirk |
|
From: <sv...@va...> - 2005-12-17 11:28:56
|
Author: cerion
Date: 2005-12-17 11:28:53 +0000 (Sat, 17 Dec 2005)
New Revision: 1500
Log:
Fix typos.
Modified:
trunk/priv/guest-ppc32/toIR.c
trunk/priv/host-ppc32/hdefs.h
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-16 13:49:00 UTC (rev 1499)
+++ trunk/priv/guest-ppc32/toIR.c 2005-12-17 11:28:53 UTC (rev 1500)
@@ -749,13 +749,13 @@
binop(Iop_ShrV128, expr_vA, mkU8(16)), \
binop(Iop_ShrV128, expr_vB, mkU8(16)))
=20
-static IRExpr* /* :: Ity_I32/64 */ mk64lo32Sto64 ( IRExpr* src )
+static IRExpr* /* :: Ity_I64 */ mk64lo32Sto64 ( IRExpr* src )
{
vassert(typeOfIRExpr(irbb->tyenv, src) =3D=3D Ity_I64);
return unop(Iop_32Sto64, unop(Iop_64to32, src));
}
=20
-static IRExpr* /* :: Ity_I32/64 */ mk64lo32Uto64 ( IRExpr* src )
+static IRExpr* /* :: Ity_I64 */ mk64lo32Uto64 ( IRExpr* src )
{
vassert(typeOfIRExpr(irbb->tyenv, src) =3D=3D Ity_I64);
return unop(Iop_32Uto64, unop(Iop_64to32, src));
Modified: trunk/priv/host-ppc32/hdefs.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/host-ppc32/hdefs.h 2005-12-16 13:49:00 UTC (rev 1499)
+++ trunk/priv/host-ppc32/hdefs.h 2005-12-17 11:28:53 UTC (rev 1500)
@@ -759,7 +759,7 @@
=20
extern PPC32Instr* PPC32Instr_LI ( HReg, ULong, Bool );
extern PPC32Instr* PPC32Instr_Alu ( PPC32AluOp, HReg, HReg, PPC32=
RH* );
-extern PPC32Instr* PPC32Instr_Shft ( PPC32AluOp, Bool sz32, HReg, =
HReg, PPC32RH* );
+extern PPC32Instr* PPC32Instr_Shft ( PPC32ShftOp, Bool sz32, HReg,=
HReg, PPC32RH* );
extern PPC32Instr* PPC32Instr_AddSubC32 ( Bool, Bool, HReg, HReg, HReg =
);
extern PPC32Instr* PPC32Instr_Cmp ( Bool, Bool, UInt, HReg, PPC32=
RH* );
extern PPC32Instr* PPC32Instr_Unary ( PPC32UnaryOp op, HReg dst, HR=
eg src );
|
|
From: Jeroen N. W. <jn...@xs...> - 2005-12-17 09:30:34
|
> > Hi, > > In this message: > > ==22516== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from > 3) > ==22516== malloc/free: in use at exit: 0 bytes in 0 blocks. > ==22516== malloc/free: 5,000,000 allocs, 5,000,000 frees, 80,000,000 > bytes allocated. > ==22516== For counts of detected errors, rerun with: -v > ==22516== No malloc'd blocks -- no leaks are possible. > > the last line always confuses me -- it makes it sound like the program did > no heap allocation. Ditto, escpecially as it contradicts the '5,000,000 allocs' above it. > > Would anyone object to changing it to: > > "All malloc'd blocks were freed -- no leaks are possible" > > ? > > And I wonder if we should still output this stuff: > > ==22614== LEAK SUMMARY: > ==22614== definitely lost: 0 bytes in 0 blocks. > ==22614== possibly lost: 0 bytes in 0 blocks. > ==22614== still reachable: 0 bytes in 0 blocks. > ==22614== suppressed: 0 bytes in 0 blocks. > > in this case, to be more consistent? Please make these improvements. > > (Talking about malloc/free is also a little confusing here since the user > might have used new/delete...) > > Nick > > > ------------------------------------------------------- > 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-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Jeroen N. W. <jn...@xs...> - 2005-12-17 09:11:38
|
> On Tue, 2005-12-06 at 18:37 +0000, Ashley Pittman wrote:
>> I'm still seeing both crashes within valgrind and no error reports where
>> there should be some but I'm no further forward finding the cause of
>> this yet. A typical stack trace looks like this with what appears to be
>> two assertion failures in mac_leakcheck.c, the first one at line 588
>> "tl_assert(p_min != NULL)" and a second one at 539.
>
> I gave up trying to work with my library and went back to basics coding
> up a reproducer from scratch, can somebody take a look at this for me
> please.
>
> With the patch I posted yesterday it crashes with this error:
>
> Memcheck: mac_leakcheck.c:539 (full_report): Assertion
> 'lc_markstack[i].state == IndirectLeak' failed.
[snip stacktrace]
I've hacked together a patch (for trunk, needing work for COMPVBITS) to
produce leak checks for custom allocated blocks and mempools, as well as
for malloc'd blocks. I basically did this by separating the bookkeeping
for custom blocks from that for malloc'd blocks, and invoking the leak
detector for each type (malloc, custom or mempool). The problem with this
patch is that I cannot get it to work without disabling this
'tl_assert(lc_markstack[i].state == IndirectLeak' in 'static void
full_report(ThreadId tid)'. For custom blocks, the state I get is
Unreached, 'definitely lost'.
Can anybody tell me if the tl_assert() is too critical, or if this is some
other bug? Thanks.
Jeroen.
>
> Ashley,
>
> #include <stdlib.h>
> #include <assert.h>
> #include <sys/mman.h>
>
> #include <valgrind/valgrind.h>
> #include <valgrind/memcheck.h>
>
> #define SIZE (64*1024)
> int main () {
> char *mbase = mmap(NULL,SIZE,PROT_READ|PROT_WRITE, MAP_PRIVATE|
> MAP_NORESERVE|MAP_ANONYMOUS, 0, 0);
> assert(mbase != (void *)MAP_FAILED);
>
> VALGRIND_MAKE_NOACCESS(mbase,SIZE);
>
> VALGRIND_MALLOCLIKE_BLOCK(mbase+0,64,0,1);
> VALGRIND_MALLOCLIKE_BLOCK(mbase+64,64,0,1);
>
> /* Calling either this or using --leak-check=full results in a assert
> failure */
> VALGRIND_DO_LEAK_CHECK;
> exit(0);
> }
>
>
>
> -------------------------------------------------------
> 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-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
>
|
|
From: <js...@ac...> - 2005-12-17 03:47:13
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2005-12-17 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 == 176 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: <js...@ac...> - 2005-12-17 03:43:09
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2005-12-17 03:30:01 GMT
Checking out vex source tree ... done
Building vex ... failed
Last 20 lines of verbose log follow echo
-c priv/ir/irmatch.c
gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/ir/iropt.o \
-c priv/ir/iropt.c
gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/main/vex_main.o \
-c priv/main/vex_main.c
gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/main/vex_globals.o \
-c priv/main/vex_globals.c
gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/main/vex_util.o \
-c priv/main/vex_util.c
gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-x86/hdefs.o \
-c priv/host-x86/hdefs.c
gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-amd64/hdefs.o \
-c priv/host-amd64/hdefs.c
gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-arm/hdefs.o \
-c priv/host-arm/hdefs.c
gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-ppc32/hdefs.o \
-c priv/host-ppc32/hdefs.c
priv/host-ppc32/hdefs.c:729: error: conflicting types for 'PPC32Instr_Shft'
priv/host-ppc32/hdefs.h:762: error: previous declaration of 'PPC32Instr_Shft' was here
make: *** [priv/host-ppc32/hdefs.o] Error 1
=================================================
== 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
== 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)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Dec 17 03:42:39 2005
--- new.short Sat Dec 17 03:43:27 2005
***************
*** 2,19 ****
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)
--- 2,25 ----
Checking out vex source tree ... done
! Building vex ... failed
+ Last 20 lines of verbose log follow echo
+ -c priv/ir/irmatch.c
+ gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/ir/iropt.o \
+ -c priv/ir/iropt.c
+ gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/main/vex_main.o \
+ -c priv/main/vex_main.c
+ gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/main/vex_globals.o \
+ -c priv/main/vex_globals.c
+ gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/main/vex_util.o \
+ -c priv/main/vex_util.c
+ gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-x86/hdefs.o \
+ -c priv/host-x86/hdefs.c
+ gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-amd64/hdefs.o \
+ -c priv/host-amd64/hdefs.c
+ gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-arm/hdefs.o \
+ -c priv/host-arm/hdefs.c
+ gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-ppc32/hdefs.o \
+ -c priv/host-ppc32/hdefs.c
+ priv/host-ppc32/hdefs.c:729: error: conflicting types for 'PPC32Instr_Shft'
+ priv/host-ppc32/hdefs.h:762: error: previous declaration of 'PPC32Instr_Shft' was here
+ make: *** [priv/host-ppc32/hdefs.o] Error 1
|
|
From: Tom H. <to...@co...> - 2005-12-17 03:33:47
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-12-17 03:30:05 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo -c priv/main/vex_util.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -mpreferred-stack-boundary=2 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-x86/hdefs.o \ -c priv/host-x86/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -mpreferred-stack-boundary=2 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-amd64/hdefs.o \ -c priv/host-amd64/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -mpreferred-stack-boundary=2 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-arm/hdefs.o \ -c priv/host-arm/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -mpreferred-stack-boundary=2 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-ppc32/hdefs.o \ -c priv/host-ppc32/hdefs.c priv/host-ppc32/hdefs.c:729: error: conflicting types for 'PPC32Instr_Shft' priv/host-ppc32/hdefs.h:762: error: previous declaration of 'PPC32Instr_Shft' was here make[4]: *** [priv/host-ppc32/hdefs.o] Error 1 make[4]: Leaving directory `/tmp/valgrind.19463/valgrind/VEX' make[3]: *** [../VEX/libvex_x86_linux.a] Error 2 make[3]: Leaving directory `/tmp/valgrind.19463/valgrind/memcheck' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.19463/valgrind/memcheck' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.19463/valgrind' make: *** [all] Error 2 |
|
From: Tom H. <th...@cy...> - 2005-12-17 03:32:18
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-12-17 03:00: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 == 227 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-12-17 03:30:37
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-12-17 03:15:06 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, 0 stdout failures ================= 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/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-17 03:20:53
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-12-17 03:10:12 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo -c priv/main/vex_util.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-x86/hdefs.o \ -c priv/host-x86/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-amd64/hdefs.o \ -c priv/host-amd64/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-arm/hdefs.o \ -c priv/host-arm/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-ppc32/hdefs.o \ -c priv/host-ppc32/hdefs.c priv/host-ppc32/hdefs.c:729: error: conflicting types for 'PPC32Instr_Shft' priv/host-ppc32/hdefs.h:762: error: previous declaration of 'PPC32Instr_Shft' was here make[4]: *** [priv/host-ppc32/hdefs.o] Error 1 make[4]: Leaving directory `/tmp/valgrind.13995/valgrind/VEX' make[3]: *** [../VEX/libvex_x86_linux.a] Error 2 make[3]: Leaving directory `/tmp/valgrind.13995/valgrind/memcheck' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.13995/valgrind/memcheck' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.13995/valgrind' make: *** [all] Error 2 |
|
From: Tom H. <th...@cy...> - 2005-12-17 03:18:32
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-12-17 03:05:11 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo -c priv/host-x86/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-amd64/hdefs.o \ -c priv/host-amd64/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-arm/hdefs.o \ -c priv/host-arm/hdefs.c gcc -Wall -Wmissing-prototypes -Wshadow -Winline -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wmissing-declarations -m32 -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -g -O2 -Ipub -Ipriv -o priv/host-ppc32/hdefs.o \ -c priv/host-ppc32/hdefs.c priv/host-ppc32/hdefs.c:729: error: conflicting types for 'PPC32Instr_Shft' priv/host-ppc32/hdefs.h:762: error: previous declaration of 'PPC32Instr_Shft' was here priv/host-ppc32/hdefs.c:729: error: conflicting types for 'PPC32Instr_Shft' priv/host-ppc32/hdefs.h:762: error: previous declaration of 'PPC32Instr_Shft' was here make[4]: *** [priv/host-ppc32/hdefs.o] Error 1 make[4]: Leaving directory `/tmp/valgrind.27469/valgrind/VEX' make[3]: *** [../VEX/libvex_x86_linux.a] Error 2 make[3]: Leaving directory `/tmp/valgrind.27469/valgrind/memcheck' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.27469/valgrind/memcheck' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.27469/valgrind' make: *** [all] Error 2 |