You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(10) |
2
(1) |
|
3
(13) |
4
(13) |
5
(15) |
6
(12) |
7
(16) |
8
(18) |
9
(19) |
|
10
(13) |
11
(19) |
12
(11) |
13
(20) |
14
(20) |
15
(26) |
16
(12) |
|
17
(16) |
18
(19) |
19
(13) |
20
(24) |
21
(18) |
22
(23) |
23
(17) |
|
24
(19) |
25
(13) |
26
(22) |
27
(13) |
28
(17) |
29
(24) |
30
(14) |
|
31
(10) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2014-08-14 22:27:00
|
Author: sewardj
Date: Thu Aug 14 22:26:52 2014
New Revision: 2922
Log:
arm64: implement: {uqshl, sqshl, sqshlu} (vector, imm).
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/host_arm64_defs.c
trunk/priv/host_arm64_defs.h
trunk/priv/host_arm64_isel.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Thu Aug 14 22:26:52 2014
@@ -921,6 +921,28 @@
return ops[sizeNarrow];
}
+static IROp mkVecQSHLNSATU2U ( UInt size ) {
+ const IROp ops[4]
+ = { Iop_QShlN8x16, Iop_QShlN16x8, Iop_QShlN32x4, Iop_QShlN64x2 };
+ vassert(size < 4);
+ return ops[size];
+}
+
+static IROp mkVecQSHLNSATS2S ( UInt size ) {
+ const IROp ops[4]
+ = { Iop_QSalN8x16, Iop_QSalN16x8, Iop_QSalN32x4, Iop_QSalN64x2 };
+ vassert(size < 4);
+ return ops[size];
+}
+
+static IROp mkVecQSHLNSATS2U ( UInt size ) {
+ const IROp ops[4]
+ = { Iop_QShlN8Sx16, Iop_QShlN16Sx8, Iop_QShlN32Sx4, Iop_QShlN64Sx2 };
+ vassert(size < 4);
+ return ops[size];
+}
+
+
/* Generate IR to create 'arg rotated right by imm', for sane values
of 'ty' and 'imm'. */
static IRTemp mathROR ( IRType ty, IRTemp arg, UInt imm )
@@ -6569,6 +6591,91 @@
}
+/* Generate IR for SQSHL, UQSHL, SQSHLU by imm. Put the result in
+ a new temp in *res, and the Q difference pair in new temps in
+ *qDiff1 and *qDiff2 respectively. |nm| denotes which of the
+ three operations it is. */
+static
+void math_QSHL_IMM ( /*OUT*/IRTemp* res,
+ /*OUT*/IRTemp* qDiff1, /*OUT*/IRTemp* qDiff2,
+ IRTemp src, UInt size, UInt shift, const HChar* nm )
+{
+ vassert(size <= 3);
+ UInt laneBits = 8 << size;
+ vassert(shift < laneBits);
+ newTempsV128_3(res, qDiff1, qDiff2);
+ IRTemp z128 = newTempV128();
+ assign(z128, mkV128(0x0000));
+
+ /* UQSHL */
+ if (vex_streq(nm, "uqshl")) {
+ IROp qop = mkVecQSHLNSATU2U(size);
+ assign(*res, binop(qop, mkexpr(src), mkU8(shift)));
+ if (shift == 0) {
+ /* No shift means no saturation. */
+ assign(*qDiff1, mkexpr(z128));
+ assign(*qDiff2, mkexpr(z128));
+ } else {
+ /* Saturation has occurred if any of the shifted-out bits are
+ nonzero. We get the shifted-out bits by right-shifting the
+ original value. */
+ UInt rshift = laneBits - shift;
+ vassert(rshift >= 1 && rshift < laneBits);
+ assign(*qDiff1, binop(mkVecSHRN(size), mkexpr(src), mkU8(rshift)));
+ assign(*qDiff2, mkexpr(z128));
+ }
+ return;
+ }
+
+ /* SQSHL */
+ if (vex_streq(nm, "sqshl")) {
+ IROp qop = mkVecQSHLNSATS2S(size);
+ assign(*res, binop(qop, mkexpr(src), mkU8(shift)));
+ if (shift == 0) {
+ /* No shift means no saturation. */
+ assign(*qDiff1, mkexpr(z128));
+ assign(*qDiff2, mkexpr(z128));
+ } else {
+ /* Saturation has occurred if any of the shifted-out bits are
+ different from the top bit of the original value. */
+ UInt rshift = laneBits - 1 - shift;
+ vassert(rshift >= 0 && rshift < laneBits-1);
+ /* qDiff1 is the shifted out bits, and the top bit of the original
+ value, preceded by zeroes. */
+ assign(*qDiff1, binop(mkVecSHRN(size), mkexpr(src), mkU8(rshift)));
+ /* qDiff2 is the top bit of the original value, cloned the
+ correct number of times. */
+ assign(*qDiff2, binop(mkVecSHRN(size),
+ binop(mkVecSARN(size), mkexpr(src),
+ mkU8(laneBits-1)),
+ mkU8(rshift)));
+ /* This also succeeds in comparing the top bit of the original
+ value to itself, which is a bit stupid, but not wrong. */
+ }
+ return;
+ }
+
+ /* SQSHLU */
+ if (vex_streq(nm, "sqshlu")) {
+ IROp qop = mkVecQSHLNSATS2U(size);
+ assign(*res, binop(qop, mkexpr(src), mkU8(shift)));
+ /* This is different from the other two cases, in that
+ saturation can occur even if there is no shift. */
+ /* Saturation has occurred if any of the shifted-out bits, or
+ the top bit of the original value, are nonzero. */
+ UInt rshift = laneBits - 1 - shift;
+ vassert(rshift >= 0 && rshift < laneBits);
+ /* qDiff1 is the shifted out bits, and the top bit of the original
+ value, preceded by zeroes. */
+ assign(*qDiff1, binop(mkVecSHRN(size), mkexpr(src), mkU8(rshift)));
+ assign(*qDiff2, mkexpr(z128));
+ return;
+ }
+
+ vassert(0);
+}
+
+
/* QCFLAG tracks the SIMD sticky saturation status. Update the status
thusly: if, after application of |opZHI| to both |qres| and |nres|,
they have the same value, leave QCFLAG unchanged. Otherwise, set it
@@ -8230,6 +8337,42 @@
return True;
}
+ if (opcode == BITS5(0,1,1,1,0)
+ || (bitU == 1 && opcode == BITS5(0,1,1,0,0))) {
+ /* -------- 0,01110 SQSHL std7_std7_#imm -------- */
+ /* -------- 1,01110 UQSHL std7_std7_#imm -------- */
+ /* -------- 1,01100 SQSHLU std7_std7_#imm -------- */
+ UInt size = 0;
+ UInt shift = 0;
+ Bool isQ = bitQ == 1;
+ Bool ok = getLaneInfo_IMMH_IMMB(&shift, &size, immh, immb);
+ if (!ok || (bitQ == 0 && size == X11)) return False;
+ vassert(size >= 0 && size <= 3);
+ /* The shift encoding has opposite sign for the leftwards case.
+ Adjust shift to compensate. */
+ UInt lanebits = 8 << size;
+ shift = lanebits - shift;
+ vassert(shift >= 0 && shift < lanebits);
+ const HChar* nm = NULL;
+ /**/ if (bitU == 0 && opcode == BITS5(0,1,1,1,0)) nm = "sqshl";
+ else if (bitU == 1 && opcode == BITS5(0,1,1,1,0)) nm = "uqshl";
+ else if (bitU == 1 && opcode == BITS5(0,1,1,0,0)) nm = "sqshlu";
+ else vassert(0);
+ IRTemp qDiff1 = IRTemp_INVALID;
+ IRTemp qDiff2 = IRTemp_INVALID;
+ IRTemp res = IRTemp_INVALID;
+ IRTemp src = newTempV128();
+ assign(src, getQReg128(nn));
+ math_QSHL_IMM(&res, &qDiff1, &qDiff2, src, size, shift, nm);
+ putQReg128(dd, math_MAYBE_ZERO_HI64(bitQ, res));
+ updateQCFLAGwithDifferenceZHI(qDiff1, qDiff2,
+ isQ ? Iop_ZeroHI64ofV128 : Iop_INVALID);
+ const HChar* arr = nameArr_Q_SZ(bitQ, size);
+ DIP("%s %s.%s, %s.%s, #%u\n", nm,
+ nameQReg128(dd), arr, nameQReg128(nn), arr, shift);
+ return True;
+ }
+
if (bitU == 0
&& (opcode == BITS5(1,0,0,0,0) || opcode == BITS5(1,0,0,0,1))) {
/* -------- 0,10000 SHRN{,2} #imm -------- */
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Thu Aug 14 22:26:52 2014
@@ -1037,6 +1037,18 @@
case ARM64vecsh_SQRSHRUN2SD: *nm = "sqrshrun"; *ar = "2sd"; return;
case ARM64vecsh_SQRSHRUN4HS: *nm = "sqrshrun"; *ar = "4hs"; return;
case ARM64vecsh_SQRSHRUN8BH: *nm = "sqrshrun"; *ar = "8bh"; return;
+ case ARM64vecsh_UQSHL64x2: *nm = "uqshl "; *ar = "2d"; return;
+ case ARM64vecsh_UQSHL32x4: *nm = "uqshl "; *ar = "4s"; return;
+ case ARM64vecsh_UQSHL16x8: *nm = "uqshl "; *ar = "8h"; return;
+ case ARM64vecsh_UQSHL8x16: *nm = "uqshl "; *ar = "16b"; return;
+ case ARM64vecsh_SQSHL64x2: *nm = "sqshl "; *ar = "2d"; return;
+ case ARM64vecsh_SQSHL32x4: *nm = "sqshl "; *ar = "4s"; return;
+ case ARM64vecsh_SQSHL16x8: *nm = "sqshl "; *ar = "8h"; return;
+ case ARM64vecsh_SQSHL8x16: *nm = "sqshl "; *ar = "16b"; return;
+ case ARM64vecsh_SQSHLU64x2: *nm = "sqshlu"; *ar = "2d"; return;
+ case ARM64vecsh_SQSHLU32x4: *nm = "sqshlu"; *ar = "4s"; return;
+ case ARM64vecsh_SQSHLU16x8: *nm = "sqshlu"; *ar = "8h"; return;
+ case ARM64vecsh_SQSHLU8x16: *nm = "sqshlu"; *ar = "16b"; return;
default: vpanic("showARM64VecShiftOp");
}
}
@@ -1763,48 +1775,53 @@
i->ARM64in.VShiftImmV.dst = dst;
i->ARM64in.VShiftImmV.src = src;
i->ARM64in.VShiftImmV.amt = amt;
+ UInt minSh = 0;
UInt maxSh = 0;
switch (op) {
- /* NB: the comments below are wrong. Correct is: for right shifts,
- the allowed shift amounts are 1 .. lane_size. For left shifts,
- the allowed shift amoutns are 0 .. lane_size-1. */
- /* For these ordinary, non-saturating non-magical shifts,
- the min shift value is actually zero, but we reject such cases
- and instead only accept 1 as the minimum shift value. */
+ /* For right shifts, the allowed shift amounts are 1 .. lane_size.
+ For left shifts, the allowed shift amounts are 0 .. lane_size-1.
+ */
case ARM64vecsh_USHR64x2: case ARM64vecsh_SSHR64x2:
- case ARM64vecsh_SHL64x2:
- maxSh = 63; break;
- case ARM64vecsh_USHR32x4: case ARM64vecsh_SSHR32x4:
- case ARM64vecsh_SHL32x4:
- maxSh = 31; break;
- case ARM64vecsh_USHR16x8: case ARM64vecsh_SSHR16x8:
- case ARM64vecsh_SHL16x8:
- maxSh = 15; break;
- case ARM64vecsh_USHR8x16: case ARM64vecsh_SSHR8x16:
- case ARM64vecsh_SHL8x16:
- maxSh = 7; break;
- /* Whereas for these shift right and narrow set, the min shift
- value really is 1. */
- case ARM64vecsh_UQSHRN2SD: case ARM64vecsh_SQSHRN2SD:
+ case ARM64vecsh_UQSHRN2SD: case ARM64vecsh_SQSHRN2SD:
case ARM64vecsh_SQSHRUN2SD:
case ARM64vecsh_UQRSHRN2SD: case ARM64vecsh_SQRSHRN2SD:
case ARM64vecsh_SQRSHRUN2SD:
- maxSh = 64; break;
- case ARM64vecsh_UQSHRN4HS: case ARM64vecsh_SQSHRN4HS:
+ minSh = 1; maxSh = 64; break;
+ case ARM64vecsh_SHL64x2:
+ case ARM64vecsh_UQSHL64x2: case ARM64vecsh_SQSHL64x2:
+ case ARM64vecsh_SQSHLU64x2:
+ minSh = 0; maxSh = 63; break;
+ case ARM64vecsh_USHR32x4: case ARM64vecsh_SSHR32x4:
+ case ARM64vecsh_UQSHRN4HS: case ARM64vecsh_SQSHRN4HS:
case ARM64vecsh_SQSHRUN4HS:
case ARM64vecsh_UQRSHRN4HS: case ARM64vecsh_SQRSHRN4HS:
case ARM64vecsh_SQRSHRUN4HS:
- maxSh = 32; break;
- case ARM64vecsh_UQSHRN8BH: case ARM64vecsh_SQSHRN8BH:
+ minSh = 1; maxSh = 32; break;
+ case ARM64vecsh_SHL32x4:
+ case ARM64vecsh_UQSHL32x4: case ARM64vecsh_SQSHL32x4:
+ case ARM64vecsh_SQSHLU32x4:
+ minSh = 0; maxSh = 31; break;
+ case ARM64vecsh_USHR16x8: case ARM64vecsh_SSHR16x8:
+ case ARM64vecsh_UQSHRN8BH: case ARM64vecsh_SQSHRN8BH:
case ARM64vecsh_SQSHRUN8BH:
case ARM64vecsh_UQRSHRN8BH: case ARM64vecsh_SQRSHRN8BH:
case ARM64vecsh_SQRSHRUN8BH:
- maxSh = 16; break;
+ minSh = 1; maxSh = 16; break;
+ case ARM64vecsh_SHL16x8:
+ case ARM64vecsh_UQSHL16x8: case ARM64vecsh_SQSHL16x8:
+ case ARM64vecsh_SQSHLU16x8:
+ minSh = 0; maxSh = 15; break;
+ case ARM64vecsh_USHR8x16: case ARM64vecsh_SSHR8x16:
+ minSh = 1; maxSh = 8; break;
+ case ARM64vecsh_SHL8x16:
+ case ARM64vecsh_UQSHL8x16: case ARM64vecsh_SQSHL8x16:
+ case ARM64vecsh_SQSHLU8x16:
+ minSh = 0; maxSh = 7; break;
default:
vassert(0);
}
vassert(maxSh > 0);
- vassert(amt > 0 && amt <= maxSh);
+ vassert(amt >= minSh && amt <= maxSh);
return i;
}
ARM64Instr* ARM64Instr_VExtV ( HReg dst, HReg srcLo, HReg srcHi, UInt amtB ) {
@@ -3623,6 +3640,7 @@
#define X011001 BITS8(0,0, 0,1,1,0,0,1)
#define X011010 BITS8(0,0, 0,1,1,0,1,0)
#define X011011 BITS8(0,0, 0,1,1,0,1,1)
+#define X011101 BITS8(0,0, 0,1,1,1,0,1)
#define X011110 BITS8(0,0, 0,1,1,1,1,0)
#define X011111 BITS8(0,0, 0,1,1,1,1,1)
#define X100001 BITS8(0,0, 1,0,0,0,0,1)
@@ -5888,6 +5906,7 @@
001 011110 immh immb 100111 n d UQRSHRN ,,#sh
000 011110 immh immb 100111 n d SQRSHRN ,,#sh
001 011110 immh immb 100011 n d SQRSHRUN ,,#sh
+
where immh:immb
= case T of
2d | sh in 1..64 -> let xxxxxx = 64-sh in 1xxx:xxx
@@ -5895,7 +5914,12 @@
8h | sh in 1..16 -> let xxxx = 16-sh in 001x:xxx
16b | sh in 1..8 -> let xxx = 8-sh in 0001:xxx
- 010 011110 immh immb 010101 n d SHL Vd.T, Vn.T, #sh
+ 010 011110 immh immb 010101 n d SHL Vd.T, Vn.T, #sh
+
+ 011 011110 immh immb 011101 n d UQSHL Vd.T, Vn.T, #sh
+ 010 011110 immh immb 011101 n d SQSHL Vd.T, Vn.T, #sh
+ 011 011110 immh immb 011001 n d SQSHLU Vd.T, Vn.T, #sh
+
where immh:immb
= case T of
2d | sh in 0..63 -> let xxxxxx = sh in 1xxx:xxx
@@ -5930,11 +5954,20 @@
const UInt tmpl_SHL
= X_3_6_7_6_5_5(X010, X011110, 0, X010101, vN, vD);
+ const UInt tmpl_UQSHL
+ = X_3_6_7_6_5_5(X011, X011110, 0, X011101, vN, vD);
+ const UInt tmpl_SQSHL
+ = X_3_6_7_6_5_5(X010, X011110, 0, X011101, vN, vD);
+ const UInt tmpl_SQSHLU
+ = X_3_6_7_6_5_5(X011, X011110, 0, X011001, vN, vD);
+
switch (i->ARM64in.VShiftImmV.op) {
case ARM64vecsh_SSHR64x2: tmpl = tmpl_SSHR; goto right64x2;
case ARM64vecsh_USHR64x2: tmpl = tmpl_USHR; goto right64x2;
case ARM64vecsh_SHL64x2: tmpl = tmpl_SHL; goto left64x2;
-
+ case ARM64vecsh_UQSHL64x2: tmpl = tmpl_UQSHL; goto left64x2;
+ case ARM64vecsh_SQSHL64x2: tmpl = tmpl_SQSHL; goto left64x2;
+ case ARM64vecsh_SQSHLU64x2: tmpl = tmpl_SQSHLU; goto left64x2;
case ARM64vecsh_SSHR32x4: tmpl = tmpl_SSHR; goto right32x4;
case ARM64vecsh_USHR32x4: tmpl = tmpl_USHR; goto right32x4;
case ARM64vecsh_UQSHRN2SD: tmpl = tmpl_UQSHRN; goto right32x4;
@@ -5944,7 +5977,9 @@
case ARM64vecsh_SQRSHRN2SD: tmpl = tmpl_SQRSHRN; goto right32x4;
case ARM64vecsh_SQRSHRUN2SD: tmpl = tmpl_SQRSHRUN; goto right32x4;
case ARM64vecsh_SHL32x4: tmpl = tmpl_SHL; goto left32x4;
-
+ case ARM64vecsh_UQSHL32x4: tmpl = tmpl_UQSHL; goto left32x4;
+ case ARM64vecsh_SQSHL32x4: tmpl = tmpl_SQSHL; goto left32x4;
+ case ARM64vecsh_SQSHLU32x4: tmpl = tmpl_SQSHLU; goto left32x4;
case ARM64vecsh_SSHR16x8: tmpl = tmpl_SSHR; goto right16x8;
case ARM64vecsh_USHR16x8: tmpl = tmpl_USHR; goto right16x8;
case ARM64vecsh_UQSHRN4HS: tmpl = tmpl_UQSHRN; goto right16x8;
@@ -5954,7 +5989,9 @@
case ARM64vecsh_SQRSHRN4HS: tmpl = tmpl_SQRSHRN; goto right16x8;
case ARM64vecsh_SQRSHRUN4HS: tmpl = tmpl_SQRSHRUN; goto right16x8;
case ARM64vecsh_SHL16x8: tmpl = tmpl_SHL; goto left16x8;
-
+ case ARM64vecsh_UQSHL16x8: tmpl = tmpl_UQSHL; goto left16x8;
+ case ARM64vecsh_SQSHL16x8: tmpl = tmpl_SQSHL; goto left16x8;
+ case ARM64vecsh_SQSHLU16x8: tmpl = tmpl_SQSHLU; goto left16x8;
case ARM64vecsh_SSHR8x16: tmpl = tmpl_SSHR; goto right8x16;
case ARM64vecsh_USHR8x16: tmpl = tmpl_USHR; goto right8x16;
case ARM64vecsh_UQSHRN8BH: tmpl = tmpl_UQSHRN; goto right8x16;
@@ -5964,6 +6001,9 @@
case ARM64vecsh_SQRSHRN8BH: tmpl = tmpl_SQRSHRN; goto right8x16;
case ARM64vecsh_SQRSHRUN8BH: tmpl = tmpl_SQRSHRUN; goto right8x16;
case ARM64vecsh_SHL8x16: tmpl = tmpl_SHL; goto left8x16;
+ case ARM64vecsh_UQSHL8x16: tmpl = tmpl_UQSHL; goto left8x16;
+ case ARM64vecsh_SQSHL8x16: tmpl = tmpl_SQSHL; goto left8x16;
+ case ARM64vecsh_SQSHLU8x16: tmpl = tmpl_SQSHLU; goto left8x16;
default: break;
@@ -5993,25 +6033,25 @@
break;
left64x2:
- if (sh >= 1 && sh <= 63) {
+ if (sh >= 0 && sh <= 63) {
*p++ = tmpl | X_3_6_7_6_5_5(0,0, X1000000 | sh, 0,0,0);
goto done;
}
break;
left32x4:
- if (sh >= 1 && sh <= 31) {
+ if (sh >= 0 && sh <= 31) {
*p++ = tmpl | X_3_6_7_6_5_5(0,0, X0100000 | sh, 0,0,0);
goto done;
}
break;
left16x8:
- if (sh >= 1 && sh <= 15) {
+ if (sh >= 0 && sh <= 15) {
*p++ = tmpl | X_3_6_7_6_5_5(0,0, X0010000 | sh, 0,0,0);
goto done;
}
break;
left8x16:
- if (sh >= 1 && sh <= 7) {
+ if (sh >= 0 && sh <= 7) {
*p++ = tmpl | X_3_6_7_6_5_5(0,0, X0001000 | sh, 0,0,0);
goto done;
}
@@ -7024,6 +7064,12 @@
HReg rD = i->ARM64in.VMov.dst;
HReg rN = i->ARM64in.VMov.src;
switch (i->ARM64in.VMov.szB) {
+ case 16: {
+ UInt dd = qregNo(rD);
+ UInt nn = qregNo(rN);
+ *p++ = X_3_8_5_6_5_5(X010, X01110101, nn, X000111, nn, dd);
+ goto done;
+ }
case 8: {
UInt dd = dregNo(rD);
UInt nn = dregNo(rN);
Modified: trunk/priv/host_arm64_defs.h
==============================================================================
--- trunk/priv/host_arm64_defs.h (original)
+++ trunk/priv/host_arm64_defs.h Thu Aug 14 22:26:52 2014
@@ -410,6 +410,13 @@
ARM64vecsh_SQRSHRN2SD, ARM64vecsh_SQRSHRN4HS, ARM64vecsh_SQRSHRN8BH,
ARM64vecsh_UQRSHRN2SD, ARM64vecsh_UQRSHRN4HS, ARM64vecsh_UQRSHRN8BH,
ARM64vecsh_SQRSHRUN2SD, ARM64vecsh_SQRSHRUN4HS, ARM64vecsh_SQRSHRUN8BH,
+ /* Saturating left shifts, of various flavours. */
+ ARM64vecsh_UQSHL64x2, ARM64vecsh_UQSHL32x4,
+ ARM64vecsh_UQSHL16x8, ARM64vecsh_UQSHL8x16,
+ ARM64vecsh_SQSHL64x2, ARM64vecsh_SQSHL32x4,
+ ARM64vecsh_SQSHL16x8, ARM64vecsh_SQSHL8x16,
+ ARM64vecsh_SQSHLU64x2, ARM64vecsh_SQSHLU32x4,
+ ARM64vecsh_SQSHLU16x8, ARM64vecsh_SQSHLU8x16,
ARM64vecsh_INVALID
}
ARM64VecShiftOp;
@@ -746,9 +753,10 @@
HReg dst; // Q reg
HReg src; // Q reg
} VNarrowV;
- /* Vector shift by immediate. |amt| needs to be > 0 and <
- implied lane size of |op|. Zero shifts and out of range
- shifts are not allowed. */
+ /* Vector shift by immediate. For left shifts, |amt| must be
+ >= 0 and < implied lane size of |op|. For right shifts,
+ |amt| must be > 0 and <= implied lane size of |op|. Shifts
+ beyond these ranges are not allowed. */
struct {
ARM64VecShiftOp op;
HReg dst;
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Thu Aug 14 22:26:52 2014
@@ -5604,68 +5604,105 @@
//ZZ res, argL, size, True));
//ZZ return res;
//ZZ }
- case Iop_ShrN64x2:
- case Iop_ShrN32x4:
- case Iop_ShrN16x8:
- case Iop_ShrN8x16:
- case Iop_SarN64x2:
- case Iop_SarN32x4:
- case Iop_SarN16x8:
- case Iop_SarN8x16:
- case Iop_ShlN64x2:
- case Iop_ShlN32x4:
- case Iop_ShlN16x8:
- case Iop_ShlN8x16:
+ case Iop_ShrN64x2: case Iop_ShrN32x4:
+ case Iop_ShrN16x8: case Iop_ShrN8x16:
+ case Iop_SarN64x2: case Iop_SarN32x4:
+ case Iop_SarN16x8: case Iop_SarN8x16:
+ case Iop_ShlN64x2: case Iop_ShlN32x4:
+ case Iop_ShlN16x8: case Iop_ShlN8x16:
+ case Iop_QShlN64x2: case Iop_QShlN32x4:
+ case Iop_QShlN16x8: case Iop_QShlN8x16:
+ case Iop_QSalN64x2: case Iop_QSalN32x4:
+ case Iop_QSalN16x8: case Iop_QSalN8x16:
+ case Iop_QShlN64Sx2: case Iop_QShlN32Sx4:
+ case Iop_QShlN16Sx8: case Iop_QShlN8Sx16:
{
IRExpr* argL = e->Iex.Binop.arg1;
IRExpr* argR = e->Iex.Binop.arg2;
if (argR->tag == Iex_Const && argR->Iex.Const.con->tag == Ico_U8) {
UInt amt = argR->Iex.Const.con->Ico.U8;
- UInt limit = 0;
+ UInt limLo = 0;
+ UInt limHi = 0;
ARM64VecShiftOp op = ARM64vecsh_INVALID;
+ /* Establish the instruction to use. */
switch (e->Iex.Binop.op) {
- case Iop_ShrN64x2:
- op = ARM64vecsh_USHR64x2; limit = 63; break;
- case Iop_ShrN32x4:
- op = ARM64vecsh_USHR32x4; limit = 31; break;
- case Iop_ShrN16x8:
- op = ARM64vecsh_USHR16x8; limit = 15; break;
- case Iop_ShrN8x16:
- op = ARM64vecsh_USHR8x16; limit = 7; break;
- case Iop_SarN64x2:
- op = ARM64vecsh_SSHR64x2; limit = 63; break;
- case Iop_SarN32x4:
- op = ARM64vecsh_SSHR32x4; limit = 31; break;
- case Iop_SarN16x8:
- op = ARM64vecsh_SSHR16x8; limit = 15; break;
- case Iop_SarN8x16:
- op = ARM64vecsh_SSHR8x16; limit = 7; break;
- case Iop_ShlN64x2:
- op = ARM64vecsh_SHL64x2; limit = 63; break;
- case Iop_ShlN32x4:
- op = ARM64vecsh_SHL32x4; limit = 31; break;
- case Iop_ShlN16x8:
- op = ARM64vecsh_SHL16x8; limit = 15; break;
- case Iop_ShlN8x16:
- op = ARM64vecsh_SHL8x16; limit = 7; break;
- default:
- vassert(0);
+ case Iop_ShrN64x2: op = ARM64vecsh_USHR64x2; break;
+ case Iop_ShrN32x4: op = ARM64vecsh_USHR32x4; break;
+ case Iop_ShrN16x8: op = ARM64vecsh_USHR16x8; break;
+ case Iop_ShrN8x16: op = ARM64vecsh_USHR8x16; break;
+ case Iop_SarN64x2: op = ARM64vecsh_SSHR64x2; break;
+ case Iop_SarN32x4: op = ARM64vecsh_SSHR32x4; break;
+ case Iop_SarN16x8: op = ARM64vecsh_SSHR16x8; break;
+ case Iop_SarN8x16: op = ARM64vecsh_SSHR8x16; break;
+ case Iop_ShlN64x2: op = ARM64vecsh_SHL64x2; break;
+ case Iop_ShlN32x4: op = ARM64vecsh_SHL32x4; break;
+ case Iop_ShlN16x8: op = ARM64vecsh_SHL16x8; break;
+ case Iop_ShlN8x16: op = ARM64vecsh_SHL8x16; break;
+ case Iop_QShlN64x2: op = ARM64vecsh_UQSHL64x2; break;
+ case Iop_QShlN32x4: op = ARM64vecsh_UQSHL32x4; break;
+ case Iop_QShlN16x8: op = ARM64vecsh_UQSHL16x8; break;
+ case Iop_QShlN8x16: op = ARM64vecsh_UQSHL8x16; break;
+ case Iop_QSalN64x2: op = ARM64vecsh_SQSHL64x2; break;
+ case Iop_QSalN32x4: op = ARM64vecsh_SQSHL32x4; break;
+ case Iop_QSalN16x8: op = ARM64vecsh_SQSHL16x8; break;
+ case Iop_QSalN8x16: op = ARM64vecsh_SQSHL8x16; break;
+ case Iop_QShlN64Sx2: op = ARM64vecsh_SQSHLU64x2; break;
+ case Iop_QShlN32Sx4: op = ARM64vecsh_SQSHLU32x4; break;
+ case Iop_QShlN16Sx8: op = ARM64vecsh_SQSHLU16x8; break;
+ case Iop_QShlN8Sx16: op = ARM64vecsh_SQSHLU8x16; break;
+ default: vassert(0);
}
- if (op != ARM64vecsh_INVALID && amt >= 0 && amt <= limit) {
+ /* Establish the shift limits, for sanity check purposes only. */
+ switch (e->Iex.Binop.op) {
+ case Iop_ShrN64x2: limLo = 1; limHi = 64; break;
+ case Iop_ShrN32x4: limLo = 1; limHi = 32; break;
+ case Iop_ShrN16x8: limLo = 1; limHi = 16; break;
+ case Iop_ShrN8x16: limLo = 1; limHi = 8; break;
+ case Iop_SarN64x2: limLo = 1; limHi = 64; break;
+ case Iop_SarN32x4: limLo = 1; limHi = 32; break;
+ case Iop_SarN16x8: limLo = 1; limHi = 16; break;
+ case Iop_SarN8x16: limLo = 1; limHi = 8; break;
+ case Iop_ShlN64x2: limLo = 0; limHi = 63; break;
+ case Iop_ShlN32x4: limLo = 0; limHi = 31; break;
+ case Iop_ShlN16x8: limLo = 0; limHi = 15; break;
+ case Iop_ShlN8x16: limLo = 0; limHi = 7; break;
+ case Iop_QShlN64x2: limLo = 0; limHi = 63; break;
+ case Iop_QShlN32x4: limLo = 0; limHi = 31; break;
+ case Iop_QShlN16x8: limLo = 0; limHi = 15; break;
+ case Iop_QShlN8x16: limLo = 0; limHi = 7; break;
+ case Iop_QSalN64x2: limLo = 0; limHi = 63; break;
+ case Iop_QSalN32x4: limLo = 0; limHi = 31; break;
+ case Iop_QSalN16x8: limLo = 0; limHi = 15; break;
+ case Iop_QSalN8x16: limLo = 0; limHi = 7; break;
+ case Iop_QShlN64Sx2: limLo = 0; limHi = 63; break;
+ case Iop_QShlN32Sx4: limLo = 0; limHi = 31; break;
+ case Iop_QShlN16Sx8: limLo = 0; limHi = 15; break;
+ case Iop_QShlN8Sx16: limLo = 0; limHi = 7; break;
+ default: vassert(0);
+ }
+ /* For left shifts, the allowable amt values are
+ 0 .. lane_bits-1. For right shifts the allowable
+ values are 1 .. lane_bits. */
+ if (op != ARM64vecsh_INVALID && amt >= limLo && amt <= limHi) {
HReg src = iselV128Expr(env, argL);
HReg dst = newVRegV(env);
- if (amt > 0) {
- /* For left shifts, the allowable amt values are
- 0 .. lane_bits-1. For right shifts the allowable
- values are 1 .. lane_bits. By restricting it to
- 1 .. lane_bits-1, we are guaranteed to create a
- valid instruction. */
- addInstr(env, ARM64Instr_VShiftImmV(op, dst, src, amt));
- } else {
- dst = src;
- }
+ addInstr(env, ARM64Instr_VShiftImmV(op, dst, src, amt));
return dst;
}
+ /* Special case some no-op shifts that the arm64 front end
+ throws at us. We can't generate any instructions for these,
+ but we don't need to either. */
+ switch (e->Iex.Binop.op) {
+ case Iop_ShrN64x2: case Iop_ShrN32x4:
+ case Iop_ShrN16x8: case Iop_ShrN8x16:
+ if (amt == 0) {
+ return iselV128Expr(env, argL);
+ }
+ break;
+ default:
+ break;
+ }
+ /* otherwise unhandled */
}
/* else fall out; this is unhandled */
break;
|
|
From: <sv...@va...> - 2014-08-14 22:25:39
|
Author: sewardj
Date: Thu Aug 14 22:25:31 2014
New Revision: 2921
Log:
Add a simple folding rule for Iop_ZeroHI64ofV128.
Modified:
trunk/priv/ir_opt.c
Modified: trunk/priv/ir_opt.c
==============================================================================
--- trunk/priv/ir_opt.c (original)
+++ trunk/priv/ir_opt.c Thu Aug 14 22:25:31 2014
@@ -1657,6 +1657,18 @@
break;
}
+ case Iop_ZeroHI64ofV128: {
+ /* Could do better here -- only need to look at the bottom 64 bits
+ of the argument, really. */
+ UShort v128 = e->Iex.Unop.arg->Iex.Const.con->Ico.V128;
+ if (v128 == 0x0000) {
+ e2 = IRExpr_Const(IRConst_V128(0x0000));
+ } else {
+ goto unhandled;
+ }
+ break;
+ }
+
default:
goto unhandled;
}
|
|
From: <sv...@va...> - 2014-08-14 21:22:56
|
Author: florian
Date: Thu Aug 14 21:22:48 2014
New Revision: 14280
Log:
Add a comment.
Modified:
branches/BUF_REMOVAL/cachegrind/cg_sim.c
Modified: branches/BUF_REMOVAL/cachegrind/cg_sim.c
==============================================================================
--- branches/BUF_REMOVAL/cachegrind/cg_sim.c (original)
+++ branches/BUF_REMOVAL/cachegrind/cg_sim.c Thu Aug 14 21:22:48 2014
@@ -46,7 +46,7 @@
Int sets_min_1;
Int line_size_bits;
Int tag_shift;
- HChar desc_line[128];
+ HChar desc_line[128]; /* large enough */
UWord* tags;
} cache_t2;
|
Author: florian
Date: Thu Aug 14 17:32:26 2014
New Revision: 14279
Log:
Choose some floating point numbers that are hopefully easier to write out.
Modified:
trunk/none/tests/s390x/rounding-3.c
trunk/none/tests/s390x/rounding-3.stdout.exp
trunk/none/tests/s390x/rounding-4.c
trunk/none/tests/s390x/rounding-4.stdout.exp
trunk/none/tests/s390x/rounding-6.c
trunk/none/tests/s390x/rounding-6.stdout.exp
Modified: trunk/none/tests/s390x/rounding-3.c
==============================================================================
--- trunk/none/tests/s390x/rounding-3.c (original)
+++ trunk/none/tests/s390x/rounding-3.c Thu Aug 14 17:32:26 2014
@@ -71,10 +71,10 @@
int i, j;
static const unsigned rmodes[] = { 0, 1, 2, 3 };
static const float fval[] = {
- 1.4f, 1.5f, 2.5f, 1.6f, -1.4f, -1.5f, -2.5f, -1.6f, 0.0f,
+ 1.25f, 1.5f, 2.5f, 1.75f, -1.25f, -1.5f, -2.5f, -1.75f, 0.0f,
};
static const double dval[] = {
- 1.4, 1.5, 2.5, 1.6, -1.4, -1.5, -2.5, -1.6, 0.0,
+ 1.25, 1.5, 2.5, 1.75, -1.25, -1.5, -2.5, -1.75, 0.0,
};
Modified: trunk/none/tests/s390x/rounding-3.stdout.exp
==============================================================================
--- trunk/none/tests/s390x/rounding-3.stdout.exp (original)
+++ trunk/none/tests/s390x/rounding-3.stdout.exp Thu Aug 14 17:32:26 2014
@@ -1,148 +1,148 @@
setting rounding mode to [-> near]
-cfebr 1.400000 -> 1 cc = 2
+cfebr 1.250000 -> 1 cc = 2
cfebr 1.500000 -> 2 cc = 2
cfebr 2.500000 -> 2 cc = 2
-cfebr 1.600000 -> 2 cc = 2
-cfebr -1.400000 -> -1 cc = 1
+cfebr 1.750000 -> 2 cc = 2
+cfebr -1.250000 -> -1 cc = 1
cfebr -1.500000 -> -2 cc = 1
cfebr -2.500000 -> -2 cc = 1
-cfebr -1.600000 -> -2 cc = 1
+cfebr -1.750000 -> -2 cc = 1
cfebr 0.000000 -> 0 cc = 0
-cgebr 1.400000 -> 1 cc = 2
+cgebr 1.250000 -> 1 cc = 2
cgebr 1.500000 -> 2 cc = 2
cgebr 2.500000 -> 2 cc = 2
-cgebr 1.600000 -> 2 cc = 2
-cgebr -1.400000 -> -1 cc = 1
+cgebr 1.750000 -> 2 cc = 2
+cgebr -1.250000 -> -1 cc = 1
cgebr -1.500000 -> -2 cc = 1
cgebr -2.500000 -> -2 cc = 1
-cgebr -1.600000 -> -2 cc = 1
+cgebr -1.750000 -> -2 cc = 1
cgebr 0.000000 -> 0 cc = 0
-cfdbr 1.400000 -> 1 cc = 2
+cfdbr 1.250000 -> 1 cc = 2
cfdbr 1.500000 -> 2 cc = 2
cfdbr 2.500000 -> 2 cc = 2
-cfdbr 1.600000 -> 2 cc = 2
-cfdbr -1.400000 -> -1 cc = 1
+cfdbr 1.750000 -> 2 cc = 2
+cfdbr -1.250000 -> -1 cc = 1
cfdbr -1.500000 -> -2 cc = 1
cfdbr -2.500000 -> -2 cc = 1
-cfdbr -1.600000 -> -2 cc = 1
+cfdbr -1.750000 -> -2 cc = 1
cfdbr 0.000000 -> 0 cc = 0
-cgdbr 1.400000 -> 1 cc = 2
+cgdbr 1.250000 -> 1 cc = 2
cgdbr 1.500000 -> 2 cc = 2
cgdbr 2.500000 -> 2 cc = 2
-cgdbr 1.600000 -> 2 cc = 2
-cgdbr -1.400000 -> -1 cc = 1
+cgdbr 1.750000 -> 2 cc = 2
+cgdbr -1.250000 -> -1 cc = 1
cgdbr -1.500000 -> -2 cc = 1
cgdbr -2.500000 -> -2 cc = 1
-cgdbr -1.600000 -> -2 cc = 1
+cgdbr -1.750000 -> -2 cc = 1
cgdbr 0.000000 -> 0 cc = 0
setting rounding mode to [-> zero]
-cfebr 1.400000 -> 1 cc = 2
+cfebr 1.250000 -> 1 cc = 2
cfebr 1.500000 -> 1 cc = 2
cfebr 2.500000 -> 2 cc = 2
-cfebr 1.600000 -> 1 cc = 2
-cfebr -1.400000 -> -1 cc = 1
+cfebr 1.750000 -> 1 cc = 2
+cfebr -1.250000 -> -1 cc = 1
cfebr -1.500000 -> -1 cc = 1
cfebr -2.500000 -> -2 cc = 1
-cfebr -1.600000 -> -1 cc = 1
+cfebr -1.750000 -> -1 cc = 1
cfebr 0.000000 -> 0 cc = 0
-cgebr 1.400000 -> 1 cc = 2
+cgebr 1.250000 -> 1 cc = 2
cgebr 1.500000 -> 1 cc = 2
cgebr 2.500000 -> 2 cc = 2
-cgebr 1.600000 -> 1 cc = 2
-cgebr -1.400000 -> -1 cc = 1
+cgebr 1.750000 -> 1 cc = 2
+cgebr -1.250000 -> -1 cc = 1
cgebr -1.500000 -> -1 cc = 1
cgebr -2.500000 -> -2 cc = 1
-cgebr -1.600000 -> -1 cc = 1
+cgebr -1.750000 -> -1 cc = 1
cgebr 0.000000 -> 0 cc = 0
-cfdbr 1.400000 -> 1 cc = 2
+cfdbr 1.250000 -> 1 cc = 2
cfdbr 1.500000 -> 1 cc = 2
cfdbr 2.500000 -> 2 cc = 2
-cfdbr 1.600000 -> 1 cc = 2
-cfdbr -1.400000 -> -1 cc = 1
+cfdbr 1.750000 -> 1 cc = 2
+cfdbr -1.250000 -> -1 cc = 1
cfdbr -1.500000 -> -1 cc = 1
cfdbr -2.500000 -> -2 cc = 1
-cfdbr -1.600000 -> -1 cc = 1
+cfdbr -1.750000 -> -1 cc = 1
cfdbr 0.000000 -> 0 cc = 0
-cgdbr 1.400000 -> 1 cc = 2
+cgdbr 1.250000 -> 1 cc = 2
cgdbr 1.500000 -> 1 cc = 2
cgdbr 2.500000 -> 2 cc = 2
-cgdbr 1.600000 -> 1 cc = 2
-cgdbr -1.400000 -> -1 cc = 1
+cgdbr 1.750000 -> 1 cc = 2
+cgdbr -1.250000 -> -1 cc = 1
cgdbr -1.500000 -> -1 cc = 1
cgdbr -2.500000 -> -2 cc = 1
-cgdbr -1.600000 -> -1 cc = 1
+cgdbr -1.750000 -> -1 cc = 1
cgdbr 0.000000 -> 0 cc = 0
setting rounding mode to [-> +inf]
-cfebr 1.400000 -> 2 cc = 2
+cfebr 1.250000 -> 2 cc = 2
cfebr 1.500000 -> 2 cc = 2
cfebr 2.500000 -> 3 cc = 2
-cfebr 1.600000 -> 2 cc = 2
-cfebr -1.400000 -> -1 cc = 1
+cfebr 1.750000 -> 2 cc = 2
+cfebr -1.250000 -> -1 cc = 1
cfebr -1.500000 -> -1 cc = 1
cfebr -2.500000 -> -2 cc = 1
-cfebr -1.600000 -> -1 cc = 1
+cfebr -1.750000 -> -1 cc = 1
cfebr 0.000000 -> 0 cc = 0
-cgebr 1.400000 -> 2 cc = 2
+cgebr 1.250000 -> 2 cc = 2
cgebr 1.500000 -> 2 cc = 2
cgebr 2.500000 -> 3 cc = 2
-cgebr 1.600000 -> 2 cc = 2
-cgebr -1.400000 -> -1 cc = 1
+cgebr 1.750000 -> 2 cc = 2
+cgebr -1.250000 -> -1 cc = 1
cgebr -1.500000 -> -1 cc = 1
cgebr -2.500000 -> -2 cc = 1
-cgebr -1.600000 -> -1 cc = 1
+cgebr -1.750000 -> -1 cc = 1
cgebr 0.000000 -> 0 cc = 0
-cfdbr 1.400000 -> 2 cc = 2
+cfdbr 1.250000 -> 2 cc = 2
cfdbr 1.500000 -> 2 cc = 2
cfdbr 2.500000 -> 3 cc = 2
-cfdbr 1.600000 -> 2 cc = 2
-cfdbr -1.400000 -> -1 cc = 1
+cfdbr 1.750000 -> 2 cc = 2
+cfdbr -1.250000 -> -1 cc = 1
cfdbr -1.500000 -> -1 cc = 1
cfdbr -2.500000 -> -2 cc = 1
-cfdbr -1.600000 -> -1 cc = 1
+cfdbr -1.750000 -> -1 cc = 1
cfdbr 0.000000 -> 0 cc = 0
-cgdbr 1.400000 -> 2 cc = 2
+cgdbr 1.250000 -> 2 cc = 2
cgdbr 1.500000 -> 2 cc = 2
cgdbr 2.500000 -> 3 cc = 2
-cgdbr 1.600000 -> 2 cc = 2
-cgdbr -1.400000 -> -1 cc = 1
+cgdbr 1.750000 -> 2 cc = 2
+cgdbr -1.250000 -> -1 cc = 1
cgdbr -1.500000 -> -1 cc = 1
cgdbr -2.500000 -> -2 cc = 1
-cgdbr -1.600000 -> -1 cc = 1
+cgdbr -1.750000 -> -1 cc = 1
cgdbr 0.000000 -> 0 cc = 0
setting rounding mode to [-> -inf]
-cfebr 1.400000 -> 1 cc = 2
+cfebr 1.250000 -> 1 cc = 2
cfebr 1.500000 -> 1 cc = 2
cfebr 2.500000 -> 2 cc = 2
-cfebr 1.600000 -> 1 cc = 2
-cfebr -1.400000 -> -2 cc = 1
+cfebr 1.750000 -> 1 cc = 2
+cfebr -1.250000 -> -2 cc = 1
cfebr -1.500000 -> -2 cc = 1
cfebr -2.500000 -> -3 cc = 1
-cfebr -1.600000 -> -2 cc = 1
+cfebr -1.750000 -> -2 cc = 1
cfebr 0.000000 -> 0 cc = 0
-cgebr 1.400000 -> 1 cc = 2
+cgebr 1.250000 -> 1 cc = 2
cgebr 1.500000 -> 1 cc = 2
cgebr 2.500000 -> 2 cc = 2
-cgebr 1.600000 -> 1 cc = 2
-cgebr -1.400000 -> -2 cc = 1
+cgebr 1.750000 -> 1 cc = 2
+cgebr -1.250000 -> -2 cc = 1
cgebr -1.500000 -> -2 cc = 1
cgebr -2.500000 -> -3 cc = 1
-cgebr -1.600000 -> -2 cc = 1
+cgebr -1.750000 -> -2 cc = 1
cgebr 0.000000 -> 0 cc = 0
-cfdbr 1.400000 -> 1 cc = 2
+cfdbr 1.250000 -> 1 cc = 2
cfdbr 1.500000 -> 1 cc = 2
cfdbr 2.500000 -> 2 cc = 2
-cfdbr 1.600000 -> 1 cc = 2
-cfdbr -1.400000 -> -2 cc = 1
+cfdbr 1.750000 -> 1 cc = 2
+cfdbr -1.250000 -> -2 cc = 1
cfdbr -1.500000 -> -2 cc = 1
cfdbr -2.500000 -> -3 cc = 1
-cfdbr -1.600000 -> -2 cc = 1
+cfdbr -1.750000 -> -2 cc = 1
cfdbr 0.000000 -> 0 cc = 0
-cgdbr 1.400000 -> 1 cc = 2
+cgdbr 1.250000 -> 1 cc = 2
cgdbr 1.500000 -> 1 cc = 2
cgdbr 2.500000 -> 2 cc = 2
-cgdbr 1.600000 -> 1 cc = 2
-cgdbr -1.400000 -> -2 cc = 1
+cgdbr 1.750000 -> 1 cc = 2
+cgdbr -1.250000 -> -2 cc = 1
cgdbr -1.500000 -> -2 cc = 1
cgdbr -2.500000 -> -3 cc = 1
-cgdbr -1.600000 -> -2 cc = 1
+cgdbr -1.750000 -> -2 cc = 1
cgdbr 0.000000 -> 0 cc = 0
Modified: trunk/none/tests/s390x/rounding-4.c
==============================================================================
--- trunk/none/tests/s390x/rounding-4.c (original)
+++ trunk/none/tests/s390x/rounding-4.c Thu Aug 14 17:32:26 2014
@@ -34,7 +34,7 @@
load_rounded(void)
{
f = d;
- printf("load rounded d = %22.20g f = %22.20g\n", d, f);
+ printf("load rounded d = %10.3f f = %10.3f\n", d, f);
}
void
@@ -47,7 +47,7 @@
/* Tests for load rounded and load lengthened */
int main()
{
- d = 12345678.98765432E21;
+ d = 12345678.25;
set_rounding_mode(0);
load_rounded();
set_rounding_mode(1);
@@ -56,9 +56,28 @@
load_rounded();
set_rounding_mode(3);
load_rounded();
- printf("\n");
-
- d = -12345678.98765432E21;
+ printf("======================================\n");
+ d = 12345678.75;
+ set_rounding_mode(0);
+ load_rounded();
+ set_rounding_mode(1);
+ load_rounded();
+ set_rounding_mode(2);
+ load_rounded();
+ set_rounding_mode(3);
+ load_rounded();
+ printf("======================================\n");
+ d = -12345678.25;
+ set_rounding_mode(0);
+ load_rounded();
+ set_rounding_mode(1);
+ load_rounded();
+ set_rounding_mode(2);
+ load_rounded();
+ set_rounding_mode(3);
+ load_rounded();
+ printf("======================================\n");
+ d = -12345678.75;
set_rounding_mode(0);
load_rounded();
set_rounding_mode(1);
@@ -69,6 +88,7 @@
load_rounded();
printf("\n");
+ f = 1234.5678f;
load_lengthened();
return 0;
Modified: trunk/none/tests/s390x/rounding-4.stdout.exp
==============================================================================
--- trunk/none/tests/s390x/rounding-4.stdout.exp (original)
+++ trunk/none/tests/s390x/rounding-4.stdout.exp Thu Aug 14 17:32:26 2014
@@ -1,19 +1,37 @@
setting FPC rounding mode to [-> near]
-load rounded d = 1.2345678987654319598e+28 f = 1.234567915439125133e+28
+load rounded d = 12345678.250 f = 12345678.000
setting FPC rounding mode to [-> zero]
-load rounded d = 1.2345678987654319598e+28 f = 1.2345677973799630613e+28
+load rounded d = 12345678.250 f = 12345678.000
setting FPC rounding mode to [-> +inf]
-load rounded d = 1.2345678987654319598e+28 f = 1.234567915439125133e+28
+load rounded d = 12345678.250 f = 12345679.000
setting FPC rounding mode to [-> -inf]
-load rounded d = 1.2345678987654319598e+28 f = 1.2345677973799630613e+28
-
+load rounded d = 12345678.250 f = 12345678.000
+======================================
+setting FPC rounding mode to [-> near]
+load rounded d = 12345678.750 f = 12345679.000
+setting FPC rounding mode to [-> zero]
+load rounded d = 12345678.750 f = 12345678.000
+setting FPC rounding mode to [-> +inf]
+load rounded d = 12345678.750 f = 12345679.000
+setting FPC rounding mode to [-> -inf]
+load rounded d = 12345678.750 f = 12345678.000
+======================================
+setting FPC rounding mode to [-> near]
+load rounded d = -12345678.250 f = -12345678.000
+setting FPC rounding mode to [-> zero]
+load rounded d = -12345678.250 f = -12345678.000
+setting FPC rounding mode to [-> +inf]
+load rounded d = -12345678.250 f = -12345678.000
+setting FPC rounding mode to [-> -inf]
+load rounded d = -12345678.250 f = -12345679.000
+======================================
setting FPC rounding mode to [-> near]
-load rounded d = -1.2345678987654319598e+28 f = -1.234567915439125133e+28
+load rounded d = -12345678.750 f = -12345679.000
setting FPC rounding mode to [-> zero]
-load rounded d = -1.2345678987654319598e+28 f = -1.2345677973799630613e+28
+load rounded d = -12345678.750 f = -12345678.000
setting FPC rounding mode to [-> +inf]
-load rounded d = -1.2345678987654319598e+28 f = -1.2345677973799630613e+28
+load rounded d = -12345678.750 f = -12345678.000
setting FPC rounding mode to [-> -inf]
-load rounded d = -1.2345678987654319598e+28 f = -1.234567915439125133e+28
+load rounded d = -12345678.750 f = -12345679.000
-load lengthened d = -1.234567915439125133e+28 f = -1.234567915439125133e+28
+load lengthened d = 1234.5677490234375 f = 1234.5677490234375
Modified: trunk/none/tests/s390x/rounding-6.c
==============================================================================
--- trunk/none/tests/s390x/rounding-6.c (original)
+++ trunk/none/tests/s390x/rounding-6.c Thu Aug 14 17:32:26 2014
@@ -66,10 +66,10 @@
{
int j;
static const float fval[] = {
- 1.4f, 1.5f, 2.5f, 1.6f, -1.4f, -1.5f, -2.5f, -1.6f, 0.0f,
+ 1.25f, 1.5f, 2.5f, 1.75f, -1.25f, -1.5f, -2.5f, -1.75f, 0.0f,
};
static const double dval[] = {
- 1.4, 1.5, 2.5, 1.6, -1.4, -1.5, -2.5, -1.6, 0.0,
+ 1.25, 1.5, 2.5, 1.75, -1.25, -1.5, -2.5, -1.75, 0.0,
};
/* Note when testing M3_NEAR need to set the FPC rounding mode
Modified: trunk/none/tests/s390x/rounding-6.stdout.exp
==============================================================================
--- trunk/none/tests/s390x/rounding-6.stdout.exp (original)
+++ trunk/none/tests/s390x/rounding-6.stdout.exp Thu Aug 14 17:32:26 2014
@@ -1,7 +1,7 @@
-cfebr 1.400000 -> 1 cc = 2 [-> nearest even]
-cfebr 1.400000 -> 1 cc = 2 [-> 0]
-cfebr 1.400000 -> 2 cc = 2 [-> +inf]
-cfebr 1.400000 -> 1 cc = 2 [-> -inf]
+cfebr 1.250000 -> 1 cc = 2 [-> nearest even]
+cfebr 1.250000 -> 1 cc = 2 [-> 0]
+cfebr 1.250000 -> 2 cc = 2 [-> +inf]
+cfebr 1.250000 -> 1 cc = 2 [-> -inf]
cfebr 1.500000 -> 2 cc = 2 [-> nearest even]
cfebr 1.500000 -> 1 cc = 2 [-> 0]
cfebr 1.500000 -> 2 cc = 2 [-> +inf]
@@ -10,14 +10,14 @@
cfebr 2.500000 -> 2 cc = 2 [-> 0]
cfebr 2.500000 -> 3 cc = 2 [-> +inf]
cfebr 2.500000 -> 2 cc = 2 [-> -inf]
-cfebr 1.600000 -> 2 cc = 2 [-> nearest even]
-cfebr 1.600000 -> 1 cc = 2 [-> 0]
-cfebr 1.600000 -> 2 cc = 2 [-> +inf]
-cfebr 1.600000 -> 1 cc = 2 [-> -inf]
-cfebr -1.400000 -> -1 cc = 1 [-> nearest even]
-cfebr -1.400000 -> -1 cc = 1 [-> 0]
-cfebr -1.400000 -> -1 cc = 1 [-> +inf]
-cfebr -1.400000 -> -2 cc = 1 [-> -inf]
+cfebr 1.750000 -> 2 cc = 2 [-> nearest even]
+cfebr 1.750000 -> 1 cc = 2 [-> 0]
+cfebr 1.750000 -> 2 cc = 2 [-> +inf]
+cfebr 1.750000 -> 1 cc = 2 [-> -inf]
+cfebr -1.250000 -> -1 cc = 1 [-> nearest even]
+cfebr -1.250000 -> -1 cc = 1 [-> 0]
+cfebr -1.250000 -> -1 cc = 1 [-> +inf]
+cfebr -1.250000 -> -2 cc = 1 [-> -inf]
cfebr -1.500000 -> -2 cc = 1 [-> nearest even]
cfebr -1.500000 -> -1 cc = 1 [-> 0]
cfebr -1.500000 -> -1 cc = 1 [-> +inf]
@@ -26,18 +26,18 @@
cfebr -2.500000 -> -2 cc = 1 [-> 0]
cfebr -2.500000 -> -2 cc = 1 [-> +inf]
cfebr -2.500000 -> -3 cc = 1 [-> -inf]
-cfebr -1.600000 -> -2 cc = 1 [-> nearest even]
-cfebr -1.600000 -> -1 cc = 1 [-> 0]
-cfebr -1.600000 -> -1 cc = 1 [-> +inf]
-cfebr -1.600000 -> -2 cc = 1 [-> -inf]
+cfebr -1.750000 -> -2 cc = 1 [-> nearest even]
+cfebr -1.750000 -> -1 cc = 1 [-> 0]
+cfebr -1.750000 -> -1 cc = 1 [-> +inf]
+cfebr -1.750000 -> -2 cc = 1 [-> -inf]
cfebr 0.000000 -> 0 cc = 0 [-> nearest even]
cfebr 0.000000 -> 0 cc = 0 [-> 0]
cfebr 0.000000 -> 0 cc = 0 [-> +inf]
cfebr 0.000000 -> 0 cc = 0 [-> -inf]
-cgebr 1.400000 -> 1 cc = 2 [-> nearest even]
-cgebr 1.400000 -> 1 cc = 2 [-> 0]
-cgebr 1.400000 -> 2 cc = 2 [-> +inf]
-cgebr 1.400000 -> 1 cc = 2 [-> -inf]
+cgebr 1.250000 -> 1 cc = 2 [-> nearest even]
+cgebr 1.250000 -> 1 cc = 2 [-> 0]
+cgebr 1.250000 -> 2 cc = 2 [-> +inf]
+cgebr 1.250000 -> 1 cc = 2 [-> -inf]
cgebr 1.500000 -> 2 cc = 2 [-> nearest even]
cgebr 1.500000 -> 1 cc = 2 [-> 0]
cgebr 1.500000 -> 2 cc = 2 [-> +inf]
@@ -46,14 +46,14 @@
cgebr 2.500000 -> 2 cc = 2 [-> 0]
cgebr 2.500000 -> 3 cc = 2 [-> +inf]
cgebr 2.500000 -> 2 cc = 2 [-> -inf]
-cgebr 1.600000 -> 2 cc = 2 [-> nearest even]
-cgebr 1.600000 -> 1 cc = 2 [-> 0]
-cgebr 1.600000 -> 2 cc = 2 [-> +inf]
-cgebr 1.600000 -> 1 cc = 2 [-> -inf]
-cgebr -1.400000 -> -1 cc = 1 [-> nearest even]
-cgebr -1.400000 -> -1 cc = 1 [-> 0]
-cgebr -1.400000 -> -1 cc = 1 [-> +inf]
-cgebr -1.400000 -> -2 cc = 1 [-> -inf]
+cgebr 1.750000 -> 2 cc = 2 [-> nearest even]
+cgebr 1.750000 -> 1 cc = 2 [-> 0]
+cgebr 1.750000 -> 2 cc = 2 [-> +inf]
+cgebr 1.750000 -> 1 cc = 2 [-> -inf]
+cgebr -1.250000 -> -1 cc = 1 [-> nearest even]
+cgebr -1.250000 -> -1 cc = 1 [-> 0]
+cgebr -1.250000 -> -1 cc = 1 [-> +inf]
+cgebr -1.250000 -> -2 cc = 1 [-> -inf]
cgebr -1.500000 -> -2 cc = 1 [-> nearest even]
cgebr -1.500000 -> -1 cc = 1 [-> 0]
cgebr -1.500000 -> -1 cc = 1 [-> +inf]
@@ -62,18 +62,18 @@
cgebr -2.500000 -> -2 cc = 1 [-> 0]
cgebr -2.500000 -> -2 cc = 1 [-> +inf]
cgebr -2.500000 -> -3 cc = 1 [-> -inf]
-cgebr -1.600000 -> -2 cc = 1 [-> nearest even]
-cgebr -1.600000 -> -1 cc = 1 [-> 0]
-cgebr -1.600000 -> -1 cc = 1 [-> +inf]
-cgebr -1.600000 -> -2 cc = 1 [-> -inf]
+cgebr -1.750000 -> -2 cc = 1 [-> nearest even]
+cgebr -1.750000 -> -1 cc = 1 [-> 0]
+cgebr -1.750000 -> -1 cc = 1 [-> +inf]
+cgebr -1.750000 -> -2 cc = 1 [-> -inf]
cgebr 0.000000 -> 0 cc = 0 [-> nearest even]
cgebr 0.000000 -> 0 cc = 0 [-> 0]
cgebr 0.000000 -> 0 cc = 0 [-> +inf]
cgebr 0.000000 -> 0 cc = 0 [-> -inf]
-cfdbr 1.400000 -> 1 cc = 2 [-> nearest even]
-cfdbr 1.400000 -> 1 cc = 2 [-> 0]
-cfdbr 1.400000 -> 2 cc = 2 [-> +inf]
-cfdbr 1.400000 -> 1 cc = 2 [-> -inf]
+cfdbr 1.250000 -> 1 cc = 2 [-> nearest even]
+cfdbr 1.250000 -> 1 cc = 2 [-> 0]
+cfdbr 1.250000 -> 2 cc = 2 [-> +inf]
+cfdbr 1.250000 -> 1 cc = 2 [-> -inf]
cfdbr 1.500000 -> 2 cc = 2 [-> nearest even]
cfdbr 1.500000 -> 1 cc = 2 [-> 0]
cfdbr 1.500000 -> 2 cc = 2 [-> +inf]
@@ -82,14 +82,14 @@
cfdbr 2.500000 -> 2 cc = 2 [-> 0]
cfdbr 2.500000 -> 3 cc = 2 [-> +inf]
cfdbr 2.500000 -> 2 cc = 2 [-> -inf]
-cfdbr 1.600000 -> 2 cc = 2 [-> nearest even]
-cfdbr 1.600000 -> 1 cc = 2 [-> 0]
-cfdbr 1.600000 -> 2 cc = 2 [-> +inf]
-cfdbr 1.600000 -> 1 cc = 2 [-> -inf]
-cfdbr -1.400000 -> -1 cc = 1 [-> nearest even]
-cfdbr -1.400000 -> -1 cc = 1 [-> 0]
-cfdbr -1.400000 -> -1 cc = 1 [-> +inf]
-cfdbr -1.400000 -> -2 cc = 1 [-> -inf]
+cfdbr 1.750000 -> 2 cc = 2 [-> nearest even]
+cfdbr 1.750000 -> 1 cc = 2 [-> 0]
+cfdbr 1.750000 -> 2 cc = 2 [-> +inf]
+cfdbr 1.750000 -> 1 cc = 2 [-> -inf]
+cfdbr -1.250000 -> -1 cc = 1 [-> nearest even]
+cfdbr -1.250000 -> -1 cc = 1 [-> 0]
+cfdbr -1.250000 -> -1 cc = 1 [-> +inf]
+cfdbr -1.250000 -> -2 cc = 1 [-> -inf]
cfdbr -1.500000 -> -2 cc = 1 [-> nearest even]
cfdbr -1.500000 -> -1 cc = 1 [-> 0]
cfdbr -1.500000 -> -1 cc = 1 [-> +inf]
@@ -98,18 +98,18 @@
cfdbr -2.500000 -> -2 cc = 1 [-> 0]
cfdbr -2.500000 -> -2 cc = 1 [-> +inf]
cfdbr -2.500000 -> -3 cc = 1 [-> -inf]
-cfdbr -1.600000 -> -2 cc = 1 [-> nearest even]
-cfdbr -1.600000 -> -1 cc = 1 [-> 0]
-cfdbr -1.600000 -> -1 cc = 1 [-> +inf]
-cfdbr -1.600000 -> -2 cc = 1 [-> -inf]
+cfdbr -1.750000 -> -2 cc = 1 [-> nearest even]
+cfdbr -1.750000 -> -1 cc = 1 [-> 0]
+cfdbr -1.750000 -> -1 cc = 1 [-> +inf]
+cfdbr -1.750000 -> -2 cc = 1 [-> -inf]
cfdbr 0.000000 -> 0 cc = 0 [-> nearest even]
cfdbr 0.000000 -> 0 cc = 0 [-> 0]
cfdbr 0.000000 -> 0 cc = 0 [-> +inf]
cfdbr 0.000000 -> 0 cc = 0 [-> -inf]
-cgdbr 1.400000 -> 1 cc = 2 [-> nearest even]
-cgdbr 1.400000 -> 1 cc = 2 [-> 0]
-cgdbr 1.400000 -> 2 cc = 2 [-> +inf]
-cgdbr 1.400000 -> 1 cc = 2 [-> -inf]
+cgdbr 1.250000 -> 1 cc = 2 [-> nearest even]
+cgdbr 1.250000 -> 1 cc = 2 [-> 0]
+cgdbr 1.250000 -> 2 cc = 2 [-> +inf]
+cgdbr 1.250000 -> 1 cc = 2 [-> -inf]
cgdbr 1.500000 -> 2 cc = 2 [-> nearest even]
cgdbr 1.500000 -> 1 cc = 2 [-> 0]
cgdbr 1.500000 -> 2 cc = 2 [-> +inf]
@@ -118,14 +118,14 @@
cgdbr 2.500000 -> 2 cc = 2 [-> 0]
cgdbr 2.500000 -> 3 cc = 2 [-> +inf]
cgdbr 2.500000 -> 2 cc = 2 [-> -inf]
-cgdbr 1.600000 -> 2 cc = 2 [-> nearest even]
-cgdbr 1.600000 -> 1 cc = 2 [-> 0]
-cgdbr 1.600000 -> 2 cc = 2 [-> +inf]
-cgdbr 1.600000 -> 1 cc = 2 [-> -inf]
-cgdbr -1.400000 -> -1 cc = 1 [-> nearest even]
-cgdbr -1.400000 -> -1 cc = 1 [-> 0]
-cgdbr -1.400000 -> -1 cc = 1 [-> +inf]
-cgdbr -1.400000 -> -2 cc = 1 [-> -inf]
+cgdbr 1.750000 -> 2 cc = 2 [-> nearest even]
+cgdbr 1.750000 -> 1 cc = 2 [-> 0]
+cgdbr 1.750000 -> 2 cc = 2 [-> +inf]
+cgdbr 1.750000 -> 1 cc = 2 [-> -inf]
+cgdbr -1.250000 -> -1 cc = 1 [-> nearest even]
+cgdbr -1.250000 -> -1 cc = 1 [-> 0]
+cgdbr -1.250000 -> -1 cc = 1 [-> +inf]
+cgdbr -1.250000 -> -2 cc = 1 [-> -inf]
cgdbr -1.500000 -> -2 cc = 1 [-> nearest even]
cgdbr -1.500000 -> -1 cc = 1 [-> 0]
cgdbr -1.500000 -> -1 cc = 1 [-> +inf]
@@ -134,10 +134,10 @@
cgdbr -2.500000 -> -2 cc = 1 [-> 0]
cgdbr -2.500000 -> -2 cc = 1 [-> +inf]
cgdbr -2.500000 -> -3 cc = 1 [-> -inf]
-cgdbr -1.600000 -> -2 cc = 1 [-> nearest even]
-cgdbr -1.600000 -> -1 cc = 1 [-> 0]
-cgdbr -1.600000 -> -1 cc = 1 [-> +inf]
-cgdbr -1.600000 -> -2 cc = 1 [-> -inf]
+cgdbr -1.750000 -> -2 cc = 1 [-> nearest even]
+cgdbr -1.750000 -> -1 cc = 1 [-> 0]
+cgdbr -1.750000 -> -1 cc = 1 [-> +inf]
+cgdbr -1.750000 -> -2 cc = 1 [-> -inf]
cgdbr 0.000000 -> 0 cc = 0 [-> nearest even]
cgdbr 0.000000 -> 0 cc = 0 [-> 0]
cgdbr 0.000000 -> 0 cc = 0 [-> +inf]
|
On 14.08.2014 18:54, sv...@va... wrote: > Added: trunk/none/tests/ppc32/round.c > ============================================================================== > --- trunk/none/tests/ppc32/round.c (added) > +++ trunk/none/tests/ppc32/round.c Thu Aug 14 16:54:48 2014 > @@ -0,0 +1,1232 @@ > + > +/* Copyright (C) 2006 Dave Nomura > + dc...@us... > + Change in policy ? Florian |
Author: carll
Date: Thu Aug 14 16:54:48 2014
New Revision: 14278
Log:
This commit is an update to Bugzilla 334836
There are two copies of the round test in none/tests/ppc32/round.c
and none/tests/ppc64/round.c. The two source files should be
identical. The LE functional test commit updated the round.c test for
ppc64 but was missing the ppc32 round updates. The round.c test was
updated to fix an issue where we were getting different outputs
depending on the compiler. The output is now consistent for the
compilers allowing the removal of the additional expect files for
ppc32 and ppc64.
Added:
trunk/none/tests/ppc32/round.c
Modified:
trunk/none/tests/ppc32/Makefile.am
trunk/none/tests/ppc32/round.stdout.exp
trunk/none/tests/ppc32/round.stdout.exp-RM-fix
trunk/none/tests/ppc64/Makefile.am
trunk/none/tests/ppc64/round.c
trunk/none/tests/ppc64/round.stdout.exp
trunk/none/tests/ppc64/round.stdout.exp-RM-fix
Modified: trunk/none/tests/ppc32/Makefile.am
==============================================================================
--- trunk/none/tests/ppc32/Makefile.am (original)
+++ trunk/none/tests/ppc32/Makefile.am Thu Aug 14 16:54:48 2014
@@ -17,7 +17,7 @@
jm-misc.stderr.exp jm-misc.stdout.exp jm-misc.vgtest \
mftocrf.stderr.exp mftocrf.stdout.exp mftocrf.vgtest \
mcrfs.stderr.exp mcrfs.stdout.exp mcrfs.vgtest \
- round.stderr.exp round.stdout.exp round.vgtest round.stdout.exp-RM-fix\
+ round.stderr.exp round.stdout.exp round.vgtest \
test_fx.stderr.exp test_fx.stdout.exp test_fx.stdout.exp_Minus_nan \
test_fx.vgtest \
test_gx.stderr.exp test_gx.stdout.exp test_gx.stdout.exp_Minus_nan \
Added: trunk/none/tests/ppc32/round.c
==============================================================================
--- trunk/none/tests/ppc32/round.c (added)
+++ trunk/none/tests/ppc32/round.c Thu Aug 14 16:54:48 2014
@@ -0,0 +1,1232 @@
+
+/* Copyright (C) 2006 Dave Nomura
+ dc...@us...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+
+typedef enum { FALSE=0, TRUE } bool_t;
+
+typedef enum {
+ FADDS, FSUBS, FMULS, FDIVS,
+ FMADDS, FMSUBS, FNMADDS, FNMSUBS,
+ FADD, FSUB, FMUL, FDIV, FMADD,
+ FMSUB, FNMADD, FNMSUB, FSQRT
+} flt_op_t;
+
+typedef enum {
+ TO_NEAREST=0, TO_ZERO, TO_PLUS_INFINITY, TO_MINUS_INFINITY } round_mode_t;
+char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
+
+const char *flt_op_names[] = {
+ "fadds", "fsubs", "fmuls", "fdivs",
+ "fmadds", "fmsubs", "fnmadds", "fnmsubs",
+ "fadd", "fsub", "fmul", "fdiv", "fmadd", "fmsub", "fnmadd",
+ "fnmsub", "fsqrt"
+};
+
+typedef unsigned int fpscr_t;
+
+typedef union {
+ float flt;
+ struct {
+#if defined(VGP_ppc64le_linux)
+ unsigned int frac:23;
+ unsigned int exp:8;
+ unsigned int sign:1;
+#else
+ unsigned int sign:1;
+ unsigned int exp:8;
+ unsigned int frac:23;
+#endif
+ } layout;
+} flt_overlay;
+
+typedef union {
+ double dbl;
+ struct {
+#if defined(VGP_ppc64le_linux)
+ unsigned int frac_lo:32;
+ unsigned int frac_hi:20;
+ unsigned int exp:11;
+ unsigned int sign:1;
+#else
+ unsigned int sign:1;
+ unsigned int exp:11;
+ unsigned int frac_hi:20;
+ unsigned int frac_lo:32;
+#endif
+ } layout;
+ struct {
+ unsigned int hi;
+ unsigned int lo;
+ } dbl_pair;
+} dbl_overlay;
+
+void assert_fail(const char *msg,
+ const char* expr, const char* file, int line, const char*fn);
+
+#define STRING(__str) #__str
+#define assert(msg, expr) \
+ ((void) ((expr) ? 0 : \
+ (assert_fail (msg, STRING(expr), \
+ __FILE__, __LINE__, \
+ __PRETTY_FUNCTION__), 0)))
+float denorm_small;
+double dbl_denorm_small;
+float norm_small;
+bool_t debug = FALSE;
+bool_t long_is_64_bits = sizeof(long) == 8;
+
+void assert_fail (msg, expr, file, line, fn)
+const char* msg;
+const char* expr;
+const char* file;
+int line;
+const char*fn;
+{
+ printf( "\n%s: %s:%d (%s): Assertion `%s' failed.\n",
+ msg, file, line, fn, expr );
+ exit( 1 );
+}
+void set_rounding_mode(round_mode_t mode)
+{
+ switch(mode) {
+ case TO_NEAREST:
+ asm volatile("mtfsfi 7, 0");
+ break;
+ case TO_ZERO:
+ asm volatile("mtfsfi 7, 1");
+ break;
+ case TO_PLUS_INFINITY:
+ asm volatile("mtfsfi 7, 2");
+ break;
+ case TO_MINUS_INFINITY:
+ asm volatile("mtfsfi 7, 3");
+ break;
+ }
+}
+
+void print_double(char *msg, double dbl)
+{
+ dbl_overlay D;
+ D.dbl = dbl;
+
+ printf("%15s : dbl %-20a = %c(%4d, %05x%08x)\n",
+ msg, D.dbl, (D.layout.sign == 0 ? '+' : '-'),
+ D.layout.exp, D.layout.frac_hi, D.layout.frac_lo);
+}
+
+void print_single(char *msg, float *flt)
+{
+ flt_overlay F;
+ F.flt = *flt;
+
+ /* NOTE: for the purposes of comparing the fraction of a single with
+ ** a double left shift the .frac so that hex digits are grouped
+ ** from left to right. this is necessary because the size of a
+ ** single mantissa (23) bits is not a multiple of 4
+ */
+ printf("%15s : flt %-20a = %c(%4d, %06x)\n",
+ msg, F.flt, (F.layout.sign == 0 ? '+' : '-'), F.layout.exp, F.layout.frac << 1);
+}
+
+int check_dbl_to_flt_round(round_mode_t mode, double dbl, float *expected)
+{
+ int status = 0;
+ flt_overlay R, E;
+ char *result;
+
+ set_rounding_mode(mode);
+
+ E.flt = *expected;
+ R.flt = (float)dbl;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac != E.layout.frac)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+ printf("%s:%s:(double)(%-20a) = %20a",
+ round_mode_name[mode], result, R.flt, dbl);
+ if (status) {
+ print_single("\n\texpected", &E.flt);
+ print_single("\n\trounded ", &R.flt);
+ }
+ putchar('\n');
+ return status;
+}
+
+int test_dbl_to_float_convert(char *msg, float *base)
+{
+ int status = 0;
+ double half = (double)denorm_small/2;
+ double qtr = half/2;
+ double D_hi = (double)*base + half + qtr;
+ double D_lo = (double)*base + half - qtr;
+ float F_lo = *base;
+ float F_hi = F_lo + denorm_small;
+
+
+ /*
+ ** .....+-----+-----+-----+-----+---....
+ ** ^F_lo ^ ^ ^
+ ** D_lo
+ ** D_hi
+ ** F_hi
+ ** F_lo and F_hi are two consecutive single float model numbers
+ ** denorm_small distance apart. D_lo and D_hi are two numbers
+ ** within that range that are not representable as single floats
+ ** and will be rounded to either F_lo or F_hi.
+ */
+ printf("-------------------------- %s --------------------------\n", msg);
+ if (debug) {
+ print_double("D_lo", D_lo);
+ print_double("D_hi", D_hi);
+ print_single("F_lo", &F_lo);
+ print_single("F_hi", &F_hi);
+ }
+
+ /* round to nearest */
+ status |= check_dbl_to_flt_round(TO_NEAREST, D_hi, &F_hi);
+ status |= check_dbl_to_flt_round(TO_NEAREST, D_lo, &F_lo);
+
+ /* round to zero */
+ status |= check_dbl_to_flt_round(TO_ZERO, D_hi, (D_hi > 0 ? &F_lo : &F_hi));
+ status |= check_dbl_to_flt_round(TO_ZERO, D_lo, (D_hi > 0 ? &F_lo : &F_hi));
+
+ /* round to +inf */
+ status |= check_dbl_to_flt_round(TO_PLUS_INFINITY, D_hi, &F_hi);
+ status |= check_dbl_to_flt_round(TO_PLUS_INFINITY, D_lo, &F_hi);
+
+ /* round to -inf */
+ status |= check_dbl_to_flt_round(TO_MINUS_INFINITY, D_hi, &F_lo);
+ status |= check_dbl_to_flt_round(TO_MINUS_INFINITY, D_lo, &F_lo);
+ return status;
+}
+
+void
+init()
+{
+ flt_overlay F;
+ dbl_overlay D;
+
+ /* small is the smallest denormalized single float number */
+ F.layout.sign = 0;
+ F.layout.exp = 0;
+ F.layout.frac = 1;
+ denorm_small = F.flt; /* == 2^(-149) */
+ if (debug) {
+ print_single("float small", &F.flt);
+ }
+
+ D.layout.sign = 0;
+ D.layout.exp = 0;
+ D.layout.frac_hi = 0;
+ D.layout.frac_lo = 1;
+ dbl_denorm_small = D.dbl; /* == 2^(-1022) */
+ if (debug) {
+ print_double("double small", D.dbl);
+ }
+
+ /* n_small is the smallest normalized single precision float */
+ F.layout.exp = 1;
+ norm_small = F.flt;
+}
+
+int check_int_to_flt_round(round_mode_t mode, long L, float *expected)
+{
+ int status = 0;
+ int I = L;
+ char *int_name = "int";
+ flt_overlay R, E;
+ char *result;
+ int iter;
+
+ set_rounding_mode(mode);
+ E.flt = *expected;
+
+ for (iter = 0; iter < 2; iter++) {
+ int stat = 0;
+ R.flt = (iter == 0 ? (float)I : (float)L);
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac != E.layout.frac)) {
+ result = "FAILED";
+ stat = 1;
+ } else {
+ result = "PASSED";
+ stat = 0;
+ }
+ printf("%s:%s:(float)(%4s)%9d = %11.1f",
+ round_mode_name[mode], result, int_name, I, R.flt);
+ if (stat) {
+ print_single("\n\texpected: %.1f ", &E.flt);
+ print_single("\n\trounded ", &R.flt);
+ }
+ putchar('\n');
+ status |= stat;
+
+ if (!long_is_64_bits) break;
+ int_name = "long";
+ }
+ return status;
+}
+
+int check_long_to_dbl_round(round_mode_t mode, long L, double *expected)
+{
+ int status = 0;
+ dbl_overlay R, E;
+ char *result;
+
+ set_rounding_mode(mode);
+ E.dbl = *expected;
+
+ R.dbl = (double)L;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac_lo != E.layout.frac_lo) ||
+ (R.layout.frac_hi != E.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+ printf("%s:%s:(double)(%18ld) = %20.1f",
+ round_mode_name[mode], result, L, R.dbl);
+ if (status) {
+ printf("\n\texpected %.1f : ", E.dbl);
+ }
+ putchar('\n');
+ return status;
+}
+
+int test_int_to_float_convert(char *msg)
+{
+ int status = 0;
+ int int24_hi = 0x03ff0fff;
+ int int24_lo = 0x03ff0ffd;
+ float pos_flt_lo = 67047420.0;
+ float pos_flt_hi = 67047424.0;
+ float neg_flt_lo = -67047420.0;
+ float neg_flt_hi = -67047424.0;
+
+ printf("-------------------------- %s --------------------------\n", msg);
+ status |= check_int_to_flt_round(TO_NEAREST, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_NEAREST, int24_hi, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_ZERO, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_ZERO, int24_hi, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, int24_lo, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, int24_hi, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, int24_hi, &pos_flt_lo);
+
+ status |= check_int_to_flt_round(TO_NEAREST, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_NEAREST, -int24_hi, &neg_flt_hi);
+ status |= check_int_to_flt_round(TO_ZERO, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_ZERO, -int24_hi, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, -int24_hi, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, -int24_lo, &neg_flt_hi);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, -int24_hi, &neg_flt_hi);
+ return status;
+}
+
+#ifdef __powerpc64__
+int test_long_to_double_convert(char *msg)
+{
+ int status = 0;
+ long long55_hi = 0x07ff0ffffffffff;
+ long long55_lo = 0x07ff0fffffffffd;
+ double pos_dbl_lo = 36012304344547324.0;
+ double pos_dbl_hi = 36012304344547328.0;
+ double neg_dbl_lo = -36012304344547324.0;
+ double neg_dbl_hi = -36012304344547328.0;
+
+ printf("-------------------------- %s --------------------------\n", msg);
+ status |= check_long_to_dbl_round(TO_NEAREST, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_NEAREST, long55_hi, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_ZERO, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_ZERO, long55_hi, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, long55_lo, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, long55_hi, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, long55_hi, &pos_dbl_lo);
+
+ status |= check_long_to_dbl_round(TO_NEAREST, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_NEAREST, -long55_hi, &neg_dbl_hi);
+ status |= check_long_to_dbl_round(TO_ZERO, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_ZERO, -long55_hi, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, -long55_hi, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, -long55_lo, &neg_dbl_hi);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, -long55_hi, &neg_dbl_hi);
+ return status;
+}
+#endif
+
+int check_single_arithmetic_op(flt_op_t op)
+{
+ char *result;
+ int status = 0;
+ dbl_overlay R, E;
+ double qtr, half, fA, fB, fD;
+ round_mode_t mode;
+ int q, s;
+ bool_t two_args = TRUE;
+ float whole = denorm_small;
+
+#define BINOP(op) \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ half = (double)whole/2;
+ qtr = half/2;
+
+ if (debug) {
+ print_double("qtr", qtr);
+ print_double("whole", whole);
+ print_double("2*whole", 2*whole);
+ }
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = -1; s < 2; s += 2)
+ for (q = 1; q < 4; q += 2) {
+ double expected;
+ double lo = s*whole;
+ double hi = s*2*whole;
+
+ switch(op) {
+ case FADDS:
+ fA = s*whole;
+ fB = s*q*qtr;
+ break;
+ case FSUBS:
+ fA = s*2*whole;
+ fB = s*(q == 1 ? 3 : 1)*qtr;
+ break;
+ case FMULS:
+ fA = 0.5;
+ fB = s*(4+q)*half;
+ break;
+ case FDIVS:
+ fA = s*(4+q)*half;
+ fB = 2.0;
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ switch(mode) {
+ case TO_NEAREST:
+ expected = (q == 1 ? lo : hi);
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ expected = (s == 1 ? hi : lo);
+ break;
+ case TO_MINUS_INFINITY:
+ expected = (s == 1 ? lo : hi);
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADDS:
+ BINOP("fadds");
+ R.dbl = fD;
+ BINOP("fadd");
+ break;
+ case FSUBS:
+ BINOP("fsubs");
+ R.dbl = fD;
+ BINOP("fsub");
+ break;
+ case FMULS:
+ BINOP("fmuls");
+ R.dbl = fD;
+ BINOP("fmul");
+ break;
+ case FDIVS:
+ BINOP("fdivs");
+ R.dbl = fD;
+ BINOP("fdiv");
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+
+ E.dbl = expected;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac_lo != E.layout.frac_lo) ||
+ (R.layout.frac_hi != E.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ printf("%s:%s:%s(%-13a",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (two_args) printf(", %-13a", fB);
+ printf(") = %-13a", R.dbl);
+ if (status) printf("\n\texpected %a", E.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", R.dbl);
+ print_double("double result", fD);
+ }
+ }
+
+ return status;
+}
+
+int check_single_guarded_arithmetic_op(flt_op_t op)
+{
+ typedef struct {
+ int num, den, frac;
+ } fdivs_t;
+
+ char *result;
+ int status = 0;
+ flt_overlay A, B, Z;
+ dbl_overlay Res, Exp;
+ double fA, fB, fC, fD;
+ round_mode_t mode;
+ int g, s;
+ int arg_count;
+
+ fdivs_t divs_guard_cases[16] = {
+ { 105, 56, 0x700000 }, /* : 0 */
+ { 100, 57, 0x608FB8 }, /* : 1 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 52, 0x762762 }, /* : 3 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 55, 0x68BA2E }, /* : 5 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 51, 0x7AFAFA }, /* : 7 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 56, 0x649249 }, /* : 9 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 54, 0x6D097B }, /* : B */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 59, 0x58F2FB }, /* : D */
+ { 000, 00, 0x000000 }, /* : X */
+ { 101, 52, 0x789D89 } /* : F */
+ };
+
+ /* 0x1.00000 00000000p-3 */
+ /* set up the invariant fields of B, the arg to cause rounding */
+ B.flt = 0.0;
+ B.layout.exp = 124; /* -3 */
+
+ /* set up args so result is always Z = 1.200000000000<g>p+0 */
+ Z.flt = 1.0;
+ Z.layout.sign = 0;
+
+#define TERNOP(op) \
+ arg_count = 3; \
+ __asm__ volatile( \
+ op" %0, %1, %2, %3\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB), "f"(fC));
+#define BINOP(op) \
+ arg_count = 2; \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ arg_count = 1; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = -1; s < 2; s += 2)
+ for (g = 0; g < 16; g += 1) {
+ double lo, hi, expected;
+ int LSB;
+ int guard = 0;
+ int z_sign = s;
+
+ /*
+ ** one argument will have exponent = 0 as will the result (by
+ ** design) so choose the other argument with exponent -3 to
+ ** force a 3 bit shift for scaling leaving us with 3 guard bits
+ ** and the LSB bit at the bottom of the manitssa.
+ */
+ switch(op) {
+ case FADDS:
+ /* 1p+0 + 1.00000<g>p-3 */
+ B.layout.frac = g;
+
+ fB = s*B.flt;
+ fA = s*1.0;
+
+ /* set up Z to be truncated result */
+
+ /* mask off LSB from resulting guard bits */
+ guard = g & 7;
+
+ Z.layout.frac = 0x100000 | (g >> 3);
+ break;
+ case FSUBS:
+ /* 1.200002p+0 - 1.000000000000<g>p-3 */
+ A.flt = 1.125;
+ /* add enough to avoid scaling of the result */
+ A.layout.frac |= 0x2;
+ fA = s*A.flt;
+
+ B.layout.frac = g;
+ fB = s*B.flt;
+
+ /* set up Z to be truncated result */
+ guard = (0x10-g);
+ Z.layout.frac = guard>>3;
+
+ /* mask off LSB from resulting guard bits */
+ guard &= 7;
+ break;
+ case FMULS:
+ /* 1 + g*2^-23 */
+ A.flt = 1.0;
+ A.layout.frac = g;
+ fA = s*A.flt;
+ fB = 1.125;
+
+ /* set up Z to be truncated result */
+ Z.flt = 1.0;
+ Z.layout.frac = 0x100000;
+ Z.layout.frac |= g + (g>>3);
+ guard = g & 7;
+ break;
+ case FDIVS:
+ /* g >> 3 == LSB, g & 7 == guard bits */
+ guard = g & 7;
+ if ((guard & 1) == 0) {
+ /* special case: guard bit X = 0 */
+ A.flt = denorm_small;
+ A.layout.frac = g;
+ fA = A.flt;
+ fB = s*8.0;
+ Z.flt = 0.0;
+ Z.layout.frac |= (g >> 3);
+ } else {
+ fA = s*divs_guard_cases[g].num;
+ fB = divs_guard_cases[g].den;
+
+ Z.flt = 1.0;
+ Z.layout.frac = divs_guard_cases[g].frac;
+ }
+ break;
+ case FMADDS:
+ case FMSUBS:
+ case FNMADDS:
+ case FNMSUBS:
+ /* 1 + g*2^-23 */
+ A.flt = 1.0;
+ A.layout.frac = g;
+ fA = s*A.flt;
+ fB = 1.125;
+
+ /* 1.000001p-1 */
+ A.flt = 0.5;
+ A.layout.frac = 1;
+ fC = (op == FMADDS || op == FNMADDS ? s : -s)*A.flt;
+
+ /* set up Z to be truncated result */
+ z_sign = (op == FNMADDS || op == FNMSUBS ? -s : s);
+ guard = ((g & 7) + 0x4) & 7;
+ Z.flt = 1.0;
+ Z.layout.frac = 0x500000;
+ Z.layout.frac |= g + (g>>3) + ((g & 7)>> 2 ? 1 : 0);
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ /* get LSB for tie breaking */
+ LSB = Z.layout.frac & 1;
+
+ /* set up hi and lo */
+ lo = z_sign*Z.flt;
+ Z.layout.frac += 1;
+ hi = z_sign*Z.flt;
+
+ switch(mode) {
+ case TO_NEAREST:
+ /* look at 3 guard bits to determine expected rounding */
+ switch(guard) {
+ case 0:
+ case 1: case 2: case 3:
+ expected = lo;
+ break;
+ case 4: /* tie: round to even */
+ if (debug) printf("tie: LSB = %d\n", LSB);
+ expected = (LSB == 0 ? lo : hi);
+ break;
+ case 5: case 6: case 7:
+ expected = hi;
+ break;
+ default:
+ assert("check_single_guarded_arithmetic_op: unexpected guard",
+ FALSE);
+ }
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? hi : lo);
+ }
+ break;
+ case TO_MINUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? lo : hi);
+ }
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADDS:
+ BINOP("fadds");
+ Res.dbl = fD;
+ break;
+ case FSUBS:
+ BINOP("fsubs");
+ Res.dbl = fD;
+ break;
+ case FMULS:
+ BINOP("fmuls");
+ Res.dbl = fD;
+ break;
+ case FDIVS:
+ BINOP("fdivs");
+ Res.dbl = fD;
+ break;
+ case FMADDS:
+ TERNOP("fmadds");
+ Res.dbl = fD;
+ break;
+ case FMSUBS:
+ TERNOP("fmsubs");
+ Res.dbl = fD;
+ break;
+ case FNMADDS:
+ TERNOP("fnmadds");
+ Res.dbl = fD;
+ break;
+ case FNMSUBS:
+ TERNOP("fnmsubs");
+ Res.dbl = fD;
+ break;
+ default:
+ assert("check_single_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+#undef TERNOP
+
+ Exp.dbl = expected;
+
+ if ((Res.layout.sign != Exp.layout.sign) ||
+ (Res.layout.exp != Exp.layout.exp) ||
+ (Res.layout.frac_lo != Exp.layout.frac_lo) ||
+ (Res.layout.frac_hi != Exp.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ /* There seems to be some noise in the lower bits. The value
+ * on the least significant digit seems to vary when printing
+ * based on the rounding mode of the compiler. Just trying
+ * to get rid of the noise in the least significant bits when
+ * printing the operand.
+ */
+
+ fA = ((long int)(fA*10000))/10000.0;
+ /* Change -0.0 to a positive 0.0. Some compilers print -0.0
+ * others do not. Make it consistent.
+ */
+ if (fA == -0.0)
+ fA = 0.0;
+
+ printf("%s:%s:%s(%-13.6f",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (arg_count > 1) printf(", %-13a", fB);
+ if (arg_count > 2) printf(", %-13a", fC);
+ printf(") = %-13a", Res.dbl);
+ if (status) printf("\n\texpected %a", Exp.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", Res.dbl);
+ }
+ }
+
+ return status;
+}
+
+int check_double_guarded_arithmetic_op(flt_op_t op)
+{
+ typedef struct {
+ int num, den, hi, lo;
+ } fdiv_t;
+ typedef struct {
+ double arg;
+ int exp, hi, lo;
+ } fsqrt_t;
+
+ char *result;
+ int status = 0;
+ dbl_overlay A, B, Z;
+ dbl_overlay Res, Exp;
+ double fA, fB, fC, fD;
+ round_mode_t mode;
+ int g, s;
+ int arg_count;
+ fdiv_t div_guard_cases[16] = {
+ { 62, 62, 0x00000, 0x00000000 }, /* 0 */
+ { 64, 62, 0x08421, 0x08421084 }, /* 1 */
+ { 66, 62, 0x10842, 0x10842108 }, /* 2 */
+ { 100, 62, 0x9ce73, 0x9ce739ce }, /* 3 */
+ { 100, 62, 0x9ce73, 0x9ce739ce }, /* X */
+ { 102, 62, 0xa5294, 0xa5294a52 }, /* 5 */
+ { 106, 62, 0xb5ad6, 0xb5ad6b5a }, /* 6 */
+ { 108, 62, 0xbdef7, 0xbdef7bde }, /* 7 */
+ { 108, 108, 0x00000, 0x00000000 }, /* 8 */
+ { 112, 62, 0xce739, 0xce739ce7 }, /* 9 */
+ { 114, 62, 0xd6b5a, 0xd6b5ad6b }, /* A */
+ { 116, 62, 0xdef7b, 0xdef7bdef }, /* B */
+ { 84, 62, 0x5ad6b, 0x5ad6b5ad }, /* X */
+ { 118, 62, 0xe739c, 0xe739ce73 }, /* D */
+ { 90, 62, 0x739ce, 0x739ce739 }, /* E */
+ { 92, 62, 0x7bdef, 0x7bdef7bd } /* F */
+ };
+
+
+ fsqrt_t sqrt_guard_cases[16] = {
+ { 0x1.08800p0, 0, 0x04371, 0xd9ab72fb}, /* :0 B8.8440 */
+ { 0x0.D2200p0, -1, 0xcfdca, 0xf353049e}, /* :1 A4.6910 */
+ { 0x1.A8220p0, 0, 0x49830, 0x2b49cd6d}, /* :2 E9.D411 */
+ { 0x1.05A20p0, 0, 0x02cd1, 0x3b44f3bf}, /* :3 B7.82D1 */
+ { 0x0.CA820p0, -1, 0xc7607, 0x3cec0937}, /* :4 A1.6541 */
+ { 0x1.DCA20p0, 0, 0x5d4f8, 0xd4e4c2b2}, /* :5 F7.EE51 */
+ { 0x1.02C80p0, 0, 0x01630, 0x9cde7483}, /* :6 B6.8164 */
+ { 0x0.DC800p0, -1, 0xdb2cf, 0xe686fe7c}, /* :7 A8.6E40 */
+ { 0x0.CF920p0, -1, 0xcd089, 0xb6860626}, /* :8 A3.67C9 */
+ { 0x1.1D020p0, 0, 0x0e1d6, 0x2e78ed9d}, /* :9 BF.8E81 */
+ { 0x0.E1C80p0, -1, 0xe0d52, 0x6020fb6b}, /* :A AA.70E4 */
+ { 0x0.C8000p0, -1, 0xc48c6, 0x001f0abf}, /* :B A0.6400 */
+ { 0x1.48520p0, 0, 0x21e9e, 0xd813e2e2}, /* :C CD.A429 */
+ { 0x0.F4C20p0, -1, 0xf4a1b, 0x09bbf0b0}, /* :D B1.7A61 */
+ { 0x0.CD080p0, -1, 0xca348, 0x79b907ae}, /* :E A2.6684 */
+ { 0x1.76B20p0, 0, 0x35b67, 0x81aed827} /* :F DB.BB59 */
+ };
+
+ /* 0x1.00000 00000000p-3 */
+ /* set up the invariant fields of B, the arg to cause rounding */
+ B.dbl = 0.0;
+ B.layout.exp = 1020;
+
+ /* set up args so result is always Z = 1.200000000000<g>p+0 */
+ Z.dbl = 1.0;
+ Z.layout.sign = 0;
+
+#define TERNOP(op) \
+ arg_count = 3; \
+ __asm__ volatile( \
+ op" %0, %1, %2, %3\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB), "f"(fC));
+#define BINOP(op) \
+ arg_count = 2; \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ arg_count = 1; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = (op != FSQRT ? -1 : 1); s < 2; s += 2)
+ for (g = 0; g < 16; g += 1) {
+ double lo, hi, expected;
+ int LSB;
+ int guard;
+ int z_sign = s;
+
+ /*
+ ** one argument will have exponent = 0 as will the result (by
+ ** design) so choose the other argument with exponent -3 to
+ ** force a 3 bit shift for scaling leaving us with 3 guard bits
+ ** and the LSB bit at the bottom of the manitssa.
+ */
+ switch(op) {
+ case FADD:
+ /* 1p+0 + 1.000000000000<g>p-3 */
+ B.layout.frac_lo = g;
+
+ fB = s*B.dbl;
+ fA = s*1.0;
+
+ /* set up Z to be truncated result */
+
+ /* mask off LSB from resulting guard bits */
+ guard = g & 7;
+
+ Z.layout.frac_hi = 0x20000;
+ Z.layout.frac_lo = g >> 3;
+
+ break;
+ case FSUB:
+ /* 1.2000000000002p+0 - 1.000000000000<g>p-3 */
+ A.dbl = 1.125;
+ /* add enough to avoid scaling of the result */
+ A.layout.frac_lo = 0x2;
+ fA = s*A.dbl;
+
+ B.layout.frac_lo = g;
+ fB = s*B.dbl;
+
+ /* set up Z to be truncated result */
+ guard = (0x10-g);
+ Z.layout.frac_hi = 0x0;
+ Z.layout.frac_lo = guard>>3;
+
+ /* mask off LSB from resulting guard bits */
+ guard &= 7;
+ break;
+ case FMUL:
+ /* 1 + g*2^-52 */
+ A.dbl = 1.0;
+ A.layout.frac_lo = g;
+ fA = s*A.dbl;
+ fB = 1.125;
+
+ /* set up Z to be truncated result */
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = 0x20000;
+ Z.layout.frac_lo = g + (g>>3);
+ guard = g & 7;
+ break;
+ case FMADD:
+ case FMSUB:
+ case FNMADD:
+ case FNMSUB:
+ /* 1 + g*2^-52 */
+ A.dbl = 1.0;
+ A.layout.frac_lo = g;
+ fA = s*A.dbl;
+ fB = 1.125;
+
+ /* 1.0000000000001p-1 */
+ A.dbl = 0.5;
+ A.layout.frac_lo = 1;
+ fC = (op == FMADD || op == FNMADD ? s : -s)*A.dbl;
+
+ /* set up Z to be truncated result */
+ z_sign = (op == FNMADD || op == FNMSUB ? -s : s);
+ guard = ((g & 7) + 0x4) & 7;
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = 0xa0000;
+ Z.layout.frac_lo = g + (g>>3) + ((g & 7)>> 2 ? 1 : 0);
+ break;
+ case FDIV:
+ /* g >> 3 == LSB, g & 7 == guard bits */
+ guard = g & 7;
+ if (guard == 0x4) {
+ /* special case guard bits == 4, inexact tie */
+ fB = s*2.0;
+ Z.dbl = 0.0;
+ if (g >> 3) {
+ fA = dbl_denorm_small + 2*dbl_denorm_small;
+ Z.layout.frac_lo = 0x1;
+ } else {
+ fA = dbl_denorm_small;
+ }
+ } else {
+ fA = s*div_guard_cases[g].num;
+ fB = div_guard_cases[g].den;
+
+ printf("%d/%d\n",
+ s*div_guard_cases[g].num,
+ div_guard_cases[g].den);
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = div_guard_cases[g].hi;
+ Z.layout.frac_lo = div_guard_cases[g].lo;
+ }
+ break;
+ case FSQRT:
+ fA = s*sqrt_guard_cases[g].arg;
+ Z.dbl = 1.0;
+ Z.layout.exp = sqrt_guard_cases[g].exp + 1023;
+ Z.layout.frac_hi = sqrt_guard_cases[g].hi;
+ Z.layout.frac_lo = sqrt_guard_cases[g].lo;
+ guard = g >> 1;
+ if (g & 1) guard |= 1;
+ /* don't have test cases for when X bit = 0 */
+ if (guard == 0 || guard == 4) continue;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ /* get LSB for tie breaking */
+ LSB = Z.layout.frac_lo & 1;
+
+ /* set up hi and lo */
+ lo = z_sign*Z.dbl;
+ Z.layout.frac_lo += 1;
+ hi = z_sign*Z.dbl;
+
+ switch(mode) {
+ case TO_NEAREST:
+ /* look at 3 guard bits to determine expected rounding */
+ switch(guard) {
+ case 0:
+ case 1: case 2: case 3:
+ expected = lo;
+ break;
+ case 4: /* tie: round to even */
+ if (debug) printf("tie: LSB = %d\n", LSB);
+ expected = (LSB == 0 ? lo : hi);
+ break;
+ case 5: case 6: case 7:
+ expected = hi;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected guard",
+ FALSE);
+ }
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? hi : lo);
+ }
+ break;
+ case TO_MINUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? lo : hi);
+ }
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADD:
+ BINOP("fadd");
+ Res.dbl = fD;
+ break;
+ case FSUB:
+ BINOP("fsub");
+ Res.dbl = fD;
+ break;
+ case FMUL:
+ BINOP("fmul");
+ Res.dbl = fD;
+ break;
+ case FMADD:
+ TERNOP("fmadd");
+ Res.dbl = fD;
+ break;
+ case FMSUB:
+ TERNOP("fmsub");
+ Res.dbl = fD;
+ break;
+ case FNMADD:
+ TERNOP("fnmadd");
+ Res.dbl = fD;
+ break;
+ case FNMSUB:
+ TERNOP("fnmsub");
+ Res.dbl = fD;
+ break;
+ case FDIV:
+ BINOP("fdiv");
+ Res.dbl = fD;
+ break;
+ case FSQRT:
+ UNOP("fsqrt");
+ Res.dbl = fD;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+#undef TERNOP
+
+ Exp.dbl = expected;
+
+ if ((Res.layout.sign != Exp.layout.sign) ||
+ (Res.layout.exp != Exp.layout.exp) ||
+ (Res.layout.frac_lo != Exp.layout.frac_lo) ||
+ (Res.layout.frac_hi != Exp.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ printf("%s:%s:%s(%-13a",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (arg_count > 1) printf(", %-13a", fB);
+ if (arg_count > 2) printf(", %-13a", fC);
+ printf(") = %-13a", Res.dbl);
+ if (status) printf("\n\texpected %a", Exp.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", Res.dbl);
+ }
+ }
+
+ return status;
+}
+
+int test_float_arithmetic_ops()
+{
+ int status = 0;
+ flt_op_t op;
+
+ /*
+ ** choose FP operands whose result should be rounded to either
+ ** lo or hi.
+ */
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of float operators without guard bits");
+ for (op = FADDS; op <= FDIVS; op++) {
+ status |= check_single_arithmetic_op(op);
+ }
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of float operators with guard bits");
+ for (op = FADDS; op <= FNMSUBS; op++) {
+ status |= check_single_guarded_arithmetic_op(op);
+ }
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of double operators with guard bits");
+ for (op = FADD; op <= FSQRT; op++) {
+ status |= check_double_guarded_arithmetic_op(op);
+ }
+ return status;
+}
+
+
+int
+main()
+{
+ int status = 0;
+
+ init();
+
+ status |= test_dbl_to_float_convert("test denormalized convert", &denorm_small);
+ status |= test_dbl_to_float_convert("test normalized convert", &norm_small);
+ status |= test_int_to_float_convert("test (float)int convert");
+ status |= test_int_to_float_convert("test (float)int convert");
+
+#ifdef __powerpc64__
+ status |= test_long_to_double_convert("test (double)long convert");
+#endif
+ status |= test_float_arithmetic_ops();
+ return status;
+}
Modified: trunk/none/tests/ppc32/round.stdout.exp
==============================================================================
--- trunk/none/tests/ppc32/round.stdout.exp (original)
+++ trunk/none/tests/ppc32/round.stdout.exp Thu Aug 14 16:54:48 2014
@@ -324,38 +324,38 @@
+inf:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1p+0
+inf:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1p+0
+inf:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1p+0
-+inf:PASSED:fsubs(1.125001 , 0x1p-3 ) = 0x1.000004p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.000002p-3) = 0x1.000004p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.000004p-3) = 0x1.000004p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.000006p-3) = 0x1.000004p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.000008p-3) = 0x1.000004p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.00000ap-3) = 0x1.000004p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.00000cp-3) = 0x1.000004p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.00000ep-3) = 0x1.000004p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.00001p-3 ) = 0x1.000002p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.000012p-3) = 0x1.000002p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.000014p-3) = 0x1.000002p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.000016p-3) = 0x1.000002p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.000018p-3) = 0x1.000002p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.00001ap-3) = 0x1.000002p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.00001cp-3) = 0x1.000002p+0
-+inf:PASSED:fsubs(1.125001 , 0x1.00001ep-3) = 0x1.000002p+0
--inf:PASSED:fsubs(-1.125001 , -0x1p-3 ) = -0x1.000004p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.000002p-3) = -0x1.000004p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.000004p-3) = -0x1.000004p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.000006p-3) = -0x1.000004p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.000008p-3) = -0x1.000004p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.00000ap-3) = -0x1.000004p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.00000cp-3) = -0x1.000004p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.00000ep-3) = -0x1.000004p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.00001p-3) = -0x1.000002p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.000012p-3) = -0x1.000002p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.000014p-3) = -0x1.000002p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.000016p-3) = -0x1.000002p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.000018p-3) = -0x1.000002p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.00001ap-3) = -0x1.000002p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.00001cp-3) = -0x1.000002p+0
--inf:PASSED:fsubs(-1.125001 , -0x1.00001ep-3) = -0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1.000002p+0
-inf:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
-inf:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000002p+0
-inf:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000002p+0
@@ -377,33 +377,33 @@
near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
-near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
-near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
-near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001p+0
-near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
-near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
-near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
-near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
-near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001cp+0
-near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
-near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
-near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.200022p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000cp+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000ep+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200012p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200014p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200016p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200018p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001cp+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001ep+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20002p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200022p+0
near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
-near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
-near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
-near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001p+0
-near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
-near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
-near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
-near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
-near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001cp+0
-near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
-near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
-near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.200022p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000cp+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000ep+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200012p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200014p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200016p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200018p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001cp+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001ep+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20002p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200022p+0
zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200002p+0
zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
@@ -413,13 +413,13 @@
zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000cp+0
zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000ep+0
zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200012p+0
-zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
-zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
-zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
-zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ap+0
-zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001cp+0
-zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ep+0
-zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20002p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200014p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200016p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200018p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001ap+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001cp+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001ep+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20002p+0
zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
@@ -429,13 +429,13 @@
zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000cp+0
zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000ep+0
zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200012p+0
-zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
-zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
-zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
-zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ap+0
-zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001cp+0
-zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ep+0
-zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20002p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200014p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200016p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200018p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001ap+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001cp+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001ep+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20002p+0
+inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
+inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200002p+0
+inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
@@ -445,45 +445,45 @@
+inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000cp+0
+inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000ep+0
+inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200012p+0
-+inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
-+inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
-+inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
-+inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ap+0
-+inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001cp+0
-+inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ep+0
-+inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20002p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200014p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200016p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200018p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001ap+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001cp+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001ep+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20002p+0
+inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
-+inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200004p+0
-+inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200006p+0
-+inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200008p+0
-+inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ap+0
-+inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
-+inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
-+inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001p+0
-+inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
-+inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.200016p+0
-+inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.200018p+0
-+inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ap+0
-+inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001cp+0
-+inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
-+inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
-+inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.200022p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000ap+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000cp+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000ep+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200012p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200016p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200018p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001ap+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001cp+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001ep+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20002p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200022p+0
-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
--inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200004p+0
--inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200006p+0
--inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200008p+0
--inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ap+0
--inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
--inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
--inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001p+0
--inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
--inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.200016p+0
--inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.200018p+0
--inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ap+0
--inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001cp+0
--inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
--inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
--inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.200022p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000ap+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000cp+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000ep+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200012p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200016p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200018p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001ap+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001cp+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20001ep+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20002p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200022p+0
-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
@@ -493,13 +493,13 @@
-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000cp+0
-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000ep+0
-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200012p+0
--inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
--inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
--inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
--inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ap+0
--inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001cp+0
--inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ep+0
--inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20002p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200014p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200016p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200018p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001ap+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001cp+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20001ep+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20002p+0
near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
near:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f7p+0
near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
@@ -566,35 +566,35 @@
zero:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b12p+0
+inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+inf:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f7p+0
-+inf:PASSED:fdivs(0.000001 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+inf:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec4p+0
-+inf:PASSED:fdivs(0.000001 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+inf:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745cp+0
-+inf:PASSED:fdivs(0.000001 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+inf:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f4p+0
-+inf:PASSED:fdivs(0.000001 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+inf:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92492p+0
-+inf:PASSED:fdivs(0.000001 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+inf:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f6p+0
-+inf:PASSED:fdivs(0.000001 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+inf:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f6p+0
-+inf:PASSED:fdivs(0.000001 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+inf:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b12p+0
+inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+inf:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f72p+0
-+inf:PASSED:fdivs(0.000001 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+inf:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec6p+0
-+inf:PASSED:fdivs(0.000001 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+inf:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745ep+0
-+inf:PASSED:fdivs(0.000001 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+inf:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f6p+0
-+inf:PASSED:fdivs(0.000001 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+inf:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92494p+0
-+inf:PASSED:fdivs(0.000001 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
+inf:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f8p+0
-+inf:PASSED:fdivs(0.000001 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
+inf:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f8p+0
-+inf:PASSED:fdivs(0.000001 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
+inf:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b14p+0
-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
-inf:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f72p+0
@@ -633,33 +633,33 @@
near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
-near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
-near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
-near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
-near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
-near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
-near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
-near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
-near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
-near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
-near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
-near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
-near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
-near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
-near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
-near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
-near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
-near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
-near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
-near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
-near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
-near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
-near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
@@ -669,13 +669,13 @@
zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
-zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
-zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
-zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
-zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
-zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
-zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
-zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+z...
[truncated message content] |
|
From: <sv...@va...> - 2014-08-14 14:15:06
|
Author: florian
Date: Thu Aug 14 14:14:55 2014
New Revision: 14277
Log:
Update list of ignored files.
Modified:
trunk/tests/ (props changed)
|
|
From: <sv...@va...> - 2014-08-14 14:13:00
|
Author: florian
Date: Thu Aug 14 14:12:38 2014
New Revision: 14276
Log:
Make suppression more flexible.
Needed for s390 running Fedora 20.
Modified:
trunk/drd/tests/std_thread2.supp
Modified: trunk/drd/tests/std_thread2.supp
==============================================================================
--- trunk/drd/tests/std_thread2.supp (original)
+++ trunk/drd/tests/std_thread2.supp Thu Aug 14 14:12:38 2014
@@ -6,5 +6,5 @@
{
pthread_create
drd:ConflictingAccess
- fun:pthread_create@@GLIBC_2.2.5
+ fun:pthread_create@@GLIBC_2.2*
}
|
|
From: <sv...@va...> - 2014-08-14 09:47:00
|
Author: sewardj
Date: Thu Aug 14 09:46:52 2014
New Revision: 14275
Log:
Add a couple more OSX109 libc leak suppressions.
Modified:
trunk/darwin13.supp
Modified: trunk/darwin13.supp
==============================================================================
--- trunk/darwin13.supp (original)
+++ trunk/darwin13.supp Thu Aug 14 09:46:52 2014
@@ -106,6 +106,23 @@
...
}
+{
+ OSX109:11-Leak
+ Memcheck:Leak
+ match-leak-kinds: definite
+ fun:malloc
+ fun:currentlocale
+}
+
+{
+ OSX109:12-Leak
+ Memcheck:Leak
+ match-leak-kinds: possible
+ fun:malloc
+ fun:tzsetwall_basic
+ fun:_st_tzset_basic
+}
+
############################################
## Non-leak errors
|
|
From: <sv...@va...> - 2014-08-14 09:38:29
|
Author: sewardj
Date: Thu Aug 14 09:38:19 2014
New Revision: 14274
Log:
Unbreak the MacOS port following recent r14273 (further reduction
in symbol table storage requirements for non-ppc64 targets).
Modified:
trunk/coregrind/m_debuginfo/readmacho.c
Modified: trunk/coregrind/m_debuginfo/readmacho.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readmacho.c (original)
+++ trunk/coregrind/m_debuginfo/readmacho.c Thu Aug 14 09:38:19 2014
@@ -356,15 +356,16 @@
continue;
}
- disym.main = sym_addr;
+ VG_(bzero_inline)(&disym, sizeof(disym));
+ disym.avmas.main = sym_addr;
SET_TOCPTR_AVMA(disym, 0);
SET_LOCAL_EP_AVMA(disym, 0);
- disym.pri_name = ML_(addStr)(di, name, -1);
- disym.sec_names = NULL;
- disym.size = // let canonicalize fix it
- di->text_avma+di->text_size - sym_addr;
- disym.isText = True;
- disym.isIFunc = False;
+ disym.pri_name = ML_(addStr)(di, name, -1);
+ disym.sec_names = NULL;
+ disym.size = // let canonicalize fix it
+ di->text_avma+di->text_size - sym_addr;
+ disym.isText = True;
+ disym.isIFunc = False;
// Lots of user function names get prepended with an underscore. Eg. the
// function 'f' becomes the symbol '_f'. And the "below main"
// function is called "start". So we skip the leading underscore, and
@@ -394,8 +395,8 @@
{
const DiSym* s1 = (DiSym*)v1;
const DiSym* s2 = (DiSym*)v2;
- if (s1->addr < s2->addr) return -1;
- if (s1->addr > s2->addr) return 1;
+ if (s1->avmas.main < s2->avmas.main) return -1;
+ if (s1->avmas.main > s2->avmas.main) return 1;
return VG_(strcmp)(s1->pri_name, s2->pri_name);
}
@@ -434,8 +435,8 @@
for (i = 0; i < nsyms; i++) {
for (k = i+1;
k < nsyms
- && ((DiSym*)VG_(indexXA)(syms,i))->addr
- == ((DiSym*)VG_(indexXA)(syms,k))->addr;
+ && ((DiSym*)VG_(indexXA)(syms,i))->avmas.main
+ == ((DiSym*)VG_(indexXA)(syms,k))->avmas.main;
k++)
;
/* So now [i .. k-1] is a group all with the same start address.
@@ -445,9 +446,9 @@
DiSym* next = (DiSym*)VG_(indexXA)(syms,k);
for (m = i; m < k; m++) {
DiSym* here = (DiSym*)VG_(indexXA)(syms,m);
- vg_assert(here->addr < next->addr);
- if (here->addr + here->size > next->addr)
- here->size = next->addr - here->addr;
+ vg_assert(here->avmas.main < next->avmas.main);
+ if (here->avmas.main + here->size > next->avmas.main)
+ here->size = next->avmas.main - here->avmas.main;
}
}
i = k-1;
@@ -463,7 +464,7 @@
s_j1 = (DiSym*)VG_(indexXA)(syms, j-1);
s_j = (DiSym*)VG_(indexXA)(syms, j);
s_i = (DiSym*)VG_(indexXA)(syms, i);
- if (s_i->addr != s_j1->addr
+ if (s_i->avmas.main != s_j1->avmas.main
|| s_i->size != s_j1->size
|| 0 != VG_(strcmp)(s_i->pri_name, s_j1->pri_name)) {
*s_j = *s_i;
@@ -471,7 +472,7 @@
} else {
if (trace_symtab)
VG_(printf)("nlist cleanup: dump duplicate avma %010lx %s\n",
- s_i->addr, s_i->pri_name );
+ s_i->avmas.main, s_i->pri_name );
}
}
}
@@ -956,7 +957,7 @@
vg_assert(cand->sec_names == NULL);
if (di->trace_symtab)
VG_(printf)("nlist final: acquire avma %010lx-%010lx %s\n",
- cand->addr, cand->addr + cand->size - 1,
+ cand->avmas.main, cand->avmas.main + cand->size - 1,
cand->pri_name );
ML_(addSym)( di, cand );
}
|
|
From: Rich C. <rc...@wi...> - 2014-08-14 05:06:02
|
valgrind revision: 14273
VEX revision: 2920
C compiler: gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]
GDB: GNU gdb (GDB; openSUSE Factory) 7.6.50.20130731-cvs
Assembler: GNU assembler (GNU Binutils; openSUSE Factory) 2.23.2
C library: GNU C Library (GNU libc) stable release version 2.18 (git )
uname -mrs: Linux 3.11.4-3-desktop x86_64
Vendor version: Welcome to openSUSE 13.1 "Bottle" Beta 1 - Kernel %r (%t).
Nightly build on rodan ( Linux 3.11.4-3-desktop x86_64 )
Started at 2014-08-13 19:22:01 CDT
Ended at 2014-08-14 00:05:50 CDT
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
== 608 tests, 6 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/threadname (stderr)
memcheck/tests/threadname_xml (stderr)
memcheck/tests/vbit-test/vbit-test (stderr)
exp-sgcheck/tests/hackedbz2 (stderr)
--tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old
+ perl perf/vg_perf --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old perf
-- Running tests in perf ----------------------------------------------
-- bigcode1 --
bigcode1 valgrind-new:0.48s no: 7.8s (16.4x, -----) me:15.0s (31.2x, -----) ca:61.6s (128.3x, -----) he: 8.9s (18.6x, -----) ca:25.6s (53.2x, -----) dr: 8.8s (18.2x, -----) ma: 9.1s (19.0x, -----)
bigcode1 valgrind-old:0.48s no: 7.8s (16.3x, 0.5%) me:15.0s (31.2x, 0.1%) ca:61.2s (127.5x, 0.7%) he: 8.9s (18.5x, 0.6%) ca:25.6s (53.2x, 0.0%) dr: 8.8s (18.3x, -0.5%) ma: 9.1s (18.9x, 0.5%)
-- bigcode2 --
bigcode2 valgrind-new:0.49s no:18.8s (38.4x, -----) me:38.4s (78.4x, -----) ca:106.2s (216.8x, -----) he:22.4s (45.6x, -----) ca:41.1s (83.9x, -----) dr:21.3s (43.5x, -----) ma:21.4s (43.7x, -----)
bigcode2 valgrind-old:0.49s no:18.6s (38.0x, 1.0%) me:38.3s (78.1x, 0.4%) ca:105.8s (216.0x, 0.4%) he:22.3s (45.5x, 0.3%) ca:41.1s (83.8x, 0.1%) dr:21.5s (43.8x, -0.8%) ma:21.3s (43.4x, 0.7%)
-- bz2 --
bz2 valgrind-new:2.32s no:10.3s ( 4.5x, -----) me:27.4s (11.8x, -----) ca:58.9s (25.4x, -----) he:39.8s (17.2x, -----) ca:77.4s (33.3x, -----) dr:56.9s (24.5x, -----) ma: 9.8s ( 4.2x, -----)
bz2 valgrind-old:2.32s no:10.3s ( 4.4x, 0.5%) me:27.3s (11.8x, 0.1%) ca:59.2s (25.5x, -0.5%) he:40.2s (17.3x, -1.0%) ca:77.2s (33.3x, 0.2%) dr:56.5s (24.3x, 0.7%) ma: 9.7s ( 4.2x, 0.7%)
-- fbench --
fbench valgrind-new:1.44s no: 5.4s ( 3.8x, -----) me:17.9s (12.4x, -----) ca:27.0s (18.7x, -----) he:12.8s ( 8.9x, -----) ca:21.7s (15.0x, -----) dr:13.1s ( 9.1x, -----) ma: 5.6s ( 3.9x, -----)
fbench valgrind-old:1.44s no: 5.5s ( 3.8x, -0.2%) me:17.3s (12.0x, 3.4%) ca:27.2s (18.9x, -0.6%) he:12.9s ( 8.9x, -0.8%) ca:21.6s (15.0x, 0.1%) dr:13.1s ( 9.1x, 0.3%) ma: 5.6s ( 3.9x, 0.0%)
-- ffbench --
ffbench valgrind-new:1.01s no: 3.7s ( 3.7x, -----) me:12.1s (11.9x, -----) ca: 8.2s ( 8.1x, -----) he:21.6s (21.4x, -----) ca:27.5s (27.2x, -----) dr:17.1s (17.0x, -----) ma: 3.7s ( 3.7x, -----)
ffbench valgrind-old:1.01s no: 3.7s ( 3.7x, -0.3%) me:12.1s (12.0x, -0.2%) ca: 8.1s ( 8.1x, 0.1%) he:21.6s (21.4x, 0.0%) ca:27.5s (27.3x, -0.0%) dr:17.1s (16.9x, 0.3%) ma: 3.7s ( 3.7x, 0.3%)
-- heap --
heap valgrind-new:0.40s no: 3.3s ( 8.3x, -----) me:22.3s (55.6x, -----) ca:31.6s (78.9x, -----) he:30.6s (76.5x, -----) ca:23.1s (57.7x, -----) dr:19.7s (49.2x, -----) ma:22.6s (56.5x, -----)
heap valgrind-old:0.40s no: 3.3s ( 8.2x, 0.9%) me:22.1s (55.2x, 0.9%) ca:31.6s (79.0x, -0.2%) he:30.7s (76.8x, -0.4%) ca:22.8s (57.0x, 1.2%) dr:20.2s (50.6x, -2.9%) ma:22.2s (55.4x, 2.0%)
-- heap_pdb4 --
heap_pdb4 valgrind-new:0.55s no: 3.7s ( 6.7x, -----) me:41.5s (75.4x, -----) ca:34.3s (62.4x, -----) he:35.6s (64.8x, -----) ca:24.9s (45.3x, -----) dr:22.1s (40.2x, -----) ma:23.9s (43.5x, -----)
heap_pdb4 valgrind-old:0.55s no: 3.6s ( 6.6x, 0.5%) me:42.6s (77.5x, -2.8%) ca:34.2s (62.1x, 0.4%) he:36.2s (65.8x, -1.5%) ca:24.8s (45.2x, 0.3%) dr:22.7s (41.3x, -2.6%) ma:23.7s (43.1x, 1.0%)
-- many-loss-records --
many-loss-records valgrind-new:0.05s no: 1.3s (25.4x, -----) me: 5.9s (117.8x, -----) ca: 5.1s (102.8x, -----) he: 5.3s (105.2x, -----) ca: 4.1s (82.0x, -----) dr: 4.6s (91.6x, -----) ma: 4.7s (94.2x, -----)
many-loss-records valgrind-old:0.05s no: 1.3s (25.4x, 0.0%) me: 5.9s (117.6x, 0.2%) ca: 5.2s (103.0x, -0.2%) he: 5.2s (104.2x, 1.0%) ca: 4.1s (82.2x, -0.2%) dr: 4.7s (94.6x, -3.3%) ma: 4.6s (92.8x, 1.5%)
-- many-xpts --
many-xpts valgrind-new:0.15s no: 1.5s (10.2x, -----) me: 6.9s (46.1x, -----) ca:13.1s (87.5x, -----) he: 9.7s (64.3x, -----) ca: 5.9s (39.1x, -----) dr: 6.0s (40.3x, -----) ma: 7.4s (49.2x, -----)
many-xpts valgrind-old:0.15s no: 1.5s (10.2x, 0.0%) me: 7.0s (46.5x, -0.7%) ca:13.1s (87.5x, -0.1%) he: 9.5s (63.3x, 1.6%) ca: 5.8s (39.0x, 0.3%) dr: 6.2s (41.6x, -3.1%) ma: 7.4s (49.2x, 0.0%)
-- sarp --
sarp valgrind-new:0.10s no: 1.5s (14.8x, -----) me: 8.8s (87.9x, -----) ca: 8.5s (85.0x, -----) he:31.0s (310.4x, -----) ca: 5.6s (56.0x, -----) dr: 4.1s (40.8x, -----) ma: 1.5s (15.2x, -----)
sarp valgrind-old:0.10s no: 1.5s (14.8x, 0.0%) me: 9.4s (94.0x, -6.9%) ca: 8.5s (84.9x, 0.1%) he:30.6s (305.5x, 1.6%) ca: 5.6s (56.2x, -0.4%) dr: 4.1s (40.8x, 0.0%) ma: 1.5s (15.2x, 0.0%)
-- tinycc --
tinycc valgrind-new:0.76s no: 7.6s (10.0x, -----) me:38.1s (50.1x, -----) ca:48.7s (64.1x, -----) he:45.9s (60.3x, -----) ca:45.0s (59.3x, -----) dr:38.9s (51.2x, -----) ma:12.0s (15.8x, -----)
tinycc valgrind-old:0.76s no: 7.6s (10.0x, -0.3%) me:37.4s (49.2x, 1.8%) ca:48.2s (63.4x, 1.1%) he:45.7s (60.1x, 0.3%) ca:45.1s (59.4x, -0.2%) dr:37.8s (49.7x, 3.0%) ma:12.0s (15.8x, -0.1%)
-- Finished tests in perf ----------------------------------------------
== 11 programs, 154 timings =================
real 162m34.868s
user 160m41.145s
sys 1m46.687s
=================================================
./valgrind-new/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-08-13 20:21:26.466733265 -0500
+++ hackedbz2.stderr.out 2014-08-13 21:22:05.557529905 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-08-13 20:23:00.258737255 -0500
+++ err_disable3.stderr.out 2014-08-13 20:42:51.340506511 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-new/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-08-13 20:23:04.217779640 -0500
+++ err_disable4.stderr.out 2014-08-13 20:42:58.440582726 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-new/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-08-13 20:23:00.261737287 -0500
+++ threadname.stderr.out 2014-08-13 20:49:07.883549869 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-new/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-08-13 20:23:08.501825504 -0500
+++ threadname_xml.stderr.out 2014-08-13 20:49:09.940571965 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/vbit-test/vbit-test.stderr.diff
=================================================
--- vbit-test.stderr.exp 2014-08-13 20:23:12.203865088 -0500
+++ vbit-test.stderr.out 2014-08-13 20:51:18.277944554 -0500
@@ -0,0 +1 @@
+unknown opcode 5918
=================================================
./valgrind-old/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-08-13 19:22:29.655409498 -0500
+++ hackedbz2.stderr.out 2014-08-13 20:20:11.941935697 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-08-13 19:22:27.899390472 -0500
+++ err_disable3.stderr.out 2014-08-13 19:41:06.932552124 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-old/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-08-13 19:22:25.388363267 -0500
+++ err_disable4.stderr.out 2014-08-13 19:41:11.289599489 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-old/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-08-13 19:22:27.904390527 -0500
+++ threadname.stderr.out 2014-08-13 19:47:18.156580241 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-old/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-08-13 19:22:25.837368131 -0500
+++ threadname_xml.stderr.out 2014-08-13 19:47:20.210602523 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/vbit-test/vbit-test.stderr.diff
=================================================
--- vbit-test.stderr.exp 2014-08-13 19:22:26.200372064 -0500
+++ vbit-test.stderr.out 2014-08-13 19:49:28.627995501 -0500
@@ -0,0 +1 @@
+unknown opcode 5918
|
|
From: Christian B. <bor...@de...> - 2014-08-14 04:10:03
|
valgrind revision: 14273 VEX revision: 2920 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.31-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-08-14 03:45:01 CEST Ended at 2014-08-14 06:09:41 CEST 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 == 658 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/tc20_verifywrap (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 4.7s (20.5x, -----) me: 6.8s (29.3x, -----) ca:26.6s (115.6x, -----) he: 5.7s (24.8x, -----) ca: 9.1s (39.7x, -----) dr: 4.8s (20.7x, -----) ma: 4.7s (20.4x, -----) bigcode1 valgrind-old:0.23s no: 4.7s (20.5x, -0.2%) me: 6.6s (28.8x, 1.9%) ca:26.6s (115.8x, -0.2%) he: 5.7s (24.7x, 0.4%) ca: 9.1s (39.7x, 0.1%) dr: 4.8s (21.0x, -1.7%) ma: 4.7s (20.3x, 0.4%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.6s (31.8x, -----) me:13.4s (55.8x, -----) ca:39.4s (164.1x, -----) he:10.6s (44.1x, -----) ca:14.3s (59.5x, -----) dr: 8.9s (37.0x, -----) ma: 8.1s (33.8x, -----) bigcode2 valgrind-old:0.24s no: 7.7s (32.1x, -1.0%) me:13.5s (56.1x, -0.6%) ca:39.3s (163.7x, 0.2%) he:10.6s (44.0x, 0.3%) ca:14.3s (59.4x, 0.2%) dr: 8.9s (37.1x, -0.2%) ma: 8.1s (33.8x, 0.1%) -- bz2 -- bz2 valgrind-new:0.70s no: 6.5s ( 9.2x, -----) me:12.6s (18.0x, -----) ca:31.0s (44.2x, -----) he:19.6s (28.0x, -----) ca:34.4s (49.1x, -----) dr:29.5s (42.1x, -----) ma: 3.8s ( 5.4x, -----) bz2 valgrind-old:0.70s no: 6.5s ( 9.2x, 0.2%) me:12.6s (18.1x, -0.1%) ca:30.8s (44.1x, 0.4%) he:19.7s (28.1x, -0.7%) ca:34.3s (49.0x, 0.1%) dr:29.4s (42.1x, 0.0%) ma: 3.8s ( 5.5x, -2.4%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 3.9x, -----) me: 4.3s (10.5x, -----) ca: 9.3s (22.7x, -----) he: 6.2s (15.1x, -----) ca: 7.2s (17.6x, -----) dr: 5.5s (13.4x, -----) ma: 1.6s ( 4.0x, -----) fbench valgrind-old:0.41s no: 1.6s ( 4.0x, -1.2%) me: 4.3s (10.4x, 0.5%) ca: 9.3s (22.8x, -0.3%) he: 6.2s (15.2x, -0.3%) ca: 7.2s (17.6x, 0.0%) dr: 5.5s (13.4x, 0.0%) ma: 1.6s ( 4.0x, -0.6%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.2s ( 6.0x, -----) me: 3.0s (15.0x, -----) ca: 3.0s (15.1x, -----) he:44.1s (220.3x, -----) ca: 9.6s (48.0x, -----) dr: 7.0s (34.9x, -----) ma: 1.0s ( 4.8x, -----) ffbench valgrind-old:0.20s no: 1.2s ( 5.9x, 1.7%) me: 3.0s (14.8x, 1.3%) ca: 3.0s (15.1x, 0.0%) he:44.3s (221.4x, -0.5%) ca: 9.6s (48.0x, 0.0%) dr: 7.0s (34.9x, 0.0%) ma: 1.0s ( 4.8x, 0.0%) -- heap -- heap valgrind-new:0.23s no: 2.2s ( 9.8x, -----) me: 8.8s (38.1x, -----) ca:13.2s (57.4x, -----) he:12.7s (55.4x, -----) ca:11.3s (49.1x, -----) dr: 7.5s (32.8x, -----) ma: 8.0s (34.7x, -----) heap valgrind-old:0.23s no: 2.2s ( 9.7x, 0.4%) me: 8.7s (37.7x, 1.0%) ca:13.3s (57.8x, -0.6%) he:12.8s (55.7x, -0.5%) ca:11.3s (49.3x, -0.4%) dr: 7.5s (32.8x, 0.0%) ma: 7.9s (34.3x, 1.1%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.23s no: 2.5s (10.9x, -----) me:12.9s (56.0x, -----) ca:14.3s (62.2x, -----) he:14.2s (61.5x, -----) ca:12.4s (54.0x, -----) dr: 8.5s (36.9x, -----) ma: 8.1s (35.3x, -----) heap_pdb4 valgrind-old:0.23s no: 2.5s (10.8x, 1.2%) me:12.8s (55.6x, 0.8%) ca:14.3s (62.4x, -0.3%) he:14.1s (61.1x, 0.6%) ca:12.4s (54.0x, -0.2%) dr: 8.5s (36.9x, 0.0%) ma: 8.0s (34.8x, 1.5%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (17.7x, -----) me: 2.1s (69.0x, -----) ca: 1.9s (65.0x, -----) he: 2.1s (70.7x, -----) ca: 1.9s (64.0x, -----) dr: 1.7s (56.7x, -----) ma: 1.7s (56.0x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (17.3x, 1.9%) me: 2.1s (69.0x, 0.0%) ca: 1.9s (65.0x, 0.0%) he: 2.1s (70.7x, 0.0%) ca: 1.9s (63.7x, 0.5%) dr: 1.7s (56.3x, 0.6%) ma: 1.7s (55.7x, 0.6%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.7s ( 9.4x, -----) me: 3.1s (44.9x, -----) ca:361.6s (5166.1x, -----) he: 6.5s (92.1x, -----) ca: 2.8s (40.1x, -----) dr: 2.5s (35.0x, -----) ma: 2.6s (36.7x, -----) many-xpts valgrind-old:0.07s no: 0.7s ( 9.6x, -1.5%) me: 3.1s (44.9x, 0.0%) ca:374.4s (5347.9x, -3.5%) he: 6.5s (92.9x, -0.8%) ca: 2.8s (40.1x, 0.0%) dr: 2.4s (34.9x, 0.4%) ma: 2.6s (37.3x, -1.6%) -- sarp -- sarp valgrind-new:0.02s no: 0.6s (30.0x, -----) me: 3.5s (173.0x, -----) ca: 3.2s (161.5x, -----) he:16.3s (817.0x, -----) ca: 2.0s (102.0x, -----) dr: 1.3s (67.0x, -----) ma: 0.5s (24.0x, -----) sarp valgrind-old:0.02s no: 0.6s (29.5x, 1.7%) me: 3.5s (173.5x, -0.3%) ca: 3.2s (160.5x, 0.6%) he:16.7s (833.5x, -2.0%) ca: 2.0s (102.0x, 0.0%) dr: 1.3s (67.0x, 0.0%) ma: 0.5s (24.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 3.1s (14.3x, -----) me:14.5s (65.9x, -----) ca:30.1s (137.0x, -----) he:27.4s (124.5x, -----) ca:21.2s (96.4x, -----) dr:20.4s (93.0x, -----) ma: 3.9s (17.7x, -----) tinycc valgrind-old:0.22s no: 3.1s (14.3x, 0.3%) me:14.5s (66.0x, -0.2%) ca:30.2s (137.4x, -0.3%) he:27.6s (125.4x, -0.7%) ca:21.2s (96.5x, -0.1%) dr:20.4s (92.8x, 0.1%) ma: 3.9s (17.8x, -0.5%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m36.703s user 109m57.765s sys 0m30.907s |
|
From: Tom H. <to...@co...> - 2014-08-14 03:30:45
|
valgrind revision: 14273 VEX revision: 2920 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) GDB: Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-08-14 03:21:22 BST Ended at 2014-08-14 04:30:27 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 661 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) cachegrind/tests/dlclose (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 661 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 1 stdoutB failure, 0 post failures == gdbserver_tests/mcinvokeWS (stdoutB) memcheck/tests/amd64/insn-pcmpistri (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-08-14 03:39:01.099254995 +0100 --- new.short 2014-08-14 03:54:21.792630588 +0100 *************** *** 8,11 **** ! == 661 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 1 stdoutB failure, 0 post failures == ! gdbserver_tests/mcinvokeWS (stdoutB) memcheck/tests/amd64/insn-pcmpistri (stderr) --- 8,10 ---- ! == 661 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) *************** *** 13,14 **** --- 12,14 ---- memcheck/tests/vbit-test/vbit-test (stderr) + cachegrind/tests/dlclose (stderr) none/tests/amd64/sse4-64 (stdout) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.7s (15.4x, -----) me: 3.3s (30.1x, -----) ca:13.9s (126.0x, -----) he: 2.0s (18.1x, -----) ca: 4.4s (39.6x, -----) dr: 1.9s (17.5x, -----) ma: 2.0s (18.1x, -----) bigcode1 valgrind-old:0.11s no: 1.7s (15.4x, 0.0%) me: 3.3s (30.4x, -0.9%) ca:13.8s (125.8x, 0.1%) he: 2.0s (17.9x, 1.0%) ca: 4.4s (39.8x, -0.5%) dr: 1.9s (17.7x, -1.0%) ma: 2.0s (18.0x, 0.5%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.2s (38.0x, -----) me: 8.8s (80.5x, -----) ca:25.4s (231.3x, -----) he: 5.2s (47.3x, -----) ca: 8.0s (72.5x, -----) dr: 4.9s (44.2x, -----) ma: 4.8s (43.7x, -----) bigcode2 valgrind-old:0.11s no: 4.2s (38.3x, -0.7%) me: 8.8s (80.1x, 0.5%) ca:25.5s (231.5x, -0.1%) he: 5.2s (47.1x, 0.4%) ca: 8.0s (73.0x, -0.8%) dr: 4.8s (44.0x, 0.4%) ma: 4.8s (43.5x, 0.4%) -- bz2 -- bz2 valgrind-new:0.59s no: 1.8s ( 3.0x, -----) me: 5.8s ( 9.8x, -----) ca:17.1s (29.0x, -----) he: 8.4s (14.3x, -----) ca:12.1s (20.5x, -----) dr:12.8s (21.7x, -----) ma: 1.8s ( 3.0x, -----) bz2 valgrind-old:0.59s no: 1.8s ( 3.0x, 0.0%) me: 5.8s ( 9.8x, -0.2%) ca:17.1s (29.0x, -0.1%) he: 8.5s (14.3x, -0.1%) ca:12.1s (20.5x, 0.4%) dr:12.8s (21.7x, 0.0%) ma: 1.7s ( 2.9x, 1.1%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.7x, -----) me: 3.6s (16.3x, -----) ca: 5.7s (25.9x, -----) he: 3.0s (13.6x, -----) ca: 3.5s (15.8x, -----) dr: 2.9s (13.0x, -----) ma: 1.1s ( 5.0x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, 0.0%) me: 3.6s (16.2x, 0.6%) ca: 5.7s (25.7x, 0.7%) he: 3.0s (13.7x, -0.3%) ca: 3.4s (15.5x, 1.4%) dr: 2.9s (13.0x, 0.3%) ma: 1.1s ( 4.9x, 0.9%) -- ffbench -- ffbench valgrind-new:0.21s no: 1.2s ( 5.5x, -----) me: 3.1s (14.8x, -----) ca: 2.2s (10.3x, -----) he: 5.5s (26.0x, -----) ca: 5.1s (24.2x, -----) dr: 3.6s (17.0x, -----) ma: 1.1s ( 5.5x, -----) ffbench valgrind-old:0.21s no: 1.2s ( 5.7x, -2.6%) me: 3.1s (14.8x, 0.0%) ca: 2.1s (10.2x, 0.5%) he: 5.4s (25.9x, 0.5%) ca: 5.1s (24.3x, -0.4%) dr: 3.6s (17.0x, 0.0%) ma: 1.1s ( 5.5x, 0.0%) -- heap -- heap valgrind-new:0.07s no: 0.6s ( 8.7x, -----) me: 5.4s (76.6x, -----) ca: 6.0s (85.3x, -----) he: 7.1s (100.9x, -----) ca: 3.6s (50.9x, -----) dr: 4.2s (59.6x, -----) ma: 4.7s (66.7x, -----) heap valgrind-old:0.07s no: 0.6s ( 8.7x, 0.0%) me: 5.3s (75.7x, 1.1%) ca: 5.8s (83.4x, 2.2%) he: 7.0s (99.4x, 1.4%) ca: 3.5s (49.4x, 2.8%) dr: 4.1s (58.4x, 1.9%) ma: 4.6s (65.6x, 1.7%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 6.8x, -----) me: 8.9s (89.0x, -----) ca: 6.3s (63.1x, -----) he: 8.1s (81.4x, -----) ca: 3.7s (36.7x, -----) dr: 4.7s (46.7x, -----) ma: 4.7s (46.8x, -----) heap_pdb4 valgrind-old:0.10s no: 0.6s ( 6.4x, 5.9%) me: 8.8s (87.7x, 1.5%) ca: 7.6s (75.6x,-19.8%) he: 8.1s (81.3x, 0.1%) ca: 3.7s (36.9x, -0.5%) dr: 4.6s (46.2x, 1.1%) ma: 4.8s (48.0x, -2.6%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.2s (22.0x, -----) me: 1.2s (124.0x, -----) ca: 0.9s (93.0x, -----) he: 1.1s (108.0x, -----) ca: 0.6s (62.0x, -----) dr: 0.9s (89.0x, -----) ma: 0.9s (92.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (22.0x, 0.0%) me: 1.2s (124.0x, 0.0%) ca: 0.9s (93.0x, 0.0%) he: 1.1s (106.0x, 1.9%) ca: 0.6s (62.0x, 0.0%) dr: 0.9s (88.0x, 1.1%) ma: 0.9s (93.0x, -1.1%) -- many-xpts -- many-xpts valgrind-new:0.04s no: 0.3s ( 7.5x, -----) me: 1.8s (43.8x, -----) ca: 2.9s (71.2x, -----) he: 2.2s (54.0x, -----) ca: 1.1s (27.5x, -----) dr: 1.3s (31.5x, -----) ma: 1.4s (34.5x, -----) many-xpts valgrind-old:0.04s no: 0.3s ( 7.2x, 3.3%) me: 1.7s (43.5x, 0.6%) ca: 2.9s (72.2x, -1.4%) he: 2.2s (54.0x, 0.0%) ca: 1.1s (27.8x, -0.9%) dr: 1.3s (32.0x, -1.6%) ma: 1.4s (34.8x, -0.7%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (13.0x, -----) me: 2.5s (123.5x, -----) ca: 1.7s (86.0x, -----) he: 7.7s (383.0x, -----) ca: 0.9s (47.5x, -----) dr: 0.8s (42.5x, -----) ma: 0.3s (14.0x, -----) sarp valgrind-old:0.02s no: 0.2s (12.5x, 3.8%) me: 2.6s (130.0x, -5.3%) ca: 1.8s (91.5x, -6.4%) he: 7.7s (386.0x, -0.8%) ca: 0.9s (47.5x, 0.0%) dr: 0.8s (42.5x, 0.0%) ma: 0.3s (13.5x, 3.6%) -- tinycc -- tinycc valgrind-new:0.18s no: 1.4s ( 7.8x, -----) me: 9.1s (50.4x, -----) ca:11.3s (62.6x, -----) he:10.9s (60.6x, -----) ca: 9.1s (50.6x, -----) dr: 8.8s (48.7x, -----) ma: 2.5s (13.7x, -----) tinycc valgrind-old:0.18s no: 1.4s ( 7.9x, -1.4%) me: 9.7s (53.7x, -6.5%) ca:11.3s (62.9x, -0.5%) he:10.9s (60.6x, 0.0%) ca: 9.2s (50.9x, -0.8%) dr: 8.7s (48.6x, 0.2%) ma: 2.4s (13.5x, 1.2%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 36m5.290s user 35m10.711s sys 0m21.598s |
|
From: Tom H. <to...@co...> - 2014-08-14 03:24:07
|
valgrind revision: 14273 VEX revision: 2920 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.1-48.fc15) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-08-14 03:12:22 BST Ended at 2014-08-14 04:23:42 BST 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 == 693 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.6s (14.8x, -----) me: 3.2s (28.8x, -----) ca:13.8s (125.2x, -----) he: 1.9s (17.3x, -----) ca: 3.8s (34.8x, -----) dr: 1.9s (17.0x, -----) ma: 1.9s (17.5x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (14.9x, -0.6%) me: 3.1s (28.6x, 0.6%) ca:13.8s (125.5x, -0.2%) he: 1.9s (17.2x, 0.5%) ca: 3.8s (34.8x, 0.0%) dr: 1.9s (16.8x, 1.1%) ma: 1.9s (17.6x, -0.5%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 3.9s (35.5x, -----) me: 8.2s (75.0x, -----) ca:26.1s (237.2x, -----) he: 4.8s (43.7x, -----) ca: 7.2s (65.1x, -----) dr: 4.5s (41.4x, -----) ma: 4.5s (41.0x, -----) bigcode2 valgrind-old:0.11s no: 3.9s (35.5x, 0.3%) me: 8.2s (74.6x, 0.5%) ca:25.2s (228.8x, 3.5%) he: 4.7s (42.9x, 1.9%) ca: 7.2s (65.0x, 0.1%) dr: 4.5s (40.9x, 1.1%) ma: 4.5s (40.8x, 0.4%) -- bz2 -- bz2 valgrind-new:0.52s no: 2.1s ( 4.0x, -----) me: 6.1s (11.8x, -----) ca:13.3s (25.6x, -----) he: 9.4s (18.2x, -----) ca:11.5s (22.1x, -----) dr:11.3s (21.7x, -----) ma: 2.1s ( 4.0x, -----) bz2 valgrind-old:0.52s no: 2.1s ( 4.1x, -0.5%) me: 6.1s (11.8x, 0.3%) ca:13.3s (25.5x, 0.2%) he: 9.4s (18.0x, 0.8%) ca:11.6s (22.2x, -0.3%) dr:11.2s (21.5x, 1.0%) ma: 2.1s ( 4.0x, 0.0%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.5x, -----) me: 3.6s (16.5x, -----) ca: 5.5s (24.8x, -----) he: 2.7s (12.4x, -----) ca: 3.1s (14.2x, -----) dr: 2.5s (11.6x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.5x, 0.0%) me: 3.6s (16.3x, 0.8%) ca: 5.4s (24.6x, 0.7%) he: 2.7s (12.4x, 0.4%) ca: 3.1s (14.2x, 0.0%) dr: 2.5s (11.3x, 2.4%) ma: 1.1s ( 4.8x, 0.0%) -- ffbench -- ffbench valgrind-new:0.22s no: 0.9s ( 4.2x, -----) me: 2.7s (12.5x, -----) ca: 1.9s ( 8.5x, -----) he: 5.5s (25.2x, -----) ca: 4.2s (19.1x, -----) dr: 3.4s (15.4x, -----) ma: 0.9s ( 4.0x, -----) ffbench valgrind-old:0.22s no: 0.9s ( 4.2x, 1.1%) me: 2.7s (12.4x, 0.4%) ca: 1.8s ( 8.3x, 2.1%) he: 5.7s (25.9x, -2.7%) ca: 4.2s (19.1x, -0.2%) dr: 3.4s (15.3x, 0.6%) ma: 0.9s ( 4.0x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 7.6x, -----) me: 4.9s (61.6x, -----) ca: 6.3s (78.5x, -----) he: 6.6s (83.0x, -----) ca: 3.3s (41.0x, -----) dr: 4.3s (53.8x, -----) ma: 4.8s (59.4x, -----) heap valgrind-old:0.08s no: 0.6s ( 7.5x, 1.6%) me: 5.0s (62.7x, -1.8%) ca: 6.3s (78.8x, -0.3%) he: 6.8s (84.5x, -1.8%) ca: 3.2s (40.6x, 0.9%) dr: 4.1s (51.4x, 4.4%) ma: 4.7s (59.1x, 0.4%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 6.7x, -----) me: 8.5s (84.6x, -----) ca: 6.7s (67.2x, -----) he: 7.9s (79.2x, -----) ca: 3.7s (37.0x, -----) dr: 5.0s (49.8x, -----) ma: 5.0s (50.4x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 6.7x, 0.0%) me: 8.6s (86.2x, -1.9%) ca: 6.8s (68.1x, -1.3%) he: 8.0s (80.0x, -1.0%) ca: 3.6s (36.5x, 1.4%) dr: 4.9s (48.7x, 2.2%) ma: 5.0s (50.2x, 0.4%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.2s (25.0x, -----) me: 1.3s (127.0x, -----) ca: 1.0s (101.0x, -----) he: 1.1s (106.0x, -----) ca: 0.7s (67.0x, -----) dr: 0.9s (95.0x, -----) ma: 1.0s (98.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (24.0x, 4.0%) me: 1.2s (125.0x, 1.6%) ca: 1.0s (100.0x, 1.0%) he: 1.1s (106.0x, 0.0%) ca: 0.7s (68.0x, -1.5%) dr: 0.9s (93.0x, 2.1%) ma: 1.0s (97.0x, 1.0%) -- many-xpts -- many-xpts valgrind-new:0.04s no: 0.3s ( 7.5x, -----) me: 1.8s (44.0x, -----) ca: 2.7s (67.0x, -----) he: 2.1s (53.0x, -----) ca: 0.9s (23.8x, -----) dr: 1.3s (33.2x, -----) ma: 1.4s (34.5x, -----) many-xpts valgrind-old:0.04s no: 0.3s ( 7.5x, 0.0%) me: 1.7s (43.0x, 2.3%) ca: 2.6s (65.0x, 3.0%) he: 2.1s (52.0x, 1.9%) ca: 0.9s (23.5x, 1.1%) dr: 1.3s (33.5x, -0.8%) ma: 1.4s (35.5x, -2.9%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (13.0x, -----) me: 2.3s (116.5x, -----) ca: 1.7s (83.0x, -----) he: 6.4s (318.0x, -----) ca: 1.0s (49.5x, -----) dr: 0.8s (40.5x, -----) ma: 0.3s (14.0x, -----) sarp valgrind-old:0.02s no: 0.3s (13.0x, 0.0%) me: 2.3s (116.5x, 0.0%) ca: 1.7s (83.0x, 0.0%) he: 6.4s (320.0x, -0.6%) ca: 1.0s (49.0x, 1.0%) dr: 0.8s (41.0x, -1.2%) ma: 0.3s (14.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.15s no: 1.4s ( 9.1x, -----) me: 8.6s (57.2x, -----) ca:10.6s (70.3x, -----) he: 9.2s (61.6x, -----) ca: 7.9s (52.9x, -----) dr: 7.6s (50.5x, -----) ma: 2.4s (15.9x, -----) tinycc valgrind-old:0.15s no: 1.4s ( 9.1x, -0.7%) me: 8.5s (56.9x, 0.5%) ca:10.7s (71.2x, -1.2%) he: 9.2s (61.7x, -0.1%) ca: 8.0s (53.1x, -0.5%) dr: 7.6s (50.7x, -0.4%) ma: 2.4s (16.1x, -0.8%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 34m8.835s user 33m19.254s sys 0m21.223s |
|
From: Tom H. <to...@co...> - 2014-08-14 03:16:33
|
valgrind revision: 14273 VEX revision: 2920 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.50.20110722-16.fc16) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2014-08-14 03:01:43 BST Ended at 2014-08-14 04:16:18 BST 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 == 693 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.6s (15.0x, -----) me: 3.3s (29.8x, -----) ca:13.9s (126.5x, -----) he: 1.9s (17.7x, -----) ca: 3.9s (35.0x, -----) dr: 1.9s (17.1x, -----) ma: 1.9s (17.7x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (15.0x, 0.0%) me: 3.2s (28.8x, 3.4%) ca:13.9s (126.1x, 0.3%) he: 1.9s (17.5x, 1.0%) ca: 3.8s (34.8x, 0.5%) dr: 1.9s (17.2x, -0.5%) ma: 1.9s (17.7x, 0.0%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.0s (35.9x, -----) me: 9.0s (82.2x, -----) ca:26.9s (244.5x, -----) he: 5.0s (45.5x, -----) ca: 7.3s (66.4x, -----) dr: 4.5s (41.2x, -----) ma: 4.5s (41.3x, -----) bigcode2 valgrind-old:0.11s no: 3.9s (35.8x, 0.3%) me: 8.2s (74.3x, 9.6%) ca:26.3s (239.2x, 2.2%) he: 4.8s (43.7x, 3.8%) ca: 7.2s (65.3x, 1.6%) dr: 4.5s (41.3x, -0.2%) ma: 4.5s (41.3x, 0.0%) -- bz2 -- bz2 valgrind-new:0.52s no: 2.1s ( 4.1x, -----) me: 6.1s (11.8x, -----) ca:13.3s (25.6x, -----) he: 9.0s (17.3x, -----) ca:11.8s (22.8x, -----) dr:11.2s (21.5x, -----) ma: 2.1s ( 4.0x, -----) bz2 valgrind-old:0.52s no: 2.1s ( 4.1x, -1.4%) me: 6.2s (11.8x, -0.5%) ca:13.3s (25.6x, -0.1%) he: 8.9s (17.1x, 1.3%) ca:11.7s (22.4x, 1.4%) dr:11.1s (21.3x, 1.1%) ma: 2.1s ( 4.0x, 0.0%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.6s (16.4x, -----) ca: 5.4s (24.5x, -----) he: 2.7s (12.3x, -----) ca: 3.3s (15.2x, -----) dr: 2.5s (11.4x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, -1.0%) me: 3.6s (16.3x, 0.6%) ca: 5.4s (24.5x, -0.4%) he: 2.7s (12.2x, 0.7%) ca: 3.3s (15.0x, 1.5%) dr: 2.6s (11.7x, -2.8%) ma: 1.1s ( 4.8x, -1.0%) -- ffbench -- ffbench valgrind-new:0.22s no: 0.9s ( 4.3x, -----) me: 2.8s (12.6x, -----) ca: 1.9s ( 8.6x, -----) he: 6.7s (30.4x, -----) ca: 4.2s (19.3x, -----) dr: 3.3s (14.9x, -----) ma: 0.9s ( 4.0x, -----) ffbench valgrind-old:0.22s no: 0.9s ( 4.3x, 1.1%) me: 2.8s (12.6x, 0.4%) ca: 1.9s ( 8.5x, 1.1%) he: 5.8s (26.5x, 12.9%) ca: 4.2s (19.3x, 0.0%) dr: 3.3s (14.8x, 0.6%) ma: 0.9s ( 4.0x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.7s ( 8.1x, -----) me: 5.1s (64.1x, -----) ca: 6.5s (81.2x, -----) he: 7.0s (87.2x, -----) ca: 3.4s (42.4x, -----) dr: 4.4s (55.2x, -----) ma: 4.7s (58.8x, -----) heap valgrind-old:0.08s no: 0.6s ( 8.0x, 1.5%) me: 5.2s (64.5x, -0.6%) ca: 6.7s (83.5x, -2.8%) he: 7.0s (87.0x, 0.3%) ca: 3.4s (42.1x, 0.6%) dr: 4.3s (53.8x, 2.7%) ma: 4.8s (59.4x, -1.1%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.5x, -----) me: 8.5s (77.5x, -----) ca: 7.0s (63.5x, -----) he: 7.7s (69.8x, -----) ca: 3.7s (33.6x, -----) dr: 5.1s (46.3x, -----) ma: 4.9s (44.9x, -----) heap_pdb4 valgrind-old:0.11s no: 0.7s ( 6.4x, 1.4%) me: 8.7s (78.9x, -1.9%) ca: 7.0s (63.7x, -0.3%) he: 7.5s (68.6x, 1.7%) ca: 3.7s (33.8x, -0.5%) dr: 5.0s (45.1x, 2.6%) ma: 5.0s (45.5x, -1.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (26.0x, -----) me: 1.3s (128.0x, -----) ca: 1.1s (106.0x, -----) he: 1.1s (107.0x, -----) ca: 0.7s (68.0x, -----) dr: 1.0s (97.0x, -----) ma: 1.0s (98.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, 0.0%) me: 1.3s (128.0x, 0.0%) ca: 1.1s (106.0x, 0.0%) he: 1.1s (106.0x, 0.9%) ca: 0.7s (69.0x, -1.5%) dr: 1.0s (101.0x, -4.1%) ma: 1.0s (97.0x, 1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.3x, -----) me: 1.8s (59.3x, -----) ca: 2.8s (93.0x, -----) he: 2.1s (69.0x, -----) ca: 1.0s (32.7x, -----) dr: 1.3s (44.7x, -----) ma: 1.4s (48.3x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.3x, 0.0%) me: 1.8s (60.7x, -2.2%) ca: 2.8s (92.7x, 0.4%) he: 2.1s (69.0x, 0.0%) ca: 1.0s (32.7x, 0.0%) dr: 1.4s (45.7x, -2.2%) ma: 1.4s (48.3x, 0.0%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (13.5x, -----) me: 2.3s (117.0x, -----) ca: 1.7s (86.0x, -----) he: 6.3s (317.5x, -----) ca: 1.0s (48.5x, -----) dr: 0.8s (41.5x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (14.0x, -3.7%) me: 2.4s (117.5x, -0.4%) ca: 1.7s (85.0x, 1.2%) he: 6.3s (314.5x, 0.9%) ca: 0.9s (47.5x, 2.1%) dr: 0.8s (42.5x, -2.4%) ma: 0.3s (14.5x, 3.3%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.4s ( 8.8x, -----) me: 8.8s (55.0x, -----) ca:10.9s (67.9x, -----) he: 9.3s (58.2x, -----) ca: 8.1s (50.7x, -----) dr: 7.7s (48.2x, -----) ma: 2.4s (15.2x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.9x, -0.7%) me: 8.7s (54.6x, 0.7%) ca:10.8s (67.4x, 0.7%) he: 9.3s (58.4x, -0.4%) ca: 8.1s (50.8x, -0.2%) dr: 7.7s (48.2x, 0.0%) ma: 2.4s (15.2x, 0.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 34m46.107s user 33m50.408s sys 0m22.523s |
|
From: Tom H. <to...@co...> - 2014-08-14 03:06:55
|
valgrind revision: 14273 VEX revision: 2920 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-54.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2014-08-14 02:51:00 BST Ended at 2014-08-14 04:06:40 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 693 tests, 6 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 693 tests, 8 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) drd/tests/pth_spinlock (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-08-14 03:12:04.644197905 +0100 --- new.short 2014-08-14 03:31:32.579840755 +0100 *************** *** 8,10 **** ! == 693 tests, 8 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) --- 8,10 ---- ! == 693 tests, 6 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) *************** *** 14,18 **** memcheck/tests/vbit-test/vbit-test (stderr) - none/tests/fdleak_ipv4 (stdout) - none/tests/fdleak_ipv4 (stderr) - drd/tests/pth_spinlock (stderr) exp-sgcheck/tests/preen_invars (stdout) --- 14,15 ---- --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.6s (14.9x, -----) me: 3.2s (29.2x, -----) ca:14.9s (135.8x, -----) he: 2.0s (18.3x, -----) ca: 3.7s (33.8x, -----) dr: 1.9s (17.0x, -----) ma: 1.9s (17.6x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (15.0x, -0.6%) me: 3.5s (31.9x, -9.3%) ca:14.4s (130.5x, 3.9%) he: 1.9s (17.5x, 4.5%) ca: 3.7s (33.9x, -0.3%) dr: 1.9s (17.1x, -0.5%) ma: 2.0s (17.9x, -1.5%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.1s (37.4x, -----) me: 9.1s (82.9x, -----) ca:29.2s (265.9x, -----) he: 4.8s (44.1x, -----) ca: 7.0s (63.8x, -----) dr: 4.5s (41.2x, -----) ma: 4.5s (40.8x, -----) bigcode2 valgrind-old:0.11s no: 3.9s (35.3x, 5.6%) me: 8.4s (76.3x, 8.0%) ca:26.5s (240.9x, 9.4%) he: 4.8s (43.3x, 1.9%) ca: 7.0s (63.9x, -0.1%) dr: 4.5s (40.8x, 0.9%) ma: 4.5s (40.8x, 0.0%) -- bz2 -- bz2 valgrind-new:0.52s no: 2.2s ( 4.2x, -----) me: 6.4s (12.3x, -----) ca:12.8s (24.6x, -----) he: 8.8s (16.9x, -----) ca:10.8s (20.7x, -----) dr:11.5s (22.2x, -----) ma: 2.1s ( 4.1x, -----) bz2 valgrind-old:0.52s no: 2.1s ( 4.1x, 4.5%) me: 6.3s (12.1x, 1.6%) ca:12.8s (24.5x, 0.4%) he: 9.0s (17.3x, -2.4%) ca:10.8s (20.8x, -0.6%) dr:11.5s (22.1x, 0.3%) ma: 2.1s ( 4.1x, 0.0%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.7x, -----) me: 3.4s (15.5x, -----) ca: 5.5s (25.1x, -----) he: 2.5s (11.5x, -----) ca: 2.9s (13.3x, -----) dr: 2.4s (10.9x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, 0.0%) me: 3.4s (15.5x, 0.0%) ca: 5.5s (24.9x, 0.9%) he: 2.5s (11.6x, -0.8%) ca: 3.0s (13.4x, -0.7%) dr: 2.4s (10.9x, 0.0%) ma: 1.1s ( 4.9x, -1.9%) -- ffbench -- ffbench valgrind-new:0.22s no: 0.9s ( 4.3x, -----) me: 2.8s (12.8x, -----) ca: 1.9s ( 8.5x, -----) he: 7.8s (35.5x, -----) ca: 4.1s (18.6x, -----) dr: 3.2s (14.6x, -----) ma: 0.9s ( 4.0x, -----) ffbench valgrind-old:0.22s no: 0.9s ( 4.3x, 0.0%) me: 2.8s (12.8x, -0.4%) ca: 1.8s ( 8.4x, 1.1%) he: 6.7s (30.6x, 13.6%) ca: 4.0s (18.3x, 1.7%) dr: 3.3s (14.8x, -1.2%) ma: 0.9s ( 4.0x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 8.0x, -----) me: 5.2s (65.6x, -----) ca: 6.2s (78.0x, -----) he: 6.7s (84.2x, -----) ca: 3.1s (38.9x, -----) dr: 4.5s (56.1x, -----) ma: 5.0s (62.5x, -----) heap valgrind-old:0.08s no: 0.6s ( 8.0x, 0.0%) me: 5.1s (63.6x, 3.0%) ca: 6.2s (77.6x, 0.5%) he: 7.1s (88.2x, -4.7%) ca: 3.2s (39.5x, -1.6%) dr: 4.3s (53.9x, 4.0%) ma: 4.9s (61.5x, 1.6%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 7.3x, -----) me: 9.1s (91.4x, -----) ca: 6.7s (67.4x, -----) he: 7.9s (78.9x, -----) ca: 3.5s (35.1x, -----) dr: 4.9s (49.1x, -----) ma: 5.2s (52.2x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 7.0x, 4.1%) me: 9.2s (91.6x, -0.2%) ca: 6.8s (67.5x, -0.1%) he: 7.9s (79.4x, -0.6%) ca: 3.6s (35.7x, -1.7%) dr: 5.0s (50.3x, -2.4%) ma: 5.2s (51.8x, 0.8%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.2s (25.0x, -----) me: 1.3s (130.0x, -----) ca: 1.0s (101.0x, -----) he: 1.1s (112.0x, -----) ca: 0.6s (64.0x, -----) dr: 1.0s (98.0x, -----) ma: 1.1s (106.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, -4.0%) me: 1.3s (132.0x, -1.5%) ca: 1.0s (101.0x, 0.0%) he: 1.1s (112.0x, 0.0%) ca: 0.6s (64.0x, 0.0%) dr: 1.0s (99.0x, -1.0%) ma: 1.1s (106.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.7x, -----) me: 1.8s (58.7x, -----) ca: 2.6s (87.0x, -----) he: 2.2s (73.7x, -----) ca: 0.9s (29.7x, -----) dr: 1.4s (48.3x, -----) ma: 1.6s (52.7x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.3x, 3.1%) me: 1.7s (57.7x, 1.7%) ca: 2.6s (86.3x, 0.8%) he: 2.2s (74.3x, -0.9%) ca: 0.9s (30.0x, -1.1%) dr: 1.4s (48.0x, 0.7%) ma: 1.7s (56.0x, -6.3%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.0x, -----) me: 2.3s (116.5x, -----) ca: 1.7s (84.5x, -----) he: 7.1s (356.5x, -----) ca: 0.9s (43.0x, -----) dr: 0.9s (44.0x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (13.5x, 3.6%) me: 2.3s (113.5x, 2.6%) ca: 1.7s (85.0x, -0.6%) he: 7.0s (351.0x, 1.5%) ca: 0.9s (43.0x, 0.0%) dr: 0.9s (45.0x, -2.3%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.4s ( 8.5x, -----) me: 8.4s (52.2x, -----) ca:10.6s (66.1x, -----) he: 9.8s (61.1x, -----) ca: 7.5s (46.8x, -----) dr: 7.6s (47.6x, -----) ma: 2.5s (15.3x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.6x, -0.7%) me: 8.3s (51.9x, 0.6%) ca:10.6s (66.0x, 0.1%) he: 9.8s (61.3x, -0.4%) ca: 7.5s (47.2x, -0.9%) dr: 7.6s (47.4x, 0.3%) ma: 2.5s (15.4x, -0.4%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 35m7.861s user 33m56.921s sys 0m22.809s |
|
From: Tom H. <to...@co...> - 2014-08-14 02:58:18
|
valgrind revision: 14273 VEX revision: 2920 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora 7.5.1-42.fc18 Assembler: GNU assembler version 2.23.51.0.1-10.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2014-08-14 02:41:10 BST Ended at 2014-08-14 03:58:01 BST 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 == 693 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.10s no: 1.7s (16.8x, -----) me: 3.4s (33.8x, -----) ca:14.5s (144.9x, -----) he: 2.2s (21.8x, -----) ca: 4.0s (40.3x, -----) dr: 1.9s (19.0x, -----) ma: 2.0s (19.6x, -----) bigcode1 valgrind-old:0.10s no: 1.7s (16.7x, 0.6%) me: 3.2s (32.2x, 4.7%) ca:13.8s (138.3x, 4.6%) he: 2.1s (21.3x, 2.3%) ca: 4.0s (40.1x, 0.5%) dr: 1.9s (18.7x, 1.6%) ma: 2.0s (20.5x, -4.6%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.0s (36.6x, -----) me: 8.7s (79.3x, -----) ca:28.9s (262.9x, -----) he: 4.7s (43.0x, -----) ca: 7.0s (63.4x, -----) dr: 4.5s (40.9x, -----) ma: 4.5s (41.0x, -----) bigcode2 valgrind-old:0.11s no: 4.2s (38.4x, -4.7%) me: 9.2s (83.8x, -5.7%) ca:26.3s (239.1x, 9.1%) he: 4.9s (44.2x, -2.7%) ca: 7.4s (67.0x, -5.7%) dr: 4.5s (40.7x, 0.4%) ma: 4.6s (42.1x, -2.7%) -- bz2 -- bz2 valgrind-new:0.53s no: 2.1s ( 3.9x, -----) me: 7.0s (13.2x, -----) ca:14.1s (26.5x, -----) he: 9.2s (17.3x, -----) ca:11.6s (21.8x, -----) dr:12.5s (23.5x, -----) ma: 2.1s ( 4.0x, -----) bz2 valgrind-old:0.53s no: 2.3s ( 4.4x,-11.6%) me: 7.0s (13.2x, -0.3%) ca:12.9s (24.3x, 8.5%) he: 9.1s (17.2x, 0.4%) ca:11.5s (21.7x, 0.5%) dr:11.6s (21.9x, 6.8%) ma: 2.1s ( 4.0x, 1.4%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.5s (15.7x, -----) ca: 5.5s (24.9x, -----) he: 2.5s (11.6x, -----) ca: 3.0s (13.9x, -----) dr: 2.4s (11.0x, -----) ma: 1.1s ( 4.9x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, -1.0%) me: 3.5s (15.7x, 0.0%) ca: 5.5s (25.0x, -0.4%) he: 2.6s (11.8x, -1.6%) ca: 3.0s (13.7x, 1.0%) dr: 2.4s (10.9x, 1.6%) ma: 1.1s ( 4.9x, 0.0%) -- ffbench -- ffbench valgrind-new:0.24s no: 1.0s ( 4.0x, -----) me: 3.0s (12.3x, -----) ca: 1.9s ( 7.8x, -----) he: 7.6s (31.8x, -----) ca: 4.1s (17.2x, -----) dr: 3.5s (14.4x, -----) ma: 0.9s ( 3.8x, -----) ffbench valgrind-old:0.24s no: 1.0s ( 4.0x, 1.0%) me: 2.9s (11.9x, 3.1%) ca: 1.8s ( 7.6x, 1.6%) he: 7.2s (30.0x, 5.4%) ca: 4.1s (16.9x, 1.9%) dr: 3.4s (14.2x, 1.7%) ma: 0.9s ( 3.7x, 1.1%) -- heap -- heap valgrind-new:0.08s no: 0.7s ( 8.1x, -----) me: 5.3s (65.9x, -----) ca: 6.3s (79.0x, -----) he: 6.8s (84.8x, -----) ca: 3.2s (39.9x, -----) dr: 4.5s (56.9x, -----) ma: 4.9s (61.7x, -----) heap valgrind-old:0.08s no: 0.6s ( 8.0x, 1.5%) me: 5.2s (65.2x, 0.9%) ca: 6.3s (78.2x, 0.9%) he: 6.9s (86.7x, -2.4%) ca: 3.2s (40.0x, -0.3%) dr: 4.5s (55.6x, 2.2%) ma: 5.0s (63.0x, -2.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 6.9x, -----) me: 9.0s (90.0x, -----) ca: 6.8s (67.8x, -----) he: 7.9s (79.1x, -----) ca: 3.5s (35.1x, -----) dr: 5.0s (49.8x, -----) ma: 5.1s (51.3x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 6.9x, -0.0%) me: 8.8s (88.4x, 1.8%) ca: 6.7s (66.7x, 1.6%) he: 8.0s (79.6x, -0.6%) ca: 3.5s (34.9x, 0.6%) dr: 5.3s (52.6x, -5.6%) ma: 5.1s (51.3x, 0.0%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (26.0x, -----) me: 1.3s (130.0x, -----) ca: 1.0s (100.0x, -----) he: 1.1s (112.0x, -----) ca: 0.7s (65.0x, -----) dr: 1.0s (97.0x, -----) ma: 1.1s (105.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (25.0x, 3.8%) me: 1.3s (133.0x, -2.3%) ca: 1.0s (101.0x, -1.0%) he: 1.1s (111.0x, 0.9%) ca: 0.7s (65.0x, 0.0%) dr: 1.0s (99.0x, -2.1%) ma: 1.0s (104.0x, 1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.3x, -----) me: 1.8s (59.7x, -----) ca: 2.6s (87.7x, -----) he: 2.2s (73.3x, -----) ca: 0.9s (30.0x, -----) dr: 1.4s (47.7x, -----) ma: 1.6s (52.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.3x, 0.0%) me: 1.8s (58.7x, 1.7%) ca: 2.6s (87.7x, 0.0%) he: 2.2s (72.7x, 0.9%) ca: 0.9s (30.3x, -1.1%) dr: 1.4s (47.7x, 0.0%) ma: 1.6s (52.0x, 0.0%) -- sarp -- sarp valgrind-new:0.01s no: 0.3s (27.0x, -----) me: 2.4s (240.0x, -----) ca: 1.7s (170.0x, -----) he: 7.3s (732.0x, -----) ca: 0.9s (90.0x, -----) dr: 0.9s (89.0x, -----) ma: 0.3s (30.0x, -----) sarp valgrind-old:0.01s no: 0.3s (28.0x, -3.7%) me: 2.0s (205.0x, 14.6%) ca: 1.7s (170.0x, 0.0%) he: 7.3s (732.0x, 0.0%) ca: 0.9s (89.0x, 1.1%) dr: 0.9s (89.0x, 0.0%) ma: 0.3s (30.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.3s ( 8.4x, -----) me: 8.5s (53.1x, -----) ca:10.7s (66.8x, -----) he: 9.6s (59.9x, -----) ca: 7.6s (47.2x, -----) dr: 7.7s (48.1x, -----) ma: 2.5s (15.6x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.6x, -3.0%) me: 8.5s (53.1x, 0.0%) ca:10.8s (67.5x, -1.0%) he: 9.5s (59.6x, 0.4%) ca: 7.6s (47.4x, -0.4%) dr: 7.8s (48.4x, -0.8%) ma: 2.4s (15.2x, 2.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 36m22.181s user 35m2.238s sys 0m24.292s |
|
From: Tom H. <to...@co...> - 2014-08-14 02:48:46
|
valgrind revision: 14273 VEX revision: 2920 C compiler: gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1) GDB: GNU gdb (GDB) Fedora 7.6.1-46.fc19 Assembler: GNU assembler version 2.23.52.0.1-9.fc19 20130226 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 19 (Schrödingerâs Cat) Nightly build on bristol ( x86_64, Fedora 19 (Schrödingerâs Cat) ) Started at 2014-08-14 02:31:33 BST Ended at 2014-08-14 03:48:28 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 693 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/hackedbz2 (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 693 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/hackedbz2 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-08-14 02:49:57.774597439 +0100 --- new.short 2014-08-14 03:12:03.670216549 +0100 *************** *** 8,12 **** ! == 693 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/hackedbz2 (stderr) --- 8,13 ---- ! == 693 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) + none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/hackedbz2 (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.6s (14.5x, -----) me: 3.1s (28.5x, -----) ca:13.3s (121.3x, -----) he: 1.9s (17.2x, -----) ca: 3.8s (34.5x, -----) dr: 1.9s (16.8x, -----) ma: 1.9s (17.5x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (14.8x, -1.9%) me: 3.2s (29.4x, -2.9%) ca:13.4s (121.6x, -0.3%) he: 1.9s (17.3x, -0.5%) ca: 3.8s (34.3x, 0.5%) dr: 1.9s (16.9x, -0.5%) ma: 1.9s (17.6x, -1.0%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.0s (36.5x, -----) me: 8.2s (74.4x, -----) ca:26.4s (240.5x, -----) he: 4.7s (42.5x, -----) ca: 7.0s (63.4x, -----) dr: 4.4s (40.0x, -----) ma: 4.4s (40.0x, -----) bigcode2 valgrind-old:0.11s no: 3.8s (34.8x, 4.5%) me: 8.1s (73.7x, 0.9%) ca:26.0s (236.5x, 1.6%) he: 4.8s (43.9x, -3.2%) ca: 7.0s (63.9x, -0.9%) dr: 4.5s (40.6x, -1.6%) ma: 4.5s (40.5x, -1.4%) -- bz2 -- bz2 valgrind-new:0.49s no: 2.0s ( 4.2x, -----) me: 6.2s (12.7x, -----) ca:14.5s (29.6x, -----) he:10.5s (21.5x, -----) ca:11.9s (24.3x, -----) dr:12.6s (25.8x, -----) ma: 2.1s ( 4.3x, -----) bz2 valgrind-old:0.49s no: 2.1s ( 4.2x, -0.5%) me: 6.5s (13.2x, -4.5%) ca:13.8s (28.1x, 5.0%) he:11.2s (23.0x, -6.7%) ca:13.4s (27.3x,-12.4%) dr:12.1s (24.8x, 3.9%) ma: 2.1s ( 4.2x, 1.4%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.3s (15.0x, -----) ca: 5.5s (25.0x, -----) he: 2.5s (11.5x, -----) ca: 3.1s (14.2x, -----) dr: 2.8s (12.9x, -----) ma: 1.1s ( 5.0x, -----) fbench valgrind-old:0.22s no: 1.2s ( 5.3x,-14.7%) me: 3.5s (15.9x, -6.1%) ca: 6.3s (28.8x,-15.1%) he: 2.7s (12.2x, -6.3%) ca: 3.1s (14.0x, 1.9%) dr: 2.4s (11.0x, 15.1%) ma: 1.1s ( 4.8x, 3.6%) -- ffbench -- ffbench valgrind-new:0.25s no: 0.9s ( 3.8x, -----) me: 2.8s (11.4x, -----) ca: 1.9s ( 7.6x, -----) he: 6.5s (26.2x, -----) ca: 4.5s (18.1x, -----) dr: 3.8s (15.3x, -----) ma: 0.9s ( 3.7x, -----) ffbench valgrind-old:0.25s no: 1.0s ( 3.9x, -3.2%) me: 3.0s (11.8x, -4.2%) ca: 1.9s ( 7.6x, 0.5%) he: 6.3s (25.2x, 3.8%) ca: 4.4s (17.4x, 3.5%) dr: 3.5s (14.0x, 8.6%) ma: 0.9s ( 3.7x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 8.0x, -----) me: 5.0s (63.0x, -----) ca: 6.4s (79.5x, -----) he: 6.9s (86.6x, -----) ca: 3.4s (42.1x, -----) dr: 4.6s (57.5x, -----) ma: 5.1s (63.2x, -----) heap valgrind-old:0.08s no: 0.7s ( 9.1x,-14.1%) me: 5.3s (66.1x, -5.0%) ca: 6.4s (80.2x, -0.9%) he: 6.9s (86.5x, 0.1%) ca: 3.6s (45.0x, -6.8%) dr: 4.7s (58.4x, -1.5%) ma: 4.9s (61.5x, 2.8%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 7.1x, -----) me: 8.9s (89.2x, -----) ca: 7.0s (69.9x, -----) he: 7.6s (76.4x, -----) ca: 3.6s (35.6x, -----) dr: 4.7s (46.8x, -----) ma: 5.0s (49.9x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 7.0x, 1.4%) me: 8.8s (88.5x, 0.8%) ca: 6.7s (66.6x, 4.7%) he: 7.7s (77.1x, -0.9%) ca: 3.5s (35.5x, 0.3%) dr: 4.8s (48.2x, -3.0%) ma: 5.0s (50.3x, -0.8%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (27.0x, -----) me: 1.3s (132.0x, -----) ca: 1.0s (101.0x, -----) he: 1.1s (112.0x, -----) ca: 0.7s (68.0x, -----) dr: 1.0s (98.0x, -----) ma: 1.1s (105.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, 3.7%) me: 1.3s (131.0x, 0.8%) ca: 1.0s (102.0x, -1.0%) he: 1.1s (112.0x, 0.0%) ca: 0.7s (67.0x, 1.5%) dr: 1.0s (99.0x, -1.0%) ma: 1.1s (106.0x, -1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.3x, -----) me: 1.4s (48.0x, -----) ca: 2.6s (85.7x, -----) he: 2.1s (69.0x, -----) ca: 0.9s (31.0x, -----) dr: 1.4s (46.7x, -----) ma: 1.6s (52.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.7x, -3.2%) me: 1.5s (49.3x, -2.8%) ca: 2.6s (85.7x, 0.0%) he: 2.0s (68.0x, 1.4%) ca: 0.9s (31.3x, -1.1%) dr: 1.4s (47.7x, -2.1%) ma: 1.6s (54.3x, -4.5%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.5x, -----) me: 2.2s (110.0x, -----) ca: 1.7s (84.5x, -----) he: 6.0s (301.5x, -----) ca: 0.9s (46.5x, -----) dr: 0.9s (47.0x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (14.5x, 0.0%) me: 2.2s (109.0x, 0.9%) ca: 1.7s (86.0x, -1.8%) he: 6.0s (300.5x, 0.3%) ca: 0.9s (46.0x, 1.1%) dr: 0.9s (47.0x, 0.0%) ma: 0.3s (15.5x, -3.3%) -- tinycc -- tinycc valgrind-new:0.17s no: 1.4s ( 8.2x, -----) me: 7.8s (45.8x, -----) ca:10.8s (63.3x, -----) he:10.2s (59.7x, -----) ca: 8.2s (48.1x, -----) dr: 8.0s (47.1x, -----) ma: 2.4s (14.2x, -----) tinycc valgrind-old:0.17s no: 1.4s ( 8.5x, -3.6%) me: 7.7s (45.4x, 1.0%) ca:10.8s (63.8x, -0.7%) he:10.0s (58.8x, 1.5%) ca: 8.0s (47.1x, 2.1%) dr: 7.9s (46.6x, 1.1%) ma: 2.4s (13.9x, 1.7%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 36m25.236s user 34m58.405s sys 0m25.041s |
|
From: Tom H. <to...@co...> - 2014-08-14 02:37:32
|
valgrind revision: 14273 VEX revision: 2920 C compiler: gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1) GDB: GNU gdb (GDB) Fedora 7.7.1-17.fc20 Assembler: GNU assembler version 2.23.2 C library: GNU C Library (GNU libc) stable release version 2.18 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 20 (Heisenbug) Nightly build on bristol ( x86_64, Fedora 20 ) Started at 2014-08-14 02:21:37 BST Ended at 2014-08-14 03:37:08 BST 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 == 693 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/hackedbz2 (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.6s (14.6x, -----) me: 3.1s (28.1x, -----) ca:13.1s (119.2x, -----) he: 1.9s (16.8x, -----) ca: 3.7s (33.9x, -----) dr: 1.8s (16.5x, -----) ma: 1.9s (17.3x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (14.8x, -1.2%) me: 3.1s (28.4x, -1.0%) ca:13.2s (119.5x, -0.3%) he: 1.9s (17.0x, -1.1%) ca: 3.8s (34.1x, -0.5%) dr: 1.8s (16.7x, -1.7%) ma: 1.9s (17.5x, -1.1%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 3.8s (34.6x, -----) me: 8.1s (74.0x, -----) ca:26.3s (238.9x, -----) he: 4.6s (42.2x, -----) ca: 7.0s (63.3x, -----) dr: 4.4s (39.9x, -----) ma: 4.4s (40.1x, -----) bigcode2 valgrind-old:0.11s no: 3.8s (34.5x, 0.3%) me: 8.2s (74.2x, -0.2%) ca:25.4s (231.4x, 3.2%) he: 4.6s (41.6x, 1.3%) ca: 7.0s (63.5x, -0.3%) dr: 4.4s (40.3x, -0.9%) ma: 4.4s (40.4x, -0.7%) -- bz2 -- bz2 valgrind-new:0.49s no: 2.0s ( 4.2x, -----) me: 6.1s (12.5x, -----) ca:12.9s (26.4x, -----) he: 9.1s (18.5x, -----) ca:11.0s (22.4x, -----) dr:11.7s (23.8x, -----) ma: 2.1s ( 4.2x, -----) bz2 valgrind-old:0.49s no: 2.1s ( 4.2x, -1.0%) me: 6.2s (12.6x, -1.0%) ca:13.0s (26.6x, -0.7%) he: 9.1s (18.5x, 0.1%) ca:10.9s (22.3x, 0.5%) dr:11.9s (24.2x, -1.6%) ma: 2.1s ( 4.3x, -0.5%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.4s (15.4x, -----) ca: 5.5s (24.9x, -----) he: 2.5s (11.5x, -----) ca: 3.1s (14.1x, -----) dr: 2.4s (10.9x, -----) ma: 1.1s ( 4.9x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, -1.0%) me: 3.3s (15.1x, 1.8%) ca: 5.5s (25.0x, -0.4%) he: 2.5s (11.3x, 2.0%) ca: 3.2s (14.5x, -2.6%) dr: 2.4s (10.8x, 0.4%) ma: 1.1s ( 4.8x, 1.9%) -- ffbench -- ffbench valgrind-new:0.21s no: 0.9s ( 4.5x, -----) me: 2.8s (13.5x, -----) ca: 1.8s ( 8.8x, -----) he: 5.7s (27.3x, -----) ca: 4.4s (21.0x, -----) dr: 3.2s (15.1x, -----) ma: 0.9s ( 4.3x, -----) ffbench valgrind-old:0.21s no: 1.0s ( 4.6x, -2.1%) me: 2.9s (13.6x, -1.1%) ca: 1.9s ( 9.0x, -3.3%) he: 6.8s (32.5x,-18.8%) ca: 4.7s (22.4x, -6.8%) dr: 3.2s (15.4x, -1.9%) ma: 0.9s ( 4.2x, 1.1%) -- heap -- heap valgrind-new:0.07s no: 0.7s ( 9.3x, -----) me: 4.9s (69.9x, -----) ca: 6.2s (88.6x, -----) he: 6.5s (93.6x, -----) ca: 3.2s (46.0x, -----) dr: 4.4s (63.0x, -----) ma: 4.8s (69.3x, -----) heap valgrind-old:0.07s no: 0.7s ( 9.3x, 0.0%) me: 5.0s (72.0x, -3.1%) ca: 6.2s (88.9x, -0.3%) he: 7.0s (100.4x, -7.3%) ca: 3.3s (47.3x, -2.8%) dr: 4.3s (61.3x, 2.7%) ma: 5.0s (71.1x, -2.7%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.8s ( 7.5x, -----) me: 8.7s (86.9x, -----) ca: 6.8s (68.0x, -----) he: 7.9s (78.8x, -----) ca: 3.6s (35.9x, -----) dr: 4.9s (48.9x, -----) ma: 5.3s (52.7x, -----) heap_pdb4 valgrind-old:0.10s no: 0.8s ( 7.8x, -4.0%) me: 9.4s (94.2x, -8.4%) ca: 7.0s (70.0x, -2.9%) he: 8.9s (89.3x,-13.3%) ca: 3.6s (36.3x, -1.1%) dr: 5.2s (51.5x, -5.3%) ma: 5.0s (50.5x, 4.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.2s (25.0x, -----) me: 1.2s (123.0x, -----) ca: 1.0s (100.0x, -----) he: 1.1s (110.0x, -----) ca: 0.7s (66.0x, -----) dr: 1.0s (98.0x, -----) ma: 1.0s (103.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, -4.0%) me: 1.2s (125.0x, -1.6%) ca: 1.0s (103.0x, -3.0%) he: 1.1s (109.0x, 0.9%) ca: 0.7s (67.0x, -1.5%) dr: 1.0s (99.0x, -1.0%) ma: 1.0s (104.0x, -1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.7x, -----) me: 1.5s (48.7x, -----) ca: 2.6s (87.3x, -----) he: 2.2s (72.0x, -----) ca: 1.0s (33.7x, -----) dr: 1.6s (52.7x, -----) ma: 1.6s (53.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (11.3x, -6.2%) me: 1.5s (50.3x, -3.4%) ca: 2.6s (87.7x, -0.4%) he: 2.1s (69.7x, 3.2%) ca: 0.9s (31.3x, 6.9%) dr: 1.4s (46.7x, 11.4%) ma: 1.6s (53.3x, -0.6%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (13.5x, -----) me: 2.2s (109.0x, -----) ca: 1.7s (85.0x, -----) he: 6.0s (299.0x, -----) ca: 0.9s (46.5x, -----) dr: 0.9s (47.0x, -----) ma: 0.3s (16.5x, -----) sarp valgrind-old:0.02s no: 0.3s (14.5x, -7.4%) me: 2.2s (111.5x, -2.3%) ca: 1.7s (86.5x, -1.8%) he: 6.1s (305.0x, -2.0%) ca: 0.9s (47.5x, -2.2%) dr: 0.9s (47.0x, 0.0%) ma: 0.3s (15.0x, 9.1%) -- tinycc -- tinycc valgrind-new:0.17s no: 1.4s ( 8.5x, -----) me: 8.8s (52.1x, -----) ca:11.5s (67.9x, -----) he:10.1s (59.5x, -----) ca: 8.6s (50.6x, -----) dr: 8.9s (52.3x, -----) ma: 2.7s (15.9x, -----) tinycc valgrind-old:0.17s no: 1.4s ( 8.1x, 4.2%) me: 8.1s (47.7x, 8.4%) ca:12.8s (75.6x,-11.4%) he:10.1s (59.5x, 0.0%) ca: 8.0s (47.3x, 6.6%) dr: 9.0s (53.1x, -1.6%) ma: 2.6s (15.1x, 5.2%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 36m17.176s user 34m24.125s sys 0m25.532s |