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
(32) |
Oct
|
Nov
|
Dec
|
|
From: Andreas A. <ar...@so...> - 2023-09-07 15:38:37
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=df79a32e9aa3a632678a863611273e563f990226 commit df79a32e9aa3a632678a863611273e563f990226 Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:25 2023 +0200 s390x regtest: Rework dfpext The dfpext test case uses `_Decimal*' types and thus cannot be compiled with Clang. Avoid this. Also, remove a duplicate in the set of tested values and adjust the output file accordingly. Diff: --- none/tests/s390x/dfpext.c | 389 ++++++++++++++++--------------------- none/tests/s390x/dfpext.stdout.exp | 84 -------- 2 files changed, 165 insertions(+), 308 deletions(-) diff --git a/none/tests/s390x/dfpext.c b/none/tests/s390x/dfpext.c index d9a62d22f5..1f05e16caa 100644 --- a/none/tests/s390x/dfpext.c +++ b/none/tests/s390x/dfpext.c @@ -1,247 +1,188 @@ -#include <stdio.h> -#include "opcodes.h" #include "dfp_utils.h" -#define __STDC_WANT_DEC_FP__ 1 -#include <float.h> - -#define L2D(insn, initial, target,round) \ - ({ \ - register unsigned long source asm("2") = initial; \ - register typeof(target) _t asm("f0"); \ - asm volatile(insn(round,0,0,2) :"=f" (_t):"d"(source)); \ - _t; \ - }) - -#define I2D(insn, initial, target,round) \ - ({ \ - register int source asm("2") = initial; \ - register typeof(target) _t asm("f0"); \ - asm volatile(insn(round,0,0,2) :"=f" (_t):"d"(source)); \ - _t; \ -}) - -#define D2L(insn, initial, type, round, cc) \ - ({ \ - register type source asm("f0") = initial; \ - register unsigned long target asm ("2") = 0; \ - asm volatile(insn(round,0,2,0) \ - "ipm %1\n\t" \ - "srl %1,28\n\t" \ - :"=d" (target), "=d" (cc) :"f"(source):"cc"); \ - target; \ - }) - -#define D2I(insn, initial, type, round, cc) \ - ({ \ - register type source asm("f0") = initial; \ - register int target asm ("2") = 0; \ - asm volatile(insn(round,0,2,0) \ - "ipm %1\n\t" \ - "srl %1,28\n\t" \ - :"=d" (target), "=d" (cc) :"f"(source):"cc"); \ - target; \ -}) - - -#define DO_PRINT_L2D(insn, l, d, round) \ - ({ \ - printf(#insn " round=%d %lu -> ", 0x##round, l); \ - d = L2D(insn, l, d, round); \ - DFP_VAL_PRINT(d, typeof(d)); \ - printf("\n"); \ - }) - -#define DO_INSN_L2D(insn, round, type) \ - ({ \ - type d; \ - DO_PRINT_L2D(insn, 0UL, d, round); \ - DO_PRINT_L2D(insn, 1UL, d, round); \ - DO_PRINT_L2D(insn, 0xffffffffUL, d, round); \ - DO_PRINT_L2D(insn, 0x80000000UL, d, round); \ - DO_PRINT_L2D(insn, 0x7fffffffUL, d, round); \ - DO_PRINT_L2D(insn, 0x100000000UL, d, round); \ - DO_PRINT_L2D(insn, 0xffffffffffffffffUL, d, round); \ - DO_PRINT_L2D(insn, 0x8000000000000000UL, d, round); \ - DO_PRINT_L2D(insn, 0x7fffffffffffffffUL, d, round); \ - }) - -#define DO_PRINT_I2D(insn, l, d, round) \ - ({ \ - printf(#insn " round=%d %d -> ", 0x##round, l); \ - d = I2D(insn, l, d, round); \ - DFP_VAL_PRINT(d, typeof(d)); \ - printf("\n"); \ - }) - -#define DO_INSN_I2D(insn, round, type) \ - ({ \ - type d; \ - DO_PRINT_I2D(insn, 0, d, round); \ - DO_PRINT_I2D(insn, 1, d, round); \ - DO_PRINT_I2D(insn, 0xffffffff, d, round); \ - DO_PRINT_I2D(insn, 0x80000000, d, round); \ - DO_PRINT_I2D(insn, 0x7fffffff, d, round); \ +#include <stdio.h> + +#define DO_PRINT_I2D(insn, l, type, round) \ + ({ \ + int source = l; \ + type d; \ + printf(#insn " round=%d %d -> ", round, source); \ + asm(".insn rrf," insn() "0000,%[r1],%[r2],%[m],0" \ + : [r1] "=f"(d.f) \ + : [r2] "d"(source), [m] "i"(round)); \ + DFP_VAL_PRINT(d, type); \ + printf("\n"); \ }) -#define DO_PRINT_D2L(insn, d, type, round, cc) \ - ({ \ - printf(#insn " round=%d ", 0x##round); \ - DFP_VAL_PRINT(d, type); \ - printf(" -> %lu ", D2L(insn, d, type, round, cc)); \ - printf("cc=%d\n", cc); \ - }) - -#define DO_INSN_D2L(insn, round, type) \ - ({ \ - int cc; \ - type d; \ - d = -1.1DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 0.DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.4DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.5DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.6DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.6E+4DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.6E+8DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.6E+4DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.6E+12DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.6E+20DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.6E+200DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = 1.6E-4DD; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = DEC32_MIN; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = DEC32_MAX; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = DEC64_MIN; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - d = DEC64_MAX; \ - DO_PRINT_D2L(insn, d, type, round, cc); \ - }) - -#define DO_PRINT_D2I(insn, d, type, round, cc) \ - ({ \ - printf(#insn " round=%d ", 0x##round); \ - DFP_VAL_PRINT(d, type); \ - printf(" -> %d ", D2I(insn, d, type, round, cc)); \ - printf("cc=%d\n", cc); \ - }) - -#define DO_INSN_D2I(insn, round, type) \ - ({ \ - int cc; \ - type d; \ - d = -1.1DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 0.DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.4DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.5DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+4DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+8DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+4DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+12DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+20DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+200DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E-4DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = DEC32_MIN; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = DEC32_MAX; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = DEC64_MIN; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = DEC64_MAX; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - }) - -#define DO_D2L(round) \ - ({ \ - DO_INSN_D2L(CLFDTR, round, _Decimal64); \ - DO_INSN_D2L(CLGDTR, round, _Decimal64); \ - DO_INSN_D2I(CFDTR, round, _Decimal64); \ - DO_INSN_D2L(CLFXTR, round, _Decimal128); \ - DO_INSN_D2L(CLGXTR, round, _Decimal128); \ - DO_INSN_D2I(CFXTR, round, _Decimal128); \ - }) +#define DO_INSN_I2D(insn, round, type) \ + ({ \ + DO_PRINT_I2D(insn, 0, type, round); \ + DO_PRINT_I2D(insn, 1, type, round); \ + DO_PRINT_I2D(insn, -1, type, round); \ + DO_PRINT_I2D(insn, -2147483648, type, round); \ + DO_PRINT_I2D(insn, 0x7fffffff, type, round); \ + }) +#define DO_PRINT_L2D(insn, l, type, round) \ + ({ \ + unsigned long source = l; \ + type d; \ + printf(#insn " round=%d %lu -> ", round, source); \ + asm(".insn rrf," insn() "0000,%[r1],%[r2],%[m],0" \ + : [r1] "=f"(d.f) \ + : [r2] "d"(source), [m] "i"(round)); \ + DFP_VAL_PRINT(d, type); \ + printf("\n"); \ + }) + +#define DO_INSN_L2D(insn, round, type) \ + ({ \ + DO_PRINT_L2D(insn, 0UL, type, round); \ + DO_PRINT_L2D(insn, 1UL, type, round); \ + DO_PRINT_L2D(insn, 0xffffffffUL, type, round); \ + DO_PRINT_L2D(insn, 0x80000000UL, type, round); \ + DO_PRINT_L2D(insn, 0x7fffffffUL, type, round); \ + DO_PRINT_L2D(insn, 0x100000000UL, type, round); \ + DO_PRINT_L2D(insn, 0xffffffffffffffffUL, type, round); \ + DO_PRINT_L2D(insn, 0x8000000000000000UL, type, round); \ + DO_PRINT_L2D(insn, 0x7fffffffffffffffUL, type, round); \ + }) + +#define DO_PRINT_D2I(insn, d, type, round, ity, fmt) \ + ({ \ + ity target = 0; \ + int cc; \ + printf(#insn " round=%d ", round); \ + DFP_VAL_PRINT(d, type); \ + asm(".insn rrf," insn() "0000,%[r1],%[r2],%[m],0\n\t" \ + "ipm %[c]\n\t" \ + "srl %[c],28\n\t" \ + : [r1] "+d"(target), [c] "=d"(cc) \ + : [r2] "f"(d.f), [m] "i"(round) \ + : "cc"); \ + printf(" -> " fmt " cc=%d\n", target, cc); \ + }) + +static const pun_d64 d64_vals[] = { + {0xa234000000000011}, /* -1.DD */ + {0x2238000000000000}, /* 0.DD */ + {0x2238000000000001}, /* 1.DD */ + {0x2234000000000014}, /* 1.4DD */ + {0x2234000000000015}, /* 1.5DD */ + {0x2234000000000016}, /* 1.6DD */ + {0x2244000000000016}, /* 1.6E+4DD */ + {0x2254000000000016}, /* 1.6E+8DD */ + {0x2264000000000016}, /* 1.6E+12DD */ + {0x2284000000000016}, /* 1.6E+20DD */ + {0x4154000000000016}, /* 1.6E+200DD */ + {0x2224000000000016}, /* 1.6E-4DD */ + {0x20bc000000000001}, /* DEC32_MIN */ + {0x23a000000093fcff}, /* DEC32_MAX */ + {0x003c000000000001}, /* DEC64_MIN */ + {0x77fcff3fcff3fcff}, /* DEC64_MAX */ +}; + +static const pun_d128 d128_vals[] = { + {{0xa207c00000000000, 0x0000000000000011}}, + {{0x2208000000000000, 0x0000000000000000}}, + {{0x2208000000000000, 0x0000000000000001}}, + {{0x2207c00000000000, 0x0000000000000014}}, + {{0x2207c00000000000, 0x0000000000000015}}, + {{0x2207c00000000000, 0x0000000000000016}}, + {{0x2208c00000000000, 0x0000000000000016}}, + {{0x2209c00000000000, 0x0000000000000016}}, + {{0x220ac00000000000, 0x0000000000000016}}, + {{0x220cc00000000000, 0x0000000000000016}}, + {{0x2239c00000000000, 0x0000000000000016}}, + {{0x2206c00000000000, 0x0000000000000016}}, + {{0x21f0400000000000, 0x0000000000000001}}, + {{0x221e800000000000, 0x000000000093fcff}}, + {{0x21a8400000000000, 0x0000000000000001}}, + {{0x2264400000000000, 0x0024ff3fcff3fcff}}, +}; + +#define DO_INSN_D2I(insn, round, t, ity, fmt) \ + ({ \ + for (unsigned j = 0; j < sizeof(t##_vals) / sizeof(t##_vals[0]); j++) { \ + DO_PRINT_D2I(insn, t##_vals[j], pun_##t, round, ity, fmt); \ + } \ + }) + +#define CLFDTR() "0xb943" +#define CLGDTR() "0xb942" +#define CLFXTR() "0xb94b" +#define CLGXTR() "0xb94a" +#define CFDTR() "0xb941" +#define CFXTR() "0xb949" + +#define CDFTR() "0xb951" +#define CXFTR() "0xb959" +#define CDLFTR() "0xb953" +#define CXLFTR() "0xb95b" +#define CDLGTR() "0xb952" +#define CXLGTR() "0xb95a" + +#define DO_D2L(round) \ + ({ \ + DO_INSN_D2I(CLFDTR, round, d64, unsigned, "%u"); \ + DO_INSN_D2I(CLGDTR, round, d64, unsigned long, "%lu"); \ + DO_INSN_D2I(CFDTR, round, d64, int, "%d"); \ + DO_INSN_D2I(CLFXTR, round, d128, unsigned, "%u"); \ + DO_INSN_D2I(CLGXTR, round, d128, unsigned long, "%lu"); \ + DO_INSN_D2I(CFXTR, round, d128, int, "%d"); \ + }) int main() { - /* rounding mode is not used for the following insns */ - DO_INSN_I2D(CDFTR, 0, _Decimal64); - DO_INSN_I2D(CXFTR, 0, _Decimal128); - DO_INSN_L2D(CDLFTR, 0, _Decimal64); - DO_INSN_L2D(CXLFTR, 0, _Decimal128); - DO_INSN_L2D(CXLGTR, 0, _Decimal128); + /* rounding mode is not used for the following insns */ + DO_INSN_I2D(CDFTR, 0, pun_d64); + DO_INSN_I2D(CXFTR, 0, pun_d128); + DO_INSN_L2D(CDLFTR, 0, pun_d64); + DO_INSN_L2D(CXLFTR, 0, pun_d128); + DO_INSN_L2D(CXLGTR, 0, pun_d128); - /* Omit rounding mode value 0 and 2 as the current DFP rounding - mode is chosen for these values. */ - DO_INSN_L2D(CDLGTR, 1, _Decimal64); - DO_D2L(1); + /* Omit rounding mode value 0 and 2 as the current DFP rounding + mode is chosen for these values. */ + DO_INSN_L2D(CDLGTR, 1, pun_d64); + DO_D2L(1); - DO_INSN_L2D(CDLGTR, 3, _Decimal64); - DO_D2L(3); + DO_INSN_L2D(CDLGTR, 3, pun_d64); + DO_D2L(3); - DO_INSN_L2D(CDLGTR, 4, _Decimal64); - DO_D2L(4); + DO_INSN_L2D(CDLGTR, 4, pun_d64); + DO_D2L(4); - DO_INSN_L2D(CDLGTR, 5, _Decimal64); - DO_D2L(5); + DO_INSN_L2D(CDLGTR, 5, pun_d64); + DO_D2L(5); - DO_INSN_L2D(CDLGTR, 6, _Decimal64); - DO_D2L(6); + DO_INSN_L2D(CDLGTR, 6, pun_d64); + DO_D2L(6); - DO_INSN_L2D(CDLGTR, 7, _Decimal64); - DO_D2L(7); + DO_INSN_L2D(CDLGTR, 7, pun_d64); + DO_D2L(7); - DO_INSN_L2D(CDLGTR, 8, _Decimal64); - DO_D2L(8); + DO_INSN_L2D(CDLGTR, 8, pun_d64); + DO_D2L(8); - DO_INSN_L2D(CDLGTR, 9, _Decimal64); - DO_D2L(9); + DO_INSN_L2D(CDLGTR, 9, pun_d64); + DO_D2L(9); - DO_INSN_L2D(CDLGTR, a, _Decimal64); - DO_D2L(a); + DO_INSN_L2D(CDLGTR, 10, pun_d64); + DO_D2L(10); - DO_INSN_L2D(CDLGTR, b, _Decimal64); - DO_D2L(b); + DO_INSN_L2D(CDLGTR, 11, pun_d64); + DO_D2L(11); - DO_INSN_L2D(CDLGTR, c, _Decimal64); - DO_D2L(c); + DO_INSN_L2D(CDLGTR, 12, pun_d64); + DO_D2L(12); - DO_INSN_L2D(CDLGTR, d, _Decimal64); - DO_D2L(d); + DO_INSN_L2D(CDLGTR, 13, pun_d64); + DO_D2L(13); - DO_INSN_L2D(CDLGTR, e, _Decimal64); - DO_D2L(e); + DO_INSN_L2D(CDLGTR, 14, pun_d64); + DO_D2L(14); - DO_INSN_L2D(CDLGTR, f, _Decimal64); - DO_D2L(f); + DO_INSN_L2D(CDLGTR, 15, pun_d64); + DO_D2L(15); - return 0; + return 0; } diff --git a/none/tests/s390x/dfpext.stdout.exp b/none/tests/s390x/dfpext.stdout.exp index 62368731b3..2ad93880ea 100644 --- a/none/tests/s390x/dfpext.stdout.exp +++ b/none/tests/s390x/dfpext.stdout.exp @@ -52,7 +52,6 @@ CLFDTR round=1 2234000000000015 -> 2 cc=2 CLFDTR round=1 2234000000000016 -> 2 cc=2 CLFDTR round=1 2244000000000016 -> 16000 cc=2 CLFDTR round=1 2254000000000016 -> 160000000 cc=2 -CLFDTR round=1 2244000000000016 -> 16000 cc=2 CLFDTR round=1 2264000000000016 -> 4294967295 cc=3 CLFDTR round=1 2284000000000016 -> 4294967295 cc=3 CLFDTR round=1 4154000000000016 -> 4294967295 cc=3 @@ -69,7 +68,6 @@ CLGDTR round=1 2234000000000015 -> 2 cc=2 CLGDTR round=1 2234000000000016 -> 2 cc=2 CLGDTR round=1 2244000000000016 -> 16000 cc=2 CLGDTR round=1 2254000000000016 -> 160000000 cc=2 -CLGDTR round=1 2244000000000016 -> 16000 cc=2 CLGDTR round=1 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=1 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=1 4154000000000016 -> 18446744073709551615 cc=3 @@ -86,7 +84,6 @@ CFDTR round=1 2234000000000015 -> 2 cc=2 CFDTR round=1 2234000000000016 -> 2 cc=2 CFDTR round=1 2244000000000016 -> 16000 cc=2 CFDTR round=1 2254000000000016 -> 160000000 cc=2 -CFDTR round=1 2244000000000016 -> 16000 cc=2 CFDTR round=1 2264000000000016 -> 2147483647 cc=3 CFDTR round=1 2284000000000016 -> 2147483647 cc=3 CFDTR round=1 4154000000000016 -> 2147483647 cc=3 @@ -103,7 +100,6 @@ CLFXTR round=1 2207c000000000000000000000000015 -> 2 cc=2 CLFXTR round=1 2207c000000000000000000000000016 -> 2 cc=2 CLFXTR round=1 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=1 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=1 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=1 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=1 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=1 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -120,7 +116,6 @@ CLGXTR round=1 2207c000000000000000000000000015 -> 2 cc=2 CLGXTR round=1 2207c000000000000000000000000016 -> 2 cc=2 CLGXTR round=1 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=1 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=1 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=1 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=1 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=1 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -137,7 +132,6 @@ CFXTR round=1 2207c000000000000000000000000015 -> 2 cc=2 CFXTR round=1 2207c000000000000000000000000016 -> 2 cc=2 CFXTR round=1 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=1 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=1 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=1 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=1 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=1 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -163,7 +157,6 @@ CLFDTR round=3 2234000000000015 -> 1 cc=2 CLFDTR round=3 2234000000000016 -> 1 cc=2 CLFDTR round=3 2244000000000016 -> 16000 cc=2 CLFDTR round=3 2254000000000016 -> 160000000 cc=2 -CLFDTR round=3 2244000000000016 -> 16000 cc=2 CLFDTR round=3 2264000000000016 -> 4294967295 cc=3 CLFDTR round=3 2284000000000016 -> 4294967295 cc=3 CLFDTR round=3 4154000000000016 -> 4294967295 cc=3 @@ -180,7 +173,6 @@ CLGDTR round=3 2234000000000015 -> 1 cc=2 CLGDTR round=3 2234000000000016 -> 1 cc=2 CLGDTR round=3 2244000000000016 -> 16000 cc=2 CLGDTR round=3 2254000000000016 -> 160000000 cc=2 -CLGDTR round=3 2244000000000016 -> 16000 cc=2 CLGDTR round=3 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=3 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=3 4154000000000016 -> 18446744073709551615 cc=3 @@ -197,7 +189,6 @@ CFDTR round=3 2234000000000015 -> 1 cc=2 CFDTR round=3 2234000000000016 -> 1 cc=2 CFDTR round=3 2244000000000016 -> 16000 cc=2 CFDTR round=3 2254000000000016 -> 160000000 cc=2 -CFDTR round=3 2244000000000016 -> 16000 cc=2 CFDTR round=3 2264000000000016 -> 2147483647 cc=3 CFDTR round=3 2284000000000016 -> 2147483647 cc=3 CFDTR round=3 4154000000000016 -> 2147483647 cc=3 @@ -214,7 +205,6 @@ CLFXTR round=3 2207c000000000000000000000000015 -> 1 cc=2 CLFXTR round=3 2207c000000000000000000000000016 -> 1 cc=2 CLFXTR round=3 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=3 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=3 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=3 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=3 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=3 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -231,7 +221,6 @@ CLGXTR round=3 2207c000000000000000000000000015 -> 1 cc=2 CLGXTR round=3 2207c000000000000000000000000016 -> 1 cc=2 CLGXTR round=3 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=3 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=3 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=3 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=3 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=3 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -248,7 +237,6 @@ CFXTR round=3 2207c000000000000000000000000015 -> 1 cc=2 CFXTR round=3 2207c000000000000000000000000016 -> 1 cc=2 CFXTR round=3 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=3 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=3 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=3 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=3 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=3 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -274,7 +262,6 @@ CLFDTR round=4 2234000000000015 -> 2 cc=2 CLFDTR round=4 2234000000000016 -> 2 cc=2 CLFDTR round=4 2244000000000016 -> 16000 cc=2 CLFDTR round=4 2254000000000016 -> 160000000 cc=2 -CLFDTR round=4 2244000000000016 -> 16000 cc=2 CLFDTR round=4 2264000000000016 -> 4294967295 cc=3 CLFDTR round=4 2284000000000016 -> 4294967295 cc=3 CLFDTR round=4 4154000000000016 -> 4294967295 cc=3 @@ -291,7 +278,6 @@ CLGDTR round=4 2234000000000015 -> 2 cc=2 CLGDTR round=4 2234000000000016 -> 2 cc=2 CLGDTR round=4 2244000000000016 -> 16000 cc=2 CLGDTR round=4 2254000000000016 -> 160000000 cc=2 -CLGDTR round=4 2244000000000016 -> 16000 cc=2 CLGDTR round=4 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=4 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=4 4154000000000016 -> 18446744073709551615 cc=3 @@ -308,7 +294,6 @@ CFDTR round=4 2234000000000015 -> 2 cc=2 CFDTR round=4 2234000000000016 -> 2 cc=2 CFDTR round=4 2244000000000016 -> 16000 cc=2 CFDTR round=4 2254000000000016 -> 160000000 cc=2 -CFDTR round=4 2244000000000016 -> 16000 cc=2 CFDTR round=4 2264000000000016 -> 2147483647 cc=3 CFDTR round=4 2284000000000016 -> 2147483647 cc=3 CFDTR round=4 4154000000000016 -> 2147483647 cc=3 @@ -325,7 +310,6 @@ CLFXTR round=4 2207c000000000000000000000000015 -> 2 cc=2 CLFXTR round=4 2207c000000000000000000000000016 -> 2 cc=2 CLFXTR round=4 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=4 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=4 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=4 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=4 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=4 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -342,7 +326,6 @@ CLGXTR round=4 2207c000000000000000000000000015 -> 2 cc=2 CLGXTR round=4 2207c000000000000000000000000016 -> 2 cc=2 CLGXTR round=4 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=4 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=4 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=4 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=4 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=4 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -359,7 +342,6 @@ CFXTR round=4 2207c000000000000000000000000015 -> 2 cc=2 CFXTR round=4 2207c000000000000000000000000016 -> 2 cc=2 CFXTR round=4 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=4 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=4 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=4 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=4 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=4 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -385,7 +367,6 @@ CLFDTR round=5 2234000000000015 -> 1 cc=2 CLFDTR round=5 2234000000000016 -> 1 cc=2 CLFDTR round=5 2244000000000016 -> 16000 cc=2 CLFDTR round=5 2254000000000016 -> 160000000 cc=2 -CLFDTR round=5 2244000000000016 -> 16000 cc=2 CLFDTR round=5 2264000000000016 -> 4294967295 cc=3 CLFDTR round=5 2284000000000016 -> 4294967295 cc=3 CLFDTR round=5 4154000000000016 -> 4294967295 cc=3 @@ -402,7 +383,6 @@ CLGDTR round=5 2234000000000015 -> 1 cc=2 CLGDTR round=5 2234000000000016 -> 1 cc=2 CLGDTR round=5 2244000000000016 -> 16000 cc=2 CLGDTR round=5 2254000000000016 -> 160000000 cc=2 -CLGDTR round=5 2244000000000016 -> 16000 cc=2 CLGDTR round=5 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=5 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=5 4154000000000016 -> 18446744073709551615 cc=3 @@ -419,7 +399,6 @@ CFDTR round=5 2234000000000015 -> 1 cc=2 CFDTR round=5 2234000000000016 -> 1 cc=2 CFDTR round=5 2244000000000016 -> 16000 cc=2 CFDTR round=5 2254000000000016 -> 160000000 cc=2 -CFDTR round=5 2244000000000016 -> 16000 cc=2 CFDTR round=5 2264000000000016 -> 2147483647 cc=3 CFDTR round=5 2284000000000016 -> 2147483647 cc=3 CFDTR round=5 4154000000000016 -> 2147483647 cc=3 @@ -436,7 +415,6 @@ CLFXTR round=5 2207c000000000000000000000000015 -> 1 cc=2 CLFXTR round=5 2207c000000000000000000000000016 -> 1 cc=2 CLFXTR round=5 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=5 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=5 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=5 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=5 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=5 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -453,7 +431,6 @@ CLGXTR round=5 2207c000000000000000000000000015 -> 1 cc=2 CLGXTR round=5 2207c000000000000000000000000016 -> 1 cc=2 CLGXTR round=5 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=5 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=5 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=5 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=5 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=5 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -470,7 +447,6 @@ CFXTR round=5 2207c000000000000000000000000015 -> 1 cc=2 CFXTR round=5 2207c000000000000000000000000016 -> 1 cc=2 CFXTR round=5 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=5 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=5 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=5 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=5 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=5 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -496,7 +472,6 @@ CLFDTR round=6 2234000000000015 -> 2 cc=2 CLFDTR round=6 2234000000000016 -> 2 cc=2 CLFDTR round=6 2244000000000016 -> 16000 cc=2 CLFDTR round=6 2254000000000016 -> 160000000 cc=2 -CLFDTR round=6 2244000000000016 -> 16000 cc=2 CLFDTR round=6 2264000000000016 -> 4294967295 cc=3 CLFDTR round=6 2284000000000016 -> 4294967295 cc=3 CLFDTR round=6 4154000000000016 -> 4294967295 cc=3 @@ -513,7 +488,6 @@ CLGDTR round=6 2234000000000015 -> 2 cc=2 CLGDTR round=6 2234000000000016 -> 2 cc=2 CLGDTR round=6 2244000000000016 -> 16000 cc=2 CLGDTR round=6 2254000000000016 -> 160000000 cc=2 -CLGDTR round=6 2244000000000016 -> 16000 cc=2 CLGDTR round=6 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=6 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=6 4154000000000016 -> 18446744073709551615 cc=3 @@ -530,7 +504,6 @@ CFDTR round=6 2234000000000015 -> 2 cc=2 CFDTR round=6 2234000000000016 -> 2 cc=2 CFDTR round=6 2244000000000016 -> 16000 cc=2 CFDTR round=6 2254000000000016 -> 160000000 cc=2 -CFDTR round=6 2244000000000016 -> 16000 cc=2 CFDTR round=6 2264000000000016 -> 2147483647 cc=3 CFDTR round=6 2284000000000016 -> 2147483647 cc=3 CFDTR round=6 4154000000000016 -> 2147483647 cc=3 @@ -547,7 +520,6 @@ CLFXTR round=6 2207c000000000000000000000000015 -> 2 cc=2 CLFXTR round=6 2207c000000000000000000000000016 -> 2 cc=2 CLFXTR round=6 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=6 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=6 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=6 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=6 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=6 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -564,7 +536,6 @@ CLGXTR round=6 2207c000000000000000000000000015 -> 2 cc=2 CLGXTR round=6 2207c000000000000000000000000016 -> 2 cc=2 CLGXTR round=6 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=6 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=6 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=6 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=6 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=6 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -581,7 +552,6 @@ CFXTR round=6 2207c000000000000000000000000015 -> 2 cc=2 CFXTR round=6 2207c000000000000000000000000016 -> 2 cc=2 CFXTR round=6 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=6 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=6 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=6 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=6 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=6 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -607,7 +577,6 @@ CLFDTR round=7 2234000000000015 -> 1 cc=2 CLFDTR round=7 2234000000000016 -> 1 cc=2 CLFDTR round=7 2244000000000016 -> 16000 cc=2 CLFDTR round=7 2254000000000016 -> 160000000 cc=2 -CLFDTR round=7 2244000000000016 -> 16000 cc=2 CLFDTR round=7 2264000000000016 -> 4294967295 cc=3 CLFDTR round=7 2284000000000016 -> 4294967295 cc=3 CLFDTR round=7 4154000000000016 -> 4294967295 cc=3 @@ -624,7 +593,6 @@ CLGDTR round=7 2234000000000015 -> 1 cc=2 CLGDTR round=7 2234000000000016 -> 1 cc=2 CLGDTR round=7 2244000000000016 -> 16000 cc=2 CLGDTR round=7 2254000000000016 -> 160000000 cc=2 -CLGDTR round=7 2244000000000016 -> 16000 cc=2 CLGDTR round=7 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=7 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=7 4154000000000016 -> 18446744073709551615 cc=3 @@ -641,7 +609,6 @@ CFDTR round=7 2234000000000015 -> 1 cc=2 CFDTR round=7 2234000000000016 -> 1 cc=2 CFDTR round=7 2244000000000016 -> 16000 cc=2 CFDTR round=7 2254000000000016 -> 160000000 cc=2 -CFDTR round=7 2244000000000016 -> 16000 cc=2 CFDTR round=7 2264000000000016 -> 2147483647 cc=3 CFDTR round=7 2284000000000016 -> 2147483647 cc=3 CFDTR round=7 4154000000000016 -> 2147483647 cc=3 @@ -658,7 +625,6 @@ CLFXTR round=7 2207c000000000000000000000000015 -> 1 cc=2 CLFXTR round=7 2207c000000000000000000000000016 -> 1 cc=2 CLFXTR round=7 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=7 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=7 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=7 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=7 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=7 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -675,7 +641,6 @@ CLGXTR round=7 2207c000000000000000000000000015 -> 1 cc=2 CLGXTR round=7 2207c000000000000000000000000016 -> 1 cc=2 CLGXTR round=7 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=7 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=7 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=7 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=7 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=7 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -692,7 +657,6 @@ CFXTR round=7 2207c000000000000000000000000015 -> 1 cc=2 CFXTR round=7 2207c000000000000000000000000016 -> 1 cc=2 CFXTR round=7 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=7 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=7 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=7 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=7 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=7 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -718,7 +682,6 @@ CLFDTR round=8 2234000000000015 -> 2 cc=2 CLFDTR round=8 2234000000000016 -> 2 cc=2 CLFDTR round=8 2244000000000016 -> 16000 cc=2 CLFDTR round=8 2254000000000016 -> 160000000 cc=2 -CLFDTR round=8 2244000000000016 -> 16000 cc=2 CLFDTR round=8 2264000000000016 -> 4294967295 cc=3 CLFDTR round=8 2284000000000016 -> 4294967295 cc=3 CLFDTR round=8 4154000000000016 -> 4294967295 cc=3 @@ -735,7 +698,6 @@ CLGDTR round=8 2234000000000015 -> 2 cc=2 CLGDTR round=8 2234000000000016 -> 2 cc=2 CLGDTR round=8 2244000000000016 -> 16000 cc=2 CLGDTR round=8 2254000000000016 -> 160000000 cc=2 -CLGDTR round=8 2244000000000016 -> 16000 cc=2 CLGDTR round=8 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=8 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=8 4154000000000016 -> 18446744073709551615 cc=3 @@ -752,7 +714,6 @@ CFDTR round=8 2234000000000015 -> 2 cc=2 CFDTR round=8 2234000000000016 -> 2 cc=2 CFDTR round=8 2244000000000016 -> 16000 cc=2 CFDTR round=8 2254000000000016 -> 160000000 cc=2 -CFDTR round=8 2244000000000016 -> 16000 cc=2 CFDTR round=8 2264000000000016 -> 2147483647 cc=3 CFDTR round=8 2284000000000016 -> 2147483647 cc=3 CFDTR round=8 4154000000000016 -> 2147483647 cc=3 @@ -769,7 +730,6 @@ CLFXTR round=8 2207c000000000000000000000000015 -> 2 cc=2 CLFXTR round=8 2207c000000000000000000000000016 -> 2 cc=2 CLFXTR round=8 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=8 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=8 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=8 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=8 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=8 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -786,7 +746,6 @@ CLGXTR round=8 2207c000000000000000000000000015 -> 2 cc=2 CLGXTR round=8 2207c000000000000000000000000016 -> 2 cc=2 CLGXTR round=8 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=8 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=8 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=8 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=8 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=8 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -803,7 +762,6 @@ CFXTR round=8 2207c000000000000000000000000015 -> 2 cc=2 CFXTR round=8 2207c000000000000000000000000016 -> 2 cc=2 CFXTR round=8 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=8 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=8 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=8 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=8 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=8 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -829,7 +787,6 @@ CLFDTR round=9 2234000000000015 -> 1 cc=2 CLFDTR round=9 2234000000000016 -> 1 cc=2 CLFDTR round=9 2244000000000016 -> 16000 cc=2 CLFDTR round=9 2254000000000016 -> 160000000 cc=2 -CLFDTR round=9 2244000000000016 -> 16000 cc=2 CLFDTR round=9 2264000000000016 -> 4294967295 cc=3 CLFDTR round=9 2284000000000016 -> 4294967295 cc=3 CLFDTR round=9 4154000000000016 -> 4294967295 cc=3 @@ -846,7 +803,6 @@ CLGDTR round=9 2234000000000015 -> 1 cc=2 CLGDTR round=9 2234000000000016 -> 1 cc=2 CLGDTR round=9 2244000000000016 -> 16000 cc=2 CLGDTR round=9 2254000000000016 -> 160000000 cc=2 -CLGDTR round=9 2244000000000016 -> 16000 cc=2 CLGDTR round=9 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=9 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=9 4154000000000016 -> 18446744073709551615 cc=3 @@ -863,7 +819,6 @@ CFDTR round=9 2234000000000015 -> 1 cc=2 CFDTR round=9 2234000000000016 -> 1 cc=2 CFDTR round=9 2244000000000016 -> 16000 cc=2 CFDTR round=9 2254000000000016 -> 160000000 cc=2 -CFDTR round=9 2244000000000016 -> 16000 cc=2 CFDTR round=9 2264000000000016 -> 2147483647 cc=3 CFDTR round=9 2284000000000016 -> 2147483647 cc=3 CFDTR round=9 4154000000000016 -> 2147483647 cc=3 @@ -880,7 +835,6 @@ CLFXTR round=9 2207c000000000000000000000000015 -> 1 cc=2 CLFXTR round=9 2207c000000000000000000000000016 -> 1 cc=2 CLFXTR round=9 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=9 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=9 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=9 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=9 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=9 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -897,7 +851,6 @@ CLGXTR round=9 2207c000000000000000000000000015 -> 1 cc=2 CLGXTR round=9 2207c000000000000000000000000016 -> 1 cc=2 CLGXTR round=9 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=9 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=9 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=9 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=9 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=9 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -914,7 +867,6 @@ CFXTR round=9 2207c000000000000000000000000015 -> 1 cc=2 CFXTR round=9 2207c000000000000000000000000016 -> 1 cc=2 CFXTR round=9 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=9 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=9 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=9 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=9 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=9 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -940,7 +892,6 @@ CLFDTR round=10 2234000000000015 -> 2 cc=2 CLFDTR round=10 2234000000000016 -> 2 cc=2 CLFDTR round=10 2244000000000016 -> 16000 cc=2 CLFDTR round=10 2254000000000016 -> 160000000 cc=2 -CLFDTR round=10 2244000000000016 -> 16000 cc=2 CLFDTR round=10 2264000000000016 -> 4294967295 cc=3 CLFDTR round=10 2284000000000016 -> 4294967295 cc=3 CLFDTR round=10 4154000000000016 -> 4294967295 cc=3 @@ -957,7 +908,6 @@ CLGDTR round=10 2234000000000015 -> 2 cc=2 CLGDTR round=10 2234000000000016 -> 2 cc=2 CLGDTR round=10 2244000000000016 -> 16000 cc=2 CLGDTR round=10 2254000000000016 -> 160000000 cc=2 -CLGDTR round=10 2244000000000016 -> 16000 cc=2 CLGDTR round=10 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=10 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=10 4154000000000016 -> 18446744073709551615 cc=3 @@ -974,7 +924,6 @@ CFDTR round=10 2234000000000015 -> 2 cc=2 CFDTR round=10 2234000000000016 -> 2 cc=2 CFDTR round=10 2244000000000016 -> 16000 cc=2 CFDTR round=10 2254000000000016 -> 160000000 cc=2 -CFDTR round=10 2244000000000016 -> 16000 cc=2 CFDTR round=10 2264000000000016 -> 2147483647 cc=3 CFDTR round=10 2284000000000016 -> 2147483647 cc=3 CFDTR round=10 4154000000000016 -> 2147483647 cc=3 @@ -991,7 +940,6 @@ CLFXTR round=10 2207c000000000000000000000000015 -> 2 cc=2 CLFXTR round=10 2207c000000000000000000000000016 -> 2 cc=2 CLFXTR round=10 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=10 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=10 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=10 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=10 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=10 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -1008,7 +956,6 @@ CLGXTR round=10 2207c000000000000000000000000015 -> 2 cc=2 CLGXTR round=10 2207c000000000000000000000000016 -> 2 cc=2 CLGXTR round=10 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=10 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=10 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=10 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=10 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=10 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -1025,7 +972,6 @@ CFXTR round=10 2207c000000000000000000000000015 -> 2 cc=2 CFXTR round=10 2207c000000000000000000000000016 -> 2 cc=2 CFXTR round=10 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=10 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=10 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=10 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=10 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=10 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -1051,7 +997,6 @@ CLFDTR round=11 2234000000000015 -> 1 cc=2 CLFDTR round=11 2234000000000016 -> 1 cc=2 CLFDTR round=11 2244000000000016 -> 16000 cc=2 CLFDTR round=11 2254000000000016 -> 160000000 cc=2 -CLFDTR round=11 2244000000000016 -> 16000 cc=2 CLFDTR round=11 2264000000000016 -> 4294967295 cc=3 CLFDTR round=11 2284000000000016 -> 4294967295 cc=3 CLFDTR round=11 4154000000000016 -> 4294967295 cc=3 @@ -1068,7 +1013,6 @@ CLGDTR round=11 2234000000000015 -> 1 cc=2 CLGDTR round=11 2234000000000016 -> 1 cc=2 CLGDTR round=11 2244000000000016 -> 16000 cc=2 CLGDTR round=11 2254000000000016 -> 160000000 cc=2 -CLGDTR round=11 2244000000000016 -> 16000 cc=2 CLGDTR round=11 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=11 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=11 4154000000000016 -> 18446744073709551615 cc=3 @@ -1085,7 +1029,6 @@ CFDTR round=11 2234000000000015 -> 1 cc=2 CFDTR round=11 2234000000000016 -> 1 cc=2 CFDTR round=11 2244000000000016 -> 16000 cc=2 CFDTR round=11 2254000000000016 -> 160000000 cc=2 -CFDTR round=11 2244000000000016 -> 16000 cc=2 CFDTR round=11 2264000000000016 -> 2147483647 cc=3 CFDTR round=11 2284000000000016 -> 2147483647 cc=3 CFDTR round=11 4154000000000016 -> 2147483647 cc=3 @@ -1102,7 +1045,6 @@ CLFXTR round=11 2207c000000000000000000000000015 -> 1 cc=2 CLFXTR round=11 2207c000000000000000000000000016 -> 1 cc=2 CLFXTR round=11 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=11 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=11 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=11 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=11 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=11 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -1119,7 +1061,6 @@ CLGXTR round=11 2207c000000000000000000000000015 -> 1 cc=2 CLGXTR round=11 2207c000000000000000000000000016 -> 1 cc=2 CLGXTR round=11 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=11 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=11 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=11 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=11 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=11 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -1136,7 +1077,6 @@ CFXTR round=11 2207c000000000000000000000000015 -> 1 cc=2 CFXTR round=11 2207c000000000000000000000000016 -> 1 cc=2 CFXTR round=11 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=11 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=11 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=11 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=11 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=11 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -1162,7 +1102,6 @@ CLFDTR round=12 2234000000000015 -> 2 cc=2 CLFDTR round=12 2234000000000016 -> 2 cc=2 CLFDTR round=12 2244000000000016 -> 16000 cc=2 CLFDTR round=12 2254000000000016 -> 160000000 cc=2 -CLFDTR round=12 2244000000000016 -> 16000 cc=2 CLFDTR round=12 2264000000000016 -> 4294967295 cc=3 CLFDTR round=12 2284000000000016 -> 4294967295 cc=3 CLFDTR round=12 4154000000000016 -> 4294967295 cc=3 @@ -1179,7 +1118,6 @@ CLGDTR round=12 2234000000000015 -> 2 cc=2 CLGDTR round=12 2234000000000016 -> 2 cc=2 CLGDTR round=12 2244000000000016 -> 16000 cc=2 CLGDTR round=12 2254000000000016 -> 160000000 cc=2 -CLGDTR round=12 2244000000000016 -> 16000 cc=2 CLGDTR round=12 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=12 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=12 4154000000000016 -> 18446744073709551615 cc=3 @@ -1196,7 +1134,6 @@ CFDTR round=12 2234000000000015 -> 2 cc=2 CFDTR round=12 2234000000000016 -> 2 cc=2 CFDTR round=12 2244000000000016 -> 16000 cc=2 CFDTR round=12 2254000000000016 -> 160000000 cc=2 -CFDTR round=12 2244000000000016 -> 16000 cc=2 CFDTR round=12 2264000000000016 -> 2147483647 cc=3 CFDTR round=12 2284000000000016 -> 2147483647 cc=3 CFDTR round=12 4154000000000016 -> 2147483647 cc=3 @@ -1213,7 +1150,6 @@ CLFXTR round=12 2207c000000000000000000000000015 -> 2 cc=2 CLFXTR round=12 2207c000000000000000000000000016 -> 2 cc=2 CLFXTR round=12 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=12 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=12 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=12 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=12 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=12 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -1230,7 +1166,6 @@ CLGXTR round=12 2207c000000000000000000000000015 -> 2 cc=2 CLGXTR round=12 2207c000000000000000000000000016 -> 2 cc=2 CLGXTR round=12 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=12 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=12 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=12 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=12 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=12 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -1247,7 +1182,6 @@ CFXTR round=12 2207c000000000000000000000000015 -> 2 cc=2 CFXTR round=12 2207c000000000000000000000000016 -> 2 cc=2 CFXTR round=12 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=12 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=12 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=12 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=12 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=12 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -1273,7 +1207,6 @@ CLFDTR round=13 2234000000000015 -> 1 cc=2 CLFDTR round=13 2234000000000016 -> 2 cc=2 CLFDTR round=13 2244000000000016 -> 16000 cc=2 CLFDTR round=13 2254000000000016 -> 160000000 cc=2 -CLFDTR round=13 2244000000000016 -> 16000 cc=2 CLFDTR round=13 2264000000000016 -> 4294967295 cc=3 CLFDTR round=13 2284000000000016 -> 4294967295 cc=3 CLFDTR round=13 4154000000000016 -> 4294967295 cc=3 @@ -1290,7 +1223,6 @@ CLGDTR round=13 2234000000000015 -> 1 cc=2 CLGDTR round=13 2234000000000016 -> 2 cc=2 CLGDTR round=13 2244000000000016 -> 16000 cc=2 CLGDTR round=13 2254000000000016 -> 160000000 cc=2 -CLGDTR round=13 2244000000000016 -> 16000 cc=2 CLGDTR round=13 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=13 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=13 4154000000000016 -> 18446744073709551615 cc=3 @@ -1307,7 +1239,6 @@ CFDTR round=13 2234000000000015 -> 1 cc=2 CFDTR round=13 2234000000000016 -> 2 cc=2 CFDTR round=13 2244000000000016 -> 16000 cc=2 CFDTR round=13 2254000000000016 -> 160000000 cc=2 -CFDTR round=13 2244000000000016 -> 16000 cc=2 CFDTR round=13 2264000000000016 -> 2147483647 cc=3 CFDTR round=13 2284000000000016 -> 2147483647 cc=3 CFDTR round=13 4154000000000016 -> 2147483647 cc=3 @@ -1324,7 +1255,6 @@ CLFXTR round=13 2207c000000000000000000000000015 -> 1 cc=2 CLFXTR round=13 2207c000000000000000000000000016 -> 2 cc=2 CLFXTR round=13 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=13 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=13 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=13 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=13 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=13 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -1341,7 +1271,6 @@ CLGXTR round=13 2207c000000000000000000000000015 -> 1 cc=2 CLGXTR round=13 2207c000000000000000000000000016 -> 2 cc=2 CLGXTR round=13 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=13 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=13 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=13 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=13 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=13 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -1358,7 +1287,6 @@ CFXTR round=13 2207c000000000000000000000000015 -> 1 cc=2 CFXTR round=13 2207c000000000000000000000000016 -> 2 cc=2 CFXTR round=13 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=13 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=13 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=13 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=13 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=13 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -1384,7 +1312,6 @@ CLFDTR round=14 2234000000000015 -> 2 cc=2 CLFDTR round=14 2234000000000016 -> 2 cc=2 CLFDTR round=14 2244000000000016 -> 16000 cc=2 CLFDTR round=14 2254000000000016 -> 160000000 cc=2 -CLFDTR round=14 2244000000000016 -> 16000 cc=2 CLFDTR round=14 2264000000000016 -> 4294967295 cc=3 CLFDTR round=14 2284000000000016 -> 4294967295 cc=3 CLFDTR round=14 4154000000000016 -> 4294967295 cc=3 @@ -1401,7 +1328,6 @@ CLGDTR round=14 2234000000000015 -> 2 cc=2 CLGDTR round=14 2234000000000016 -> 2 cc=2 CLGDTR round=14 2244000000000016 -> 16000 cc=2 CLGDTR round=14 2254000000000016 -> 160000000 cc=2 -CLGDTR round=14 2244000000000016 -> 16000 cc=2 CLGDTR round=14 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=14 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=14 4154000000000016 -> 18446744073709551615 cc=3 @@ -1418,7 +1344,6 @@ CFDTR round=14 2234000000000015 -> 2 cc=2 CFDTR round=14 2234000000000016 -> 2 cc=2 CFDTR round=14 2244000000000016 -> 16000 cc=2 CFDTR round=14 2254000000000016 -> 160000000 cc=2 -CFDTR round=14 2244000000000016 -> 16000 cc=2 CFDTR round=14 2264000000000016 -> 2147483647 cc=3 CFDTR round=14 2284000000000016 -> 2147483647 cc=3 CFDTR round=14 4154000000000016 -> 2147483647 cc=3 @@ -1435,7 +1360,6 @@ CLFXTR round=14 2207c000000000000000000000000015 -> 2 cc=2 CLFXTR round=14 2207c000000000000000000000000016 -> 2 cc=2 CLFXTR round=14 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=14 2209c000000000000000000000000016 -> 160000000 cc=2 -CLFXTR round=14 2208c000000000000000000000000016 -> 16000 cc=2 CLFXTR round=14 220ac000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=14 220cc000000000000000000000000016 -> 4294967295 cc=3 CLFXTR round=14 2239c000000000000000000000000016 -> 4294967295 cc=3 @@ -1452,7 +1376,6 @@ CLGXTR round=14 2207c000000000000000000000000015 -> 2 cc=2 CLGXTR round=14 2207c000000000000000000000000016 -> 2 cc=2 CLGXTR round=14 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=14 2209c000000000000000000000000016 -> 160000000 cc=2 -CLGXTR round=14 2208c000000000000000000000000016 -> 16000 cc=2 CLGXTR round=14 220ac000000000000000000000000016 -> 1600000000000 cc=2 CLGXTR round=14 220cc000000000000000000000000016 -> 18446744073709551615 cc=3 CLGXTR round=14 2239c000000000000000000000000016 -> 18446744073709551615 cc=3 @@ -1469,7 +1392,6 @@ CFXTR round=14 2207c000000000000000000000000015 -> 2 cc=2 CFXTR round=14 2207c000000000000000000000000016 -> 2 cc=2 CFXTR round=14 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=14 2209c000000000000000000000000016 -> 160000000 cc=2 -CFXTR round=14 2208c000000000000000000000000016 -> 16000 cc=2 CFXTR round=14 220ac000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=14 220cc000000000000000000000000016 -> 2147483647 cc=3 CFXTR round=14 2239c000000000000000000000000016 -> 2147483647 cc=3 @@ -1495,7 +1417,6 @@ CLFDTR round=15 2234000000000015 -> 1 cc=2 CLFDTR round=15 2234000000000016 -> 1 cc=2 CLFDTR round=15 2244000000000016 -> 16000 cc=2 CLFDTR round=15 2254000000000016 -> 160000000 cc=2 -CLFDTR round=15 2244000000000016 -> 16000 cc=2 CLFDTR round=15 2264000000000016 -> 4294967295 cc=3 CLFDTR round=15 2284000000000016 -> 4294967295 cc=3 CLFDTR round=15 4154000000000016 -> 4294967295 cc=3 @@ -1512,7 +1433,6 @@ CLGDTR round=15 2234000000000015 -> 1 cc=2 CLGDTR round=15 2234000000000016 -> 1 cc=2 CLGDTR round=15 2244000000000016 -> 16000 cc=2 CLGDTR round=15 2254000000000016 -> 160000000 cc=2 -CLGDTR round=15 2244000000000016 -> 16000 cc=2 CLGDTR round=15 2264000000000016 -> 1600000000000 cc=2 CLGDTR round=15 2284000000000016 -> 18446744073709551615 cc=3 CLGDTR round=15 4154000000000016 ->... [truncated message content] |
|
From: Andreas A. <ar...@so...> - 2023-09-07 15:09:36
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=64f2f358dc899cf34d134f88375bbef55ae944dc commit 64f2f358dc899cf34d134f88375bbef55ae944dc Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:25 2023 +0200 s390x regtest: Rework dfp-2 The dfp-2 test case has two issues: * It doesn't test the rounding modes correctly. Since the inline assembly uses a "d" constraint to pass the rounding mode, a random register number is placed into the instruction's rounding mode field instead of the intended rounding mode. * It cannot be compiled with Clang. (See Bug 465782.) Fix these with a rewrite. Fixing the first issue also requires adjusting the test case output `dfp-2.stdout.exp', while fixing the second requires avoiding `_Decimal*' data types. Also reduce some code duplication. Diff: --- none/tests/s390x/dfp-2.c | 661 +++++++++++++++++--------------------- none/tests/s390x/dfp-2.stdout.exp | 140 ++++---- 2 files changed, 357 insertions(+), 444 deletions(-) diff --git a/none/tests/s390x/dfp-2.c b/none/tests/s390x/dfp-2.c index 061fff4c7a..39427089a1 100644 --- a/none/tests/s390x/dfp-2.c +++ b/none/tests/s390x/dfp-2.c @@ -1,378 +1,291 @@ -#include <stdio.h> -#include <stdint.h> #include "dfp_utils.h" +#include <stdint.h> +#include <stdio.h> -/* Test various DFP ops: - - extract biased exponent 64/128 bit - - extract significance 64/128 bit - - insert biased exponent 64/128 bit - - load and test 64/128 bit - - shift left/right 64/128 bit - - reround 64/128 bit -*/ - -void eedtr(_Decimal64 in) -{ - long out; - asm volatile(".insn rre, 0xb3e50000, %[out], %[in]\n\t" - :[out] "=d" (out) :[in] "f" (in)); - printf("EEDTR "); - DFP_VAL_PRINT(in, _Decimal64); - printf(" -> %ld\n", out); -} - -void eextr(_Decimal128 in) -{ - long out; - asm volatile(".insn rre, 0xb3ed0000, %[out], %[in]\n\t" - :[out] "=d" (out) :[in] "f" (in)); - printf("EEXTR "); - DFP_VAL_PRINT(in, _Decimal128); - printf(" -> %ld\n", out); -} - -void esdtr(_Decimal64 in) -{ - long out; - asm volatile(".insn rre, 0xb3e70000, %[out], %[in]\n\t" - :[out] "=d" (out) :[in] "f" (in)); - printf("ESDTR "); - DFP_VAL_PRINT(in, _Decimal64); - printf(" -> %ld\n", out); -} - -void esxtr(_Decimal128 in) -{ - long out; - asm volatile(".insn rre, 0xb3ef0000, %[out], %[in]\n\t" - :[out] "=d" (out) :[in] "f" (in)); - printf("ESXTR "); - DFP_VAL_PRINT(in, _Decimal128); - printf(" -> %ld\n", out); -} - -void iedtr(_Decimal64 in, long amount) -{ - _Decimal64 out; - - asm volatile (".insn rrf, 0xb3f60000, %[out], %[amount], %[in], 0\n\t" - :[out]"=f"(out) - :[in]"f"(in), [amount]"d"(amount)); - - printf("IEDTR "); - DFP_VAL_PRINT(in, _Decimal64); - printf(", %ld -> ", amount); - DFP_VAL_PRINT(out, _Decimal64); - printf("\n"); -} - -void iextr(_Decimal128 in, long amount) -{ - _Decimal128 out; - - asm volatile (".insn rrf, 0xb3fe0000, %[out], %[amount], %[in], 0\n\t" - :[out]"=f"(out) - :[in]"f"(in), [amount]"d"(amount)); - - printf("IEXTR "); - DFP_VAL_PRINT(in, _Decimal128); - printf(", %ld -> ", amount); - DFP_VAL_PRINT(out, _Decimal128); - printf("\n"); -} - -void ltdtr(_Decimal64 in) -{ - _Decimal64 out; - int cc; - asm volatile(".insn rre, 0xb3d60000, %[out], %[in]\n\t" - "ipm %1\n\t" - "srl %1,28\n\t" - :[out] "=d" (out), "=d" (cc) - :[in] "f" (in) - :"cc"); - printf("LTDTR "); - DFP_VAL_PRINT(in, _Decimal64); - printf(" -> %d\n", cc); -} - -void ltxtr(_Decimal128 in) -{ - _Decimal128 out; - int cc; - asm volatile(".insn rre, 0xb3de0000, %[out], %[in]\n\t" - "ipm %1\n\t" - "srl %1,28\n\t" - :[out] "=f" (out), "=d" (cc) - :[in] "f" (in) - :"cc"); - printf("LTXTR "); - DFP_VAL_PRINT(in, _Decimal128); - printf(" -> %d\n", cc); -} - -void qadtr(_Decimal64 op, _Decimal64 quan, uint8_t rm) -{ - _Decimal64 out; - - asm volatile ( - ".insn rrf, 0xb3f50000, %[out], %[quan], %[op], %[rm]\n\t" - :[out]"=f"(out) - :[op]"f"(op), [quan]"f"(quan), [rm]"d"(rm) - ); - printf("QADTR "); - DFP_VAL_PRINT(op, _Decimal64); - printf(", "); - DFP_VAL_PRINT(quan, _Decimal64); - printf(", %x -> ", rm); - DFP_VAL_PRINT(out, _Decimal64); - printf("\n"); -} - -void quantize64(_Decimal64 op, _Decimal64 quan) -{ - uint8_t i; - - for (i = 0; i < 16; i++) - qadtr(op, quan, i); -} - -void qaxtr(_Decimal128 op, _Decimal128 quan, uint8_t rm) -{ - _Decimal128 out; - - asm volatile ( - ".insn rrf, 0xb3fd0000, %[out], %[quan], %[op], %[rm]\n\t" - :[out]"=f"(out) - :[op]"f"(op), [quan]"f"(quan), [rm]"d"(rm) - ); - printf("QAXTR "); - DFP_VAL_PRINT(op, _Decimal128); - printf(", "); - DFP_VAL_PRINT(quan, _Decimal128); - printf(", %x -> ", rm); - DFP_VAL_PRINT(out, _Decimal128); - printf("\n"); -} - -void quantize128(_Decimal128 op, _Decimal128 quan) -{ - uint8_t i; - - for (i = 0; i < 16; i++) - qaxtr(op, quan, i); -} - -void rrdtr(_Decimal64 op, uint8_t sig, uint8_t rm) -{ - _Decimal64 out; - - asm volatile ( - ".insn rrf, 0xb3f70000, %[out], %[sig], %[op], %[rm]\n\t" - :[out]"=f"(out) - :[op]"f"(op), [sig]"d"(sig), [rm]"d"(rm) - ); - printf("RRDTR "); - DFP_VAL_PRINT(op, _Decimal64); - printf(", %d, %x -> ", sig, rm); - DFP_VAL_PRINT(out, _Decimal64); - printf("\n"); -} - -void reround64(_Decimal64 op, uint8_t sig) -{ - uint8_t i; - - for (i = 0; i < 16; i++) - rrdtr(op, sig, i); -} - -void rrxtr(_Decimal128 op, uint8_t sig, uint8_t rm) -{ - _Decimal128 out; - - asm volatile ( - ".insn rrf, 0xb3ff0000, %[out], %[sig], %[op], %[rm]\n\t" - :[out]"=f"(out) - :[op]"f"(op), [sig]"d"(sig), [rm]"d"(rm) - ); - printf("RRXTR "); - DFP_VAL_PRINT(op, _Decimal128); - printf(", %d, %x -> ", sig, rm); - DFP_VAL_PRINT(out, _Decimal128); - printf("\n"); -} - -void reround128(_Decimal128 op, uint8_t sig) -{ - uint8_t i; - - for (i = 0; i < 16; i++) - rrxtr(op, sig, i); -} - -void sldt(_Decimal64 in, unsigned long amount) -{ - _Decimal64 out; - int *shift = (int *) amount; - - asm volatile (".insn rxf, 0xed0000000040, %[out], %[in], 0(%[amount])\n\t" - :[out]"=f"(out) - :[in]"f"(in),[amount]"a"(shift)); - - printf("SLDT "); - DFP_VAL_PRINT(in, _Decimal64); - printf(" -> "); - DFP_VAL_PRINT(out, _Decimal64); - printf("\n"); -} - -void slxt(_Decimal128 in, unsigned long amount) -{ - _Decimal128 out; - int *shift = (int *) amount; - - asm volatile (".insn rxf, 0xed0000000048, %[out], %[in], 0(%[amount])\n\t" - :[out]"=f"(out) - :[in]"f"(in),[amount]"a"(shift)); - - printf("SLXT "); - DFP_VAL_PRINT(in, _Decimal128); - printf(" -> "); - DFP_VAL_PRINT(out, _Decimal128); - printf("\n"); -} - -void srdt(_Decimal64 in, unsigned long amount) -{ - _Decimal64 out; - int *shift = (int *) amount; - - asm volatile (".insn rxf, 0xed0000000041, %[out], %[in], 0(%[amount])\n\t" - :[out]"=f"(out) - :[in]"f"(in),[amount]"a"(shift)); - - printf("SRDT "); - DFP_VAL_PRINT(in, _Decimal64); - printf(" -> "); - DFP_VAL_PRINT(out, _Decimal64); - printf("\n"); -} - -void srxt(_Decimal128 in, unsigned long amount) +#define ITERATE_0_15(x) \ + x(0); \ + x(1); \ + x(2); \ + x(3); \ + x(4); \ + x(5); \ + x(6); \ + x(7); \ + x(8); \ + x(9); \ + x(10); \ + x(11); \ + x(12); \ + x(13); \ + x(14); \ + x(15); + +/* Extract biased exponent; extract significance */ + +#define MAKE_EXTRACT(fun, name, opcode, type) \ + static void fun(type in) \ + { \ + long out; \ + asm(".insn rre," #opcode "0000, %[out], %[in]" \ + : [out] "=d"(out) \ + : [in] "f"(in.f)); \ + printf("%s ", #name); \ + DFP_VAL_PRINT(in, type); \ + printf(" -> %ld\n", out); \ + } + +MAKE_EXTRACT(eedtr, EEDTR, 0xb3e5, pun_d64) +MAKE_EXTRACT(eextr, EEXTR, 0xb3ed, pun_d128) +MAKE_EXTRACT(esdtr, ESDTR, 0xb3e7, pun_d64) +MAKE_EXTRACT(esxtr, ESXTR, 0xb3ef, pun_d128) + +/* Insert biased exponent */ + +#define MAKE_INSERT(fun, name, opcode, type) \ + static void fun(type in, long amount) \ + { \ + type out; \ + asm(".insn rrf," #opcode "0000, %[out], %[amount], %[in], 0" \ + : [out] "=f"(out.f) \ + : [in] "f"(in.f), [amount] "d"(amount)); \ + printf("%s ", #name); \ + DFP_VAL_PRINT(in, type); \ + printf(", %ld -> ", amount); \ + DFP_VAL_PRINT(out, type); \ + printf("\n"); \ + } + +MAKE_INSERT(iedtr, IEDTR, 0xb3f6, pun_d64) +MAKE_INSERT(iextr, IEXTR, 0xb3fe, pun_d128) + +/* Load and test */ + +#define MAKE_LOAD_AND_TEST(fun, name, opcode, type) \ + static void fun(type in) \ + { \ + type out; \ + int cc; \ + asm(".insn rre," #opcode "0000, %[out], %[in]\n\t" \ + "ipm %[cc]\n\t" \ + "srl %[cc],28" \ + : [out] "=f"(out.f), [cc] "=d"(cc) \ + : [in] "f"(in.f)); \ + printf("%s ", #name); \ + DFP_VAL_PRINT(in, type); \ + printf(" -> %d\n", cc); \ + } + +MAKE_LOAD_AND_TEST(ltdtr, LTDTR, 0xb3d6, pun_d64) +MAKE_LOAD_AND_TEST(ltxtr, LTXTR, 0xb3de, pun_d128) + +/* Quantize */ + +#define MAKE_QUANTIZE(fun, name, opcode, type, rm) \ + static void fun##rm(type op, type quan) \ + { \ + type out; \ + asm(".insn rrf," #opcode "0000, %[out], %[quan], %[op], %[m]" \ + : [out] "=f"(out.f) \ + : [op] "f"(op.f), [quan] "f"(quan.f), [m] "i"(rm)); \ + printf("%s ", #name); \ + DFP_VAL_PRINT(op, type); \ + printf(", "); \ + DFP_VAL_PRINT(quan, type); \ + printf(", %x -> ", rm); \ + DFP_VAL_PRINT(out, type); \ + printf("\n"); \ + } + +#define MAKE_QADTR(rm) MAKE_QUANTIZE(qadtr, QADTR, 0xb3f5, pun_d64, rm) +#define CALL_QADTR(rm) qadtr##rm(op, quan) + +ITERATE_0_15(MAKE_QADTR) + +void quantize64(pun_d64 op, pun_d64 quan) { ITERATE_0_15(CALL_QADTR); } + +#define MAKE_QAXTR(rm) MAKE_QUANTIZE(qaxtr, QAXTR, 0xb3fd, pun_d128, rm) +#define CALL_QAXTR(rm) qaxtr##rm(op, quan) + +ITERATE_0_15(MAKE_QAXTR) + +void quantize128(pun_d128 op, pun_d128 quan) { ITERATE_0_15(CALL_QAXTR); } + +/* Reround */ + +#define MAKE_REROUND(fun, name, opcode, type, rm) \ + static void fun##rm(type op, uint8_t sig) \ + { \ + type out; \ + asm(".insn rrf," #opcode "0000, %[out], %[sig], %[op], %[m]" \ + : [out] "=f"(out.f) \ + : [op] "f"(op.f), [sig] "d"(sig), [m] "i"(rm)); \ + printf("%s ", #name); \ + DFP_VAL_PRINT(op, type); \ + printf(", %d, %x -> ", sig, rm); \ + DFP_VAL_PRINT(out, type); \ + printf("\n"); \ + } + +#define MAKE_RRDTR(rm) MAKE_REROUND(rrdtr, RRDTR, 0xb3f7, pun_d64, rm) +#define CALL_RRDTR(rm) rrdtr##rm(op, sig) + +ITERATE_0_15(MAKE_RRDTR) + +void reround64(pun_d64 op, uint8_t sig) { ITERATE_0_15(CALL_RRDTR); } + +#define MAKE_RRXTR(rm) MAKE_REROUND(rrxtr, RRXTR, 0xb3ff, pun_d128, rm) +#define CALL_RRXTR(rm) rrxtr##rm(op, sig) + +ITERATE_0_15(MAKE_RRXTR) + +void reround128(pun_d128 op, uint8_t sig) { ITERATE_0_15(CALL_RRXTR); } + +/* Shift significand left/right */ + +#define MAKE_SHIFT(fun, name, opcode, type) \ + static void fun(type in, unsigned long amount) \ + { \ + type out; \ + int* shift = (int*)amount; \ + asm(".insn rxf, " #opcode ", %[out], %[in], 0(%[amount])" \ + : [out] "=f"(out.f) \ + : [in] "f"(in.f), [amount] "a"(shift)); \ + printf("%s ", #name); \ + DFP_VAL_PRINT(in, type); \ + printf(" -> "); \ + DFP_VAL_PRINT(out, type); \ + printf("\n"); \ + } + +MAKE_SHIFT(sldt, SLDT, 0xed0000000040, pun_d64) +MAKE_SHIFT(slxt, SLXT, 0xed0000000048, pun_d128) +MAKE_SHIFT(srdt, SRDT, 0xed0000000041, pun_d64) +MAKE_SHIFT(srxt, SRXT, 0xed0000000049, pun_d128) + +/* 64-bit decimal constants */ +static const pun_d64 dd_0 = {0x2238000000000000}; /* 0.DD */ +static const pun_d64 dd_00 = {0x2234000000000000}; /* 0.0DD */ +static const pun_d64 dd_m0 = {0xa238000000000000}; /* -0.DD */ +static const pun_d64 dd_1 = {0x2238000000000001}; /* 1.DD */ +static const pun_d64 dd_A = {0x22280000000a0005}; /* 50.0005DD */ +static const pun_d64 dd_mA = {0xa2280000000a0005}; /* -50.0005DD */ +static const pun_d64 dd_B = {0x2224014d2e7971a1}; /* 12345678.54321DD */ +static const pun_d64 dd_mB = {0xa224014d2e7971a1}; /* -12345678.54321DD */ +static const pun_d64 dd_C = {0x2220000000500005}; /* 5.000005DD */ +static const pun_d64 dd_mC = {0xa220000000500005}; /* -5.000005DD */ +static const pun_d64 dd_D = {0x222000000023c534}; /* 2.171234DD */ +static const pun_d64 dd_mD = {0xa22000000023c534}; /* -2.171234DD */ +static const pun_d64 dd_DQ = {0x222c000000000001}; /* 0.001DD */ +static const pun_d64 dd_E = {0x222000000023d2de}; /* 2.174598DD */ +static const pun_d64 dd_mE = {0xa22000000023d2de}; /* -2.174598DD */ + +/* 128-bit versions of the same constants, except: + dl_D = 26365343648.171234DL + dl_DQ = 230.01DL */ +static const pun_d128 dl_0 = {{0x2208000000000000, 0x0000000000000000}}; +static const pun_d128 dl_00 = {{0x2207c00000000000, 0x0000000000000000}}; +static const pun_d128 dl_m0 = {{0xa208000000000000, 0x0000000000000000}}; +static const pun_d128 dl_1 = {{0x2208000000000000, 0x0000000000000001}}; +static const pun_d128 dl_A = {{0x2207000000000000, 0x00000000000a0005}}; +static const pun_d128 dl_mA = {{0xa207000000000000, 0x00000000000a0005}}; +static const pun_d128 dl_B = {{0x2206c00000000000, 0x0000014d2e7971a1}}; +static const pun_d128 dl_mB = {{0xa206c00000000000, 0x0000014d2e7971a1}}; +static const pun_d128 dl_C = {{0x2206800000000000, 0x0000000000500005}}; +static const pun_d128 dl_mC = {{0xa206800000000000, 0x0000000000500005}}; +static const pun_d128 dl_D = {{0x2206800000000000, 0x0099e570f483c534}}; +static const pun_d128 dl_mD = {{0xa206800000000000, 0x0099e570f483c534}}; +static const pun_d128 dl_DQ = {{0x2207800000000000, 0x0000000000008c01}}; +static const pun_d128 dl_E = {{0x2206800000000000, 0x000000000023d2de}}; +static const pun_d128 dl_mE = {{0xa206800000000000, 0x000000000023d2de}}; + +int main() { - _Decimal128 out; - int *shift = (int *) amount; - - asm volatile (".insn rxf, 0xed0000000049, %[out], %[in], 0(%[amount])\n\t" - :[out]"=f"(out) - :[in]"f"(in),[amount]"a"(shift)); - - printf("SRXT "); - DFP_VAL_PRINT(in, _Decimal128); - printf(" -> "); - DFP_VAL_PRINT(out, _Decimal128); - printf("\n"); -} - -int main() { - _Decimal64 d64 = 50.0005DD; - _Decimal128 d128 = 50.0005DL; - - eedtr(d64); - eedtr(-d64); - eedtr(0.DD); - eextr(d128); - eextr(-d128); - eextr(0.DL); - - esdtr(d64); - esdtr(-d64); - esdtr(0.DD); - esxtr(d128); - esxtr(-d128); - esxtr(0.DL); - - ltdtr(d64); - ltdtr(-d64); - ltdtr(0.0DD); - ltxtr(d128); - ltxtr(-d128); - ltxtr(0.0DL); - - d64 = 12345678.54321DD; - sldt(d64, 10); - sldt(-d64, 2); - sldt(0.DD, 2); - sldt(-0.DD, 2); - - srdt(d64, 5); - srdt(-d64, 2); - srdt(0.DD, 2); - srdt(-0.DD, 2); - - d128 = 12345678.54321DL; - slxt(d128, 10); - slxt(-d128, 2); - slxt(0.DL, 2); - slxt(-0.DL, 2); - - srxt(d128, 10); - srxt(-d128, 2); - srxt(0.DL, 2); - srxt(-0.DL, 2); - - d64 = 5.000005DD; - iedtr(d64, 391); - iedtr(d64, 392); - iedtr(d64, 393); - iedtr(-d64, 391); - iedtr(-d64, 392); - iedtr(-d64, 393); - iedtr(0.DD, 393); - iedtr(-0.DD, 393); - iedtr(1.DD, 393); - - d128 = 5.000005DL; - iextr(d128, 6169); - iextr(d128, 6170); - iextr(d128, 6171); - iextr(-d128, 6169); - iextr(-d128, 6170); - iextr(-d128, 6171); - iextr(0.DL, 6171); - iextr(-0.DL, 6171); - iextr(1.DL, 6171); - - d64 = 2.171234DD; - quantize64(d64, 0.001DD); - quantize64(-d64, 0.001DD); - quantize64(-d64, 0.DD); - quantize64(0.DD, 0.001DD); - - d128 = 26365343648.171234DL; - quantize128(d128, 230.01DL); - quantize128(-d128, 230.01DL); - quantize128(d128, 0.DL); - quantize128(-0.DL, 230.01DL); - - d64 = 2.174598DD; - reround64(d64, 3); - reround64(d64, 4); - reround64(d64, 5); - reround64(-d64, 3); - reround64(-d64, 4); - reround64(-d64, 5); - reround64(0.DD, 0); - - d128 = 2.174598DL; - reround128(d128, 3); - reround128(d128, 4); - reround128(d128, 5); - reround128(-d128, 3); - reround128(-d128, 4); - reround128(-d128, 5); - reround128(0.DL, 0); - - return 0; + eedtr(dd_A); + eedtr(dd_mA); + eedtr(dd_0); + eextr(dl_A); + eextr(dl_mA); + eextr(dl_0); + + esdtr(dd_A); + esdtr(dd_mA); + esdtr(dd_0); + esxtr(dl_A); + esxtr(dl_mA); + esxtr(dl_0); + + ltdtr(dd_A); + ltdtr(dd_mA); + ltdtr(dd_00); + ltxtr(dl_A); + ltxtr(dl_mA); + ltxtr(dl_00); + + sldt(dd_B, 10); + sldt(dd_mB, 2); + sldt(dd_0, 2); + sldt(dd_m0, 2); + + srdt(dd_B, 5); + srdt(dd_mB, 2); + srdt(dd_0, 2); + srdt(dd_m0, 2); + + slxt(dl_B, 10); + slxt(dl_mB, 2); + slxt(dl_0, 2); + slxt(dl_m0, 2); + + srxt(dl_B, 10); + srxt(dl_mB, 2); + srxt(dl_0, 2); + srxt(dl_m0, 2); + + iedtr(dd_C, 391); + iedtr(dd_C, 392); + iedtr(dd_C, 393); + iedtr(dd_mC, 391); + iedtr(dd_mC, 392); + iedtr(dd_mC, 393); + iedtr(dd_0, 393); + iedtr(dd_m0, 393); + iedtr(dd_1, 393); + + iextr(dl_C, 6169); + iextr(dl_C, 6170); + iextr(dl_C, 6171); + iextr(dl_mC, 6169); + iextr(dl_mC, 6170); + iextr(dl_mC, 6171); + iextr(dl_0, 6171); + iextr(dl_m0, 6171); + iextr(dl_1, 6171); + + quantize64(dd_D, dd_DQ); + quantize64(dd_mD, dd_DQ); + quantize64(dd_mD, dd_0); + quantize64(dd_0, dd_DQ); + + quantize128(dl_D, dl_DQ); + quantize128(dl_mD, dl_DQ); + quantize128(dl_D, dl_0); + quantize128(dl_m0, dl_DQ); + + reround64(dd_E, 3); + reround64(dd_E, 4); + reround64(dd_E, 5); + reround64(dd_mE, 3); + reround64(dd_mE, 4); + reround64(dd_mE, 5); + reround64(dd_0, 0); + + reround128(dl_E, 3); + reround128(dl_E, 4); + reround128(dl_E, 5); + reround128(dl_mE, 3); + reround128(dl_mE, 4); + reround128(dl_mE, 5); + reround128(dl_0, 0); + + return 0; } diff --git a/none/tests/s390x/dfp-2.stdout.exp b/none/tests/s390x/dfp-2.stdout.exp index d93da1c258..ab7355f74e 100644 --- a/none/tests/s390x/dfp-2.stdout.exp +++ b/none/tests/s390x/dfp-2.stdout.exp @@ -56,15 +56,15 @@ QADTR 222000000023c534, 222c000000000001, 2 -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, 3 -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, 4 -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, 5 -> 222c0000000008f1 -QADTR 222000000023c534, 222c000000000001, 6 -> 222c0000000008f1 +QADTR 222000000023c534, 222c000000000001, 6 -> 222c0000000008f2 QADTR 222000000023c534, 222c000000000001, 7 -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, 8 -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, 9 -> 222c0000000008f1 -QADTR 222000000023c534, 222c000000000001, a -> 222c0000000008f1 +QADTR 222000000023c534, 222c000000000001, a -> 222c0000000008f2 QADTR 222000000023c534, 222c000000000001, b -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, c -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, d -> 222c0000000008f1 -QADTR 222000000023c534, 222c000000000001, e -> 222c0000000008f1 +QADTR 222000000023c534, 222c000000000001, e -> 222c0000000008f2 QADTR 222000000023c534, 222c000000000001, f -> 222c0000000008f1 QADTR a22000000023c534, 222c000000000001, 0 -> a22c0000000008f1 QADTR a22000000023c534, 222c000000000001, 1 -> a22c0000000008f1 @@ -73,14 +73,14 @@ QADTR a22000000023c534, 222c000000000001, 3 -> a22c0000000008f1 QADTR a22000000023c534, 222c000000000001, 4 -> a22c0000000008f1 QADTR a22000000023c534, 222c000000000001, 5 -> a22c0000000008f1 QADTR a22000000023c534, 222c000000000001, 6 -> a22c0000000008f1 -QADTR a22000000023c534, 222c000000000001, 7 -> a22c0000000008f1 +QADTR a22000000023c534, 222c000000000001, 7 -> a22c0000000008f2 QADTR a22000000023c534, 222c000000000001, 8 -> a22c0000000008f1 QADTR a22000000023c534, 222c000000000001, 9 -> a22c0000000008f1 QADTR a22000000023c534, 222c000000000001, a -> a22c0000000008f1 -QADTR a22000000023c534, 222c000000000001, b -> a22c0000000008f1 +QADTR a22000000023c534, 222c000000000001, b -> a22c0000000008f2 QADTR a22000000023c534, 222c000000000001, c -> a22c0000000008f1 QADTR a22000000023c534, 222c000000000001, d -> a22c0000000008f1 -QADTR a22000000023c534, 222c000000000001, e -> a22c0000000008f1 +QADTR a22000000023c534, 222c000000000001, e -> a22c0000000008f2 QADTR a22000000023c534, 222c000000000001, f -> a22c0000000008f1 QADTR a22000000023c534, 2238000000000000, 0 -> a238000000000002 QADTR a22000000023c534, 2238000000000000, 1 -> a238000000000002 @@ -89,14 +89,14 @@ QADTR a22000000023c534, 2238000000000000, 3 -> a238000000000002 QADTR a22000000023c534, 2238000000000000, 4 -> a238000000000002 QADTR a22000000023c534, 2238000000000000, 5 -> a238000000000002 QADTR a22000000023c534, 2238000000000000, 6 -> a238000000000002 -QADTR a22000000023c534, 2238000000000000, 7 -> a238000000000002 +QADTR a22000000023c534, 2238000000000000, 7 -> a238000000000003 QADTR a22000000023c534, 2238000000000000, 8 -> a238000000000002 QADTR a22000000023c534, 2238000000000000, 9 -> a238000000000002 QADTR a22000000023c534, 2238000000000000, a -> a238000000000002 -QADTR a22000000023c534, 2238000000000000, b -> a238000000000002 +QADTR a22000000023c534, 2238000000000000, b -> a238000000000003 QADTR a22000000023c534, 2238000000000000, c -> a238000000000002 QADTR a22000000023c534, 2238000000000000, d -> a238000000000002 -QADTR a22000000023c534, 2238000000000000, e -> a238000000000002 +QADTR a22000000023c534, 2238000000000000, e -> a238000000000003 QADTR a22000000023c534, 2238000000000000, f -> a238000000000002 QADTR 2238000000000000, 222c000000000001, 0 -> 222c000000000000 QADTR 2238000000000000, 222c000000000001, 1 -> 222c000000000000 @@ -120,15 +120,15 @@ QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 2 -> 2 QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 3 -> 2207800000000000000002cdab47931d QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 4 -> 2207800000000000000002cdab47931d QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 5 -> 2207800000000000000002cdab47931d -QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 6 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 6 -> 2207800000000000000002cdab47903e QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 7 -> 2207800000000000000002cdab47931d QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 8 -> 2207800000000000000002cdab47931d QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 9 -> 2207800000000000000002cdab47931d -QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, a -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, a -> 2207800000000000000002cdab47903e QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, b -> 2207800000000000000002cdab47931d QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, c -> 2207800000000000000002cdab47931d QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, d -> 2207800000000000000002cdab47931d -QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, e -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, e -> 2207800000000000000002cdab47903e QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, f -> 2207800000000000000002cdab47931d QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 0 -> a207800000000000000002cdab47931d QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 1 -> a207800000000000000002cdab47931d @@ -137,14 +137,14 @@ QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 3 -> a QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 4 -> a207800000000000000002cdab47931d QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 5 -> a207800000000000000002cdab47931d QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 6 -> a207800000000000000002cdab47931d -QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 7 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 7 -> a207800000000000000002cdab47903e QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 8 -> a207800000000000000002cdab47931d QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 9 -> a207800000000000000002cdab47931d QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, a -> a207800000000000000002cdab47931d -QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, b -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, b -> a207800000000000000002cdab47903e QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, c -> a207800000000000000002cdab47931d QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, d -> a207800000000000000002cdab47931d -QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, e -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, e -> a207800000000000000002cdab47903e QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, f -> a207800000000000000002cdab47931d QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 0 -> 2208000000000000000000099e570f48 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 1 -> 2208000000000000000000099e570f48 @@ -152,15 +152,15 @@ QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 2 -> 2 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 3 -> 2208000000000000000000099e570f48 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 4 -> 2208000000000000000000099e570f48 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 5 -> 2208000000000000000000099e570f48 -QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 6 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 6 -> 2208000000000000000000099e570f49 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 7 -> 2208000000000000000000099e570f48 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 8 -> 2208000000000000000000099e570f48 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 9 -> 2208000000000000000000099e570f48 -QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, a -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, a -> 2208000000000000000000099e570f49 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, b -> 2208000000000000000000099e570f48 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, c -> 2208000000000000000000099e570f48 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, d -> 2208000000000000000000099e570f48 -QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, e -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, e -> 2208000000000000000000099e570f49 QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, f -> 2208000000000000000000099e570f48 QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 0 -> a2078000000000000000000000000000 QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 1 -> a2078000000000000000000000000000 @@ -184,44 +184,44 @@ RRDTR 222000000023d2de, 3, 2 -> 2230000000000117 RRDTR 222000000023d2de, 3, 3 -> 2230000000000117 RRDTR 222000000023d2de, 3, 4 -> 2230000000000117 RRDTR 222000000023d2de, 3, 5 -> 2230000000000117 -RRDTR 222000000023d2de, 3, 6 -> 2230000000000117 +RRDTR 222000000023d2de, 3, 6 -> 2230000000000118 RRDTR 222000000023d2de, 3, 7 -> 2230000000000117 RRDTR 222000000023d2de, 3, 8 -> 2230000000000117 RRDTR 222000000023d2de, 3, 9 -> 2230000000000117 -RRDTR 222000000023d2de, 3, a -> 2230000000000117 +RRDTR 222000000023d2de, 3, a -> 2230000000000118 RRDTR 222000000023d2de, 3, b -> 2230000000000117 RRDTR 222000000023d2de, 3, c -> 2230000000000117 RRDTR 222000000023d2de, 3, d -> 2230000000000117 -RRDTR 222000000023d2de, 3, e -> 2230000000000117 +RRDTR 222000000023d2de, 3, e -> 2230000000000118 RRDTR 222000000023d2de, 3, f -> 2230000000000117 RRDTR 222000000023d2de, 4, 0 -> 222c0000000008f5 RRDTR 222000000023d2de, 4, 1 -> 222c0000000008f5 RRDTR 222000000023d2de, 4, 2 -> 222c0000000008f5 -RRDTR 222000000023d2de, 4, 3 -> 222c0000000008f5 +RRDTR 222000000023d2de, 4, 3 -> 222c0000000008f4 RRDTR 222000000023d2de, 4, 4 -> 222c0000000008f5 -RRDTR 222000000023d2de, 4, 5 -> 222c0000000008f5 +RRDTR 222000000023d2de, 4, 5 -> 222c0000000008f4 RRDTR 222000000023d2de, 4, 6 -> 222c0000000008f5 -RRDTR 222000000023d2de, 4, 7 -> 222c0000000008f5 +RRDTR 222000000023d2de, 4, 7 -> 222c0000000008f4 RRDTR 222000000023d2de, 4, 8 -> 222c0000000008f5 -RRDTR 222000000023d2de, 4, 9 -> 222c0000000008f5 +RRDTR 222000000023d2de, 4, 9 -> 222c0000000008f4 RRDTR 222000000023d2de, 4, a -> 222c0000000008f5 -RRDTR 222000000023d2de, 4, b -> 222c0000000008f5 +RRDTR 222000000023d2de, 4, b -> 222c0000000008f4 RRDTR 222000000023d2de, 4, c -> 222c0000000008f5 RRDTR 222000000023d2de, 4, d -> 222c0000000008f5 RRDTR 222000000023d2de, 4, e -> 222c0000000008f5 -RRDTR 222000000023d2de, 4, f -> 222c0000000008f5 +RRDTR 222000000023d2de, 4, f -> 222c0000000008f4 RRDTR 222000000023d2de, 5, 0 -> 22280000000087c6 RRDTR 222000000023d2de, 5, 1 -> 22280000000087c6 RRDTR 222000000023d2de, 5, 2 -> 22280000000087c6 RRDTR 222000000023d2de, 5, 3 -> 22280000000087c6 RRDTR 222000000023d2de, 5, 4 -> 22280000000087c6 -RRDTR 222000000023d2de, 5, 5 -> 22280000000087c6 +RRDTR 222000000023d2de, 5, 5 -> 22280000000087c5 RRDTR 222000000023d2de, 5, 6 -> 22280000000087c6 -RRDTR 222000000023d2de, 5, 7 -> 22280000000087c6 +RRDTR 222000000023d2de, 5, 7 -> 22280000000087c5 RRDTR 222000000023d2de, 5, 8 -> 22280000000087c6 -RRDTR 222000000023d2de, 5, 9 -> 22280000000087c6 +RRDTR 222000000023d2de, 5, 9 -> 22280000000087c5 RRDTR 222000000023d2de, 5, a -> 22280000000087c6 -RRDTR 222000000023d2de, 5, b -> 22280000000087c6 +RRDTR 222000000023d2de, 5, b -> 22280000000087c5 RRDTR 222000000023d2de, 5, c -> 22280000000087c6 RRDTR 222000000023d2de, 5, d -> 22280000000087c6 RRDTR 222000000023d2de, 5, e -> 22280000000087c6 @@ -233,42 +233,42 @@ RRDTR a22000000023d2de, 3, 3 -> a230000000000117 RRDTR a22000000023d2de, 3, 4 -> a230000000000117 RRDTR a22000000023d2de, 3, 5 -> a230000000000117 RRDTR a22000000023d2de, 3, 6 -> a230000000000117 -RRDTR a22000000023d2de, 3, 7 -> a230000000000117 +RRDTR a22000000023d2de, 3, 7 -> a230000000000118 RRDTR a22000000023d2de, 3, 8 -> a230000000000117 RRDTR a22000000023d2de, 3, 9 -> a230000000000117 RRDTR a22000000023d2de, 3, a -> a230000000000117 -RRDTR a22000000023d2de, 3, b -> a230000000000117 +RRDTR a22000000023d2de, 3, b -> a230000000000118 RRDTR a22000000023d2de, 3, c -> a230000000000117 RRDTR a22000000023d2de, 3, d -> a230000000000117 -RRDTR a22000000023d2de, 3, e -> a230000000000117 +RRDTR a22000000023d2de, 3, e -> a230000000000118 RRDTR a22000000023d2de, 3, f -> a230000000000117 RRDTR a22000000023d2de, 4, 0 -> a22c0000000008f5 RRDTR a22000000023d2de, 4, 1 -> a22c0000000008f5 RRDTR a22000000023d2de, 4, 2 -> a22c0000000008f5 -RRDTR a22000000023d2de, 4, 3 -> a22c0000000008f5 +RRDTR a22000000023d2de, 4, 3 -> a22c0000000008f4 RRDTR a22000000023d2de, 4, 4 -> a22c0000000008f5 -RRDTR a22000000023d2de, 4, 5 -> a22c0000000008f5 -RRDTR a22000000023d2de, 4, 6 -> a22c0000000008f5 +RRDTR a22000000023d2de, 4, 5 -> a22c0000000008f4 +RRDTR a22000000023d2de, 4, 6 -> a22c0000000008f4 RRDTR a22000000023d2de, 4, 7 -> a22c0000000008f5 RRDTR a22000000023d2de, 4, 8 -> a22c0000000008f5 -RRDTR a22000000023d2de, 4, 9 -> a22c0000000008f5 -RRDTR a22000000023d2de, 4, a -> a22c0000000008f5 +RRDTR a22000000023d2de, 4, 9 -> a22c0000000008f4 +RRDTR a22000000023d2de, 4, a -> a22c0000000008f4 RRDTR a22000000023d2de, 4, b -> a22c0000000008f5 RRDTR a22000000023d2de, 4, c -> a22c0000000008f5 RRDTR a22000000023d2de, 4, d -> a22c0000000008f5 RRDTR a22000000023d2de, 4, e -> a22c0000000008f5 -RRDTR a22000000023d2de, 4, f -> a22c0000000008f5 +RRDTR a22000000023d2de, 4, f -> a22c0000000008f4 RRDTR a22000000023d2de, 5, 0 -> a2280000000087c6 RRDTR a22000000023d2de, 5, 1 -> a2280000000087c6 RRDTR a22000000023d2de, 5, 2 -> a2280000000087c6 RRDTR a22000000023d2de, 5, 3 -> a2280000000087c6 RRDTR a22000000023d2de, 5, 4 -> a2280000000087c6 -RRDTR a22000000023d2de, 5, 5 -> a2280000000087c6 -RRDTR a22000000023d2de, 5, 6 -> a2280000000087c6 +RRDTR a22000000023d2de, 5, 5 -> a2280000000087c5 +RRDTR a22000000023d2de, 5, 6 -> a2280000000087c5 RRDTR a22000000023d2de, 5, 7 -> a2280000000087c6 RRDTR a22000000023d2de, 5, 8 -> a2280000000087c6 -RRDTR a22000000023d2de, 5, 9 -> a2280000000087c6 -RRDTR a22000000023d2de, 5, a -> a2280000000087c6 +RRDTR a22000000023d2de, 5, 9 -> a2280000000087c5 +RRDTR a22000000023d2de, 5, a -> a2280000000087c5 RRDTR a22000000023d2de, 5, b -> a2280000000087c6 RRDTR a22000000023d2de, 5, c -> a2280000000087c6 RRDTR a22000000023d2de, 5, d -> a2280000000087c6 @@ -296,44 +296,44 @@ RRXTR 2206800000000000000000000023d2de, 3, 2 -> 22078000000000000000000000000117 RRXTR 2206800000000000000000000023d2de, 3, 3 -> 22078000000000000000000000000117 RRXTR 2206800000000000000000000023d2de, 3, 4 -> 22078000000000000000000000000117 RRXTR 2206800000000000000000000023d2de, 3, 5 -> 22078000000000000000000000000117 -RRXTR 2206800000000000000000000023d2de, 3, 6 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 6 -> 22078000000000000000000000000118 RRXTR 2206800000000000000000000023d2de, 3, 7 -> 22078000000000000000000000000117 RRXTR 2206800000000000000000000023d2de, 3, 8 -> 22078000000000000000000000000117 RRXTR 2206800000000000000000000023d2de, 3, 9 -> 22078000000000000000000000000117 -RRXTR 2206800000000000000000000023d2de, 3, a -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, a -> 22078000000000000000000000000118 RRXTR 2206800000000000000000000023d2de, 3, b -> 22078000000000000000000000000117 RRXTR 2206800000000000000000000023d2de, 3, c -> 22078000000000000000000000000117 RRXTR 2206800000000000000000000023d2de, 3, d -> 22078000000000000000000000000117 -RRXTR 2206800000000000000000000023d2de, 3, e -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, e -> 22078000000000000000000000000118 RRXTR 2206800000000000000000000023d2de, 3, f -> 22078000000000000000000000000117 RRXTR 2206800000000000000000000023d2de, 4, 0 -> 220740000000000000000000000008f5 RRXTR 2206800000000000000000000023d2de, 4, 1 -> 220740000000000000000000000008f5 RRXTR 2206800000000000000000000023d2de, 4, 2 -> 220740000000000000000000000008f5 -RRXTR 2206800000000000000000000023d2de, 4, 3 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 3 -> 220740000000000000000000000008f4 RRXTR 2206800000000000000000000023d2de, 4, 4 -> 220740000000000000000000000008f5 -RRXTR 2206800000000000000000000023d2de, 4, 5 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 5 -> 220740000000000000000000000008f4 RRXTR 2206800000000000000000000023d2de, 4, 6 -> 220740000000000000000000000008f5 -RRXTR 2206800000000000000000000023d2de, 4, 7 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 7 -> 220740000000000000000000000008f4 RRXTR 2206800000000000000000000023d2de, 4, 8 -> 220740000000000000000000000008f5 -RRXTR 2206800000000000000000000023d2de, 4, 9 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 9 -> 220740000000000000000000000008f4 RRXTR 2206800000000000000000000023d2de, 4, a -> 220740000000000000000000000008f5 -RRXTR 2206800000000000000000000023d2de, 4, b -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, b -> 220740000000000000000000000008f4 RRXTR 2206800000000000000000000023d2de, 4, c -> 220740000000000000000000000008f5 RRXTR 2206800000000000000000000023d2de, 4, d -> 220740000000000000000000000008f5 RRXTR 2206800000000000000000000023d2de, 4, e -> 220740000000000000000000000008f5 -RRXTR 2206800000000000000000000023d2de, 4, f -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, f -> 220740000000000000000000000008f4 RRXTR 2206800000000000000000000023d2de, 5, 0 -> 220700000000000000000000000087c6 RRXTR 2206800000000000000000000023d2de, 5, 1 -> 220700000000000000000000000087c6 RRXTR 2206800000000000000000000023d2de, 5, 2 -> 220700000000000000000000000087c6 RRXTR 2206800000000000000000000023d2de, 5, 3 -> 220700000000000000000000000087c6 RRXTR 2206800000000000000000000023d2de, 5, 4 -> 220700000000000000000000000087c6 -RRXTR 2206800000000000000000000023d2de, 5, 5 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 5 -> 220700000000000000000000000087c5 RRXTR 2206800000000000000000000023d2de, 5, 6 -> 220700000000000000000000000087c6 -RRXTR 2206800000000000000000000023d2de, 5, 7 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 7 -> 220700000000000000000000000087c5 RRXTR 2206800000000000000000000023d2de, 5, 8 -> 220700000000000000000000000087c6 -RRXTR 2206800000000000000000000023d2de, 5, 9 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 9 -> 220700000000000000000000000087c5 RRXTR 2206800000000000000000000023d2de, 5, a -> 220700000000000000000000000087c6 -RRXTR 2206800000000000000000000023d2de, 5, b -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, b -> 220700000000000000000000000087c5 RRXTR 2206800000000000000000000023d2de, 5, c -> 220700000000000000000000000087c6 RRXTR 2206800000000000000000000023d2de, 5, d -> 220700000000000000000000000087c6 RRXTR 2206800000000000000000000023d2de, 5, e -> 220700000000000000000000000087c6 @@ -345,42 +345,42 @@ RRXTR a206800000000000000000000023d2de, 3, 3 -> a2078000000000000000000000000117 RRXTR a206800000000000000000000023d2de, 3, 4 -> a2078000000000000000000000000117 RRXTR a206800000000000000000000023d2de, 3, 5 -> a2078000000000000000000000000117 RRXTR a206800000000000000000000023d2de, 3, 6 -> a2078000000000000000000000000117 -RRXTR a206800000000000000000000023d2de, 3, 7 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 7 -> a2078000000000000000000000000118 RRXTR a206800000000000000000000023d2de, 3, 8 -> a2078000000000000000000000000117 RRXTR a206800000000000000000000023d2de, 3, 9 -> a2078000000000000000000000000117 RRXTR a206800000000000000000000023d2de, 3, a -> a2078000000000000000000000000117 -RRXTR a206800000000000000000000023d2de, 3, b -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, b -> a2078000000000000000000000000118 RRXTR a206800000000000000000000023d2de, 3, c -> a2078000000000000000000000000117 RRXTR a206800000000000000000000023d2de, 3, d -> a2078000000000000000000000000117 -RRXTR a206800000000000000000000023d2de, 3, e -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, e -> a2078000000000000000000000000118 RRXTR a206800000000000000000000023d2de, 3, f -> a2078000000000000000000000000117 RRXTR a206800000000000000000000023d2de, 4, 0 -> a20740000000000000000000000008f5 RRXTR a206800000000000000000000023d2de, 4, 1 -> a20740000000000000000000000008f5 RRXTR a206800000000000000000000023d2de, 4, 2 -> a20740000000000000000000000008f5 -RRXTR a206800000000000000000000023d2de, 4, 3 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 3 -> a20740000000000000000000000008f4 RRXTR a206800000000000000000000023d2de, 4, 4 -> a20740000000000000000000000008f5 -RRXTR a206800000000000000000000023d2de, 4, 5 -> a20740000000000000000000000008f5 -RRXTR a206800000000000000000000023d2de, 4, 6 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 5 -> a20740000000000000000000000008f4 +RRXTR a206800000000000000000000023d2de, 4, 6 -> a20740000000000000000000000008f4 RRXTR a206800000000000000000000023d2de, 4, 7 -> a20740000000000000000000000008f5 RRXTR a206800000000000000000000023d2de, 4, 8 -> a20740000000000000000000000008f5 -RRXTR a206800000000000000000000023d2de, 4, 9 -> a20740000000000000000000000008f5 -RRXTR a206800000000000000000000023d2de, 4, a -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 9 -> a20740000000000000000000000008f4 +RRXTR a206800000000000000000000023d2de, 4, a -> a20740000000000000000000000008f4 RRXTR a206800000000000000000000023d2de, 4, b -> a20740000000000000000000000008f5 RRXTR a206800000000000000000000023d2de, 4, c -> a20740000000000000000000000008f5 RRXTR a206800000000000000000000023d2de, 4, d -> a20740000000000000000000000008f5 RRXTR a206800000000000000000000023d2de, 4, e -> a20740000000000000000000000008f5 -RRXTR a206800000000000000000000023d2de, 4, f -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, f -> a20740000000000000000000000008f4 RRXTR a206800000000000000000000023d2de, 5, 0 -> a20700000000000000000000000087c6 RRXTR a206800000000000000000000023d2de, 5, 1 -> a20700000000000000000000000087c6 RRXTR a206800000000000000000000023d2de, 5, 2 -> a20700000000000000000000000087c6 RRXTR a206800000000000000000000023d2de, 5, 3 -> a20700000000000000000000000087c6 RRXTR a206800000000000000000000023d2de, 5, 4 -> a20700000000000000000000000087c6 -RRXTR a206800000000000000000000023d2de, 5, 5 -> a20700000000000000000000000087c6 -RRXTR a206800000000000000000000023d2de, 5, 6 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 5 -> a20700000000000000000000000087c5 +RRXTR a206800000000000000000000023d2de, 5, 6 -> a20700000000000000000000000087c5 RRXTR a206800000000000000000000023d2de, 5, 7 -> a20700000000000000000000000087c6 RRXTR a206800000000000000000000023d2de, 5, 8 -> a20700000000000000000000000087c6 -RRXTR a206800000000000000000000023d2de, 5, 9 -> a20700000000000000000000000087c6 -RRXTR a206800000000000000000000023d2de, 5, a -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 9 -> a20700000000000000000000000087c5 +RRXTR a206800000000000000000000023d2de, 5, a -> a20700000000000000000000000087c5 RRXTR a206800000000000000000000023d2de, 5, b -> a20700000000000000000000000087c6 RRXTR a206800000000000000000000023d2de, 5, c -> a20700000000000000000000000087c6 RRXTR a206800000000000000000000023d2de, 5, d -> a20700000000000000000000000087c6 |
|
From: Andreas A. <ar...@so...> - 2023-09-07 15:04:45
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=f83a74ec0726bc31a48e5e511e4afa871bc7dbde commit f83a74ec0726bc31a48e5e511e4afa871bc7dbde Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:25 2023 +0200 s390x regtest: Rework dfpconv The dfpconv test case has two major issues: * It truncates certain 64-bit integers to 32 bits when using them as inputs or outputs to inline assemblies. In particular this leads to wrong output. * It uses `_Decimal*' types and thus cannot be compiled with Clang. Fix both. Also, remove a duplicate from the set of tested numbers, remove the dependency on "opcodes.h", and fix indentation. Since the test output file dfpconv.stdout.exp is affected by these changes, adjust it accordingly. Diff: --- none/tests/s390x/dfpconv.c | 250 ++++++++++++------------ none/tests/s390x/dfpconv.stdout.exp | 368 +++++++++++++++++------------------- 2 files changed, 293 insertions(+), 325 deletions(-) diff --git a/none/tests/s390x/dfpconv.c b/none/tests/s390x/dfpconv.c index 5656a0e99b..c1532d6cdf 100644 --- a/none/tests/s390x/dfpconv.c +++ b/none/tests/s390x/dfpconv.c @@ -1,150 +1,146 @@ -#include <stdio.h> -#include "opcodes.h" #include "dfp_utils.h" -#define __STDC_WANT_DEC_FP__ 1 -#include <float.h> - -#define I2D(insn, initial, target,round) \ - ({ \ - register int source asm("2") = initial; \ - register typeof(target) _t asm("f0"); \ - asm volatile(insn(round,0,0,2) :"=f" (_t):"d"(source)); \ - _t; \ -}) - -#define D2I(insn, initial, type, round, cc) \ - ({ \ - register type source asm("f0") = initial; \ - register int target asm ("2") = 0; \ - asm volatile(insn(round,0,2,0) \ - "ipm %1\n\t" \ - "srl %1,28\n\t" \ - :"=d" (target), "=d" (cc) :"f"(source):"cc"); \ - target; \ -}) - - -#define DO_PRINT_I2D(insn, l, d, round) \ - ({ \ - printf(#insn " round=%d %d -> ", 0x##round, l); \ - d = I2D(insn, l, d, round); \ - DFP_VAL_PRINT(d, typeof(d)); \ - printf("\n"); \ - }) - -#define DO_INSN_I2D(insn, round, type) \ - ({ \ - type d; \ - DO_PRINT_I2D(insn, 0, d, round); \ - DO_PRINT_I2D(insn, 1, d, round); \ - DO_PRINT_I2D(insn, 0xffffffff, d, round); \ - DO_PRINT_I2D(insn, 0x80000000, d, round); \ - DO_PRINT_I2D(insn, 0x7fffffff, d, round); \ +#include <stdio.h> + +#define DO_PRINT_I2D(insn, l, type, round) \ + ({ \ + long source = l; \ + type d; \ + printf(#insn " round=%d %ld -> ", round, source); \ + asm(".insn rrf," insn() "0000,%[r1],%[r2],%[m],0" \ + : [r1] "=f"(d.f) \ + : [r2] "d"(source), [m] "i"(round)); \ + DFP_VAL_PRINT(d, type); \ + printf("\n"); \ + }) + +#define DO_INSN_I2D(insn, round, type) \ + ({ \ + DO_PRINT_I2D(insn, 0, type, round); \ + DO_PRINT_I2D(insn, 1, type, round); \ + DO_PRINT_I2D(insn, 0xffffffff, type, round); \ + DO_PRINT_I2D(insn, 0x80000000, type, round); \ + DO_PRINT_I2D(insn, 0x7fffffff, type, round); \ }) -#define DO_PRINT_D2I(insn, d, type, round, cc) \ - ({ \ - printf(#insn " round=%d ", 0x##round); \ - DFP_VAL_PRINT(d, type); \ - printf(" -> %d ", D2I(insn, d, type, round, cc)); \ - printf("cc=%d\n", cc); \ - }) - -#define DO_INSN_D2I(insn, round, type) \ - ({ \ - int cc; \ - type d; \ - d = -1.1DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 0.DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.4DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.5DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+4DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+8DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+4DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+12DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+20DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E+200DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = 1.6E-4DD; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = DEC32_MIN; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = DEC32_MAX; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = DEC64_MIN; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - d = DEC64_MAX; \ - DO_PRINT_D2I(insn, d, type, round, cc); \ - }) - -#define DO_D2I(round) \ - ({ \ - DO_INSN_D2I(CGDTRA, round, _Decimal64); \ - DO_INSN_D2I(CGXTRA, round, _Decimal128); \ - }) +#define DO_PRINT_D2I(insn, d, type, round) \ + ({ \ + long target = 0; \ + int cc; \ + printf(#insn " round=%d ", round); \ + DFP_VAL_PRINT(d, type); \ + asm(".insn rrf," insn() "0000,%[r1],%[r2],%[m],0\n\t" \ + "ipm %[c]\n\t" \ + "srl %[c],28\n\t" \ + : [r1] "+d"(target), [c] "=d"(cc) \ + : [r2] "f"(d.f), [m] "i"(round) \ + : "cc"); \ + printf(" -> %ld cc=%d\n", target, cc); \ + }) + +static const pun_d64 d64_vals[] = { + {0xa234000000000011}, /* -1.1DD */ + {0x2238000000000000}, /* 0.DD */ + {0x2238000000000001}, /* 1.DD */ + {0x2234000000000014}, /* 1.4DD */ + {0x2234000000000015}, /* 1.5DD */ + {0x2234000000000016}, /* 1.6DD */ + {0x2244000000000016}, /* 1.6E+4DD */ + {0x2254000000000016}, /* 1.6E+8DD */ + {0x2264000000000016}, /* 1.6E+12DD */ + {0x2284000000000016}, /* 1.6E+20DD */ + {0x4154000000000016}, /* 1.6E+200DD */ + {0x2224000000000016}, /* 1.6E-4DD */ + {0x20bc000000000001}, /* DEC32_MIN */ + {0x23a000000093fcff}, /* DEC32_MAX */ + {0x003c000000000001}, /* DEC64_MIN */ + {0x77fcff3fcff3fcff}, /* DEC64_MAX */ +}; + +static const pun_d128 d128_vals[] = { + {{0xa207c00000000000, 0x0000000000000011}}, + {{0x2208000000000000, 0x0000000000000000}}, + {{0x2208000000000000, 0x0000000000000001}}, + {{0x2207c00000000000, 0x0000000000000014}}, + {{0x2207c00000000000, 0x0000000000000015}}, + {{0x2207c00000000000, 0x0000000000000016}}, + {{0x2208c00000000000, 0x0000000000000016}}, + {{0x2209c00000000000, 0x0000000000000016}}, + {{0x220ac00000000000, 0x0000000000000016}}, + {{0x220cc00000000000, 0x0000000000000016}}, + {{0x2239c00000000000, 0x0000000000000016}}, + {{0x2206c00000000000, 0x0000000000000016}}, + {{0x21f0400000000000, 0x0000000000000001}}, + {{0x221e800000000000, 0x000000000093fcff}}, + {{0x21a8400000000000, 0x0000000000000001}}, + {{0x2264400000000000, 0x0024ff3fcff3fcff}}, +}; + +#define DO_INSN_D2I(insn, round, t) \ + ({ \ + for (unsigned j = 0; j < sizeof(t##_vals) / sizeof(t##_vals[0]); j++) { \ + DO_PRINT_D2I(insn, t##_vals[j], pun_##t, round); \ + } \ + }) + +#define DO_D2I(round) \ + ({ \ + DO_INSN_D2I(CGDTRA, round, d64); \ + DO_INSN_D2I(CGXTRA, round, d128); \ + }) +#define CGDTRA() "0xb3e1" +#define CGXTRA() "0xb3e9" +#define CDGTRA() "0xb3f1" +#define CXGTRA() "0xb3f9" int main() { - /* rounding mode is not used for the I64 -> D128 conversion */ - DO_INSN_I2D(CXGTRA, 0, _Decimal128); + /* rounding mode is not used for the I64 -> D128 conversion */ + DO_INSN_I2D(CXGTRA, 0, pun_d128); - /* Omit rounding mode value 0 and 2 as the current DFP rounding - mode is chosen for these values. */ - DO_INSN_I2D(CDGTRA, 1, _Decimal64); - DO_D2I(1); + /* Omit rounding mode value 0 and 2 as the current DFP rounding + mode is chosen for these values. */ + DO_INSN_I2D(CDGTRA, 1, pun_d64); + DO_D2I(1); - DO_INSN_I2D(CDGTRA, 3, _Decimal64); - DO_D2I(3); + DO_INSN_I2D(CDGTRA, 3, pun_d64); + DO_D2I(3); - DO_INSN_I2D(CDGTRA, 4, _Decimal64); - DO_D2I(4); + DO_INSN_I2D(CDGTRA, 4, pun_d64); + DO_D2I(4); - DO_INSN_I2D(CDGTRA, 5, _Decimal64); - DO_D2I(5); + DO_INSN_I2D(CDGTRA, 5, pun_d64); + DO_D2I(5); - DO_INSN_I2D(CDGTRA, 6, _Decimal64); - DO_D2I(6); + DO_INSN_I2D(CDGTRA, 6, pun_d64); + DO_D2I(6); - DO_INSN_I2D(CDGTRA, 7, _Decimal64); - DO_D2I(7); + DO_INSN_I2D(CDGTRA, 7, pun_d64); + DO_D2I(7); - DO_INSN_I2D(CDGTRA, 8, _Decimal64); - DO_D2I(8); + DO_INSN_I2D(CDGTRA, 8, pun_d64); + DO_D2I(8); - DO_INSN_I2D(CDGTRA, 9, _Decimal64); - DO_D2I(9); + DO_INSN_I2D(CDGTRA, 9, pun_d64); + DO_D2I(9); - DO_INSN_I2D(CDGTRA, a, _Decimal64); - DO_D2I(a); + DO_INSN_I2D(CDGTRA, 10, pun_d64); + DO_D2I(10); - DO_INSN_I2D(CDGTRA, b, _Decimal64); - DO_D2I(b); + DO_INSN_I2D(CDGTRA, 11, pun_d64); + DO_D2I(11); - DO_INSN_I2D(CDGTRA, c, _Decimal64); - DO_D2I(c); + DO_INSN_I2D(CDGTRA, 12, pun_d64); + DO_D2I(12); - DO_INSN_I2D(CDGTRA, d, _Decimal64); - DO_D2I(d); + DO_INSN_I2D(CDGTRA, 13, pun_d64); + DO_D2I(13); - DO_INSN_I2D(CDGTRA, e, _Decimal64); - DO_D2I(e); + DO_INSN_I2D(CDGTRA, 14, pun_d64); + DO_D2I(14); - DO_INSN_I2D(CDGTRA, f, _Decimal64); - DO_D2I(f); + DO_INSN_I2D(CDGTRA, 15, pun_d64); + DO_D2I(15); - return 0; + return 0; } diff --git a/none/tests/s390x/dfpconv.stdout.exp b/none/tests/s390x/dfpconv.stdout.exp index 54ef54ba53..c3d52a8fd0 100644 --- a/none/tests/s390x/dfpconv.stdout.exp +++ b/none/tests/s390x/dfpconv.stdout.exp @@ -1,12 +1,12 @@ CXGTRA round=0 0 -> 22080000000000000000000000000000 CXGTRA round=0 1 -> 22080000000000000000000000000001 -CXGTRA round=0 -1 -> 22080000000000000000000115afb55b -CXGTRA round=0 -2147483648 -> 2208000000000000000000008c78af48 +CXGTRA round=0 4294967295 -> 22080000000000000000000115afb55b +CXGTRA round=0 2147483648 -> 2208000000000000000000008c78af48 CXGTRA round=0 2147483647 -> 2208000000000000000000008c78af47 CDGTRA round=1 0 -> 2238000000000000 CDGTRA round=1 1 -> 2238000000000001 -CDGTRA round=1 -1 -> 2238000115afb55b -CDGTRA round=1 -2147483648 -> 223800008c78af48 +CDGTRA round=1 4294967295 -> 2238000115afb55b +CDGTRA round=1 2147483648 -> 223800008c78af48 CDGTRA round=1 2147483647 -> 223800008c78af47 CGDTRA round=1 a234000000000011 -> -1 cc=1 CGDTRA round=1 2238000000000000 -> 0 cc=0 @@ -16,15 +16,14 @@ CGDTRA round=1 2234000000000015 -> 2 cc=2 CGDTRA round=1 2234000000000016 -> 2 cc=2 CGDTRA round=1 2244000000000016 -> 16000 cc=2 CGDTRA round=1 2254000000000016 -> 160000000 cc=2 -CGDTRA round=1 2244000000000016 -> 16000 cc=2 -CGDTRA round=1 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=1 2284000000000016 -> -1 cc=3 -CGDTRA round=1 4154000000000016 -> -1 cc=3 +CGDTRA round=1 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=1 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=1 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=1 2224000000000016 -> 0 cc=2 CGDTRA round=1 20bc000000000001 -> 0 cc=2 -CGDTRA round=1 23a000000093fcff -> -1 cc=3 +CGDTRA round=1 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=1 003c000000000001 -> 0 cc=2 -CGDTRA round=1 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=1 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=1 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=1 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=1 22080000000000000000000000000001 -> 1 cc=2 @@ -33,19 +32,18 @@ CGXTRA round=1 2207c000000000000000000000000015 -> 2 cc=2 CGXTRA round=1 2207c000000000000000000000000016 -> 2 cc=2 CGXTRA round=1 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=1 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=1 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=1 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=1 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=1 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=1 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=1 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=1 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=1 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=1 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=1 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=1 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=1 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=1 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=1 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=3 0 -> 2238000000000000 CDGTRA round=3 1 -> 2238000000000001 -CDGTRA round=3 -1 -> 2238000115afb55b -CDGTRA round=3 -2147483648 -> 223800008c78af48 +CDGTRA round=3 4294967295 -> 2238000115afb55b +CDGTRA round=3 2147483648 -> 223800008c78af48 CDGTRA round=3 2147483647 -> 223800008c78af47 CGDTRA round=3 a234000000000011 -> -1 cc=1 CGDTRA round=3 2238000000000000 -> 0 cc=0 @@ -55,15 +53,14 @@ CGDTRA round=3 2234000000000015 -> 1 cc=2 CGDTRA round=3 2234000000000016 -> 1 cc=2 CGDTRA round=3 2244000000000016 -> 16000 cc=2 CGDTRA round=3 2254000000000016 -> 160000000 cc=2 -CGDTRA round=3 2244000000000016 -> 16000 cc=2 -CGDTRA round=3 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=3 2284000000000016 -> -1 cc=3 -CGDTRA round=3 4154000000000016 -> -1 cc=3 +CGDTRA round=3 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=3 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=3 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=3 2224000000000016 -> 1 cc=2 CGDTRA round=3 20bc000000000001 -> 1 cc=2 -CGDTRA round=3 23a000000093fcff -> -1 cc=3 +CGDTRA round=3 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=3 003c000000000001 -> 1 cc=2 -CGDTRA round=3 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=3 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=3 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=3 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=3 22080000000000000000000000000001 -> 1 cc=2 @@ -72,19 +69,18 @@ CGXTRA round=3 2207c000000000000000000000000015 -> 1 cc=2 CGXTRA round=3 2207c000000000000000000000000016 -> 1 cc=2 CGXTRA round=3 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=3 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=3 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=3 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=3 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=3 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=3 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=3 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=3 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=3 2206c000000000000000000000000016 -> 1 cc=2 CGXTRA round=3 21f04000000000000000000000000001 -> 1 cc=2 -CGXTRA round=3 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=3 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=3 21a84000000000000000000000000001 -> 1 cc=2 -CGXTRA round=3 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=3 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=4 0 -> 2238000000000000 CDGTRA round=4 1 -> 2238000000000001 -CDGTRA round=4 -1 -> 2238000115afb55b -CDGTRA round=4 -2147483648 -> 223800008c78af48 +CDGTRA round=4 4294967295 -> 2238000115afb55b +CDGTRA round=4 2147483648 -> 223800008c78af48 CDGTRA round=4 2147483647 -> 223800008c78af47 CGDTRA round=4 a234000000000011 -> -1 cc=1 CGDTRA round=4 2238000000000000 -> 0 cc=0 @@ -94,15 +90,14 @@ CGDTRA round=4 2234000000000015 -> 2 cc=2 CGDTRA round=4 2234000000000016 -> 2 cc=2 CGDTRA round=4 2244000000000016 -> 16000 cc=2 CGDTRA round=4 2254000000000016 -> 160000000 cc=2 -CGDTRA round=4 2244000000000016 -> 16000 cc=2 -CGDTRA round=4 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=4 2284000000000016 -> -1 cc=3 -CGDTRA round=4 4154000000000016 -> -1 cc=3 +CGDTRA round=4 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=4 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=4 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=4 2224000000000016 -> 0 cc=2 CGDTRA round=4 20bc000000000001 -> 0 cc=2 -CGDTRA round=4 23a000000093fcff -> -1 cc=3 +CGDTRA round=4 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=4 003c000000000001 -> 0 cc=2 -CGDTRA round=4 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=4 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=4 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=4 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=4 22080000000000000000000000000001 -> 1 cc=2 @@ -111,19 +106,18 @@ CGXTRA round=4 2207c000000000000000000000000015 -> 2 cc=2 CGXTRA round=4 2207c000000000000000000000000016 -> 2 cc=2 CGXTRA round=4 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=4 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=4 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=4 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=4 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=4 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=4 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=4 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=4 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=4 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=4 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=4 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=4 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=4 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=4 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=4 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=5 0 -> 2238000000000000 CDGTRA round=5 1 -> 2238000000000001 -CDGTRA round=5 -1 -> 2238000115afb55b -CDGTRA round=5 -2147483648 -> 223800008c78af48 +CDGTRA round=5 4294967295 -> 2238000115afb55b +CDGTRA round=5 2147483648 -> 223800008c78af48 CDGTRA round=5 2147483647 -> 223800008c78af47 CGDTRA round=5 a234000000000011 -> -1 cc=1 CGDTRA round=5 2238000000000000 -> 0 cc=0 @@ -133,15 +127,14 @@ CGDTRA round=5 2234000000000015 -> 1 cc=2 CGDTRA round=5 2234000000000016 -> 1 cc=2 CGDTRA round=5 2244000000000016 -> 16000 cc=2 CGDTRA round=5 2254000000000016 -> 160000000 cc=2 -CGDTRA round=5 2244000000000016 -> 16000 cc=2 -CGDTRA round=5 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=5 2284000000000016 -> -1 cc=3 -CGDTRA round=5 4154000000000016 -> -1 cc=3 +CGDTRA round=5 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=5 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=5 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=5 2224000000000016 -> 0 cc=2 CGDTRA round=5 20bc000000000001 -> 0 cc=2 -CGDTRA round=5 23a000000093fcff -> -1 cc=3 +CGDTRA round=5 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=5 003c000000000001 -> 0 cc=2 -CGDTRA round=5 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=5 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=5 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=5 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=5 22080000000000000000000000000001 -> 1 cc=2 @@ -150,19 +143,18 @@ CGXTRA round=5 2207c000000000000000000000000015 -> 1 cc=2 CGXTRA round=5 2207c000000000000000000000000016 -> 1 cc=2 CGXTRA round=5 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=5 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=5 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=5 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=5 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=5 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=5 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=5 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=5 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=5 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=5 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=5 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=5 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=5 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=5 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=5 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=6 0 -> 2238000000000000 CDGTRA round=6 1 -> 2238000000000001 -CDGTRA round=6 -1 -> 2238000115afb55b -CDGTRA round=6 -2147483648 -> 223800008c78af48 +CDGTRA round=6 4294967295 -> 2238000115afb55b +CDGTRA round=6 2147483648 -> 223800008c78af48 CDGTRA round=6 2147483647 -> 223800008c78af47 CGDTRA round=6 a234000000000011 -> -1 cc=1 CGDTRA round=6 2238000000000000 -> 0 cc=0 @@ -172,15 +164,14 @@ CGDTRA round=6 2234000000000015 -> 2 cc=2 CGDTRA round=6 2234000000000016 -> 2 cc=2 CGDTRA round=6 2244000000000016 -> 16000 cc=2 CGDTRA round=6 2254000000000016 -> 160000000 cc=2 -CGDTRA round=6 2244000000000016 -> 16000 cc=2 -CGDTRA round=6 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=6 2284000000000016 -> -1 cc=3 -CGDTRA round=6 4154000000000016 -> -1 cc=3 +CGDTRA round=6 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=6 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=6 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=6 2224000000000016 -> 1 cc=2 CGDTRA round=6 20bc000000000001 -> 1 cc=2 -CGDTRA round=6 23a000000093fcff -> -1 cc=3 +CGDTRA round=6 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=6 003c000000000001 -> 1 cc=2 -CGDTRA round=6 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=6 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=6 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=6 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=6 22080000000000000000000000000001 -> 1 cc=2 @@ -189,19 +180,18 @@ CGXTRA round=6 2207c000000000000000000000000015 -> 2 cc=2 CGXTRA round=6 2207c000000000000000000000000016 -> 2 cc=2 CGXTRA round=6 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=6 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=6 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=6 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=6 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=6 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=6 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=6 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=6 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=6 2206c000000000000000000000000016 -> 1 cc=2 CGXTRA round=6 21f04000000000000000000000000001 -> 1 cc=2 -CGXTRA round=6 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=6 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=6 21a84000000000000000000000000001 -> 1 cc=2 -CGXTRA round=6 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=6 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=7 0 -> 2238000000000000 CDGTRA round=7 1 -> 2238000000000001 -CDGTRA round=7 -1 -> 2238000115afb55b -CDGTRA round=7 -2147483648 -> 223800008c78af48 +CDGTRA round=7 4294967295 -> 2238000115afb55b +CDGTRA round=7 2147483648 -> 223800008c78af48 CDGTRA round=7 2147483647 -> 223800008c78af47 CGDTRA round=7 a234000000000011 -> -2 cc=1 CGDTRA round=7 2238000000000000 -> 0 cc=0 @@ -211,15 +201,14 @@ CGDTRA round=7 2234000000000015 -> 1 cc=2 CGDTRA round=7 2234000000000016 -> 1 cc=2 CGDTRA round=7 2244000000000016 -> 16000 cc=2 CGDTRA round=7 2254000000000016 -> 160000000 cc=2 -CGDTRA round=7 2244000000000016 -> 16000 cc=2 -CGDTRA round=7 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=7 2284000000000016 -> -1 cc=3 -CGDTRA round=7 4154000000000016 -> -1 cc=3 +CGDTRA round=7 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=7 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=7 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=7 2224000000000016 -> 0 cc=2 CGDTRA round=7 20bc000000000001 -> 0 cc=2 -CGDTRA round=7 23a000000093fcff -> -1 cc=3 +CGDTRA round=7 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=7 003c000000000001 -> 0 cc=2 -CGDTRA round=7 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=7 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=7 a207c000000000000000000000000011 -> -2 cc=1 CGXTRA round=7 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=7 22080000000000000000000000000001 -> 1 cc=2 @@ -228,19 +217,18 @@ CGXTRA round=7 2207c000000000000000000000000015 -> 1 cc=2 CGXTRA round=7 2207c000000000000000000000000016 -> 1 cc=2 CGXTRA round=7 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=7 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=7 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=7 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=7 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=7 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=7 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=7 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=7 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=7 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=7 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=7 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=7 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=7 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=7 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=7 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=8 0 -> 2238000000000000 CDGTRA round=8 1 -> 2238000000000001 -CDGTRA round=8 -1 -> 2238000115afb55b -CDGTRA round=8 -2147483648 -> 223800008c78af48 +CDGTRA round=8 4294967295 -> 2238000115afb55b +CDGTRA round=8 2147483648 -> 223800008c78af48 CDGTRA round=8 2147483647 -> 223800008c78af47 CGDTRA round=8 a234000000000011 -> -1 cc=1 CGDTRA round=8 2238000000000000 -> 0 cc=0 @@ -250,15 +238,14 @@ CGDTRA round=8 2234000000000015 -> 2 cc=2 CGDTRA round=8 2234000000000016 -> 2 cc=2 CGDTRA round=8 2244000000000016 -> 16000 cc=2 CGDTRA round=8 2254000000000016 -> 160000000 cc=2 -CGDTRA round=8 2244000000000016 -> 16000 cc=2 -CGDTRA round=8 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=8 2284000000000016 -> -1 cc=3 -CGDTRA round=8 4154000000000016 -> -1 cc=3 +CGDTRA round=8 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=8 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=8 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=8 2224000000000016 -> 0 cc=2 CGDTRA round=8 20bc000000000001 -> 0 cc=2 -CGDTRA round=8 23a000000093fcff -> -1 cc=3 +CGDTRA round=8 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=8 003c000000000001 -> 0 cc=2 -CGDTRA round=8 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=8 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=8 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=8 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=8 22080000000000000000000000000001 -> 1 cc=2 @@ -267,19 +254,18 @@ CGXTRA round=8 2207c000000000000000000000000015 -> 2 cc=2 CGXTRA round=8 2207c000000000000000000000000016 -> 2 cc=2 CGXTRA round=8 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=8 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=8 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=8 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=8 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=8 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=8 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=8 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=8 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=8 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=8 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=8 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=8 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=8 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=8 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=8 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=9 0 -> 2238000000000000 CDGTRA round=9 1 -> 2238000000000001 -CDGTRA round=9 -1 -> 2238000115afb55b -CDGTRA round=9 -2147483648 -> 223800008c78af48 +CDGTRA round=9 4294967295 -> 2238000115afb55b +CDGTRA round=9 2147483648 -> 223800008c78af48 CDGTRA round=9 2147483647 -> 223800008c78af47 CGDTRA round=9 a234000000000011 -> -1 cc=1 CGDTRA round=9 2238000000000000 -> 0 cc=0 @@ -289,15 +275,14 @@ CGDTRA round=9 2234000000000015 -> 1 cc=2 CGDTRA round=9 2234000000000016 -> 1 cc=2 CGDTRA round=9 2244000000000016 -> 16000 cc=2 CGDTRA round=9 2254000000000016 -> 160000000 cc=2 -CGDTRA round=9 2244000000000016 -> 16000 cc=2 -CGDTRA round=9 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=9 2284000000000016 -> -1 cc=3 -CGDTRA round=9 4154000000000016 -> -1 cc=3 +CGDTRA round=9 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=9 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=9 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=9 2224000000000016 -> 0 cc=2 CGDTRA round=9 20bc000000000001 -> 0 cc=2 -CGDTRA round=9 23a000000093fcff -> -1 cc=3 +CGDTRA round=9 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=9 003c000000000001 -> 0 cc=2 -CGDTRA round=9 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=9 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=9 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=9 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=9 22080000000000000000000000000001 -> 1 cc=2 @@ -306,19 +291,18 @@ CGXTRA round=9 2207c000000000000000000000000015 -> 1 cc=2 CGXTRA round=9 2207c000000000000000000000000016 -> 1 cc=2 CGXTRA round=9 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=9 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=9 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=9 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=9 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=9 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=9 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=9 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=9 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=9 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=9 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=9 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=9 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=9 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=9 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=9 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=10 0 -> 2238000000000000 CDGTRA round=10 1 -> 2238000000000001 -CDGTRA round=10 -1 -> 2238000115afb55b -CDGTRA round=10 -2147483648 -> 223800008c78af48 +CDGTRA round=10 4294967295 -> 2238000115afb55b +CDGTRA round=10 2147483648 -> 223800008c78af48 CDGTRA round=10 2147483647 -> 223800008c78af47 CGDTRA round=10 a234000000000011 -> -1 cc=1 CGDTRA round=10 2238000000000000 -> 0 cc=0 @@ -328,15 +312,14 @@ CGDTRA round=10 2234000000000015 -> 2 cc=2 CGDTRA round=10 2234000000000016 -> 2 cc=2 CGDTRA round=10 2244000000000016 -> 16000 cc=2 CGDTRA round=10 2254000000000016 -> 160000000 cc=2 -CGDTRA round=10 2244000000000016 -> 16000 cc=2 -CGDTRA round=10 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=10 2284000000000016 -> -1 cc=3 -CGDTRA round=10 4154000000000016 -> -1 cc=3 +CGDTRA round=10 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=10 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=10 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=10 2224000000000016 -> 1 cc=2 CGDTRA round=10 20bc000000000001 -> 1 cc=2 -CGDTRA round=10 23a000000093fcff -> -1 cc=3 +CGDTRA round=10 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=10 003c000000000001 -> 1 cc=2 -CGDTRA round=10 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=10 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=10 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=10 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=10 22080000000000000000000000000001 -> 1 cc=2 @@ -345,19 +328,18 @@ CGXTRA round=10 2207c000000000000000000000000015 -> 2 cc=2 CGXTRA round=10 2207c000000000000000000000000016 -> 2 cc=2 CGXTRA round=10 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=10 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=10 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=10 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=10 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=10 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=10 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=10 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=10 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=10 2206c000000000000000000000000016 -> 1 cc=2 CGXTRA round=10 21f04000000000000000000000000001 -> 1 cc=2 -CGXTRA round=10 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=10 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=10 21a84000000000000000000000000001 -> 1 cc=2 -CGXTRA round=10 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=10 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=11 0 -> 2238000000000000 CDGTRA round=11 1 -> 2238000000000001 -CDGTRA round=11 -1 -> 2238000115afb55b -CDGTRA round=11 -2147483648 -> 223800008c78af48 +CDGTRA round=11 4294967295 -> 2238000115afb55b +CDGTRA round=11 2147483648 -> 223800008c78af48 CDGTRA round=11 2147483647 -> 223800008c78af47 CGDTRA round=11 a234000000000011 -> -2 cc=1 CGDTRA round=11 2238000000000000 -> 0 cc=0 @@ -367,15 +349,14 @@ CGDTRA round=11 2234000000000015 -> 1 cc=2 CGDTRA round=11 2234000000000016 -> 1 cc=2 CGDTRA round=11 2244000000000016 -> 16000 cc=2 CGDTRA round=11 2254000000000016 -> 160000000 cc=2 -CGDTRA round=11 2244000000000016 -> 16000 cc=2 -CGDTRA round=11 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=11 2284000000000016 -> -1 cc=3 -CGDTRA round=11 4154000000000016 -> -1 cc=3 +CGDTRA round=11 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=11 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=11 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=11 2224000000000016 -> 0 cc=2 CGDTRA round=11 20bc000000000001 -> 0 cc=2 -CGDTRA round=11 23a000000093fcff -> -1 cc=3 +CGDTRA round=11 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=11 003c000000000001 -> 0 cc=2 -CGDTRA round=11 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=11 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=11 a207c000000000000000000000000011 -> -2 cc=1 CGXTRA round=11 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=11 22080000000000000000000000000001 -> 1 cc=2 @@ -384,19 +365,18 @@ CGXTRA round=11 2207c000000000000000000000000015 -> 1 cc=2 CGXTRA round=11 2207c000000000000000000000000016 -> 1 cc=2 CGXTRA round=11 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=11 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=11 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=11 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=11 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=11 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=11 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=11 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=11 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=11 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=11 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=11 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=11 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=11 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=11 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=11 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=12 0 -> 2238000000000000 CDGTRA round=12 1 -> 2238000000000001 -CDGTRA round=12 -1 -> 2238000115afb55b -CDGTRA round=12 -2147483648 -> 223800008c78af48 +CDGTRA round=12 4294967295 -> 2238000115afb55b +CDGTRA round=12 2147483648 -> 223800008c78af48 CDGTRA round=12 2147483647 -> 223800008c78af47 CGDTRA round=12 a234000000000011 -> -1 cc=1 CGDTRA round=12 2238000000000000 -> 0 cc=0 @@ -406,15 +386,14 @@ CGDTRA round=12 2234000000000015 -> 2 cc=2 CGDTRA round=12 2234000000000016 -> 2 cc=2 CGDTRA round=12 2244000000000016 -> 16000 cc=2 CGDTRA round=12 2254000000000016 -> 160000000 cc=2 -CGDTRA round=12 2244000000000016 -> 16000 cc=2 -CGDTRA round=12 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=12 2284000000000016 -> -1 cc=3 -CGDTRA round=12 4154000000000016 -> -1 cc=3 +CGDTRA round=12 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=12 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=12 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=12 2224000000000016 -> 0 cc=2 CGDTRA round=12 20bc000000000001 -> 0 cc=2 -CGDTRA round=12 23a000000093fcff -> -1 cc=3 +CGDTRA round=12 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=12 003c000000000001 -> 0 cc=2 -CGDTRA round=12 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=12 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=12 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=12 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=12 22080000000000000000000000000001 -> 1 cc=2 @@ -423,19 +402,18 @@ CGXTRA round=12 2207c000000000000000000000000015 -> 2 cc=2 CGXTRA round=12 2207c000000000000000000000000016 -> 2 cc=2 CGXTRA round=12 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=12 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=12 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=12 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=12 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=12 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=12 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=12 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=12 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=12 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=12 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=12 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=12 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=12 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=12 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=12 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=13 0 -> 2238000000000000 CDGTRA round=13 1 -> 2238000000000001 -CDGTRA round=13 -1 -> 2238000115afb55b -CDGTRA round=13 -2147483648 -> 223800008c78af48 +CDGTRA round=13 4294967295 -> 2238000115afb55b +CDGTRA round=13 2147483648 -> 223800008c78af48 CDGTRA round=13 2147483647 -> 223800008c78af47 CGDTRA round=13 a234000000000011 -> -1 cc=1 CGDTRA round=13 2238000000000000 -> 0 cc=0 @@ -445,15 +423,14 @@ CGDTRA round=13 2234000000000015 -> 1 cc=2 CGDTRA round=13 2234000000000016 -> 2 cc=2 CGDTRA round=13 2244000000000016 -> 16000 cc=2 CGDTRA round=13 2254000000000016 -> 160000000 cc=2 -CGDTRA round=13 2244000000000016 -> 16000 cc=2 -CGDTRA round=13 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=13 2284000000000016 -> -1 cc=3 -CGDTRA round=13 4154000000000016 -> -1 cc=3 +CGDTRA round=13 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=13 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=13 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=13 2224000000000016 -> 0 cc=2 CGDTRA round=13 20bc000000000001 -> 0 cc=2 -CGDTRA round=13 23a000000093fcff -> -1 cc=3 +CGDTRA round=13 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=13 003c000000000001 -> 0 cc=2 -CGDTRA round=13 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=13 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=13 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=13 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=13 22080000000000000000000000000001 -> 1 cc=2 @@ -462,19 +439,18 @@ CGXTRA round=13 2207c000000000000000000000000015 -> 1 cc=2 CGXTRA round=13 2207c000000000000000000000000016 -> 2 cc=2 CGXTRA round=13 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=13 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=13 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=13 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=13 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=13 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=13 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=13 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=13 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=13 2206c000000000000000000000000016 -> 0 cc=2 CGXTRA round=13 21f04000000000000000000000000001 -> 0 cc=2 -CGXTRA round=13 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=13 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=13 21a84000000000000000000000000001 -> 0 cc=2 -CGXTRA round=13 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=13 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=14 0 -> 2238000000000000 CDGTRA round=14 1 -> 2238000000000001 -CDGTRA round=14 -1 -> 2238000115afb55b -CDGTRA round=14 -2147483648 -> 223800008c78af48 +CDGTRA round=14 4294967295 -> 2238000115afb55b +CDGTRA round=14 2147483648 -> 223800008c78af48 CDGTRA round=14 2147483647 -> 223800008c78af47 CGDTRA round=14 a234000000000011 -> -2 cc=1 CGDTRA round=14 2238000000000000 -> 0 cc=0 @@ -484,15 +460,14 @@ CGDTRA round=14 2234000000000015 -> 2 cc=2 CGDTRA round=14 2234000000000016 -> 2 cc=2 CGDTRA round=14 2244000000000016 -> 16000 cc=2 CGDTRA round=14 2254000000000016 -> 160000000 cc=2 -CGDTRA round=14 2244000000000016 -> 16000 cc=2 -CGDTRA round=14 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=14 2284000000000016 -> -1 cc=3 -CGDTRA round=14 4154000000000016 -> -1 cc=3 +CGDTRA round=14 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=14 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=14 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=14 2224000000000016 -> 1 cc=2 CGDTRA round=14 20bc000000000001 -> 1 cc=2 -CGDTRA round=14 23a000000093fcff -> -1 cc=3 +CGDTRA round=14 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=14 003c000000000001 -> 1 cc=2 -CGDTRA round=14 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=14 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=14 a207c000000000000000000000000011 -> -2 cc=1 CGXTRA round=14 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=14 22080000000000000000000000000001 -> 1 cc=2 @@ -501,19 +476,18 @@ CGXTRA round=14 2207c000000000000000000000000015 -> 2 cc=2 CGXTRA round=14 2207c000000000000000000000000016 -> 2 cc=2 CGXTRA round=14 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=14 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=14 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=14 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=14 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=14 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=14 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=14 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=14 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=14 2206c000000000000000000000000016 -> 1 cc=2 CGXTRA round=14 21f04000000000000000000000000001 -> 1 cc=2 -CGXTRA round=14 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=14 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=14 21a84000000000000000000000000001 -> 1 cc=2 -CGXTRA round=14 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=14 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 CDGTRA round=15 0 -> 2238000000000000 CDGTRA round=15 1 -> 2238000000000001 -CDGTRA round=15 -1 -> 2238000115afb55b -CDGTRA round=15 -2147483648 -> 223800008c78af48 +CDGTRA round=15 4294967295 -> 2238000115afb55b +CDGTRA round=15 2147483648 -> 223800008c78af48 CDGTRA round=15 2147483647 -> 223800008c78af47 CGDTRA round=15 a234000000000011 -> -1 cc=1 CGDTRA round=15 2238000000000000 -> 0 cc=0 @@ -523,15 +497,14 @@ CGDTRA round=15 2234000000000015 -> 1 cc=2 CGDTRA round=15 2234000000000016 -> 1 cc=2 CGDTRA round=15 2244000000000016 -> 16000 cc=2 CGDTRA round=15 2254000000000016 -> 160000000 cc=2 -CGDTRA round=15 2244000000000016 -> 16000 cc=2 -CGDTRA round=15 2264000000000016 -> -2022801408 cc=2 -CGDTRA round=15 2284000000000016 -> -1 cc=3 -CGDTRA round=15 4154000000000016 -> -1 cc=3 +CGDTRA round=15 2264000000000016 -> 1600000000000 cc=2 +CGDTRA round=15 2284000000000016 -> 9223372036854775807 cc=3 +CGDTRA round=15 4154000000000016 -> 9223372036854775807 cc=3 CGDTRA round=15 2224000000000016 -> 1 cc=2 CGDTRA round=15 20bc000000000001 -> 1 cc=2 -CGDTRA round=15 23a000000093fcff -> -1 cc=3 +CGDTRA round=15 23a000000093fcff -> 9223372036854775807 cc=3 CGDTRA round=15 003c000000000001 -> 1 cc=2 -CGDTRA round=15 77fcff3fcff3fcff -> -1 cc=3 +CGDTRA round=15 77fcff3fcff3fcff -> 9223372036854775807 cc=3 CGXTRA round=15 a207c000000000000000000000000011 -> -1 cc=1 CGXTRA round=15 22080000000000000000000000000000 -> 0 cc=0 CGXTRA round=15 22080000000000000000000000000001 -> 1 cc=2 @@ -540,12 +513,11 @@ CGXTRA round=15 2207c000000000000000000000000015 -> 1 cc=2 CGXTRA round=15 2207c000000000000000000000000016 -> 1 cc=2 CGXTRA round=15 2208c000000000000000000000000016 -> 16000 cc=2 CGXTRA round=15 2209c000000000000000000000000016 -> 160000000 cc=2 -CGXTRA round=15 2208c000000000000000000000000016 -> 16000 cc=2 -CGXTRA round=15 220ac000000000000000000000000016 -> -2022801408 cc=2 -CGXTRA round=15 220cc000000000000000000000000016 -> -1 cc=3 -CGXTRA round=15 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=15 220ac000000000000000000000000016 -> 1600000000000 cc=2 +CGXTRA round=15 220cc000000000000000000000000016 -> 9223372036854775807 cc=3 +CGXTRA round=15 2239c000000000000000000000000016 -> 9223372036854775807 cc=3 CGXTRA round=15 2206c000000000000000000000000016 -> 1 cc=2 CGXTRA round=15 21f04000000000000000000000000001 -> 1 cc=2 -CGXTRA round=15 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=15 221e800000000000000000000093fcff -> 9223372036854775807 cc=3 CGXTRA round=15 21a84000000000000000000000000001 -> 1 cc=2 -CGXTRA round=15 22644000000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=15 22644000000000000024ff3fcff3fcff -> 9223372036854775807 cc=3 |
|
From: Andreas A. <ar...@so...> - 2023-09-07 15:03:28
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=95da2092bec2cbce937cf1f8dec34ddd3f50dcbf commit 95da2092bec2cbce937cf1f8dec34ddd3f50dcbf Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 17:00:42 2023 +0200 s390x regtest: Reduce test output for vector test cases The s390x test cases `vector', `vector_integer', `vector_float' and `vector_string' generate a lot of unnecessary output, because for each tested instruction they usually dump more registers than the instruction modifies. Without changing the test approach itself and without losing information, the output can still be reduced significantly by comparing the register states before and after the tested instruction and then only dumping the changed parts. Diff: --- none/tests/s390x/vector.h | 153 +- none/tests/s390x/vector.stdout.exp | 3284 ------------------- none/tests/s390x/vector_float.stdout.exp | 656 ---- none/tests/s390x/vector_integer.stdout.exp | 4859 ---------------------------- none/tests/s390x/vector_string.stdout.exp | 3619 --------------------- 5 files changed, 88 insertions(+), 12483 deletions(-) diff --git a/none/tests/s390x/vector.h b/none/tests/s390x/vector.h index 632c2cb9c8..c4d188afd4 100644 --- a/none/tests/s390x/vector.h +++ b/none/tests/s390x/vector.h @@ -177,21 +177,84 @@ void randomize_memory_pool() [{r,m}_memory_pool] -- address of random memory pool. Usefull for some instructions */ + +struct insn_operands { + V128 v_arg[3]; + V128 v_result; + uint64_t r_arg[3]; + uint64_t r_result; +}; + +void print_results(s390x_test_usageInfo info, + const struct insn_operands *orig, + const struct insn_operands *current) +{ + unsigned int v_equal = 0; + unsigned int r_equal = 0; + int i; + for (i = 0; i < 3; i++) { + if (memcmp(&orig->v_arg[i], ¤t->v_arg[i], + sizeof(orig->v_arg[i])) == 0) + v_equal |= 1 << i; + if (orig->r_arg[i] == current->r_arg[i]) + r_equal |= 1 << i; + } + for (i = 0; i < 3; i++) { + if (!(v_equal & (1 << i)) && (info & (V128_V_ARG1_AS_INT << i))) { + printf(" v_arg%d = ", i + 1); + print_hex(current->v_arg[i]); + } + } + if (info & V128_V_RES_AS_INT) { + printf(" v_result = "); + print_hex64(current->v_result, info & V128_V_RES_ZERO_ONLY); + } + for (i = 0; i < 3; i++) { + if (!(v_equal & (1 << i)) && (info & (V128_V_ARG1_AS_FLOAT64 << i))) { + printf(" v_arg%d = ", i + 1); + print_f64(current->v_arg[i], 0); + } + } + if (info & V128_V_RES_AS_FLOAT64) { + printf(" v_result = "); + print_f64(current->v_result, info & V128_V_RES_ZERO_ONLY); + } + for (i = 0; i < 3; i++) { + if (!(v_equal & (1 << i)) && (info & (V128_V_ARG1_AS_FLOAT32 << i))) { + printf(" v_arg%d = ", i + 1); + print_f32(current->v_arg[i], 0, 0); + } + } + if (info & V128_V_RES_AS_FLOAT32) { + printf(" v_result = "); + print_f32(current->v_result, info & V128_V_RES_EVEN_ONLY, + info & V128_V_RES_ZERO_ONLY); + } + for (i = 0; i < 3; i++) { + if (!(r_equal & (1 << i)) && (info & (V128_R_ARG1 << i))) { + printf(" r_arg%d = ", i + 1); + print_uint64_t(current->r_arg[i]); + } + } + if (info & V128_R_RES) { + printf(" r_result = "); + print_uint64_t(current->r_result); + } +} + #define s390_test_generate(insn, asm_string) \ static void test_##insn##_selective(const s390x_test_usageInfo info) \ { \ - V128 v_result = { .u64 = {0ULL, 0ULL} }; \ - V128 v_arg1; \ - V128 v_arg2; \ - V128 v_arg3; \ - uint64_t r_arg1 = random_uint64_t(); \ - uint64_t r_arg2 = random_uint64_t(); \ - uint64_t r_arg3 = random_uint64_t(); \ - uint64_t r_result = 0ULL; \ - \ - random_V128(&v_arg1); \ - random_V128(&v_arg2); \ - random_V128(&v_arg3); \ + struct insn_operands orig = { .v_result.u64 = {0ULL, 0ULL} }; \ + struct insn_operands current; \ + orig.r_arg[0] = random_uint64_t(); \ + orig.r_arg[1] = random_uint64_t(); \ + orig.r_arg[2] = random_uint64_t(); \ + orig.r_result = 0ULL; \ + random_V128(&orig.v_arg[0]); \ + random_V128(&orig.v_arg[1]); \ + random_V128(&orig.v_arg[2]); \ + current = orig; \ \ __asm__ volatile( \ "vl %%v1, %[v_arg1]\n" \ @@ -204,18 +267,18 @@ static void test_##insn##_selective(const s390x_test_usageInfo info) \ "vst %%v1, %[v_arg1]\n" \ "vst %%v2, %[v_arg2]\n" \ "vst %%v3, %[v_arg3]\n" \ - : [v_result] "=m" (v_result), \ - [m_result] "=m" (r_result), \ - [r_result] "+d" (r_result), \ - [r_arg1] "+d" (r_arg1), \ - [r_arg2] "+d" (r_arg2), \ - [r_arg3] "+d" (r_arg3) \ - : [v_arg1] "m" (v_arg1), \ - [v_arg2] "m" (v_arg2), \ - [v_arg3] "m" (v_arg3), \ - [m_arg1] "m" (r_arg1), \ - [m_arg2] "m" (r_arg2), \ - [m_arg3] "m" (r_arg3), \ + : [v_result] "=m" (current.v_result), \ + [m_result] "=m" (current.r_result), \ + [r_result] "+d" (current.r_result), \ + [r_arg1] "+d" (current.r_arg[0]), \ + [r_arg2] "+d" (current.r_arg[1]), \ + [r_arg3] "+d" (current.r_arg[2]) \ + : [v_arg1] "m" (current.v_arg[0]), \ + [v_arg2] "m" (current.v_arg[1]), \ + [v_arg3] "m" (current.v_arg[2]), \ + [m_arg1] "m" (current.r_arg[0]), \ + [m_arg2] "m" (current.r_arg[1]), \ + [m_arg3] "m" (current.r_arg[2]), \ [r_memory_pool] "r" (random_memory_pool), \ [m_memory_pool] "m" (random_memory_pool) \ : "memory", "cc", \ @@ -223,47 +286,7 @@ static void test_##insn##_selective(const s390x_test_usageInfo info) \ "v1", "v2", "v3", "v5"); \ \ printf("insn %s:\n", #insn); \ - if (info & V128_V_ARG1_AS_INT) \ - {printf(" v_arg1 = "); print_hex(v_arg1);} \ - if (info & V128_V_ARG2_AS_INT) \ - {printf(" v_arg2 = "); print_hex(v_arg2);} \ - if (info & V128_V_ARG3_AS_INT) \ - {printf(" v_arg3 = "); print_hex(v_arg3);} \ - if (info & V128_V_RES_AS_INT) { \ - printf(" v_result = "); \ - print_hex64(v_result, info & V128_V_RES_ZERO_ONLY); \ - } \ - \ - if (info & V128_V_ARG1_AS_FLOAT64) \ - {printf(" v_arg1 = "); print_f64(v_arg1, 0);} \ - if (info & V128_V_ARG2_AS_FLOAT64) \ - {printf(" v_arg2 = "); print_f64(v_arg2, 0);} \ - if (info & V128_V_ARG3_AS_FLOAT64) \ - {printf(" v_arg3 = "); print_f64(v_arg3, 0);} \ - if (info & V128_V_RES_AS_FLOAT64) { \ - printf(" v_result = "); \ - print_f64(v_result, info & V128_V_RES_ZERO_ONLY); \ - } \ - \ - if (info & V128_V_ARG1_AS_FLOAT32) \ - {printf(" v_arg1 = "); print_f32(v_arg1, 0, 0);} \ - if (info & V128_V_ARG2_AS_FLOAT32) \ - {printf(" v_arg2 = "); print_f32(v_arg2, 0, 0);} \ - if (info & V128_V_ARG3_AS_FLOAT32) \ - {printf(" v_arg3 = "); print_f32(v_arg3, 0, 0);} \ - if (info & V128_V_RES_AS_FLOAT32) { \ - printf(" v_result = "); \ - print_f32(v_result, info & V128_V_RES_EVEN_ONLY, \ - info & V128_V_RES_ZERO_ONLY); \ - } \ - if (info & V128_R_ARG1) \ - {printf(" r_arg1 = "); print_uint64_t(r_arg1);} \ - if (info & V128_R_ARG2) \ - {printf(" r_arg2 = "); print_uint64_t(r_arg2);} \ - if (info & V128_R_ARG3) \ - {printf(" r_arg3 = "); print_uint64_t(r_arg3);} \ - if (info & V128_R_RES) \ - {printf(" r_result = "); print_uint64_t(r_result);} \ + print_results(info, &orig, ¤t); \ } \ __attribute__((unused)) static void test_##insn() \ { \ diff --git a/none/tests/s390x/vector.stdout.exp b/none/tests/s390x/vector.stdout.exp index ce084300f5..e61a3bfa43 100644 --- a/none/tests/s390x/vector.stdout.exp +++ b/none/tests/s390x/vector.stdout.exp @@ -1,637 +1,273 @@ insn vl_vst: - v_arg1 = 6b3e625d19775d06 | e540bc6839c44b4a - v_arg2 = 36ed3550df9899d8 | 979b83b70eb840d7 - v_arg3 = 856c13b8709950cb | 8315cab0121ab056 v_result = 6b3e625d19775d06 | e540bc6839c44b4a - r_arg1 = 382dccdbc2829139 - r_arg2 = fd673a5c2148a319 - r_arg3 = 179e655064dc2a84 r_result = 0000000000000000 insn vl_vst: - v_arg1 = 3d6603cf39008e39 | 979569ee6d5cbcd8 - v_arg2 = 966cf73d98a42d54 | e87fc9cb92bba120 - v_arg3 = 40ef72e29bf3afcf | 172ebcce16c982d1 v_result = 3d6603cf39008e39 | 979569ee6d5cbcd8 - r_arg1 = db93c0f8294addf9 - r_arg2 = 5df605a7d127a7d3 - r_arg3 = 1f195c53c95bf85f r_result = 0000000000000000 insn vl_vst: - v_arg1 = 069b4435908d7b40 | 10985cc9e2b9c255 - v_arg2 = b2683bbf21432695 | cf9d2353bceded84 - v_arg3 = 11188dbe47a5f281 | a9c6e8f73d48698d v_result = 069b4435908d7b40 | 10985cc9e2b9c255 - r_arg1 = 6eb865944fab9d36 - r_arg2 = 8adae4bb36b59768 - r_arg3 = b76e2305226ee0f4 r_result = 0000000000000000 insn vl_vst: - v_arg1 = 64ff133b4dd65eb9 | 4208cb757c0f3e0a - v_arg2 = 91fe3de1d5e7ca54 | 2a3193a81cbd8ee9 - v_arg3 = 6efeebb0fcde6db7 | 02921c5fc5455f0a v_result = 64ff133b4dd65eb9 | 4208cb757c0f3e0a - r_arg1 = 0b635974bf639901 - r_arg2 = b3397de854eca15b - r_arg3 = e4e02305a70c35f0 r_result = 0000000000000000 insn vl_vst: - v_arg1 = f83fd8ce0401495f | e5f1216d47c3a621 - v_arg2 = c1582e6bf6f3b5e9 | 1e41d09eeb4d0896 - v_arg3 = d0498c5ca63d4863 | b4985c390f9bf2ac v_result = f83fd8ce0401495f | e5f1216d47c3a621 - r_arg1 = 92a7705a2d5b324d - r_arg2 = 9045684013b74ac8 - r_arg3 = f3807c7237dd6262 r_result = 0000000000000000 insn vl_vst: - v_arg1 = 2b582ed8725fe2c9 | 376fbfe93425c861 - v_arg2 = 1870f7a36a759b08 | d466094bc52ab4ec - v_arg3 = 77eca2665a8c4256 | d3eaa2736713076f v_result = 2b582ed8725fe2c9 | 376fbfe93425c861 - r_arg1 = 6aa872c5336e1ba8 - r_arg2 = 1cfdf65003ac2d2e - r_arg3 = 35ecc3a818f7a873 r_result = 0000000000000000 insn vl_vst: - v_arg1 = eb54a60037342630 | bc68bf9dda3685ee - v_arg2 = 6fcaf40c7feb0484 | 3d83a1c16d0e812c - v_arg3 = 2aea572c0f856fff | bc679d7dba2599b3 v_result = eb54a60037342630 | bc68bf9dda3685ee - r_arg1 = 3f55e1b30e241fff - r_arg2 = 59f1ebe418d2ba28 - r_arg3 = c411c4ffb49ddd2d r_result = 0000000000000000 insn vl_vst: - v_arg1 = 6b0c886e9a6f2728 | ff55ac7f3661970c - v_arg2 = 663cba29a8010f0e | cf8af1ce8da3b236 - v_arg3 = f4148b8c668ffa2b | d27f73015eb678f0 v_result = 6b0c886e9a6f2728 | ff55ac7f3661970c - r_arg1 = c22db0626572df5c - r_arg2 = 0ffd44c56f5bf82e - r_arg3 = 3de842925d012f37 r_result = 0000000000000000 insn vl_vst: - v_arg1 = e7e79284496dce65 | 50f94b806c444cdc - v_arg2 = 23a9d13a3e4f30f5 | 473c0ac17342a347 - v_arg3 = e9c893a36480e4c5 | 3dee80abcfda0b81 v_result = e7e79284496dce65 | 50f94b806c444cdc - r_arg1 = 6dfc0d09037a92aa - r_arg2 = 8d0bf37d096a4357 - r_arg3 = 843bb2f40b01df96 r_result = 0000000000000000 insn vl_vst: - v_arg1 = 5e98b7a518b89a76 | 8526565084674a1c - v_arg2 = 13c07bfc401df2e6 | 65e87126d6ae84b9 - v_arg3 = dfb3fc8a335bc495 | aa7e15e16c920f5d v_result = 5e98b7a518b89a76 | 8526565084674a1c - r_arg1 = 3c9d19a2984fc36e - r_arg2 = 68d59e108ccd1018 - r_arg3 = 845f04fa19ed086d r_result = 0000000000000000 insn vgbm: v_arg1 = ffffffff00000000 | 00000000ffffffff v_arg2 = 0000000000000000 | 0000000000000000 - v_arg3 = 368e461ae5128604 | 0ec83a8a3e8e56d7 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 76b9aca27db1178e - r_arg2 = 389f65c305c2a505 - r_arg3 = edfa5b770c3e56bc r_result = 0000000000000000 insn vlr: - v_arg1 = 9c56b0049bcf0832 | 122de4537ebadd80 - v_arg2 = 1b359083443f73f0 | 40ad0d2c61ae8842 - v_arg3 = 91e3aaa730432cd5 | 63f36dc9b2ea8964 v_result = 9c56b0049bcf0832 | 122de4537ebadd80 - r_arg1 = 638612bd6ecb050c - r_arg2 = 5fff99d7a9b4e28d - r_arg3 = f5bdd1fa4c5ecf22 r_result = 0000000000000000 insn vlr: - v_arg1 = 02123abc75575714 | 74b2685cb1632af8 - v_arg2 = 28bac9f9424875f9 | 5ee85cdbb3b2fa66 - v_arg3 = 9ac7d6c734fe91ec | 6a7262c15bf3e754 v_result = 02123abc75575714 | 74b2685cb1632af8 - r_arg1 = 1387d1a54efb9dcb - r_arg2 = c298864d8ffdfbc1 - r_arg3 = 182a3590ea668e9d r_result = 0000000000000000 insn vlr: - v_arg1 = 2082c9f33727a0bb | 4f96da5fe8beae08 - v_arg2 = d5b8af0426ba1f6b | 68e2ab9751e67b83 - v_arg3 = c3a0ac0b317c2109 | 68c8c152b2e20596 v_result = 2082c9f33727a0bb | 4f96da5fe8beae08 - r_arg1 = 1e5061cbe7894247 - r_arg2 = 8ed82ba378a53c0c - r_arg3 = d84ecd8759d98447 r_result = 0000000000000000 insn vlr: - v_arg1 = 1422a140b2f1924e | 57330304e93afcc5 - v_arg2 = 2c244e196b83aa0a | 7ef00f632f75abca - v_arg3 = 00df06c352e7a38c | ea46ebd9d69e8d77 v_result = 1422a140b2f1924e | 57330304e93afcc5 - r_arg1 = 5f42f21ba76d705f - r_arg2 = f5c0fd948820c4fb - r_arg3 = 7e861427356d361a r_result = 0000000000000000 insn vlr: - v_arg1 = 4338b8b95c14ef51 | 466d1f2de1b67b62 - v_arg2 = fc44eca9b6c0e377 | 477491fe277a7c0a - v_arg3 = 8fc576bd6618f031 | 81cab6f34d7dff61 v_result = 4338b8b95c14ef51 | 466d1f2de1b67b62 - r_arg1 = b84a2bc2650c780e - r_arg2 = ef9ca8da0c134bf5 - r_arg3 = d83c7d7a00c182ac r_result = 0000000000000000 insn vlr: - v_arg1 = 169d7db2145d5069 | 9c7aa2bc253b2bf0 - v_arg2 = 9c69c1e38f79f1f0 | af9ff1a7b6bafb70 - v_arg3 = b121ff06a252bad4 | 87802d39c101739f v_result = 169d7db2145d5069 | 9c7aa2bc253b2bf0 - r_arg1 = d2a4e6eb1afa3f2c - r_arg2 = fac5cfee320edd02 - r_arg3 = faa92f04e0265bf2 r_result = 0000000000000000 insn vlr: - v_arg1 = bf73927edcc8e315 | 609cf752ecc5611e - v_arg2 = a9b4be7727660d13 | a72f64dac36c0847 - v_arg3 = 6f0fdda5610a462d | d9a35203c59e5516 v_result = bf73927edcc8e315 | 609cf752ecc5611e - r_arg1 = da9df67ca9b70430 - r_arg2 = db64c7c5d4519d87 - r_arg3 = fd93c88963598800 r_result = 0000000000000000 insn vlr: - v_arg1 = f2ee922b9e3e2c74 | dde43c0d17fa87f9 - v_arg2 = c4d4485011ac499a | e930571059f419b8 - v_arg3 = 56b94365e4a23294 | 9c3cdc288e72280c v_result = f2ee922b9e3e2c74 | dde43c0d17fa87f9 - r_arg1 = 464be1db997517f0 - r_arg2 = 5b3160932e898407 - r_arg3 = c40f1bcd3c4569c5 r_result = 0000000000000000 insn vlr: - v_arg1 = ac0fcc49e957c804 | 67f00848ebf0ddad - v_arg2 = 55c5fa58099e4a1e | b2bd2a8168a2fb89 - v_arg3 = 3c18198b132731bc | f9e0fabbba0a45e4 v_result = ac0fcc49e957c804 | 67f00848ebf0ddad - r_arg1 = 8e55a6aed6cfa35d - r_arg2 = 0b2e9d8aa49320e2 - r_arg3 = b23ff24e04c4b3d2 r_result = 0000000000000000 insn vlr: - v_arg1 = f06206a2b119265f | 14ac275ed2ea3c41 - v_arg2 = 4c916736b17f0fd7 | 86bff6e3897691e1 - v_arg3 = f9b2ba9a3b19cb7a | e0750ece0d229ade v_result = f06206a2b119265f | 14ac275ed2ea3c41 - r_arg1 = f4b079957492654a - r_arg2 = 016f789a7e375517 - r_arg3 = 7514cd0afa5e3012 r_result = 0000000000000000 insn vlrep: v_arg1 = 3e5e83f16d777325 | 3e5e83f16d777325 v_arg2 = 99d5a03199d5a031 | 99d5a03199d5a031 v_arg3 = c00cc00cc00cc00c | c00cc00cc00cc00c v_result = 3e3e3e3e3e3e3e3e | 3e3e3e3e3e3e3e3e - r_arg1 = 3e5e83f16d777325 - r_arg2 = 99d5a031aced2004 - r_arg3 = c00ca23ec4078191 r_result = 0000000000000000 insn vlrep: v_arg1 = 7730a49f5ee4f7ba | 7730a49f5ee4f7ba v_arg2 = 36cc3bfc36cc3bfc | 36cc3bfc36cc3bfc v_arg3 = 09f309f309f309f3 | 09f309f309f309f3 v_result = 7777777777777777 | 7777777777777777 - r_arg1 = 7730a49f5ee4f7ba - r_arg2 = 36cc3bfc83995024 - r_arg3 = 09f39c232ce3dc39 r_result = 0000000000000000 insn vlrep: v_arg1 = b28431bb4fb1f2f6 | b28431bb4fb1f2f6 v_arg2 = ff13a4a3ff13a4a3 | ff13a4a3ff13a4a3 v_arg3 = 4fa44fa44fa44fa4 | 4fa44fa44fa44fa4 v_result = b2b2b2b2b2b2b2b2 | b2b2b2b2b2b2b2b2 - r_arg1 = b28431bb4fb1f2f6 - r_arg2 = ff13a4a37e514ccf - r_arg3 = 4fa4dcb2e504cf8f r_result = 0000000000000000 insn vlrep: v_arg1 = c706b66068e0faa0 | c706b66068e0faa0 v_arg2 = a3732e8fa3732e8f | a3732e8fa3732e8f v_arg3 = d7c8d7c8d7c8d7c8 | d7c8d7c8d7c8d7c8 v_result = c7c7c7c7c7c7c7c7 | c7c7c7c7c7c7c7c7 - r_arg1 = c706b66068e0faa0 - r_arg2 = a3732e8fff15d0fc - r_arg3 = d7c83b5f4429fb78 r_result = 0000000000000000 insn vlrep: v_arg1 = 1571b565bd62fd20 | 1571b565bd62fd20 v_arg2 = 1685e0a51685e0a5 | 1685e0a51685e0a5 v_arg3 = eb94eb94eb94eb94 | eb94eb94eb94eb94 v_result = 1515151515151515 | 1515151515151515 - r_arg1 = 1571b565bd62fd20 - r_arg2 = 1685e0a50b94b000 - r_arg3 = eb9407e0077fdaf9 r_result = 0000000000000000 insn vlrep: v_arg1 = 3e4d662103d8fc3b | 3e4d662103d8fc3b v_arg2 = 526f380b526f380b | 526f380b526f380b v_arg3 = 9a8d9a8d9a8d9a8d | 9a8d9a8d9a8d9a8d v_result = 3e3e3e3e3e3e3e3e | 3e3e3e3e3e3e3e3e - r_arg1 = 3e4d662103d8fc3b - r_arg2 = 526f380b12ec944e - r_arg3 = 9a8dc2e712637af1 r_result = 0000000000000000 insn vlrep: v_arg1 = efb17627594ed1d4 | efb17627594ed1d4 v_arg2 = 17a6e9e117a6e9e1 | 17a6e9e117a6e9e1 v_arg3 = 7c467c467c467c46 | 7c467c467c467c46 v_result = efefefefefefefef | efefefefefefefef - r_arg1 = efb17627594ed1d4 - r_arg2 = 17a6e9e1a669bb38 - r_arg3 = 7c46e7e22e1d41df r_result = 0000000000000000 insn vlrep: v_arg1 = 9602c9080200ebab | 9602c9080200ebab v_arg2 = acac9d07acac9d07 | acac9d07acac9d07 v_arg3 = 6b1f6b1f6b1f6b1f | 6b1f6b1f6b1f6b1f v_result = 9696969696969696 | 9696969696969696 - r_arg1 = 9602c9080200ebab - r_arg2 = acac9d073f43b9ac - r_arg3 = 6b1fa5c0c9a4a7a1 r_result = 0000000000000000 insn vlrep: v_arg1 = 2ab1381626170d20 | 2ab1381626170d20 v_arg2 = 9cd2b4dc9cd2b4dc | 9cd2b4dc9cd2b4dc v_arg3 = 4b074b074b074b07 | 4b074b074b074b07 v_result = 2a2a2a2a2a2a2a2a | 2a2a2a2a2a2a2a2a - r_arg1 = 2ab1381626170d20 - r_arg2 = 9cd2b4dcfe633af6 - r_arg3 = 4b07a2adb95f0031 r_result = 0000000000000000 insn vlrep: v_arg1 = e8ff541e946b13ef | e8ff541e946b13ef v_arg2 = 7bf503fb7bf503fb | 7bf503fb7bf503fb v_arg3 = c439c439c439c439 | c439c439c439c439 v_result = e8e8e8e8e8e8e8e8 | e8e8e8e8e8e8e8e8 - r_arg1 = e8ff541e946b13ef - r_arg2 = 7bf503fb681ebd83 - r_arg3 = c439bad3fae03069 r_result = 0000000000000000 insn vle: - v_arg1 = 6ce30772cb393162 | 50a3967f672fd7de - v_arg2 = 2a8d07f3c58484af | 3c382b7f925fed2c - v_arg3 = 4e4ac99461d51c4c | 6d365e1e6aaa3164 v_result = 11ba222c8341adf4 | 0301be1a9f4311ff - r_arg1 = 11ba222c8341adf4 - r_arg2 = 9f4397ff27f65a9a - r_arg3 = 0301be1a6caa75bf r_result = 0000000000000000 insn vle: - v_arg1 = 13af05a6f8ae09e3 | 55572620ab0f011d - v_arg2 = b4781cf689a66f00 | 28275d8857f70c71 - v_arg3 = ef4917b37e37a9b5 | 4d4fed92cb05eb2f v_result = ad00dd4a4d0d23e6 | 7e7737e7e8f6adff - r_arg1 = ad00dd4a4d0d23e6 - r_arg2 = e8f6713fcd5f7d23 - r_arg3 = 7e7737e796eb2108 r_result = 0000000000000000 insn vle: - v_arg1 = c2a43fbb996badf8 | 5ab7d2b735faacdb - v_arg2 = 9d0003212fe3c3b9 | f8d3aec91ec973c6 - v_arg3 = e01226b801bd1353 | 8decf5f9fdfe8e92 v_result = 4bfab83f3330101f | ad4121df79164bff - r_arg1 = 4bfab83f3330101f - r_arg2 = 791648929176a863 - r_arg3 = ad4121df66415e38 r_result = 0000000000000000 insn vle: - v_arg1 = 8fd5aea1f63a049f | 0cb41a414677a106 - v_arg2 = e7b48241aa40f176 | c427e99c4f17fa34 - v_arg3 = 0dae884c8baa585e | b0f58e099896fdb3 v_result = bfa09a521cba2751 | d254b0a47d3abfff - r_arg1 = bfa09a521cba2751 - r_arg2 = 7d3a4a0a10ca36bc - r_arg3 = d254b0a4ef78e91e r_result = 0000000000000000 insn vle: - v_arg1 = d62202c6fe940736 | 1dcbf3fa837c83a7 - v_arg2 = 5c6f941e16f101b0 | 2b1ecf193e12cd61 - v_arg3 = aaf5839564ec8b69 | 40e145b69a3af1d5 v_result = e47ae1075727f251 | b2b20f96e447e4ff - r_arg1 = e47ae1075727f251 - r_arg2 = e447dbbb0e161470 - r_arg3 = b2b20f962a48d72a r_result = 0000000000000000 insn vle: - v_arg1 = f9fa62d6085d8837 | 05ca8a1db62c87a8 - v_arg2 = 471d2d4175174e7c | 1080dad7e19a2f53 - v_arg3 = f44fd6f739e19329 | 8f75def22584b818 v_result = 585c20e055248ece | 5a2b1c91232e58ff - r_arg1 = 585c20e055248ece - r_arg2 = 232e55743303865e - r_arg3 = 5a2b1c91b71a542a r_result = 0000000000000000 insn vle: - v_arg1 = 2118287b8ea8ecfc | c28bffa291993a8f - v_arg2 = 3f76f2af6e814c51 | 5da4f5a995fd392d - v_arg3 = e87075d3dd14f12e | 7181126e42fef63c v_result = 4328e11c714a7119 | dc1f2eb4f8af43ff - r_arg1 = 4328e11c714a7119 - r_arg2 = f8afc782cfe9e9c2 - r_arg3 = dc1f2eb499c26007 r_result = 0000000000000000 insn vle: - v_arg1 = fc48a71df177f17a | 99b62bfd6b813f43 - v_arg2 = ddc001ae0d6e42c1 | c32e4661ddb699f0 - v_arg3 = 0e1a494a080077a7 | 04a85256a2e1685d v_result = 118e6479a8e024de | 0f39d016241b11ff - r_arg1 = 118e6479a8e024de - r_arg2 = 241bb873978d6bf7 - r_arg3 = 0f39d016fe45918b r_result = 0000000000000000 insn vle: - v_arg1 = 7d21e6a1397a6a08 | d3825be401140fc5 - v_arg2 = 818fb07e8648113d | 79d1e58f232e543a - v_arg3 = 31ddf1f91cca1221 | 6918831858d09cb7 v_result = 33ce5ff5619c0ae7 | 54348491300c33ff - r_arg1 = 33ce5ff5619c0ae7 - r_arg2 = 300ce2d066e3d537 - r_arg3 = 54348491f593d41d r_result = 0000000000000000 insn vle: - v_arg1 = a0cb622cd2ceff19 | 8273130837abb8f7 - v_arg2 = 1287461ff268ecd4 | f90da242767c8408 - v_arg3 = 25d984bddb098247 | 894cc01ca1a1bb62 v_result = e373bc87276118de | 4c98827b2a2ee3ff - r_arg1 = e373bc87276118de - r_arg2 = 2a2ef7e0fecb4258 - r_arg3 = 4c98827b374c2c82 r_result = 0000000000000000 insn vlei_pos: - v_arg1 = 24bad0e050bfeefc | 3a1ccdd9d5909f57 - v_arg2 = bc17c41010d81ef3 | c7f0c4c44a271b76 - v_arg3 = 80784e6f32811da1 | d1d01c8b9c134115 v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = de185fe96b019c0b - r_arg2 = 65f95f6ac5d7e68f - r_arg3 = a37c7666df7e729c r_result = 0000000000000000 insn vlei_pos: - v_arg1 = 5070d99c2d85cda1 | d8ddb8444bbc3ec3 - v_arg2 = b03fa00d060ac825 | 2bd8c5603ce29f7c - v_arg3 = 62378fa7f2e29157 | f6fc5e0b1397c0e6 v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = 2925de5044faf711 - r_arg2 = 3d73f8728902c930 - r_arg3 = c94446e63264142d r_result = 0000000000000000 insn vlei_pos: - v_arg1 = af3dddbf87084756 | 3fa47a776e92e735 - v_arg2 = e74a85ce1fa4a0d3 | f22d171ecc4eedb2 - v_arg3 = 2f5d407c928c9fef | b3b5c47f310aa106 v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = cd9147302f3c63b3 - r_arg2 = d1f0d5f93c798a6a - r_arg3 = b462ca495926d794 r_result = 0000000000000000 insn vlei_pos: - v_arg1 = d400b1e4e39fdb84 | 16aeee9b39a78086 - v_arg2 = e09214ce8b37b404 | 312ae28322baf70b - v_arg3 = 4fc1cd41f04de109 | 8732c1cb4a77e288 v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = 9aa0defbcfe0ae93 - r_arg2 = c7d401c0b9551d0e - r_arg3 = a018935f229e968d r_result = 0000000000000000 insn vlei_pos: - v_arg1 = 18e661a5edcba075 | 8c46e7988e7d462e - v_arg2 = 5e41a7002202251c | 0294c554cbe5869c - v_arg3 = f587dc480d1f8629 | 78b4bf8c97d8da1a v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = e8a4dde1aef0fdf0 - r_arg2 = 0c4e3a057e5d8d47 - r_arg3 = d034a532c41001f3 r_result = 0000000000000000 insn vlei_pos: - v_arg1 = 5729f05b35ff0410 | 1584ecd3f3428b01 - v_arg2 = 2c0d099a22b2ed9f | 467f915379b9f955 - v_arg3 = d6e206a1d5ed116c | d34bdee2f8d5f1c9 v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = 52bf3391fb248b66 - r_arg2 = 921eb74371c7bb62 - r_arg3 = 4bd13ece98f05f80 r_result = 0000000000000000 insn vlei_pos: - v_arg1 = b7d113dbf45a8899 | 2b0dfbf1569378f2 - v_arg2 = d9fa40cced239bee | 620f1200c70f04c5 - v_arg3 = eed299dad54e1e4f | ea96b329b08269bf v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = 7b9e47f54aa268b1 - r_arg2 = 114ee3f49cf61e86 - r_arg3 = a01a8df9e19f4d89 r_result = 0000000000000000 insn vlei_pos: - v_arg1 = 6275fb3ac66a8774 | 0fd84793ca3eccd2 - v_arg2 = 7d1b4488cd1e1207 | 0333c757f27072d9 - v_arg3 = 3fe55dbf03471d6e | d5820bba2d231907 v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = ca3fb2f858bc3c68 - r_arg2 = c8fb2051f13b817b - r_arg3 = a3097cfa862c7dc6 r_result = 0000000000000000 insn vlei_pos: - v_arg1 = 47f909886fe9ede2 | 86e6fb1a47fa9c10 - v_arg2 = 7350c53bb01b4e47 | db6aa597a2d1e59c - v_arg3 = 92f84d1a7a0c1541 | 3209a6adbeea2d46 v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = 2eaa0942c6b401c5 - r_arg2 = 390c860e0797c966 - r_arg3 = 2e236755d3157807 r_result = 0000000000000000 insn vlei_pos: - v_arg1 = dd4f9797978201c2 | 9c07f5646f2f1179 - v_arg2 = 1d07e991ed001f2a | 6181d8f89f5591f7 - v_arg3 = 34f659733cbd63df | e5f3fd995cb6e782 v_result = 0000000000001ddd | 00001ccc1bbb1aff - r_arg1 = daba91f9d97acd5a - r_arg2 = f1f8a121dc76ad89 - r_arg3 = e13ce38b3c065dfe r_result = 0000000000000000 insn vlei_neg: - v_arg1 = e139b6b38d8c1c4f | 659a8c8c44b32df8 - v_arg2 = a3fd0c33fddfed09 | 955282729d0d0570 - v_arg3 = bb962bcfef2c7abe | da96fe5163d562de v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = 0ad40980416b86db - r_arg2 = 3e83377c91747d06 - r_arg3 = e33879dd1a98a1fb r_result = 0000000000000000 insn vlei_neg: - v_arg1 = 1404eb6a08cc6fe7 | b84c4aadf38a8756 - v_arg2 = b5fd808b43ba73d9 | bb857b7bf2bae3ed - v_arg3 = c020e073a194a16f | bf98cba656c14a5a v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = bdac643acf12acda - r_arg2 = f77f00cd321add9c - r_arg3 = a0c669086c12cda9 r_result = 0000000000000000 insn vlei_neg: - v_arg1 = fe4df244e235c1c0 | f2d6b39d8ea40bfa - v_arg2 = 459e4b7dc64184f1 | 1c500fc75b88a471 - v_arg3 = a327cba18462b865 | cbab7f2a9ee5a695 v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = 7a068d473ee91485 - r_arg2 = 398e6d436ca08767 - r_arg3 = 89256809982944d4 r_result = 0000000000000000 insn vlei_neg: - v_arg1 = afbf7c8adcaa30b3 | bac2fdb4caa1bca9 - v_arg2 = 4f08ec2df290cac3 | c939c409bbd355dd - v_arg3 = 4a4f3658b3eef4ae | 7a4ee9ea4c588f8e v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = 0c712244ec18a768 - r_arg2 = 24dd624a55ab0ca2 - r_arg3 = d7e262d929c2fb26 r_result = 0000000000000000 insn vlei_neg: - v_arg1 = 79d1f1025eb9ecf4 | b826d785c58e7345 - v_arg2 = 91ae17bf5bf582a0 | 58d213b0dde45daf - v_arg3 = e2072117ec419fb7 | 4f914f32d39ff75d v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = 460c3a0d9e332830 - r_arg2 = a3e9fc4c280f9467 - r_arg3 = 49963a318fad3fe3 r_result = 0000000000000000 insn vlei_neg: - v_arg1 = b78b2eaf356000d6 | 5c6623a3c3a79e8f - v_arg2 = 541375117aa74277 | a57a2aa92db335c4 - v_arg3 = 9d4e019955cfd90b | 91d12d4cd06d64fd v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = c143207d40feec64 - r_arg2 = 223d4d71078e9a6c - r_arg3 = e2ab8545e36b73b3 r_result = 0000000000000000 insn vlei_neg: - v_arg1 = 8a40499553cb098a | 9ef4bc5cec1602e7 - v_arg2 = 228965816f8eb495 | 9221b12283a52f18 - v_arg3 = 73718399383d5b12 | 0f76f43fc365b205 v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = 9992162ba32ba02c - r_arg2 = 56301c5fb895b2c6 - r_arg3 = ad17548ba1e8d057 r_result = 0000000000000000 insn vlei_neg: - v_arg1 = 975449719313fde0 | b912318010b2790a - v_arg2 = 8eecbeacbe005865 | c8038243d94e3183 - v_arg3 = e3c9478ec71c2fd5 | ddbacc93d3d5d568 v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = 3440132e3d19070d - r_arg2 = f9aaa6f9690443a9 - r_arg3 = 7a1ee8746c402471 r_result = 0000000000000000 insn vlei_neg: - v_arg1 = cbf6ef8372fee603 | f08d891964bfb5d2 - v_arg2 = f0698b2c12804730 | 756b70f5102f777d - v_arg3 = b080a66edaaa79b7 | 1564530a8f7b943b v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = fc2386d8ed95baaa - r_arg2 = 8cde60226de54e24 - r_arg3 = 9e127b30cd7c9440 r_result = 0000000000000000 insn vlei_neg: - v_arg1 = 18e57147d8c4a53f | 4982fe3244b3fcf9 - v_arg2 = 263cce57fe80ebdd | 0d70029eb07855d9 - v_arg3 = a44b6e6dac96323b | 97875c66a843506d v_result = ffffffffffffe223 | ffffe334e445e6ff - r_arg1 = 2061117db69be783 - r_arg2 = 140fb379fc3226e8 - r_arg3 = b715fe6df5545a60 r_result = 0000000000000000 insn vlgv: - v_arg1 = 362d3936cec6b0bd | 551bc293efedead4 - v_arg2 = 556b3f05b71fc8b0 | 0aba36e2a6c5f38c - v_arg3 = 5030a1bda2bbe8c4 | ca47b229b805bc8f v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 000000000000a6c5 r_arg3 = 00000000ca47b229 r_result = 0000000000000000 insn vlgv: - v_arg1 = 63eaab894558d544 | e751bd824f7e331a - v_arg2 = a68f0b49dcea370d | ac3c3f6204e41066 - v_arg3 = cb413a4f04e2804f | 5a93d34efe4aa38d v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 00000000000004e4 r_arg3 = 000000005a93d34e r_result = 0000000000000000 insn vlgv: - v_arg1 = 2302ddf4d677f5f8 | d8ab4e82afe45f9d - v_arg2 = 0a8b96352f9d2734 | baf9477fc58bc0d6 - v_arg3 = 6f5de890c283f539 | f8eab6132006a671 v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 000000000000c58b r_arg3 = 00000000f8eab613 r_result = 0000000000000000 insn vlgv: - v_arg1 = 01ee5e6d7d92ca1e | cafc061682c88d0e - v_arg2 = f751399a5ae2db05 | 3fc22e1787252ea9 - v_arg3 = a0f4d12b328317fe | 1e1886b2e95efc26 v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 0000000000008725 r_arg3 = 000000001e1886b2 r_result = 0000000000000000 insn vlgv: - v_arg1 = 4d71f0e55e44a3d4 | e328717e23c531bd - v_arg2 = 2aa205c4ab0fafbd | 4ef549454f845bca - v_arg3 = 86c251cbcdf64df6 | c8f865220a623131 v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 0000000000004f84 r_arg3 = 00000000c8f86522 r_result = 0000000000000000 insn vlgv: - v_arg1 = dd5d4e0c811623dc | 8eddcd779023d755 - v_arg2 = 63cd7e40d9ebd3b6 | c03f242349afde01 - v_arg3 = ce91b9d8f6dd5418 | 3d332ad9d9d2e778 v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 00000000000049af r_arg3 = 000000003d332ad9 r_result = 0000000000000000 insn vlgv: - v_arg1 = cd53e710963f0650 | 3e5cd1fd2f96dea2 - v_arg2 = 2d6e6298be680e29 | f15942898694a3b7 - v_arg3 = 6dfa1138b3e7feba | c4fe248b15dc98fe v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 0000000000008694 r_arg3 = 00000000c4fe248b r_result = 0000000000000000 insn vlgv: - v_arg1 = 4082a25db267dc6d | 2c31690b8a033d4d - v_arg2 = 943061141b697dee | 88cdd9cebdd5acaf - v_arg3 = 5d24d70f7233f44d | 70dfd5eaa0db53a3 v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 000000000000bdd5 r_arg3 = 0000000070dfd5ea r_result = 0000000000000000 insn vlgv: - v_arg1 = 1d66995c105ecc4c | 14f57558143a429c - v_arg2 = ed8ae27a577c5238 | 2cb097850b7ed4cd - v_arg3 = 5f82be7ec60a7524 | d667b96644187be7 v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 0000000000000b7e r_arg3 = 00000000d667b966 r_result = 0000000000000000 insn vlgv: - v_arg1 = d389de37d1e853a3 | fc128d1be2bb4f36 - v_arg2 = 9283c5cd409f975c | 50686040b3cb87d1 - v_arg3 = b897716627a8162d | d2f8fdee6f8a8da6 v_result = ffffffffffffffff | ffffffffffffffff r_arg1 = ffffffffffffffff r_arg2 = 000000000000b3cb @@ -642,4723 +278,1803 @@ insn vgm: v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = eb3dc30504754bd0 - r_arg2 = 57aaf518c3d8885e - r_arg3 = 30cdfd8fb35310e1 r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 6078e143b2b67531 - r_arg2 = 8c9f3141195bd737 - r_arg3 = 9a0247bf4985cf0c r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 46e0da2d64e00a85 - r_arg2 = e82b1682e4cf13a5 - r_arg3 = 08669e504bbdf32a r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 619e06bbf1322d31 - r_arg2 = 8714419fb2f103b9 - r_arg3 = ac1ba792bff7a9bd r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 7d6a3220965ad7b8 - r_arg2 = 486f885a36ac0865 - r_arg3 = 3a55fa978b1d76e3 r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 2846628fb632967a - r_arg2 = 925eb23109dbd439 - r_arg3 = af15e7eb41c5f41a r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 79468ff69c854f76 - r_arg2 = 10d240256b033420 - r_arg3 = 0ee7345cd5f595fc r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = cc4a6ac434cafc0a - r_arg2 = 76492770ff1bc827 - r_arg3 = 1eaaddb261e15e03 r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 84c118a5d6e66fb1 - r_arg2 = 3a8f944c9347c635 - r_arg3 = 2e47d376e8abae45 r_result = 0000000000000000 insn vgm: v_arg1 = 0e0e0e0e0e0e0e0e | 0e0e0e0e0e0e0e0e v_arg2 = 3ffe3ffe3ffe3ffe | 3ffe3ffe3ffe3ffe v_arg3 = 7fffffffffffff00 | 7fffffffffffff00 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = c867f543fced0ec3 - r_arg2 = 5b7fa8b1d696bcd2 - r_arg3 = d277bfae1120f637 r_result = 0000000000000000 insn vllez: v_arg1 = 0000000000000047 | 0000000000000000 v_arg2 = 0000000000001ec2 | 0000000000000000 v_arg3 = 00000000a580bd9e | 0000000000000000 v_result = 4706520608df9537 | 0000000000000000 - r_arg1 = 4706520608df9537 - r_arg2 = 1ec23a1620ca4be3 - r_arg3 = a580bd9ee8807f6c r_result = 0000000000000000 insn vllez: v_arg1 = 00000000000000f5 | 0000000000000000 v_arg2 = 000000000000cd8d | 0000000000000000 v_arg3 = 0000000005f72187 | 0000000000000000 v_result = f53737d4006dd862 | 0000000000000000 - r_arg1 = f53737d4006dd862 - r_arg2 = cd8d982e2f10ed6a - r_arg3 = 05f72187a2352755 r_result = 0000000000000000 insn vllez: v_arg1 = 00000000000000cc | 0000000000000000 v_arg2 = 0000000000007765 | 0000000000000000 v_arg3 = 00000000da7e366a | 0000000000000000 v_result = cc2021d052b57fb8 | 0000000000000000 - r_arg1 = cc2021d052b57fb8 - r_arg2 = 776547abe5c2b049 - r_arg3 = da7e366a56992402 r_result = 0000000000000000 insn vllez: v_arg1 = 000000000000008c | 0000000000000000 v_arg2 = 000000000000b4dd | 0000000000000000 v_arg3 = 000000005086fac4 | 0000000000000000 v_result = 8c36c51d9000c988 | 0000000000000000 - r_arg1 = 8c36c51d9000c988 - r_arg2 = b4ddbefd0b2bfafe - r_arg3 = 5086fac4c5b4c1de r_result = 0000000000000000 insn vllez: v_arg1 = 000000000000007c | 0000000000000000 v_arg2 = 0000000000005e55 | 0000000000000000 v_arg3 = 00000000980ce452 | 0000000000000000 v_result = 7cfbcd9b358a4ac3 | 0000000000000000 - r_arg1 = 7cfbcd9b358a4ac3 - r_arg2 = 5e55301311424467 - r_arg3 = 980ce45213fa1d75 r_result = 0000000000000000 insn vllez: v_arg1 = 0000000000000027 | 0000000000000000 v_arg2 = 00000000000059bc | 0000000000000000 v_arg3 = 00000000ac5f9fcd | 0000000000000000 v_result = 27c097a75f39aeb4 | 0000000000000000 - r_arg1 = 27c097a75f39aeb4 - r_arg2 = 59bc4017cd6bdf7f - r_arg3 = ac5f9fcd8b0ff030 r_result = 0000000000000000 insn vllez: v_arg1 = 0000000000000021 | 0000000000000000 v_arg2 = 0000000000004d4d | 0000000000000000 v_arg3 = 0000000009d7cdad | 0000000000000000 v_result = 2162f9dd936274c8 | 0000000000000000 - r_arg1 = 2162f9dd936274c8 - r_arg2 = 4d4dcb34383cb21d - r_arg3 = 09d7cdad60854516 r_result = 0000000000000000 insn vllez: v_arg1 = 00000000000000c0 | 0000000000000000 v_arg2 = 0000000000006754 | 0000000000000000 v_arg3 = 00000000739dc6e9 | 0000000000000000 v_result = c00f00d87d8ab446 | 0000000000000000 - r_arg1 = c00f00d87d8ab446 - r_arg2 = 6754a2513535faba - r_arg3 = 739dc6e9689b418c r_result = 0000000000000000 insn vllez: v_arg1 = 00000000000000e4 | 0000000000000000 v_arg2 = 0000000000001ce9 | 0000000000000000 v_arg3 = 00000000b56856b4 | 0000000000000000 v_result = e401acefae21da16 | 0000000000000000 - r_arg1 = e401acefae21da16 - r_arg2 = 1ce94dd64a85092a - r_arg3 = b56856b4e0fedc14 r_result = 0000000000000000 insn vllez: v_arg1 = 00000000000000b0 | 0000000000000000 v_arg2 = 000000000000e7b2 | 0000000000000000 v_arg3 = 000000005f3c8340 | 0000000000000000 v_result = b040b6f95d47697d | 0000000000000000 - r_arg1 = b040b6f95d47697d - r_arg2 = e7b2ca6565ca0961 - r_arg3 = 5f3c83402b8aa310 r_result = 0000000000000000 insn vlvgp: v_arg1 = 4f634c08288ab9dd | 07a44da199cfb72e - v_arg2 = 45d3b155068ab4c0 | d0e1cb64b5143d39 - v_arg3 = 178fad5f95d86dbd | 4d5b3a7d86204d6a v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 4f634c08288ab9dd - r_arg2 = 07a44da199cfb72e - r_arg3 = 872c457d93097d7e r_result = 0000000000000000 insn vlvgp: v_arg1 = b14fd030d0a5ba78 | 42c1fee9df4f2802 - v_arg2 = 87096ba97fb48a34 | a947fa647965d36c - v_arg3 = 427af7a4e16a24e6 | bd1c6dcc2fec0cce v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = b14fd030d0a5ba78 - r_arg2 = 42c1fee9df4f2802 - r_arg3 = 89184dd907f163bc r_result = 0000000000000000 insn vlvgp: v_arg1 = 4bf49d3f0141af2d | a5d9bf1cd7af88a8 - v_arg2 = a78aa81e0d4c504e | 8da0e05c98499e32 - v_arg3 = 8ced825717830e10 | 03a7816056c172e0 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 4bf49d3f0141af2d - r_arg2 = a5d9bf1cd7af88a8 - r_arg3 = c76ec000db292744 r_result = 0000000000000000 insn vlvgp: v_arg1 = db15c28508b6f538 | 414ce45585c7d70c - v_arg2 = 8fad57870c9d1c2e | 7da072b0e74c1f1e - v_arg3 = c9b80a2a40adcffb | 8cacb7f4f9e6094c v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = db15c28508b6f538 - r_arg2 = 414ce45585c7d70c - r_arg3 = 6aecf99c8cc32e70 r_result = 0000000000000000 insn vlvgp: v_arg1 = 2200c58d9bc9baf4 | f0c5f9af1498abf8 - v_arg2 = f0169ab6ff259fd8 | fe09987d1ee6285e - v_arg3 = 177efd490a1e24c3 | c96bc4867d1131dc v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 2200c58d9bc9baf4 - r_arg2 = f0c5f9af1498abf8 - r_arg3 = 205b4a147ac23736 r_result = 0000000000000000 insn vlvgp: v_arg1 = a95062e0956ec79b | 0ffe80019715f1d1 - v_arg2 = 01788c3b504cdde9 | dc6bf4649c40a67f - v_arg3 = 976d40218b7d9ca4 | f46f95106e25e23b v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = a95062e0956ec79b - r_arg2 = 0ffe80019715f1d1 - r_arg3 = dc53bc50add412eb r_result = 0000000000000000 insn vlvgp: v_arg1 = 7db14ac8b7863703 | 4382b0a1c3dead5c - v_arg2 = 3c53fd240e2af05e | ebe69a3f26ee592c - v_arg3 = 3100f11dff9c5db6 | ca530a483cf369ae v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 7db14ac8b7863703 - r_arg2 = 4382b0a1c3dead5c - r_arg3 = 9afccc7291176a02 r_result = 0000000000000000 insn vlvgp: v_arg1 = f49be60969a03e62 | 35653824b7feb57d - v_arg2 = 25b531bdae44ca53 | c1e4d6e8a9b498ed - v_arg3 = 55c32063863de6b0 | 4f7fbc6600fc27db v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = f49be60969a03e62 - r_arg2 = 35653824b7feb57d - r_arg3 = 19ca2c9cbbd67dcc r_result = 0000000000000000 insn vlvgp: v_arg1 = 671412a878bbe409 | 560cfb1ab5b37af5 - v_arg2 = 04fca550cb4ef1c0 | 7ee2eaf7f4450eeb - v_arg3 = b50e959ae7d0c8a8 | 8eeab9dd362c5684 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 671412a878bbe409 - r_arg2 = 560cfb1ab5b37af5 - r_arg3 = a03f88b0a24bdf39 r_result = 0000000000000000 insn vlvgp: v_arg1 = f670e2a6d701c82a | 9ce9d2d5e625c023 - v_arg2 = a690cbe5e6e9423d | 8527ce837ffe80a9 - v_arg3 = 0dc68da550326ccf | 57d84320819fc44b v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = f670e2a6d701c82a - r_arg2 = 9ce9d2d5e625c023 - r_arg3 = baab3f09675e3b94 r_result = 0000000000000000 insn vlvg: - v_arg1 = 1f427f7cf88382ba | 2cad200dbc09e187 - v_arg2 = 20acc9022764afbe | 418aefdf27ad85cb - v_arg3 = db227d67146fd038 | 009b955d6b5f976f v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 471361c45f8bde95 - r_arg2 = 433e4d221b2c62c3 - r_arg3 = faed26468e631249 r_result = 0000000000000000 insn vlvg: - v_arg1 = 70194b4fd7874ba9 | e57be5f73fe3b5c6 - v_arg2 = 8c153e6a1a7d0156 | e22ff15df04f4cd1 - v_arg3 = 2863ce806c7f4b91 | 25559e432322078c v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 472c4d408f223176 - r_arg2 = 8ed9730c870d10b0 - r_arg3 = b8324afec3df7aa1 r_result = 0000000000000000 insn vlvg: - v_arg1 = 34768342275bf3a3 | 4e46db2789824050 - v_arg2 = cbdffee0732097f5 | 1e496d0dc2cc5adb - v_arg3 = 3e99a00d380a45e7 | 69b3c4bf3e0e275e v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = e87bdd944cfba217 - r_arg2 = 84d57e9f873b11a4 - r_arg3 = d3b4ab8b9742e183 r_result = 0000000000000000 insn vlvg: - v_arg1 = e5fe25f6d59ca39b | f61204d100c21186 - v_arg2 = 422ed2e3cc26252c | f1d8b47d2dbc4a65 - v_arg3 = 7063896bbc270064 | 33b3a3b977789e7d v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = e20a7c3da279a8a2 - r_arg2 = b45da1a15a1902f5 - r_arg3 = 6e7b02c240acc933 r_result = 0000000000000000 insn vlvg: - v_arg1 = c4a86410f4151a62 | f5f25be4ea6d0b66 - v_arg2 = 9ef13972631676e7 | 5d6a8b7926248c0b - v_arg3 = d5ae53f363175313 | 715dccda6f9f6620 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 73f68c7083ee0fde - r_arg2 = f26bc259eab69558 - r_arg3 = b31e7cb75daa8a16 r_result = 0000000000000000 insn vlvg: - v_arg1 = 96756aee7d806d67 | a5c590ce39f92a4e - v_arg2 = 90a72ac9dde52c31 | 2bdcedcbc8372745 - v_arg3 = 0e74c2bd800d6a99 | 598c87476e7495dc v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 202624e58458b9f0 - r_arg2 = 1884414a828e53a0 - r_arg3 = 94817d7db1f9136a r_result = 0000000000000000 insn vlvg: - v_arg1 = 6735176f0f45c578 | 6afcc73a404c3eb8 - v_arg2 = 921dd02006b87bf3 | a819cdfa1518782a - v_arg3 = fc7c4c6008e888fc | 24a4926620531165 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = 7311d38fa326611a - r_arg2 = c67cb0f8964e5b7f - r_arg3 = 85965fe2e441aa11 r_result = 0000000000000000 insn vlvg: - v_arg1 = 4b47c1aeb038257e | 6c515dd47c7aaffd - v_arg2 = a12d4e718fa0f2b3 | 6ad8d20eb395f230 - v_arg3 = 8b1fdfae5af5c55f | d25ce1975aca5a4a v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = bb7b5c6004f3537e - r_arg2 = 233799a17f8e2242 - r_arg3 = 441f313646d9a846 r_result = 0000000000000000 insn vlvg: - v_arg1 = 1858f3c58a5d2143 | 598fa3024d843814 - v_arg2 = 027f7932ce5b3358 | 09611949b0ecdce9 - v_arg3 = 6c009f7bf8b1d1c2 | ea745cfad35045bc v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = cf367809af4836db - r_arg2 = 9a643b033d973297 - r_arg3 = 926979038b883e64 r_result = 0000000000000000 insn vlvg: - v_arg1 = 2e212f8dafa6a92d | 2450a2abba1aac53 - v_arg2 = fe49a1158218b7e3 | e747f7ed3f8916c6 - v_arg3 = d3d2a6564c84afc5 | 377fa52eec0dbb47 v_result = ffffffffffffffff | ffffffffffffffff - r_arg1 = cce497b6545ec34d - r_arg2 = 9f424e1b341eeb4a - r_arg3 = f711f2d5904134a4 r_result = 0000000000000000 insn vmrhb: - v_arg1 = 312cac5bd6b2bd03 | c8b9d6f33159b52c - v_arg2 = a61149ce8e328c35 | ea2eb6fc79c5d5d5 - v_arg3 = 3d14c34d64857b64 | 8c99cf0f69977f95 v_result = 31a62c11ac495bce | d68eb232bd8c0335 - r_arg1 = d2b2a0d408d88b0f - r_arg2 = 685ebbe2ef054502 - r_arg3 = 82c24ff216e5a5de r_result = 0000000000000000 insn vmrhb: - v_arg1 = ca8f18c31c8e36a6 | 063ef4fc458c90f0 - v_arg2 = 9069eacbbaf216ce | 3d8553f21da66385 - v_arg3 = 2dd63dacb73b26bb | 822f287636b1e630 v_result = ca908f6918eac3cb | 1cba8ef23616a6ce - r_arg1 = cc1dadcd078bb63b - r_arg2 = b5516510e1208c07 - r_arg3 = 88f3f7218203c446 r_result = 0000000000000000 insn vmrhb: - v_arg1 = 69ae5858c57784d7 | 2462a4a56fedd38e - v_arg2 = 98b0b5fc7650d28a | 134b478b50a4e060 - v_arg3 = ea758dbdde5936c2 | 35bdf1fb240d9d40 v_result = 6998aeb058b558fc | c576775084d2d78a - r_arg1 = 26b0d1c97038bf87 - r_arg2 = 8985e4dc1fec23fd - r_arg3 = 61acc865a4999b2f r_result = 0000000000000000 insn vmrhb: - v_arg1 = 06fb4468fa956bf7 | ad77484ccf632853 - v_arg2 = a0d64f8b96b20e65 | 64cd3b815f6105cf - v_arg3 = 435927875c7f8710 | 0b8a22b4aa0a6847 v_result = 06a0fbd6444f688b | fa9695b26b0ef765 - r_arg1 = 95c2d26d0c4f3a08 - r_arg2 = eff045b9285843a9 - r_arg3 = 2f40d5c16dd3c7cb r_result = 0000000000000000 insn vmrhb: - v_arg1 = dcb86cc289bfc5c0 | 3459b48ee9440faa - v_arg2 = 511793a417aab337 | af64d34d796edcd8 - v_arg3 = 4cbc339158fe0d9a | 6e6c27f6a575ddeb v_result = dc51b8176c93c2a4 | 8917bfaac5b3c037 - r_arg1 = d33bf09f08ac8ef2 - r_arg2 = b6d6cc199e7fbaa9 - r_arg3 = 971329f5b8c93ee7 r_result = 0000000000000000 insn vmrhb: - v_arg1 = 2db2d673a83c440f | 1135f4046914a1dc - v_arg2 = d9be542ddabafc78 | b73a65e4760b89e1 - v_arg3 = 1f654d9f5e939074 | 8d89a612184b2dab v_result = 2dd9b2bed654732d | a8da3cba44fc0f78 - r_arg1 = 614e9c3eb75dbc54 - r_arg2 = 3689b32c0b6aad3f - r_arg3 = 8654823e03440ab1 r_result = 0000000000000000 insn vmrhb: - v_arg1 = 0206be83b27e2e9d | 22470a07df4248d0 - v_arg2 = ace2198d65113dfc | 4604bf7b93e6056d - v_arg3 = 9c674973222a6e8e | 20133718ed73dca7 v_result = 02ac06e2be19838d | b2657e112e3d9dfc - r_arg1 = 443e42ed525817df - r_arg2 = 0a2be9a09dd15606 - r_arg3 = eec2161933780c74 r_result = 0000000000000000 insn vmrhb: - v_arg1 = e9de56bbe9e81fbf | 8b95ae6c84f089ca - v_arg2 = 442bdf68a54e9eb5 | edc8e54234dadedc - v_arg3 = 2ae6f28c3d9b5d76 | 21092b95b387855b v_result = e944de2b56dfbb68 | e9a5e84e1f9ebfb5 - r_arg1 = c81c01c8b8480a9e - r_arg2 = d469d461ebd9c7b9 - r_arg3 = 866952ff54caba59 r_result = 0000000000000000 insn vmrhb: - v_arg1 = b63384603388cb2c | 78b80d47f3abbb2e - v_arg2 = e18cdb5faf3bde76 | c397d12ba2b0f92e - v_arg3 = 74d1c6e9ef6f271b | 94fb46575f8b9862 v_result = b6e1338c84db605f | 33af883bcbde2c76 - r_arg1 = 41866e2b2f40d6be - r_arg2 = fd400f59aed6a6f2 - r_arg3 = 8e659728578ae227 r_result = 0000000000000000 insn vmrhb: - v_arg1 = 428ca7f8dedcbab6 | d7938aaaf12dcd3c - v_arg2 = 4a0836d37a9211ad | 225332a2cbe051bf - v_arg3 = 2ea7bcc5dc9b6d87 | 41c585270cb21c36 v_result = 424a8c08a736f8d3 | de7adc92ba11b6ad - r_arg1 = c669567121845146 - r_arg2 = 72ba2d308909f0e7 - r_arg3 = 8a9cfc4bd3b86503 r_result = 0000000000000000 insn vmrhh: - v_arg1 = 2fbc53035d8f0b0f | 1f188165272004d5 - v_arg2 = 8a70d0a1a7ba6227 | 6e692e55054fb60b - v_arg3 = ce34ff5acf4166a2 | 7551da8cbb1e6eed v_result = 2fbc8a705303d0a1 | 5d8fa7ba0b0f6227 - r_arg1 = f5be79b1e046a9de - r_arg2 = 69b0750bc362b72d - r_arg3 = 03870f5bc5c2fd2f r_result = 0000000000000000 insn vmrhh: - v_arg1 = a3a710c1093c3284 | 0c08ffc7e4ddbb33 - v_arg2 = b422ffe63a89d2cf | ce9621eccb118f6a - v_arg3 = 5453b0a17b749ef4 | c559ec8d149f00fc v_result = a3a7b42210c1ffe6 | 093c3a893284d2cf - r_arg1 = b24f50816364208b - r_arg2 = 1a89a54f083de477 - r_arg3 = 4ae995495043f9cc r_result = 0000000000000000 insn vmrhh: - v_arg1 = 09fb20f2e128bbc3 | 61b28c5adc2722b3 - v_arg2 = a1cb4dbb5f02f86e | f2a45cd07f2799d3 - v_arg3 = 03ada90f35f4b762 | cc21d86e24721bf7 v_result = 09fba1cb20f24dbb | e1285f02bbc3f86e - r_arg1 = e871c8b6082ece6f - r_arg2 = 87f8b05e2c27f656 - r_arg3 = 359446c77ec4fc9b r_result = 0000000000000000 insn vmrhh: - v_arg1 = d4f9378f4a0b0597 | a5b2e2a9ecf4008d - v_arg2 = ad243ef92717c06a | cc2ce7e72741a69c - v_arg3 = 26773558bcec2cef | e93ff3711d039e4e v_result = d4f9ad24378f3ef9 | 4a0b27170597c06a - r_arg1 = 47ca0520511d628c - r_arg2 = 36c08057e999c1fa - r_arg3 = e0299202fe7dc2b7 r_result = 0000000000000000 insn vmrhh: - v_arg1 = 3c2d4194d1c608a9 | e7b3b4fcd4237299 - v_arg2 = 7eb707f549662d89 | 57554055317b6037 - v_arg3 = cd37da2ff2ba097b | 025585951aaabd0f v_result = 3c2d7eb7419407f5 | d1c6496608a92d89 - r_arg1 = 050b2051a79be181 - r_arg2 = f272b5d99cba30ee - r_arg3 = 6ed75f66e513db5b r_result = 0000000000000000 insn vmrhh: - v_arg1 = 003020b8e52c0f3f | 7b2c6918fb45aa0b - v_arg2 = be995943e2ff17ae | 54921b3b302204f4 - v_arg3 = 8e7e1002a1a6b586 | 44d49058d970c4a9 v_result = 0030be9920b85943 | e52ce2ff0f3f17ae - r_arg1 = 9eb6ea561ac16649 - r_arg2 = 8e2c65bf0c2005de - r_arg3 = c61ac95d6e5a6ea0 r_result = 0000000000000000 insn vmrhh: - v_arg1 = 236c6c329ebd7f00 | bc24de033057b236 - v_arg2 = dd301575361bed9a | 0866207a9d6f27c4 - v_arg3 = 44ae08c138a8a9ec | e1ba88777fc9d2a5 v_result = 236cdd306c321575 | 9ebd361b7f00ed9a - r_arg1 = 94d8a87a1f12e202 - r_arg2 = a25adbe4248e9553 - r_arg3 = 577ce10fba13f83e r_result = 0000000000000000 insn vmrhh: - v_arg1 = afd632747a6490ad | c8f028bc6484274b - v_arg2 = d0ed16db6de475aa | ff22b06f974975f3 - v_arg3 = d4b466968b2536a9 | d1541aac585a9f6e v_result = afd6d0ed327416db | 7a646de490ad75aa - r_arg1 = 30ced5095243daa3 - r_arg2 = 4c7858dfb4b68d74 - r_arg3 = d556702191ad0c49 r_result = 0000000000000000 insn vmrhh: - v_arg1 = 76b4b5f21b3f0fe8 | 47f2500671e7fe19 - v_arg2 = d511eb435732889e | cda4a1b6a4056dec - v_arg3 = e3cc07ac97b14494 | 92fbe66d95b33709 v_result = 76b4d511b5f2eb43 | 1b3f57320fe8889e - r_arg1 = 4002e40933f62cc3 - r_arg2 = f1ccd5c635f6b0c6 - r_arg3 = fa8fb278200711f4 r_result = 0000000000000000 insn vmrhh: - v_arg1 = cc5731db0a5623ef | 245b161dd74543cd - v_arg2 = 2d6b9ab9294bd84f | c918feeb6e2827f7 - v_arg3 = a243bdeb3ccc0e27 | e8d845b20d14bddb v_result = cc572d6b31db9ab9 | 0a56294b23efd84f - r_arg1 = d7adfc01e979cb57 - r_arg2 = fa2fc0ed831e96eb - r_arg3 = 465a1cf6ba2a0750 r_result = 0000000000000000 insn vmrhf: - v_arg1 = 4fe093dd7761055f | 53e9b07d7ad5d6b2 - v_arg2 = e0175e473ea1aa76 | d1b9c96387230ffd - v_arg3 = 842f0eb902a8e734 | 9ea304aefd2a2a69 v_result = 4fe093dde0175e47 | 7761055f3ea1aa76 - r_arg1 = 1195bbb5028a7e72 - r_arg2 = 98c3bba7a1276f65 - r_arg3 = c0fa163a9712430d r_result = 0000000000000000 insn vmrhf: - v_arg1 = a0fe43e4f885c7f4 | 8ba888a166fb2df0 - v_arg2 = 7e3f6bb5d7969d6a | 0990b9f62715a941 - v_arg3 = 0237fab9d5e0f9b0 | 445e2793c9d20c12 v_result = a0fe43e47e3f6bb5 | f885c7f4d7969d6a - r_arg1 = cdcff4e63114a606 - r_arg2 = 82bc610379fbbf52 - r_arg3 = b380c26298652f36 r_result = 0000000000000000 insn vmrhf: - v_arg1 = 27addbd946150f47 | 09b302c08b071550 - v_arg2 = d9dca648dc3a61e1 | 9c32fdb6e98b4b26 - v_arg3 = 5e50b28ec941016a | f11da752b9d448d6 v_result = 27addbd9d9dca648 | 46150f47dc3a61e1 - r_arg1 = 727d71150ff1f5a0 - r_arg2 = b21b018e99322030 - r_arg3 = 728ab4cc01390cf7 r_result = 0000000000000000 insn vmrhf: - v_arg1 = d3f7ee660454d98d | 54f3349182f971f5 - v_arg2 = cd746e859a0a81ad | 7a85f7b79241e6ef - v_arg3 = 5e7c6298d88315d3 | ffc03557bda7d811 v_result = d3f7ee66cd746e85 | 0454d98d9a0a81ad - r_arg1 = ab90b240dba8382f - r_arg2 = 2c6c6216f8d2049a - r_arg3 = 1604b8cf3fd1b059 r_result = 0000000000000000 insn vmrhf: - v_arg1 = d8b5c3af7830395d | f4ddac06473efa23 - v_arg2 = f9dc56ee83b11b7f | 197a03c8cbe0be78 - v_arg3 = 0d8ce9b49f0f5fb7 | d1b6f64f2a328e3e v_result = d8b5c3aff9dc56ee | 7830395d83b11b7f - r_arg1 = 2b86ada13b300fbc - r_arg2 = b78e7e63b00d7007 - r_arg3 = 3ce99085a05e4803 r_result = 0000000000000000 insn vmrhf: - v_arg1 = 714d171950081769 | 39372e13fd73fefb - v_arg2 = 83f6e8c2f2c9a3a6 | 35d22e37e2c02e01 - v_arg3 = 7edd9cff25bae000 | 91bb45e47b88d0b7 v_result = 714d171983f6e8c2 | 50081769f2c9a3a6 - r_arg1 = 6b2b8d75f9aab031 - r_arg2 = a26a47fec205c390 - r_arg3 = c801b3831ec118f9 r_result = 0000000000000000 insn vmrhf: - v_arg1 = 9c74df055f65f142 | fbd27466ae20223b - v_arg2 = d87365c0e59aa4ce | 91dcff908da766e2 - v_arg3 = 891e079295872f79 | eb99757e11aa5a72 v_result = 9c74df05d87365c0 | 5f65f142e59aa4ce - r_arg1 = 675a73b1c729a915 - r_arg2 = 81b965edd58a6ea9 - r_arg3 = a4a4109d1646365f r_result = 0000000000000000 insn vmrhf: - v_arg1 = e2ec04945ec39d18 | 554fed2f087c2100 - v_arg2 = 6a9180e4c1d87fc4 | b433335da7872d56 - v_arg3 = 8c07ac4500673787 | d3e98d03f44700c4 v_result = e2ec04946a9180e4 | 5ec39d18c1d87fc4 - r_arg1 = 65bc38cdfd6c9b4d - r_arg2 = eec1f674f8d9bae5 - r_arg3 = 8274caa609695436 r_result = 0000000000000000 insn vmrhf: - v_arg1 = 0c462664ac480676 | 69dd7fd9222e8b86 - v_arg2 = 71dc272612672a30 | ac8379e6f2429f34 - v_arg3 = 2c21c36e1cfbfdf0 | 45d10b96917d6a21 v_result = 0c46266471dc2726 | ac48067612672a30 - r_arg1 = af862a7c56a000db - r_arg2 = 4a174ed45c5d85b6 - r_arg3 = 9725fa2c6293741c r_result = 0000000000000000 insn vmrhf: - v_arg1 = ef9f5a500f89eb08 | 20f745cd360987e5 - v_arg2 = abef3b404919f358 | cf443bf0d567f0af - v_arg3 = 1283f9a2084f5896 | 01c6a25a7a98d7d8 v_result = ef9f5a50abef3b40 | 0f89eb084919f358 - r_arg1 = 543dcb70b722e7a1 - r_arg2 = 7a5db50e1b700629 - r_arg3 = 5e37713e30dcb20f r_result = 0000000000000000 insn vmrhg: - v_arg1 = 2265ed32714ba356 | e829523565cd92d5 - v_arg2 = 1d3253677d6d3be2 | 767c55801cf5281c - v_arg3 = b0923272069fb73c | 4c4afc2e2ad0dbda v_result = 2265ed32714ba356 | 1d3253677d6d3be2 - r_arg1 = ec749619e93ab31e - r_arg2 = ab042d9ff51985ac - r_arg3 = 5bb97329e8c9fe29 r_result = 0000000000000000 insn vmrhg: - v_arg1 = c3121fa3a53edc89 | 74cb6eb576ec3e6a - v_arg2 = d09c7e102c503d91 | c180dc98bb16e6ab - v_arg3 = fabf482e4014df3e | b2ad7971bf0e2273 v_result = c3121fa3a53edc89 | d09c7e102c503d91 - r_arg1 = 518bba655adfe02d - r_arg2 = 0e092a440ece24cb - r_arg3 = d6077e35250edf64 r_result = 0000000000000000 insn vmrhg: - v_arg1 = 36efe9b820c35824 | 80c3d4319841f4d6 - v_arg2 = 9572feabf7dfc506 | 57b2d8f78be41f2a - v_arg3 = 2d4bc9a48586ab5b | c7cfefbfbfa72b0d v_result = 36efe9b820c35824 | 9572feabf7dfc506 - r_arg1 = 6771dd80e078becc - r_arg2 = 9dbb58b6b2329aed - r_arg3 = 9d8a016b694c3255 r_result = 0000000000000000 insn vmrhg: - v_arg1 = e7d1b8c5c1a6afcb | 8b46fb8d1cd8b32c - v_arg2 = c2050f6a6922f97e | 23430bdc0b26dcc8 - v_arg3 = 8c04bddf093acc6e | e1db68b1d41d0ef2 v_result = e7d1b8c5c1a6afcb | c2050f6a6922f97e - r_arg1 = d661db94779734d2 - r_arg2 = d571596d11d7f319 - r_arg3 = c37d2651dad3e9f3 r_result = 0000000000000000 insn vmrhg: - v_arg1 = 04dd301c89e310ff | 9c964a673daccf1a - v_arg2 = f3769ef9b1d01499 | 18f0a9c22112ffcf - v_arg3 = 1f085feb29a4872f | e00ce89f90e43709 v_result = 04dd301c89e310ff | f3769ef9b1d01499 - r_arg1 = cba78689febf7fb5 - r_arg2 = 7a57846004fc51b6 - r_arg3 = 64a589aa0660cd50 r_result = 0000000000000000 insn vmrhg: - v_arg1 = 4446ebcd646301de | fec3e2ddd862b4ad - v_arg2 = cb73124664102710 | efc71e23d70cff67 - v_arg3 = 7380df8f25257af5 | e76a255f2a192997 v_result = 4446ebcd646301de | cb73124664102710 - r_arg1 = bb5b64c5ff1ef14d - r_arg2 = 5721a8c2c74eaf45 - r_arg3 = 5e17ff399fde3d5e r_result = 0000000000000000 insn vmrhg: - v_arg1 = a30c3867dfbe1be6 | 046d594c3412a110 - v_arg2 = b1fa07393d34d77c | e4e2cc382063a859 - v_arg3 = 5d642710e5cd5775 | 218c4d063f4b3cff v_result = a30c3867dfbe1be6 | b1fa07393d34d77c - r_arg1 = 212374eb6552b48a - r_arg2 = fcd4c8c5bdaa9928 - r_arg3 = 1af5517e4027eeaa r_result = 0000000000000000 insn vmrhg: - v_arg1 = 23beddb4f1f9cfb1 | c67f7a0dbcfd6e4c - v_arg2 = 94140f7cde7f2214 | 7d29cbb69119ddc8 - v_arg3 = b73c94f3b618a883 | 7d57c5a493356081 v_result = 23beddb4f1f9cfb1 | 94140f7cde7f2214 - r_arg1 = 3bf4e99e4427853e - r_arg2 = 7e83dd5930d7f65d - r_arg3 = 4230ff7627c2a922 r_result = 0000000000000000 insn vmrhg: - v_arg1 = 8d37d67fb34825b8 | e2f40739c1574808 - v_arg2 = a89970328ddf1b6e | 4413a891289b57f7 - v_arg3 = 22dcb9b90ab38acf | 73bbe40bce80d8fc v_result = 8d37d67fb34825b8 | a89970328ddf1b6e - r_arg1 = d2d0ee3d955579d9 - r_arg2 = 3b0e98ec0f4fbf42 - r_arg3 = 8945fe5ef9a511d1 r_result = 0000000000000000 insn vmrhg: - v_arg1 = 2f63145028cc7813 | 3d9477653afd7048 - v_arg2 = 27f1eac2f8b2a93c | 896527bc09836409 - v_arg3 = c32620a33b3773a7 | be7bbd88408401ae v_result = 2f63145028cc7813 | 27f1eac2f8b2a93c - r_arg1 = ef8761a7f745bc26 - r_arg2 = 95e31d2aaff6c651 - r_arg3 = 67027b6f83f35ba0 r_result = 0000000000000000 insn vmrlb: - v_arg1 = 9dfa3f2df6543c36 | c1b6b865833eff30 - v_arg2 = 12d06e8cf1834d0e | 21ef01e53d5ba8ba - v_arg3 = 07ca096f49ebedba | 20e5d3a79e0609f2 v_result = c121b6efb80165e5 | 833d3e5bffa830ba - r_arg1 = a77999f770cb4e12 - r_arg2 = b3c0c9bc8adf70e4 - r_arg3 = da4196a174be1416 r_result = 0000000000000000 insn vmrlb: - v_arg1 = 714175592b1fb8b4 | 1dfeef0b2294a5c0 - v_arg2 = eef8e8b133ccda15 | 2a54a73c725ce02a - v_arg3 = 5f082a18988558d2 | 2294e3f1c3f9b9ff v_result = 1d2afe54efa70b3c | 2272945ca5e0c02a - r_arg1 = d15121482becc564 - r_arg2 = 436eee0c040c7cf1 - r_arg3 = 27aa286b24c4df17 r_result = 0000000000000000 insn vmrlb: - v_arg1 = 0bcf0917fa97cdfe | 881f34e77e6b6698 - v_arg2 = 87f9f7ce1cb53bdd | c5c2fe2bbf299b91 - v_arg3 = 056b6d98b4e8ad97 | d1349eb071402dae v_result = 88c51fc234fee72b | 7ebf6b29669b9891 - r_arg1 = cbc97b7138980e84 - r_arg2 = 3b8593fe212dbacd - r_arg3 = 97747e7f503535a7 r_result = 0000000000000000 insn vmrlb: - v_arg1 = 524545677d15ae23 | 7f995707a6d75db5 - v_arg2 = b1f3b0c072d23011 | dab4211d5d98ff0a - v_arg3 = b68eb6a80ee63651 | 833d6ca80e6a9634 v_result = 7fda99b45721071d | a65dd7985dffb50a - r_arg1 = 3a6cdfc84f6f2d36 - r_arg2 = 942d35b7515fd5eb - r_arg3 = 3b231c91dc6a24a7 r_result = 0000000000000000 insn vmrlb: - v_arg1 = 711329c671a3a690 | 837a9fb711607930 - v_arg2 = 02505f601fe8123a | d9b6233a6f688b4c - v_arg3 = 76d99b7dbcfd57a5 | 90b52bdd6773ffe2 v_result = 83d97ab69f23b73a | 116f6068798b304c - r_arg1 = c74dfae18e7ff85f - r_arg2 = 0eda895925ee0b9c - r_arg3 = a94a7c1090ad1195 r_result = 0000000000000000 insn vmrlb: - v_arg1 = 9c392bf0fdb3d6d0 | dc20864159b94305 - v_arg2 = 9a8d4647f5a78b7e | 741fcb28bc0a... [truncated message content] |
|
From: Andreas A. <ar...@so...> - 2023-09-07 15:03:18
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=8484f1b73ad59573c413a669e80089223b2a7437 commit 8484f1b73ad59573c413a669e80089223b2a7437 Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 17:00:42 2023 +0200 s390x regtest: Fix typo in previous commit This amends the commit "Build DFP test cases unconditionally", where "pfpo" was accidentally replaced by "pfpfo" in Makefile.am. Diff: --- none/tests/s390x/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/none/tests/s390x/Makefile.am b/none/tests/s390x/Makefile.am index 15f9ddbd5b..6c23c484e4 100644 --- a/none/tests/s390x/Makefile.am +++ b/none/tests/s390x/Makefile.am @@ -21,7 +21,7 @@ INSN_TESTS = clc clcle cvb cvd icm lpr tcxb lam_stam xc mvst add sub mul \ spechelper-tm laa vector lsc2 ppno vector_string vector_integer \ vector_float add-z14 sub-z14 mul-z14 bic \ misc3 vec2 vec2_float \ - dfp-1 dfp-2 dfp-3 dfp-4 dfpconv dfpext dfptest pfpfo srnmt + dfp-1 dfp-2 dfp-3 dfp-4 dfpconv dfpext dfptest pfpo srnmt if HAS_MLONG_DOUBLE_128 INSN_TESTS += fpext fixbr |
|
From: Andreas A. <ar...@so...> - 2023-09-07 14:45:56
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=9774b7c6d083fa6d8d29e5f657e9d5c15a7cf47f commit 9774b7c6d083fa6d8d29e5f657e9d5c15a7cf47f Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:25 2023 +0200 s390x regtest: Rework pfpo The pfpo test case relies on `_Decimal*' type support, which currently excludes Clang. Rework the test to avoid this. Also, fix a typo that causes conversions to 64-bit decimal types to be shown as "-> d6" instead of "-> d64" in the output. Adjust the output file accordingly. Diff: --- none/tests/s390x/pfpo.c | 363 +++++++++++++-------------------------- none/tests/s390x/pfpo.stdout.exp | 60 +++---- 2 files changed, 146 insertions(+), 277 deletions(-) diff --git a/none/tests/s390x/pfpo.c b/none/tests/s390x/pfpo.c index a5300d5c51..5e3cd7bf2d 100644 --- a/none/tests/s390x/pfpo.c +++ b/none/tests/s390x/pfpo.c @@ -1,11 +1,6 @@ -#include <stdio.h> -#include <stdint.h> #include "dfp_utils.h" -#define __STDC_WANT_DEC_FP__ 1 -#include <float.h> +#include <stdio.h> -#ifndef PFPO_FUNCTIONS -#define PFPO_FUNCTIONS #define PFPO_F32_TO_D32 0x01080500 #define PFPO_D32_TO_F32 0x01050800 #define PFPO_F32_TO_D64 0x01090500 @@ -26,249 +21,123 @@ #define PFPO_F128_TO_D128 0x010A0700 #define PFPO_D128_TO_F128 0x01070A00 -#define PFPO(initial, src_type, dst_type, fn_code, round, ret_code, cc) \ -({ \ - register src_type src_reg asm("f4") = initial; \ - register dst_type dst_reg asm("f0"); \ - register unsigned long fn asm("0") = fn_code | (round & 0xf); \ - register unsigned int ret asm("1"); \ - asm volatile(".short 0x010a\n\t" \ - "ipm %2\n\t" \ - "srl %2,28\n\t" \ - :"=f"(dst_reg), "=d"(ret), "=d" (cc) \ - : "f"(src_reg), "d"(fn) \ - : "cc"); \ - ret_code = ret; \ - dst_reg; \ -}) - -#endif /* PFPO_FUNCTIONS */ +static const pun_d32 f32_in[] = { + {.f = 123.5656789}, + {.f = 0x1.fffffep+127}, /* FLT_MAX */ + {.f = 0x1p-126}, /* FLT_MIN */ +}; + +static const pun_d64 f64_in[] = { + {.f = 123456789999.5656789}, + {.f = 0x1p-1022}, /* DBL_MIN */ + {.f = 0x1.fffffffffffffp+1023}, /* DBL_MAX */ +}; + +static const pun_d128 f128_in[] = { + {.f = 1234567812345678912345678912.5656789L}, + {.f = 0x1p-16382L}, /* LDBL_MIN */ + {.f = 0x1.ffffffffffffffffffffffffffffp+16383L}, /* LDBL_MAX */ +}; + +static const pun_d32 d32_in[] = { + {0x2614d757}, /* 123.5656789DF */ + {0x77f3fcff}, /* DEC32_MAX */ + {0x00600001}, /* DEC32_MAX */ +}; + +static const pun_d64 d64_in[] = { + {0x262934b9c7fa7f57}, /* 123456789999.5656789DD */ + {0x003c000000000001}, /* DEC64_MIN */ + {0x77fcff3fcff3fcff}, /* DEC64_MAX */ +}; + +static const pun_d128 d128_in[] = { + {{0x2606934b9d1c7177, 0x8671c5de19cb9779}}, + {{0x0008400000000000, 0x0000000000000001}}, + {{0x77ffcff3fcff3fcf, 0xf3fcff3fcff3fcff}}, +}; + +#define PFPO(initial, src_type, dst_type, fn_code, round, ret_code, cc) \ + ({ \ + pun_##dst_type dst; \ + register reg_##src_type src_reg asm("f4") = initial.f; \ + register reg_##dst_type dst_reg asm("f0"); \ + register unsigned long fn asm("0") = fn_code | (round & 0xf); \ + register unsigned int ret asm("1"); \ + asm(".insn e,0x010a\n\t" \ + "ipm %2\n\t" \ + "srl %2,28\n\t" \ + : "=f"(dst_reg), "=d"(ret), "=d"(cc) \ + : "f"(src_reg), "d"(fn) \ + : "cc"); \ + ret_code = ret; \ + dst.f = dst_reg; \ + dst; \ + }) + +#define TEST_TO_DEC(in_bits, out_bits, flg, round) \ + ({ \ + pun_d##out_bits result; \ + for (unsigned j = 0; j < 3; j++) { \ + printf("f" #in_bits " -> d" #out_bits ": round=%x ", round); \ + printf("%" flg "a -> ", f##in_bits##_in[j].f); \ + result = PFPO(f##in_bits##_in[j], d##in_bits, d##out_bits, \ + PFPO_F##in_bits##_TO_D##out_bits, round, ret_code, cc); \ + DFP_VAL_PRINT(result, pun_d##out_bits); \ + printf(" ret=%d cc=%d\n", ret_code, cc); \ + } \ + }) + +#define TEST_FROM_DEC(in_bits, out_bits, flg, round) \ + ({ \ + pun_d##out_bits result; \ + for (unsigned j = 0; j < 3; j++) { \ + printf("d" #in_bits " -> f" #out_bits ": round=%x ", round); \ + DFP_VAL_PRINT(d##in_bits##_in[j], pun_d##in_bits); \ + result = PFPO(d##in_bits##_in[j], d##in_bits, d##out_bits, \ + PFPO_D##in_bits##_TO_F##out_bits, round, ret_code, cc); \ + printf(" -> %" flg "a", result.f); \ + printf(" ret=%d cc=%d\n", ret_code, cc); \ + } \ + }) /* Test BFP <-> DFP conversions */ int main() { - int cc; - uint8_t i, j; - unsigned int ret_code; - - float f32; - double f64; - long double f128; - - _Decimal32 d32; - _Decimal64 d64; - _Decimal128 d128; - - float f32_in[] = {123.5656789, FLT_MAX, FLT_MIN}; - double f64_in[] = {123456789999.5656789, DBL_MIN, DBL_MAX}; - long double f128_in[] = {1234567812345678912345678912.5656789L, - LDBL_MIN, LDBL_MAX}; - - _Decimal32 d32_in[] = {123.5656789DF, DEC32_MAX, DEC32_MIN}; - _Decimal64 d64_in[] = {123456789999.5656789DD, DEC64_MIN, DEC64_MAX}; - _Decimal128 d128_in[] = {1234567812345678912345678912.5656789DL, - DEC128_MIN, DEC128_MAX}; - - /* valid function code */ - PFPO(0., double, _Decimal64, 0x81090600, 0, ret_code, cc); - printf("pfpo test: function=%x ret=%d cc=%d\n", 0x81090600, ret_code, cc); - - /* invalid function code */ - PFPO(0., double, _Decimal64, 0x81990600, 0, ret_code, cc); - printf("pfpo test: function=%x ret=%d cc=%d\n", 0x81990600, ret_code, cc); - - for (i = 0; i < 16; i++) { - if (i < 2 || i > 7) { - - /* f32 -> d32 */ - for(j = 0; j < 3; j++) { - printf("f32 -> d32: round=%x ", i); - printf("%a -> ", f32_in[j]); - d32 = PFPO(f32_in[j], float, _Decimal32, PFPO_F32_TO_D32, - i, ret_code, cc); - DFP_VAL_PRINT(d32, _Decimal32); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* f32 -> d64 */ - for(j = 0; j < 3; j++) { - printf("f32 -> d64: round=%x ", i); - printf("%a -> ", f32_in[j]); - d64 = PFPO(f32_in[j], float, _Decimal64, PFPO_F32_TO_D64, - i, ret_code, cc); - DFP_VAL_PRINT(d64, _Decimal64); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* f32 -> d128 */ - for(j = 0; j < 3; j++) { - printf("f32 -> d128: round=%x ", i); - printf("%a -> ", f32_in[j]); - d128 = PFPO(f32_in[j], float, _Decimal128, PFPO_F32_TO_D128, - i, ret_code, cc); - DFP_VAL_PRINT(d128, _Decimal128); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* f64 -> d32 */ - for(j = 0; j < 3; j++) { - printf("f64 -> d32: round=%x ", i); - printf("%a -> ", f64_in[j]); - d32 = PFPO(f64_in[j], double, _Decimal32, PFPO_F64_TO_D32, - i, ret_code, cc); - DFP_VAL_PRINT(d32, _Decimal32); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* f64 -> d64 */ - for(j = 0; j < 3; j++) { - printf("f64 -> d64: round=%x ", i); - printf("%a -> ", f64_in[j]); - d64 = PFPO(f64_in[j], double, _Decimal64, PFPO_F64_TO_D64, - i, ret_code, cc); - DFP_VAL_PRINT(d64, _Decimal64); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* f64 -> d128 */ - for(j = 0; j < 3; j++) { - printf("f64 -> d128: round=%x ", i); - printf("%a -> ", f64_in[j]); - d128 = PFPO(f64_in[j], double, _Decimal128, PFPO_F64_TO_D128, - i, ret_code, cc); - DFP_VAL_PRINT(d128, _Decimal128); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* f128 -> d32 */ - for(j = 0; j < 3; j++) { - printf("f128 -> d32: round=%x ", i); - printf("%La -> ", f128_in[j]); - d32 = PFPO(f128_in[j], long double, _Decimal32, PFPO_F128_TO_D32, - i, ret_code, cc); - DFP_VAL_PRINT(d32, _Decimal32); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* f128 -> d64 */ - for(j = 0; j < 3; j++) { - printf("f128 -> d6: round=%x ", i); - printf("%La -> ", f128_in[j]); - d64 = PFPO(f128_in[j], long double, _Decimal64, PFPO_F128_TO_D64, - i, ret_code, cc); - DFP_VAL_PRINT(d64, _Decimal64); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* f128 -> d128 */ - for(j = 0; j < 3; j++) { - printf("f128 -> d128: round=%x ", i); - printf("%La -> ", f128_in[j]); - d128 = PFPO(f128_in[j], long double, _Decimal128, PFPO_F128_TO_D128, - i, ret_code, cc); - DFP_VAL_PRINT(d128, _Decimal128); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d32 -> f32 */ - for(j = 0; j < 3; j++) { - printf("d32 -> f32: round=%x ", i); - DFP_VAL_PRINT(d32_in[j], _Decimal32); - printf(" -> "); - f32 = PFPO(d32_in[j], _Decimal32, float, PFPO_D32_TO_F32, - i, ret_code, cc); - printf("%a", f32); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d32 -> f64 */ - for(j = 0; j < 3; j++) { - printf("d32 -> f64: round=%x ", i); - DFP_VAL_PRINT(d32_in[j], _Decimal32); - printf(" -> "); - f64 = PFPO(d32_in[j], _Decimal32, double, PFPO_D32_TO_F64, - i, ret_code, cc); - printf("%a", f64); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d32 -> f128 */ - for(j = 0; j < 3; j++) { - printf("d32 -> f128: round=%x ", i); - DFP_VAL_PRINT(d32_in[j], _Decimal32); - printf(" -> "); - f128 = PFPO(d32_in[j], _Decimal32, long double, PFPO_D32_TO_F128, - i, ret_code, cc); - printf("%La", f128); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d64 -> f32 */ - for(j = 0; j < 3; j++) { - printf("d64 -> f32: round=%x ", i); - DFP_VAL_PRINT(d64_in[j], _Decimal64); - printf(" -> "); - f32 = PFPO(d64_in[j], _Decimal64, float, PFPO_D64_TO_F32, - i, ret_code, cc); - printf("%a", f32); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d64 -> f64 */ - for(j = 0; j < 3; j++) { - printf("d64 -> f64: round=%x ", i); - DFP_VAL_PRINT(d64_in[j], _Decimal64); - printf(" -> "); - f64 = PFPO(d64_in[j], _Decimal64, double, PFPO_D64_TO_F64, - i, ret_code, cc); - printf("%a", f64); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d64 -> f128 */ - for(j = 0; j < 3; j++) { - printf("d64 -> f128: round=%x ", i); - DFP_VAL_PRINT(d64_in[j], _Decimal64); - printf(" -> "); - f128 = PFPO(d64_in[j], _Decimal64, long double, PFPO_D64_TO_F128, - i, ret_code, cc); - printf("%La", f128); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d128 -> f32 */ - for(j = 0; j < 3; j++) { - printf("d128 -> f32: round=%x ", i); - DFP_VAL_PRINT(d128_in[j], _Decimal128); - printf(" -> "); - f32 = PFPO(d128_in[j], _Decimal128, float, PFPO_D128_TO_F32, - i, ret_code, cc); - printf("%a", f32); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d128 -> f64 */ - for(j = 0; j < 3; j++) { - printf("d128 -> f64: round=%x ", i); - DFP_VAL_PRINT(d128_in[j], _Decimal128); - printf(" -> "); - f64 = PFPO(d128_in[j], _Decimal128, double, PFPO_D128_TO_F64, - i, ret_code, cc); - printf("%a", f64); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - - /* d128 -> f128 */ - for(j = 0; j < 3; j++) { - printf("d128 -> f128: round=%x ", i); - DFP_VAL_PRINT(d128_in[j], _Decimal128); - printf(" -> "); - f128 = PFPO(d128_in[j], _Decimal128, long double, PFPO_D128_TO_F128, - i, ret_code, cc); - printf("%La", f128); - printf(" ret=%d cc=%d\n", ret_code, cc); - } - } - } - return 0; + int cc; + unsigned ret_code; + static const pun_d64 f64_zero = {.f = 0.}; + + /* valid function code */ + PFPO(f64_zero, d64, d64, 0x81090600, 0, ret_code, cc); + printf("pfpo test: function=%x ret=%d cc=%d\n", 0x81090600, ret_code, cc); + + /* invalid function code */ + PFPO(f64_zero, d64, d64, 0x81990600, 0, ret_code, cc); + printf("pfpo test: function=%x ret=%d cc=%d\n", 0x81990600, ret_code, cc); + + for (unsigned i = 0; i < 16; i++) { + if (i < 2 || i > 7) { + TEST_TO_DEC(32, 32, "", i); + TEST_TO_DEC(32, 64, "", i); + TEST_TO_DEC(32, 128, "", i); + TEST_TO_DEC(64, 32, "", i); + TEST_TO_DEC(64, 64, "", i); + TEST_TO_DEC(64, 128, "", i); + TEST_TO_DEC(128, 32, "L", i); + TEST_TO_DEC(128, 64, "L", i); + TEST_TO_DEC(128, 128, "L", i); + + TEST_FROM_DEC(32, 32, "", i); + TEST_FROM_DEC(32, 64, "", i); + TEST_FROM_DEC(32, 128, "L", i); + TEST_FROM_DEC(64, 32, "", i); + TEST_FROM_DEC(64, 64, "", i); + TEST_FROM_DEC(64, 128, "L", i); + TEST_FROM_DEC(128, 32, "", i); + TEST_FROM_DEC(128, 64, "", i); + TEST_FROM_DEC(128, 128, "L", i); + } + } + return 0; } diff --git a/none/tests/s390x/pfpo.stdout.exp b/none/tests/s390x/pfpo.stdout.exp index ed628c2699..a726c97377 100644 --- a/none/tests/s390x/pfpo.stdout.exp +++ b/none/tests/s390x/pfpo.stdout.exp @@ -21,9 +21,9 @@ f64 -> d128: round=0 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 f128 -> d32: round=0 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 f128 -> d32: round=0 0x1p-16382 -> 00000000 ret=0 cc=1 f128 -> d32: round=0 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 -f128 -> d6: round=0 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=0 0x1p-16382 -> 0000000000000000 ret=0 cc=1 -f128 -> d6: round=0 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d64: round=0 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d64: round=0 0x1p-16382 -> 0000000000000000 ret=0 cc=1 +f128 -> d64: round=0 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 f128 -> d128: round=0 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 f128 -> d128: round=0 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 f128 -> d128: round=0 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 @@ -75,9 +75,9 @@ f64 -> d128: round=1 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 f128 -> d32: round=1 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 f128 -> d32: round=1 0x1p-16382 -> 00000000 ret=0 cc=1 f128 -> d32: round=1 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 -f128 -> d6: round=1 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=1 0x1p-16382 -> 0000000000000000 ret=0 cc=1 -f128 -> d6: round=1 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d64: round=1 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d64: round=1 0x1p-16382 -> 0000000000000000 ret=0 cc=1 +f128 -> d64: round=1 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 f128 -> d128: round=1 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 f128 -> d128: round=1 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 f128 -> d128: round=1 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 @@ -129,9 +129,9 @@ f64 -> d128: round=8 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 f128 -> d32: round=8 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 f128 -> d32: round=8 0x1p-16382 -> 00000000 ret=0 cc=1 f128 -> d32: round=8 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 -f128 -> d6: round=8 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=8 0x1p-16382 -> 0000000000000000 ret=0 cc=1 -f128 -> d6: round=8 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d64: round=8 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d64: round=8 0x1p-16382 -> 0000000000000000 ret=0 cc=1 +f128 -> d64: round=8 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 f128 -> d128: round=8 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 f128 -> d128: round=8 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 f128 -> d128: round=8 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 @@ -183,9 +183,9 @@ f64 -> d128: round=9 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c43 f128 -> d32: round=9 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e7 ret=0 cc=1 f128 -> d32: round=9 0x1p-16382 -> 00000000 ret=0 cc=1 f128 -> d32: round=9 0x1.ffffffffffffffffffffffffffffp+16383 -> 77f3fcff ret=0 cc=1 -f128 -> d6: round=9 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71778 ret=0 cc=1 -f128 -> d6: round=9 0x1p-16382 -> 0000000000000000 ret=0 cc=1 -f128 -> d6: round=9 0x1.ffffffffffffffffffffffffffffp+16383 -> 77fcff3fcff3fcff ret=0 cc=1 +f128 -> d64: round=9 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71778 ret=0 cc=1 +f128 -> d64: round=9 0x1p-16382 -> 0000000000000000 ret=0 cc=1 +f128 -> d64: round=9 0x1.ffffffffffffffffffffffffffffp+16383 -> 77fcff3fcff3fcff ret=0 cc=1 f128 -> d128: round=9 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9778 ret=0 cc=1 f128 -> d128: round=9 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d2 ret=0 cc=1 f128 -> d128: round=9 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 @@ -237,9 +237,9 @@ f64 -> d128: round=a 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 f128 -> d32: round=a 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 f128 -> d32: round=a 0x1p-16382 -> 00000001 ret=0 cc=1 f128 -> d32: round=a 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 -f128 -> d6: round=a 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=a 0x1p-16382 -> 0000000000000001 ret=0 cc=1 -f128 -> d6: round=a 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d64: round=a 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d64: round=a 0x1p-16382 -> 0000000000000001 ret=0 cc=1 +f128 -> d64: round=a 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 f128 -> d128: round=a 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 f128 -> d128: round=a 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 f128 -> d128: round=a 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca008 ret=0 cc=1 @@ -291,9 +291,9 @@ f64 -> d128: round=b 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c43 f128 -> d32: round=b 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e7 ret=0 cc=1 f128 -> d32: round=b 0x1p-16382 -> 00000000 ret=0 cc=1 f128 -> d32: round=b 0x1.ffffffffffffffffffffffffffffp+16383 -> 77f3fcff ret=0 cc=1 -f128 -> d6: round=b 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71778 ret=0 cc=1 -f128 -> d6: round=b 0x1p-16382 -> 0000000000000000 ret=0 cc=1 -f128 -> d6: round=b 0x1.ffffffffffffffffffffffffffffp+16383 -> 77fcff3fcff3fcff ret=0 cc=1 +f128 -> d64: round=b 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71778 ret=0 cc=1 +f128 -> d64: round=b 0x1p-16382 -> 0000000000000000 ret=0 cc=1 +f128 -> d64: round=b 0x1.ffffffffffffffffffffffffffffp+16383 -> 77fcff3fcff3fcff ret=0 cc=1 f128 -> d128: round=b 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9778 ret=0 cc=1 f128 -> d128: round=b 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d2 ret=0 cc=1 f128 -> d128: round=b 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 @@ -345,9 +345,9 @@ f64 -> d128: round=c 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 f128 -> d32: round=c 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 f128 -> d32: round=c 0x1p-16382 -> 00000000 ret=0 cc=1 f128 -> d32: round=c 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 -f128 -> d6: round=c 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=c 0x1p-16382 -> 0000000000000000 ret=0 cc=1 -f128 -> d6: round=c 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d64: round=c 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d64: round=c 0x1p-16382 -> 0000000000000000 ret=0 cc=1 +f128 -> d64: round=c 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 f128 -> d128: round=c 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 f128 -> d128: round=c 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 f128 -> d128: round=c 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 @@ -399,9 +399,9 @@ f64 -> d128: round=d 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 f128 -> d32: round=d 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 f128 -> d32: round=d 0x1p-16382 -> 00000000 ret=0 cc=1 f128 -> d32: round=d 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 -f128 -> d6: round=d 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=d 0x1p-16382 -> 0000000000000000 ret=0 cc=1 -f128 -> d6: round=d 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d64: round=d 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d64: round=d 0x1p-16382 -> 0000000000000000 ret=0 cc=1 +f128 -> d64: round=d 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 f128 -> d128: round=d 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 f128 -> d128: round=d 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 f128 -> d128: round=d 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 @@ -453,9 +453,9 @@ f64 -> d128: round=e 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 f128 -> d32: round=e 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 f128 -> d32: round=e 0x1p-16382 -> 00000001 ret=0 cc=1 f128 -> d32: round=e 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 -f128 -> d6: round=e 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=e 0x1p-16382 -> 0000000000000001 ret=0 cc=1 -f128 -> d6: round=e 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d64: round=e 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d64: round=e 0x1p-16382 -> 0000000000000001 ret=0 cc=1 +f128 -> d64: round=e 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 f128 -> d128: round=e 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 f128 -> d128: round=e 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 f128 -> d128: round=e 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca008 ret=0 cc=1 @@ -507,9 +507,9 @@ f64 -> d128: round=f 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c43 f128 -> d32: round=f 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e7 ret=0 cc=1 f128 -> d32: round=f 0x1p-16382 -> 00000001 ret=0 cc=1 f128 -> d32: round=f 0x1.ffffffffffffffffffffffffffffp+16383 -> 77f3fcff ret=0 cc=1 -f128 -> d6: round=f 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71778 ret=0 cc=1 -f128 -> d6: round=f 0x1p-16382 -> 0000000000000001 ret=0 cc=1 -f128 -> d6: round=f 0x1.ffffffffffffffffffffffffffffp+16383 -> 77fcff3fcff3fcff ret=0 cc=1 +f128 -> d64: round=f 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71778 ret=0 cc=1 +f128 -> d64: round=f 0x1p-16382 -> 0000000000000001 ret=0 cc=1 +f128 -> d64: round=f 0x1.ffffffffffffffffffffffffffffp+16383 -> 77fcff3fcff3fcff ret=0 cc=1 f128 -> d128: round=f 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9778 ret=0 cc=1 f128 -> d128: round=f 0x1p-16382 -> 0d2ede220cc32483ba1962ddf1d687d2 ret=0 cc=1 f128 -> d128: round=f 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 |
|
From: Andreas A. <ar...@so...> - 2023-09-07 14:45:55
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=c60a22acb6e822f596d085144d7a25a02d498193 commit c60a22acb6e822f596d085144d7a25a02d498193 Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:25 2023 +0200 s390x regtest: Build DFP test cases unconditionally Now that the DFP test cases no longer depend on the compiler's support for `_Decimal*' types, they can be enabled unconditionally. Do this in the "Makefile.am". Diff: --- none/tests/s390x/Makefile.am | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/none/tests/s390x/Makefile.am b/none/tests/s390x/Makefile.am index 2a22aefac2..15f9ddbd5b 100644 --- a/none/tests/s390x/Makefile.am +++ b/none/tests/s390x/Makefile.am @@ -20,11 +20,9 @@ INSN_TESTS = clc clcle cvb cvd icm lpr tcxb lam_stam xc mvst add sub mul \ spechelper-icm-1 spechelper-icm-2 spechelper-tmll \ spechelper-tm laa vector lsc2 ppno vector_string vector_integer \ vector_float add-z14 sub-z14 mul-z14 bic \ - misc3 vec2 vec2_float + misc3 vec2 vec2_float \ + dfp-1 dfp-2 dfp-3 dfp-4 dfpconv dfpext dfptest pfpfo srnmt -if BUILD_DFP_TESTS - INSN_TESTS += dfp-1 dfp-2 dfp-3 dfp-4 dfptest dfpext dfpconv srnmt pfpo -endif if HAS_MLONG_DOUBLE_128 INSN_TESTS += fpext fixbr endif |
|
From: Andreas A. <ar...@so...> - 2023-09-07 14:45:46
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=d73a8e6e25db7546d122a446b60a753b44f4c5dd commit d73a8e6e25db7546d122a446b60a753b44f4c5dd Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:25 2023 +0200 s390x regtest: Rework dfptest The dfptest test case uses `_Decimal*' types, which is currently not supported by Clang. Rework the test to avoid this. Diff: --- none/tests/s390x/dfptest.c | 159 +++++++++++++++------------------------------ 1 file changed, 54 insertions(+), 105 deletions(-) diff --git a/none/tests/s390x/dfptest.c b/none/tests/s390x/dfptest.c index f1b383a7b8..c49fa39b3d 100644 --- a/none/tests/s390x/dfptest.c +++ b/none/tests/s390x/dfptest.c @@ -1,10 +1,6 @@ -#include <math.h> +#include "dfp_utils.h" #include <stdio.h> -/* Following macros adopted from dfp/math.h from libdfp */ -#define DEC_INFINITY __builtin_infd64() -#define DEC_NAN (0.0DF * DEC_INFINITY) - /* Following instructions are tested: test data class tests for _Decimal32 - TDCET @@ -16,110 +12,63 @@ test data group tests for _decimal128 - TDGXT */ -#define TEST_128(opcode, d, n) \ - ({ \ - int match; \ - _Decimal128 f = d; \ - long long num = n; \ - asm volatile(opcode ", %1,0(%2)\n" \ - "ipm %0\n" \ - "srl %0,28\n" \ - : "=d" (match) : "f" (f), "a" (num) : "cc"); \ - match; \ - }) +static const pun_d32 d32_vals[] = { + {0x22400000}, /* +0.0DF */ + {0xa2400000}, /* -0.0DF */ + {0x22400022}, /* +2.2DF */ + {0xa2400022}, /* -2.2DF */ + {0x78000000}, /* DEC_INFINITY */ + {0xf8000000}, /* -DEC_INFINITY */ + {0x7c000000}, /* +DEC_NAN */ + {0xfc000000}, /* -DEC_NAN */ +}; + +static const pun_d64 d64_vals[] = { + {0x2234000000000000}, {0xa234000000000000}, {0x2234000000000022}, + {0xa234000000000022}, {0x7800000000000000}, {0xf800000000000000}, + {0x7c00000000000000}, {0xfc00000000000000}, +}; -#define TEST_64(opcode, d, n) \ - ({ \ - int match; \ - _Decimal64 f = d; \ - long long num = n; \ - asm volatile(opcode ", %1,0(%2)\n" \ - "ipm %0\n" \ - "srl %0,28\n" \ - : "=d" (match) : "f" (f), "a" (num) : "cc"); \ - match; \ - }) +static const pun_d128 d128_vals[] = { + {{0x2207c00000000000, 0x0000000000000000}}, + {{0xa207c00000000000, 0x0000000000000000}}, + {{0x2207c00000000000, 0x0000000000000022}}, + {{0xa207c00000000000, 0x0000000000000022}}, + {{0x7800000000000000, 0x0000000000000000}}, + {{0xf800000000000000, 0x0000000000000000}}, + {{0x7c00000000000000, 0x0000000000000000}}, + {{0xfc00000000000000, 0x0000000000000000}}, +}; -#define TEST_32(opcode, d, n) \ - ({ \ - int match; \ - _Decimal32 f = d; \ - long long num = n; \ - asm volatile(opcode ", %1,0(%2)\n" \ - "ipm %0\n" \ - "srl %0,28\n" \ - : "=d" (match) : "f" (f), "a" (num) : "cc"); \ - match; \ - }) +#define TEST(opcode, ty, n) \ + ({ \ + const long num = n; \ + for (unsigned j = 0; j != sizeof(ty##_vals) / sizeof(ty##_vals[0]); \ + j++) { \ + int cc; \ + asm(".insn rxe, " opcode ", %[dec],0(%[bits])\n\t" \ + "ipm %[cc]\n" \ + "srl %[cc],28" \ + : [cc] "=d"(cc) \ + : [dec] "f"(ty##_vals[j].f), [bits] "a"(num) \ + : "cc"); \ + printf("%d", cc); \ + } \ + }) int main() { - int i; - - /* The right most 12 bits 52:63 of the second operand are set and tested */ - for (i = 0; i < 12; i++) { - /* DFP 128 bit - TDCXT */ - printf("%d", TEST_128(".insn rxe, 0xed0000000058", +0.0DF, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000058", -0.0DF, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000058", +2.2DF, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000058", -2.2DF, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000058",+DEC_INFINITY,1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000058",-DEC_INFINITY,1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000058", +DEC_NAN, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000058", -DEC_NAN, 1UL<<i)); - - /* DFP 128 bit - TDGXT */ - printf("%d", TEST_128(".insn rxe, 0xed0000000059", +0.0DF, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000059", -0.0DF, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000059", +2.2DF, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000059", -2.2DF, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000059",+DEC_INFINITY,1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000059",-DEC_INFINITY,1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000059", +DEC_NAN, 1UL<<i)); - printf("%d", TEST_128(".insn rxe, 0xed0000000059", -DEC_NAN, 1UL<<i)); - - /* DFP 64 bit - TDCDT */ - printf("%d", TEST_64(".insn rxe, 0xed0000000054", +0.0DF, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000054", -0.0DF, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000054", +2.2DF, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000054", -2.2DF, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000054",+DEC_INFINITY,1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000054",-DEC_INFINITY,1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000054", +DEC_NAN, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000054", -DEC_NAN, 1UL<<i)); - - /* DFP 64 bit - TDGDT */ - printf("%d", TEST_64(".insn rxe, 0xed0000000055", +0.0DF, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000055", -0.0DF, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000055", +2.2DF, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000055", -2.2DF, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000055",+DEC_INFINITY,1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000055",-DEC_INFINITY,1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000055", +DEC_NAN, 1UL<<i)); - printf("%d", TEST_64(".insn rxe, 0xed0000000055", -DEC_NAN, 1UL<<i)); - - /* DFP 32 bit - TDCET */ - printf("%d", TEST_32(".insn rxe, 0xed0000000050", +0.0DF, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000050", -0.0DF, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000050", +2.2DF, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000050", -2.2DF, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000050",+DEC_INFINITY,1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000050",-DEC_INFINITY,1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000050", +DEC_NAN, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000050", -DEC_NAN, 1UL<<i)); - - /* DFP 32 bit - TDGET */ - printf("%d", TEST_32(".insn rxe, 0xed0000000051", +0.0DF, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000051", -0.0DF, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000051", +2.2DF, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000051", -2.2DF, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000051",+DEC_INFINITY,1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000051",-DEC_INFINITY,1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000051", +DEC_NAN, 1UL<<i)); - printf("%d", TEST_32(".insn rxe, 0xed0000000051", -DEC_NAN, 1UL<<i)); - - printf("\n"); + int i; - } - return 0; + /* The rightmost 12 bits 52:63 of the second operand are set and tested */ + for (i = 0; i < 12; i++) { + TEST("0xed0000000058", d128, 1UL << i); /* TDCXT */ + TEST("0xed0000000059", d128, 1UL << i); /* TDGXT */ + TEST("0xed0000000054", d64, 1UL << i); /* TDCDT */ + TEST("0xed0000000055", d64, 1UL << i); /* TDGDT */ + TEST("0xed0000000050", d32, 1UL << i); /* TDCET */ + TEST("0xed0000000051", d32, 1UL << i); /* TDGET */ + printf("\n"); + } + return 0; } |
|
From: Andreas A. <ar...@so...> - 2023-09-07 14:45:29
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=484b48eae26760f294ab9dca9fa70b9ac509873a commit 484b48eae26760f294ab9dca9fa70b9ac509873a Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:25 2023 +0200 s390x regtest: Rework dfp-4 Remove dependency on `_Decimal*' types in the dfp-4 test case, to enable compilation with Clang. (See Bug 465782.) Diff: --- none/tests/s390x/dfp-4.c | 59 +++++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 36 deletions(-) diff --git a/none/tests/s390x/dfp-4.c b/none/tests/s390x/dfp-4.c index eaaea41e65..53fda01da0 100644 --- a/none/tests/s390x/dfp-4.c +++ b/none/tests/s390x/dfp-4.c @@ -1,43 +1,30 @@ -#include <stdio.h> -#include <sys/types.h> #include "dfp_utils.h" +#include <stdio.h> -volatile _Decimal32 d32_1, d32_2; -volatile _Decimal64 d64_1, d64_2; -volatile _Decimal128 d128_1, d128_2; - -int main(void) -{ - d64_1 = 5.000005DD; - d64_2 = 60000.4DD; - d32_1 = 3.000002DF; - d32_2 = 500000.000005DF; - d128_1 = 100000000.000028DL; - - d64_1 = (_Decimal64) d32_1; //Exercise LDETR (load lengthened) - printf("D32 -> D64 : "); - DFP_VAL_PRINT(d32_1, _Decimal32); - printf(" -> "); - DFP_VAL_PRINT(d64_1, _Decimal64); - - d128_2 = (_Decimal128) d64_2; //Exercise LXDTR (load lengthened) - printf("\nD64 -> D128 : "); - DFP_VAL_PRINT(d64_2, _Decimal64); - printf(" -> "); - DFP_VAL_PRINT(d128_2, _Decimal128); +#define CONV(opc, from, to, val) \ + { \ + pun_d##to out; \ + printf("%-11s : ", "D" #from " -> D" #to); \ + DFP_VAL_PRINT(val, pun_d##from); \ + asm(".insn rrf," opc "0000,%[r1],%[r2],0,0" \ + : [r1] "=f"(out.f) \ + : [r2] "f"(val.f)); \ + printf(" -> "); \ + DFP_VAL_PRINT(out, pun_d##to); \ + putchar('\n'); \ + } - d32_2 = (_Decimal32) d64_2; //Exercise LEDTR (load rounded) - printf("\nD64 -> D32 : "); - DFP_VAL_PRINT(d64_2, _Decimal64); - printf(" -> "); - DFP_VAL_PRINT(d32_2, _Decimal32); +static const pun_d64 dd_A = {0x22340000000c0004}; /* 60000.4DD */ +static const pun_d32 df_B = {0x2df00002}; /* 3.000002DF */ - d64_2 = (_Decimal64) d128_1; //Exercise LDXTR (load rounded) - printf("\nD128 -> D64 : "); - DFP_VAL_PRINT(d128_1, _Decimal128); - printf(" -> "); - DFP_VAL_PRINT(d64_2, _Decimal64); - printf("\n"); +/* 100000000.000028DL */ +static const pun_d128 dl_C = {{0x2206800000000000, 0x0000800000000028}}; +int main(void) +{ + CONV("0xb3d4", 32, 64, df_B); /* LDETR (load lengthened) */ + CONV("0xb3dc", 64, 128, dd_A); /* LXDTR (load lengthened) */ + CONV("0xb3d5", 64, 32, dd_A); /* LEDTR (load rounded) */ + CONV("0xb3dd", 128, 64, dl_C); /* LDXTR (load rounded) */ return 0; } |
|
From: Andreas A. <ar...@so...> - 2023-09-07 14:45:26
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=b129df5dcfed670f6c9db67ce979a65efa631e88 commit b129df5dcfed670f6c9db67ce979a65efa631e88 Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:25 2023 +0200 s390x regtest: Rework dfp-3 The dfp-3 test case uses _Decimal types and thus doesn't compile with Clang. Fix that. Also drop the dependency on "opcodes.h" and fix indentation. Diff: --- none/tests/s390x/dfp-3.c | 161 ++++++++++++++++++++--------------------------- 1 file changed, 67 insertions(+), 94 deletions(-) diff --git a/none/tests/s390x/dfp-3.c b/none/tests/s390x/dfp-3.c index 5120ed6b4e..dfc805f0e7 100644 --- a/none/tests/s390x/dfp-3.c +++ b/none/tests/s390x/dfp-3.c @@ -1,117 +1,90 @@ -#include <stdio.h> -#include <sys/types.h> -#include "opcodes.h" #include "dfp_utils.h" +#include <stdio.h> -/* Following macros adopted from dfp/math.h from libdfp */ -#define DEC_INFINITY __builtin_infd64() -#define DEC_NAN (0.0DF * DEC_INFINITY) +/* Test DFP value and exponent comparison for 64/128-bit. */ -/* Test DFP value and exponent comparison for 64/128-bit. */ +#define COMPARE(opc, v1, v2, type) \ + { \ + int cc; \ + asm(".insn rre," opc "0000,%[r1],%[r2]\n\t" \ + "ipm %[cc]\n\t" \ + "srl %[cc],28\n\t" \ + : [cc] "=d"(cc) \ + : [r1] "f"(v1.f), [r2] "f"(v2.f) \ + : "cc"); \ + DFP_VAL_PRINT(v1, type); \ + switch (cc) { \ + case 0: \ + printf(" == "); \ + break; \ + case 1: \ + printf(" < "); \ + break; \ + case 2: \ + printf(" > "); \ + break; \ + case 3: \ + printf(" <> "); \ + break; \ + } \ + DFP_VAL_PRINT(v2, type); \ + printf(" (cc == %d)\n", cc); \ + } -#define CMP_DFP(insn, op1, op2, type, cc) \ - ({ \ - register type d1 asm("f0") = op1; \ - register type d2 asm("f1") = op2; \ - /* cc = d1 (cmp) d2 */ \ - asm volatile(insn(0,1) \ - "ipm %0\n\t" \ - "srl %0,28\n\t" \ - :"=d" (cc) \ - :"f"(d1), "f"(d2) \ - :"cc" \ - ); \ - cc; \ -}) +/* 64-bit decimal constants */ +static const pun_d64 dd_inf = {0x7800000000000000}; /* infinity */ +static const pun_d64 dd_nan = {0x7c00000000000000}; /* NaN */ +static const pun_d64 dd_A = {0x2220000000500005}; /* 5.000005DD */ +static const pun_d64 dd_B = {0x363c000000000000}; /* 5.E16DD + 5.E-6DD */ +/* 128-bit decimal constants */ +static const pun_d128 dl_inf = {{0x7800000000000000, 0x0000000000000000}}; +static const pun_d128 dl_nan = {{0x7c00000000000000, 0x0000000000000000}}; +static const pun_d128 dl_A = {{0x2206c00000000000, 0x00000000000a0005}}; +static const pun_d128 dl_B = {{0x2207c00000000000, 0x0140000000000005}}; -#define COMPARE(insn, v1, v2, type) \ - { \ - int cc; \ - CMP_DFP(insn, v1, v2, type, cc); \ - DFP_VAL_PRINT(v1, type); \ - switch (cc) { \ - case 0: \ - printf(" == "); \ - break; \ - case 1: \ - printf(" < "); \ - break; \ - case 2: \ - printf(" > "); \ - break; \ - case 3: \ - printf(" <> "); \ - break; \ - } \ - DFP_VAL_PRINT(v2, type); \ - printf(" (cc == %d)\n", cc); \ -} +#define CDTR "0xb3e4" +#define CXTR "0xb3ec" +#define CEDTR "0xb3f4" +#define CEXTR "0xb3fc" int main(void) { - _Decimal64 d64_1, d64_2; - _Decimal128 d128_1, d128_2; - /* compare 8 bytes DFP value */ printf("cdtr:\n"); - d64_1 = 5.000005DD; - d64_2 = 50000000000000000.000005DD; - COMPARE(CDTR, d64_1, d64_1, _Decimal64); - COMPARE(CDTR, d64_1, d64_2, _Decimal64); - COMPARE(CDTR, d64_2, d64_1, _Decimal64); - - /* compare NAN and INF operands */ - d64_1 = DEC_INFINITY; - d64_2 = DEC_NAN; - COMPARE(CDTR, d64_1, d64_2, _Decimal64); - COMPARE(CDTR, d64_1, d64_1, _Decimal64); - COMPARE(CDTR, d64_2, d64_2, _Decimal64); + COMPARE(CDTR, dd_A, dd_A, pun_d64); + COMPARE(CDTR, dd_A, dd_B, pun_d64); + COMPARE(CDTR, dd_B, dd_A, pun_d64); + COMPARE(CDTR, dd_inf, dd_nan, pun_d64); + COMPARE(CDTR, dd_inf, dd_inf, pun_d64); + COMPARE(CDTR, dd_nan, dd_nan, pun_d64); /* compare 16 bytes DFP value */ printf("cxtr:\n"); - d128_1 = 5.00005DL; - d128_2 = 5000000000000000.5DL; - COMPARE(CXTR, d128_1, d128_1, _Decimal128); - COMPARE(CXTR, d128_1, d128_2, _Decimal128); - COMPARE(CXTR, d128_2, d128_1, _Decimal128); - - /* compare NAN and INF operands */ - d128_1 = DEC_INFINITY; - d128_2 = DEC_NAN; - COMPARE(CXTR, d128_1, d128_2, _Decimal128); - COMPARE(CXTR, d128_1, d128_1, _Decimal128); - COMPARE(CXTR, d128_2, d128_2, _Decimal128); + COMPARE(CXTR, dl_A, dl_A, pun_d128); + COMPARE(CXTR, dl_A, dl_B, pun_d128); + COMPARE(CXTR, dl_B, dl_A, pun_d128); + COMPARE(CXTR, dl_inf, dl_nan, pun_d128); + COMPARE(CXTR, dl_inf, dl_inf, pun_d128); + COMPARE(CXTR, dl_nan, dl_nan, pun_d128); /* compare exponents of 8 bytes DFP value */ printf("cedtr:\n"); - d64_1 = 5.000005DD; - d64_2 = 50000000000000000.000005DD; - COMPARE(CEDTR, d64_1, d64_1, _Decimal64); - COMPARE(CEDTR, d64_1, d64_2, _Decimal64); - COMPARE(CEDTR, d64_2, d64_1, _Decimal64); - - /* compare NAN and INF operands */ - d64_1 = DEC_INFINITY; - d64_2 = DEC_NAN; - COMPARE(CEDTR, d64_1, d64_2, _Decimal64); - COMPARE(CEDTR, d64_1, d64_1, _Decimal64); - COMPARE(CEDTR, d64_2, d64_2, _Decimal64); + COMPARE(CEDTR, dd_A, dd_A, pun_d64); + COMPARE(CEDTR, dd_A, dd_B, pun_d64); + COMPARE(CEDTR, dd_B, dd_A, pun_d64); + COMPARE(CEDTR, dd_inf, dd_nan, pun_d64); + COMPARE(CEDTR, dd_inf, dd_inf, pun_d64); + COMPARE(CEDTR, dd_nan, dd_nan, pun_d64); /* compare exponents of 16 bytes DFP value */ printf("cextr:\n"); - d128_1 = 5.00005DL; - d128_2 = 5000000000000000.5DL; - COMPARE(CEXTR, d128_1, d128_1, _Decimal128); - COMPARE(CEXTR, d128_1, d128_2, _Decimal128); - COMPARE(CEXTR, d128_2, d128_1, _Decimal128); - - /* compare NAN and INF operands */ - d128_1 = DEC_INFINITY; - d128_2 = DEC_NAN; - COMPARE(CEXTR, d128_1, d128_2, _Decimal128); - COMPARE(CEXTR, d128_1, d128_1, _Decimal128); - COMPARE(CEXTR, d128_2, d128_2, _Decimal128); + COMPARE(CEXTR, dl_A, dl_A, pun_d128); + COMPARE(CEXTR, dl_A, dl_B, pun_d128); + COMPARE(CEXTR, dl_B, dl_A, pun_d128); + COMPARE(CEXTR, dl_inf, dl_nan, pun_d128); + COMPARE(CEXTR, dl_inf, dl_inf, pun_d128); + COMPARE(CEXTR, dl_nan, dl_nan, pun_d128); return 0; } |
|
From: Andreas A. <ar...@so...> - 2023-09-07 14:45:20
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=673b497030e3f2281a62e841a8b7187eaf176d64 commit 673b497030e3f2281a62e841a8b7187eaf176d64 Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:24 2023 +0200 Bug 472875 - s390x regtest: Rework dfp-1 The dfp-1 test case has two main issues: * It doesn't initialize the condition code before executing the DFP instructions for "multiply" and "divide", but asserts a certain value afterwards. (See Bug 472875.) * It doesn't compile with Clang. (See Bug 465782.) Fix these with a rework. The first issue can be fixed by initializing the condition code before executing the DFP instructions. The second issue requires avoiding any `_Decimal*' types, since they are not supported by Clang. Diff: --- NEWS | 1 + none/tests/s390x/dfp-1.c | 228 +++++++++++++------------------------------ none/tests/s390x/dfp_utils.h | 17 ++-- 3 files changed, 77 insertions(+), 169 deletions(-) diff --git a/NEWS b/NEWS index 7c5247f071..4459ddd7cf 100644 --- a/NEWS +++ b/NEWS @@ -66,6 +66,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. 471311 gdb --multi mode stdout redirecting to stderr 471807 Add support for lazy reading and downloading of DWARF debuginfo 472219 Syscall param ppoll(ufds.events) points to uninitialised byte(s) +472875 none/tests/s390x/dfp-1 failure 472963 Broken regular expression in configure.ac 473604 Fix bug472219.c compile failure with Clang 16 473677 make check compile failure with Clang 16 based on GCC 13.x diff --git a/none/tests/s390x/dfp-1.c b/none/tests/s390x/dfp-1.c index b9be89963f..09f1335359 100644 --- a/none/tests/s390x/dfp-1.c +++ b/none/tests/s390x/dfp-1.c @@ -1,174 +1,84 @@ -#include <stdio.h> -#include "opcodes.h" #include "dfp_utils.h" +#include <stdio.h> -volatile _Decimal64 d64_1, d64_2, result_64; -volatile _Decimal128 d128_1, d128_2, result_128; - -#define DFP_BINOP(insn, op1, op2, type, round, cc) \ - ({ \ - register type d1 asm("f0") = op1; \ - register type d2 asm("f1") = op2; \ - /* d1 = d1 (op) d2 */ \ - asm volatile(insn(1,round,0,0) \ - "ipm %1\n\t" \ - "srl %1,28\n\t" \ - :"+f" (d1), "=d" (cc) \ - :"f"(d2) \ - :"cc" \ - ); \ - d1; \ - }) +#define DFP_BINOP(type, opc, binop, op1, op2, round) \ + ({ \ + int cc; \ + reg_##type result; \ + asm("cr 0,0\n\t" /* clear CC */ \ + ".insn rrf," #opc "0000,%[res],%[r1],%[r2],%[mode]\n\t" \ + "ipm %[cc]\n\t" \ + "srl %[cc],28\n\t" \ + : [res] "=f"(result), [cc] "=d"(cc) \ + : [r1] "f"(op1.f), [r2] "f"(op2.f), [mode] "i"(round) \ + : "cc"); \ + DFP_VAL_PRINT(op1.f, reg_##type); \ + printf(" " binop " "); \ + DFP_VAL_PRINT(op2.f, reg_##type); \ + printf(" = "); \ + DFP_VAL_PRINT(result, reg_##type); \ + printf(" cc = %d\n", cc); \ + }) -int main() { - int cc; +static const pun_d64 dd_3_14 = {0x2230000000000194}; /* 3.14DD */ +static const pun_d64 dd_m3_14 = {0xa230000000000194}; /* -3.14DD */ +static const pun_d64 dd_0_005 = {0x222c000000000005}; /* 0.005DD */ +static const pun_d64 dd_7 = {0x2238000000000007}; /* 7.DD */ +static const pun_d64 dd_0 = {0x2238000000000000}; /* 0.DD */ +static const pun_d64 dd_22 = {0x2238000000000022}; /* 22.DD */ +static const pun_d64 dd_m22 = {0xa238000000000022}; /* -22.DD */ - printf("Decimal floating point arithmetic\n"); +static const pun_d128 dl_3_14 = {{0x2207800000000000, 0x0000000000000194}}; +static const pun_d128 dl_m3_14 = {{0xa207800000000000, 0x0000000000000194}}; +static const pun_d128 dl_0_005 = {{0x2207400000000000, 0x0000000000000005}}; +static const pun_d128 dl_7 = {{0x2208000000000000, 0x0000000000000007}}; +static const pun_d128 dl_0 = {{0x2208000000000000, 0x0000000000000000}}; +static const pun_d128 dl_22 = {{0x2208000000000000, 0x0000000000000022}}; +static const pun_d128 dl_m22 = {{0xa208000000000000, 0x0000000000000022}}; - /* 64-bit ADD */ - printf("64-bit ADD\n"); - /* case 1: cc = 2 */ - d64_1 = 3.14DD; - d64_2 = 0.005DD; - result_64 = DFP_BINOP(ADTRA, d64_1, d64_2, _Decimal64, 1, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "+", cc); - /* case 2: cc = 1 */ - d64_1 = -3.14DD; - d64_2 = 0.005DD; - result_64 = DFP_BINOP(ADTRA, d64_1, d64_2, _Decimal64, 1, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "+", cc); - /* case 2: cc = 0 */ - d64_1 = 3.14DD; - d64_2 = -d64_1; - result_64 = DFP_BINOP(ADTRA, d64_1, d64_2, _Decimal64, 3, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "+", cc); +int main() +{ + printf("Decimal floating point arithmetic\n"); + printf("64-bit ADD\n"); + DFP_BINOP(d64, 0xb3d2, "+", dd_3_14, dd_0_005, 1); /* cc = 2 */ + DFP_BINOP(d64, 0xb3d2, "+", dd_m3_14, dd_0_005, 1); /* cc = 1 */ + DFP_BINOP(d64, 0xb3d2, "+", dd_3_14, dd_m3_14, 3); /* cc = 0 */ - /* 64-bit SUBTRACT */ - printf("64-bit SUBTRACT\n"); - /* case 1: cc = 2 */ - d64_1 = 3.14DD; - d64_2 = 0.005DD; - result_64 = DFP_BINOP(SDTRA, d64_1, d64_2, _Decimal64, 4, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "-", cc); - /* case 2: cc = 1 */ - d64_1 = -3.14DD; - d64_2 = 0.005DD; - result_64 = DFP_BINOP(SDTRA, d64_1, d64_2, _Decimal64, 5, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "-", cc); - /* case 3: cc = 0 */ - d64_1 = 3.14DD; - d64_2 = d64_1; - result_64 = DFP_BINOP(SDTRA, d64_1, d64_2, _Decimal64, 5, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "-", cc); + printf("64-bit SUBTRACT\n"); + DFP_BINOP(d64, 0xb3d3, "-", dd_3_14, dd_0_005, 1); /* cc = 2 */ + DFP_BINOP(d64, 0xb3d3, "-", dd_m3_14, dd_0_005, 1); /* cc = 1 */ + DFP_BINOP(d64, 0xb3d3, "-", dd_3_14, dd_3_14, 3); /* cc = 0 */ - /* 64-bit MULTIPLY */ - printf("64-bit MULTIPLY\n"); - /* case 1: cc = 2 */ - d64_1 = 3.14DD; - d64_2 = 7.DD; - result_64 = DFP_BINOP(MDTRA, d64_1, d64_2, _Decimal64, 6, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "*", cc); - /* case 2: cc = 1 */ - d64_1 = -3.14DD; - d64_2 = 7.DD; - result_64 = DFP_BINOP(MDTRA, d64_1, d64_2, _Decimal64, 7, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "*", cc); - /* case 3: cc = 0 */ - d64_1 = -3.14DD; - d64_2 = 0.DD; - result_64 = DFP_BINOP(MDTRA, d64_1, d64_2, _Decimal64, 7, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "*", cc); + printf("64-bit MULTIPLY\n"); + DFP_BINOP(d64, 0xb3d0, "*", dd_3_14, dd_7, 6); + DFP_BINOP(d64, 0xb3d0, "*", dd_m3_14, dd_7, 7); + DFP_BINOP(d64, 0xb3d0, "*", dd_m3_14, dd_0, 7); - /* 64-bit DIVIDE */ - printf("64-bit DIVIDE\n"); - /* case 1: cc = 2 */ - d64_1 = 22.DD; - d64_2 = 7.DD; - result_64 = DFP_BINOP(DDTRA, d64_1, d64_2, _Decimal64, d, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "/", cc); - /* case 2: cc = 1 */ - d64_1 = -22.DD; - d64_2 = 7.DD; - result_64 = DFP_BINOP(DDTRA, d64_1, d64_2, _Decimal64, e, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "/", cc); - /* case 3: cc = 0 */ - d64_1 = 0.DD; - d64_2 = 7.DD; - result_64 = DFP_BINOP(DDTRA, d64_1, d64_2, _Decimal64, e, cc); - DFP_BINOP_PRINT(d64_1, d64_2, result_64, _Decimal64, "/", cc); + printf("64-bit DIVIDE\n"); + DFP_BINOP(d64, 0xb3d1, "/", dd_22, dd_7, 13); + DFP_BINOP(d64, 0xb3d1, "/", dd_m22, dd_7, 14); + DFP_BINOP(d64, 0xb3d1, "/", dd_0, dd_7, 14); - /* 128-bit ADD */ - printf("128-bit ADD\n"); - /* case 1: cc = 2 */ - d128_1 = 3.14DL; - d128_2 = 0.005DL; - result_128 = DFP_BINOP(AXTRA, d128_1, d128_2, _Decimal128, 1, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "+", cc); - /* case 2: cc = 1 */ - d128_1 = -3.14DL; - d128_2 = 0.005DL; - result_128 = DFP_BINOP(AXTRA, d128_1, d128_2, _Decimal128, 1, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "+", cc); - /* case 3: cc = 0 */ - d128_1 = 3.14DL; - d128_2 = -d128_1; - result_128 = DFP_BINOP(AXTRA, d128_1, d128_2, _Decimal128, 3, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "+", cc); + printf("128-bit ADD\n"); + DFP_BINOP(d128, 0xb3da, "+", dl_3_14, dl_0_005, 1); /* cc = 2 */ + DFP_BINOP(d128, 0xb3da, "+", dl_m3_14, dl_0_005, 1); /* cc = 1 */ + DFP_BINOP(d128, 0xb3da, "+", dl_3_14, dl_m3_14, 1); /* cc = 0 */ - /* 128-bit SUBTRACT */ - printf("128-bit SUBTRACT\n"); - /* case 1: cc = 2 */ - d128_1 = 3.14DL; - d128_2 = 0.005DL; - result_128 = DFP_BINOP(SXTRA, d128_1, d128_2, _Decimal128, 4, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "-", cc); - /* case 2: cc = 1 */ - d128_1 = -3.14DL; - d128_2 = 0.005DL; - result_128 = DFP_BINOP(SXTRA, d128_1, d128_2, _Decimal128, 5, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "-", cc); - /* case 3: cc = 0 */ - d128_1 = 3.14DL; - d128_2 = d128_1; - result_128 = DFP_BINOP(SXTRA, d128_1, d128_2, _Decimal128, 5, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "-", cc); + printf("128-bit SUBTRACT\n"); + DFP_BINOP(d128, 0xb3db, "-", dl_3_14, dl_0_005, 1); /* cc = 2 */ + DFP_BINOP(d128, 0xb3db, "-", dl_m3_14, dl_0_005, 1); /* cc = 1 */ + DFP_BINOP(d128, 0xb3db, "-", dl_3_14, dl_3_14, 1); /* cc = 0 */ - /* 128-bit MULTIPLY */ - printf("128-bit MULTIPLY\n"); - /* case 1: cc = 2 */ - d128_1 = 3.14DL; - d128_2 = 7.DL; - result_128 = DFP_BINOP(MXTRA, d128_1, d128_2, _Decimal128, 6, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "*", cc); - /* case 2: cc = 1 */ - d128_1 = -3.14DL; - d128_2 = 7.DL; - result_128 = DFP_BINOP(MXTRA, d128_1, d128_2, _Decimal128, 7, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "*", cc); - /* case 3: cc = 0 */ - d128_1 = 3.14DL; - d128_2 = 0.DL; - result_128 = DFP_BINOP(MXTRA, d128_1, d128_2, _Decimal128, 7, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "*", cc); + printf("128-bit MULTIPLY\n"); + DFP_BINOP(d128, 0xb3d8, "*", dl_3_14, dl_7, 6); + DFP_BINOP(d128, 0xb3d8, "*", dl_m3_14, dl_7, 7); + DFP_BINOP(d128, 0xb3d8, "*", dl_3_14, dl_0, 7); - /* 128-bit DIVIDE */ - printf("128-bit DIVIDE\n"); - /* case 1: cc = 2 */ - d128_1 = 22.DL; - d128_2 = 7.DL; - result_128 = DFP_BINOP(DXTRA, d128_1, d128_2, _Decimal128, d, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "/", cc); - /* case 2: cc = 1 */ - d128_1 = -22.DL; - d128_2 = 7.DL; - result_128 = DFP_BINOP(DXTRA, d128_1, d128_2, _Decimal128, e, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "/", cc); - /* case 3: cc = 0 */ - d128_1 = 0.DL; - d128_2 = 7.DL; - result_128 = DFP_BINOP(DXTRA, d128_1, d128_2, _Decimal128, e, cc); - DFP_BINOP_PRINT(d128_1, d128_2, result_128, _Decimal128, "/", cc); + printf("128-bit DIVIDE\n"); + DFP_BINOP(d128, 0xb3d9, "/", dl_22, dl_7, 13); + DFP_BINOP(d128, 0xb3d9, "/", dl_m22, dl_7, 14); + DFP_BINOP(d128, 0xb3d9, "/", dl_0, dl_7, 14); - return 0; + return 0; } diff --git a/none/tests/s390x/dfp_utils.h b/none/tests/s390x/dfp_utils.h index ec2bf1c755..b12fef7eb7 100644 --- a/none/tests/s390x/dfp_utils.h +++ b/none/tests/s390x/dfp_utils.h @@ -4,6 +4,13 @@ #include <stddef.h> /* size_t */ #include <stdio.h> /* printf */ +typedef float reg_d32; +typedef double reg_d64; +typedef long double reg_d128; +typedef union { unsigned int i; reg_d32 f; } pun_d32; +typedef union { unsigned long i; reg_d64 f; } pun_d64; +typedef union { unsigned long i[2]; reg_d128 f; } pun_d128; + #define DFP_VAL_PRINT(op, type) \ { \ enum { n = sizeof(type) }; \ @@ -12,14 +19,4 @@ printf("%02x", u.i[k]); \ } -#define DFP_BINOP_PRINT(op1, op2, result, type, op, cc) \ - { \ - DFP_VAL_PRINT(op1, type); \ - printf(" "op" "); \ - DFP_VAL_PRINT(op2, type); \ - printf(" = "); \ - DFP_VAL_PRINT(result, type); \ - printf(" cc = %d\n", cc); \ - } - #endif /* DFP_UTILS_H */ |
|
From: Andreas A. <ar...@so...> - 2023-09-07 14:45:16
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=d5e6d37b4fcfaf899ef73155545d29635f6e3f6d commit d5e6d37b4fcfaf899ef73155545d29635f6e3f6d Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:24 2023 +0200 s390x regtest: Fix issues with DFP_VAL_PRINT() The DFP_VAL_PRINT macro used by the dfp test cases has some issues: * It performs illegal pointer type aliasing. * It suppresses zero digits in 128-bit integers, since it prints their second halves with "%08lx" instead of "%016lx". Fix these. Due to the latter, this affects the output of all DFP test cases, so adjust them as well. Diff: --- none/tests/s390x/dfp-1.stdout.exp | 24 +- none/tests/s390x/dfp-2.stdout.exp | 404 ++++----- none/tests/s390x/dfp-3.stdout.exp | 24 +- none/tests/s390x/dfp-4.stdout.exp | 4 +- none/tests/s390x/dfp_utils.h | 15 +- none/tests/s390x/dfpconv.stdout.exp | 514 ++++++------ none/tests/s390x/dfpext.stdout.exp | 1552 +++++++++++++++++------------------ none/tests/s390x/pfpo.stdout.exp | 300 +++---- 8 files changed, 1415 insertions(+), 1422 deletions(-) diff --git a/none/tests/s390x/dfp-1.stdout.exp b/none/tests/s390x/dfp-1.stdout.exp index cd00dd584d..0ef816e134 100644 --- a/none/tests/s390x/dfp-1.stdout.exp +++ b/none/tests/s390x/dfp-1.stdout.exp @@ -16,18 +16,18 @@ a230000000000194 * 2238000000000000 = a230000000000000 cc = 0 a238000000000022 / 2238000000000007 = adfcc2d74c2d74c3 cc = 0 2238000000000000 / 2238000000000007 = 2238000000000000 cc = 0 128-bit ADD -220780000000000000000194 + 220740000000000000000005 = 220740000000000000000cc5 cc = 2 -a20780000000000000000194 + 220740000000000000000005 = a20740000000000000000cb5 cc = 1 -220780000000000000000194 + a20780000000000000000194 = 220780000000000000000000 cc = 0 +22078000000000000000000000000194 + 22074000000000000000000000000005 = 22074000000000000000000000000cc5 cc = 2 +a2078000000000000000000000000194 + 22074000000000000000000000000005 = a2074000000000000000000000000cb5 cc = 1 +22078000000000000000000000000194 + a2078000000000000000000000000194 = 22078000000000000000000000000000 cc = 0 128-bit SUBTRACT -220780000000000000000194 - 220740000000000000000005 = 220740000000000000000cb5 cc = 2 -a20780000000000000000194 - 220740000000000000000005 = a20740000000000000000cc5 cc = 1 -220780000000000000000194 - 220780000000000000000194 = 220780000000000000000000 cc = 0 +22078000000000000000000000000194 - 22074000000000000000000000000005 = 22074000000000000000000000000cb5 cc = 2 +a2078000000000000000000000000194 - 22074000000000000000000000000005 = a2074000000000000000000000000cc5 cc = 1 +22078000000000000000000000000194 - 22078000000000000000000000000194 = 22078000000000000000000000000000 cc = 0 128-bit MULTIPLY -220780000000000000000194 * 220800000000000000000007 = 2207800000000000000008de cc = 0 -a20780000000000000000194 * 220800000000000000000007 = a207800000000000000008de cc = 0 -220780000000000000000194 * 220800000000000000000000 = 220780000000000000000000 cc = 0 +22078000000000000000000000000194 * 22080000000000000000000000000007 = 220780000000000000000000000008de cc = 0 +a2078000000000000000000000000194 * 22080000000000000000000000000007 = a20780000000000000000000000008de cc = 0 +22078000000000000000000000000194 * 22080000000000000000000000000000 = 22078000000000000000000000000000 cc = 0 128-bit DIVIDE -220800000000000000000022 / 220800000000000000000007 = 2dffcc2d74c2d74c2d74c2d74c2d74c3 cc = 0 -a20800000000000000000022 / 220800000000000000000007 = adffcc2d74c2d74c2d74c2d74c2d74c3 cc = 0 -220800000000000000000000 / 220800000000000000000007 = 220800000000000000000000 cc = 0 +22080000000000000000000000000022 / 22080000000000000000000000000007 = 2dffcc2d74c2d74c2d74c2d74c2d74c3 cc = 0 +a2080000000000000000000000000022 / 22080000000000000000000000000007 = adffcc2d74c2d74c2d74c2d74c2d74c3 cc = 0 +22080000000000000000000000000000 / 22080000000000000000000000000007 = 22080000000000000000000000000000 cc = 0 diff --git a/none/tests/s390x/dfp-2.stdout.exp b/none/tests/s390x/dfp-2.stdout.exp index ccf5991549..d93da1c258 100644 --- a/none/tests/s390x/dfp-2.stdout.exp +++ b/none/tests/s390x/dfp-2.stdout.exp @@ -1,21 +1,21 @@ EEDTR 22280000000a0005 -> 394 EEDTR a2280000000a0005 -> 394 EEDTR 2238000000000000 -> 398 -EEXTR 2207000000000000000a0005 -> 6172 -EEXTR a207000000000000000a0005 -> 6172 -EEXTR 220800000000000000000000 -> 6176 +EEXTR 220700000000000000000000000a0005 -> 6172 +EEXTR a20700000000000000000000000a0005 -> 6172 +EEXTR 22080000000000000000000000000000 -> 6176 ESDTR 22280000000a0005 -> 6 ESDTR a2280000000a0005 -> 6 ESDTR 2238000000000000 -> 0 -ESXTR 2207000000000000000a0005 -> 6 -ESXTR a207000000000000000a0005 -> 6 -ESXTR 220800000000000000000000 -> 0 +ESXTR 220700000000000000000000000a0005 -> 6 +ESXTR a20700000000000000000000000a0005 -> 6 +ESXTR 22080000000000000000000000000000 -> 0 LTDTR 22280000000a0005 -> 2 LTDTR a2280000000a0005 -> 1 LTDTR 2234000000000000 -> 0 -LTXTR 2207000000000000000a0005 -> 2 -LTXTR a207000000000000000a0005 -> 1 -LTXTR 2207c0000000000000000000 -> 0 +LTXTR 220700000000000000000000000a0005 -> 2 +LTXTR a20700000000000000000000000a0005 -> 1 +LTXTR 2207c000000000000000000000000000 -> 0 SLDT 2224014d2e7971a1 -> 6a26c34400000000 SLDT a224014d2e7971a1 -> a224a395bcb8c880 SLDT 2238000000000000 -> 2238000000000000 @@ -24,14 +24,14 @@ SRDT 2224014d2e7971a1 -> 2224000001271778 SRDT a224014d2e7971a1 -> a22400049c5de2c3 SRDT 2238000000000000 -> 2238000000000000 SRDT a238000000000000 -> a238000000000000 -SLXT 2206c0000000000014d2e7971a1 -> 2206c0000000049c5de2c34400000000 -SLXT a206c0000000000014d2e7971a1 -> a206c00000000000a395bcb8c880 -SLXT 220800000000000000000000 -> 220800000000000000000000 -SLXT a20800000000000000000000 -> a20800000000000000000000 -SRXT 2206c0000000000014d2e7971a1 -> 2206c00000000000000000a3 -SRXT a206c0000000000014d2e7971a1 -> a206c0000000000049c5de2c3 -SRXT 220800000000000000000000 -> 220800000000000000000000 -SRXT a20800000000000000000000 -> a20800000000000000000000 +SLXT 2206c000000000000000014d2e7971a1 -> 2206c0000000049c5de2c34400000000 +SLXT a206c000000000000000014d2e7971a1 -> a206c000000000000000a395bcb8c880 +SLXT 22080000000000000000000000000000 -> 22080000000000000000000000000000 +SLXT a2080000000000000000000000000000 -> a2080000000000000000000000000000 +SRXT 2206c000000000000000014d2e7971a1 -> 2206c0000000000000000000000000a3 +SRXT a206c000000000000000014d2e7971a1 -> a206c00000000000000000049c5de2c3 +SRXT 22080000000000000000000000000000 -> 22080000000000000000000000000000 +SRXT a2080000000000000000000000000000 -> a2080000000000000000000000000000 IEDTR 2220000000500005, 391 -> 221c000000500005 IEDTR 2220000000500005, 392 -> 2220000000500005 IEDTR 2220000000500005, 393 -> 2224000000500005 @@ -41,15 +41,15 @@ IEDTR a220000000500005, 393 -> a224000000500005 IEDTR 2238000000000000, 393 -> 2224000000000000 IEDTR a238000000000000, 393 -> a224000000000000 IEDTR 2238000000000001, 393 -> 2224000000000001 -IEXTR 220680000000000000500005, 6169 -> 220640000000000000500005 -IEXTR 220680000000000000500005, 6170 -> 220680000000000000500005 -IEXTR 220680000000000000500005, 6171 -> 2206c0000000000000500005 -IEXTR a20680000000000000500005, 6169 -> a20640000000000000500005 -IEXTR a20680000000000000500005, 6170 -> a20680000000000000500005 -IEXTR a20680000000000000500005, 6171 -> a206c0000000000000500005 -IEXTR 220800000000000000000000, 6171 -> 2206c0000000000000000000 -IEXTR a20800000000000000000000, 6171 -> a206c0000000000000000000 -IEXTR 220800000000000000000001, 6171 -> 2206c0000000000000000001 +IEXTR 22068000000000000000000000500005, 6169 -> 22064000000000000000000000500005 +IEXTR 22068000000000000000000000500005, 6170 -> 22068000000000000000000000500005 +IEXTR 22068000000000000000000000500005, 6171 -> 2206c000000000000000000000500005 +IEXTR a2068000000000000000000000500005, 6169 -> a2064000000000000000000000500005 +IEXTR a2068000000000000000000000500005, 6170 -> a2068000000000000000000000500005 +IEXTR a2068000000000000000000000500005, 6171 -> a206c000000000000000000000500005 +IEXTR 22080000000000000000000000000000, 6171 -> 2206c000000000000000000000000000 +IEXTR a2080000000000000000000000000000, 6171 -> a206c000000000000000000000000000 +IEXTR 22080000000000000000000000000001, 6171 -> 2206c000000000000000000000000001 QADTR 222000000023c534, 222c000000000001, 0 -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, 1 -> 222c0000000008f1 QADTR 222000000023c534, 222c000000000001, 2 -> 222c0000000008f1 @@ -114,70 +114,70 @@ QADTR 2238000000000000, 222c000000000001, c -> 222c000000000000 QADTR 2238000000000000, 222c000000000001, d -> 222c000000000000 QADTR 2238000000000000, 222c000000000001, e -> 222c000000000000 QADTR 2238000000000000, 222c000000000001, f -> 222c000000000000 -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 0 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 1 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 2 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 3 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 4 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 5 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 6 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 7 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 8 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, 9 -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, a -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, b -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, c -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, d -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, e -> 22078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220780000000000000008c01, f -> 22078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 0 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 1 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 2 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 3 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 4 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 5 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 6 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 7 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 8 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, 9 -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, a -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, b -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, c -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, d -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, e -> a2078000000000002cdab47931d -QAXTR a20680000000000099e570f483c534, 220780000000000000008c01, f -> a2078000000000002cdab47931d -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 0 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 1 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 2 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 3 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 4 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 5 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 6 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 7 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 8 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, 9 -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, a -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, b -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, c -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, d -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, e -> 220800000000000099e570f48 -QAXTR 220680000000000099e570f483c534, 220800000000000000000000, f -> 220800000000000099e570f48 -QAXTR a20800000000000000000000, 220780000000000000008c01, 0 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 1 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 2 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 3 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 4 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 5 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 6 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 7 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 8 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, 9 -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, a -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, b -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, c -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, d -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, e -> a20780000000000000000000 -QAXTR a20800000000000000000000, 220780000000000000008c01, f -> a20780000000000000000000 +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 0 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 1 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 2 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 3 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 4 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 5 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 6 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 7 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 8 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, 9 -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, a -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, b -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, c -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, d -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, e -> 2207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22078000000000000000000000008c01, f -> 2207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 0 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 1 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 2 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 3 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 4 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 5 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 6 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 7 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 8 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, 9 -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, a -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, b -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, c -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, d -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, e -> a207800000000000000002cdab47931d +QAXTR a2068000000000000099e570f483c534, 22078000000000000000000000008c01, f -> a207800000000000000002cdab47931d +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 0 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 1 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 2 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 3 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 4 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 5 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 6 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 7 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 8 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, 9 -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, a -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, b -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, c -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, d -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, e -> 2208000000000000000000099e570f48 +QAXTR 22068000000000000099e570f483c534, 22080000000000000000000000000000, f -> 2208000000000000000000099e570f48 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 0 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 1 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 2 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 3 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 4 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 5 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 6 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 7 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 8 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, 9 -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, a -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, b -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, c -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, d -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, e -> a2078000000000000000000000000000 +QAXTR a2080000000000000000000000000000, 22078000000000000000000000008c01, f -> a2078000000000000000000000000000 RRDTR 222000000023d2de, 3, 0 -> 2230000000000117 RRDTR 222000000023d2de, 3, 1 -> 2230000000000117 RRDTR 222000000023d2de, 3, 2 -> 2230000000000117 @@ -290,115 +290,115 @@ RRDTR 2238000000000000, 0, c -> 2238000000000000 RRDTR 2238000000000000, 0, d -> 2238000000000000 RRDTR 2238000000000000, 0, e -> 2238000000000000 RRDTR 2238000000000000, 0, f -> 2238000000000000 -RRXTR 22068000000000000023d2de, 3, 0 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 1 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 2 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 3 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 4 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 5 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 6 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 7 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 8 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, 9 -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, a -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, b -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, c -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, d -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, e -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 3, f -> 220780000000000000000117 -RRXTR 22068000000000000023d2de, 4, 0 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 1 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 2 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 3 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 4 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 5 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 6 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 7 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 8 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, 9 -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, a -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, b -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, c -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, d -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, e -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 4, f -> 2207400000000000000008f5 -RRXTR 22068000000000000023d2de, 5, 0 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 1 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 2 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 3 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 4 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 5 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 6 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 7 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 8 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, 9 -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, a -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, b -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, c -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, d -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, e -> 2207000000000000000087c6 -RRXTR 22068000000000000023d2de, 5, f -> 2207000000000000000087c6 -RRXTR a2068000000000000023d2de, 3, 0 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 1 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 2 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 3 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 4 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 5 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 6 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 7 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 8 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, 9 -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, a -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, b -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, c -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, d -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, e -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 3, f -> a20780000000000000000117 -RRXTR a2068000000000000023d2de, 4, 0 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 1 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 2 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 3 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 4 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 5 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 6 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 7 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 8 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, 9 -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, a -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, b -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, c -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, d -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, e -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 4, f -> a207400000000000000008f5 -RRXTR a2068000000000000023d2de, 5, 0 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 1 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 2 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 3 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 4 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 5 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 6 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 7 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 8 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, 9 -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, a -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, b -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, c -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, d -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, e -> a207000000000000000087c6 -RRXTR a2068000000000000023d2de, 5, f -> a207000000000000000087c6 -RRXTR 220800000000000000000000, 0, 0 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 1 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 2 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 3 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 4 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 5 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 6 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 7 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 8 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, 9 -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, a -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, b -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, c -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, d -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, e -> 220800000000000000000000 -RRXTR 220800000000000000000000, 0, f -> 220800000000000000000000 +RRXTR 2206800000000000000000000023d2de, 3, 0 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 1 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 2 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 3 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 4 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 5 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 6 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 7 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 8 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, 9 -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, a -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, b -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, c -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, d -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, e -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 3, f -> 22078000000000000000000000000117 +RRXTR 2206800000000000000000000023d2de, 4, 0 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 1 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 2 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 3 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 4 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 5 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 6 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 7 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 8 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, 9 -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, a -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, b -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, c -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, d -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, e -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 4, f -> 220740000000000000000000000008f5 +RRXTR 2206800000000000000000000023d2de, 5, 0 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 1 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 2 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 3 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 4 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 5 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 6 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 7 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 8 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, 9 -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, a -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, b -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, c -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, d -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, e -> 220700000000000000000000000087c6 +RRXTR 2206800000000000000000000023d2de, 5, f -> 220700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 3, 0 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 1 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 2 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 3 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 4 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 5 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 6 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 7 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 8 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, 9 -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, a -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, b -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, c -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, d -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, e -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 3, f -> a2078000000000000000000000000117 +RRXTR a206800000000000000000000023d2de, 4, 0 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 1 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 2 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 3 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 4 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 5 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 6 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 7 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 8 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, 9 -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, a -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, b -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, c -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, d -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, e -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 4, f -> a20740000000000000000000000008f5 +RRXTR a206800000000000000000000023d2de, 5, 0 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 1 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 2 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 3 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 4 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 5 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 6 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 7 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 8 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, 9 -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, a -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, b -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, c -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, d -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, e -> a20700000000000000000000000087c6 +RRXTR a206800000000000000000000023d2de, 5, f -> a20700000000000000000000000087c6 +RRXTR 22080000000000000000000000000000, 0, 0 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 1 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 2 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 3 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 4 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 5 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 6 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 7 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 8 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, 9 -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, a -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, b -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, c -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, d -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, e -> 22080000000000000000000000000000 +RRXTR 22080000000000000000000000000000, 0, f -> 22080000000000000000000000000000 diff --git a/none/tests/s390x/dfp-3.stdout.exp b/none/tests/s390x/dfp-3.stdout.exp index 83c422fc1f..c12ea399b0 100644 --- a/none/tests/s390x/dfp-3.stdout.exp +++ b/none/tests/s390x/dfp-3.stdout.exp @@ -6,12 +6,12 @@ cdtr: 7800000000000000 == 7800000000000000 (cc == 0) 7c00000000000000 <> 7c00000000000000 (cc == 3) cxtr: -2206c00000000000000a0005 == 2206c00000000000000a0005 (cc == 0) -2206c00000000000000a0005 < 2207c00000000000140000000000005 (cc == 1) -2207c00000000000140000000000005 > 2206c00000000000000a0005 (cc == 2) -780000000000000000000000 <> 7c0000000000000000000000 (cc == 3) -780000000000000000000000 == 780000000000000000000000 (cc == 0) -7c0000000000000000000000 <> 7c0000000000000000000000 (cc == 3) +2206c0000000000000000000000a0005 == 2206c0000000000000000000000a0005 (cc == 0) +2206c0000000000000000000000a0005 < 2207c000000000000140000000000005 (cc == 1) +2207c000000000000140000000000005 > 2206c0000000000000000000000a0005 (cc == 2) +78000000000000000000000000000000 <> 7c000000000000000000000000000000 (cc == 3) +78000000000000000000000000000000 == 78000000000000000000000000000000 (cc == 0) +7c000000000000000000000000000000 <> 7c000000000000000000000000000000 (cc == 3) cedtr: 2220000000500005 == 2220000000500005 (cc == 0) 2220000000500005 < 363c000000000000 (cc == 1) @@ -20,9 +20,9 @@ cedtr: 7800000000000000 == 7800000000000000 (cc == 0) 7c00000000000000 == 7c00000000000000 (cc == 0) cextr: -2206c00000000000000a0005 == 2206c00000000000000a0005 (cc == 0) -2206c00000000000000a0005 < 2207c00000000000140000000000005 (cc == 1) -2207c00000000000140000000000005 > 2206c00000000000000a0005 (cc == 2) -780000000000000000000000 <> 7c0000000000000000000000 (cc == 3) -780000000000000000000000 == 780000000000000000000000 (cc == 0) -7c0000000000000000000000 == 7c0000000000000000000000 (cc == 0) +2206c0000000000000000000000a0005 == 2206c0000000000000000000000a0005 (cc == 0) +2206c0000000000000000000000a0005 < 2207c000000000000140000000000005 (cc == 1) +2207c000000000000140000000000005 > 2206c0000000000000000000000a0005 (cc == 2) +78000000000000000000000000000000 <> 7c000000000000000000000000000000 (cc == 3) +78000000000000000000000000000000 == 78000000000000000000000000000000 (cc == 0) +7c000000000000000000000000000000 == 7c000000000000000000000000000000 (cc == 0) diff --git a/none/tests/s390x/dfp-4.stdout.exp b/none/tests/s390x/dfp-4.stdout.exp index 9a2319c30e..45624d43f1 100644 --- a/none/tests/s390x/dfp-4.stdout.exp +++ b/none/tests/s390x/dfp-4.stdout.exp @@ -1,4 +1,4 @@ D32 -> D64 : 2df00002 -> 2220000000300002 -D64 -> D128 : 22340000000c0004 -> 2207c00000000000000c0004 +D64 -> D128 : 22340000000c0004 -> 2207c0000000000000000000000c0004 D64 -> D32 : 22340000000c0004 -> 224c0004 -D128 -> D64 : 2206800000000000800000000028 -> 2220800000000028 +D128 -> D64 : 22068000000000000000800000000028 -> 2220800000000028 diff --git a/none/tests/s390x/dfp_utils.h b/none/tests/s390x/dfp_utils.h index 031f29eb4b..ec2bf1c755 100644 --- a/none/tests/s390x/dfp_utils.h +++ b/none/tests/s390x/dfp_utils.h @@ -4,19 +4,12 @@ #include <stddef.h> /* size_t */ #include <stdio.h> /* printf */ -/* convinience macros to print DFP values to avoid linking libdfp to - DFP testcases */ - #define DFP_VAL_PRINT(op, type) \ { \ - size_t n = sizeof(type); \ - if (n == 4) \ - printf("%x", *((unsigned int *) &op)); \ - else if (n == 8) \ - printf("%lx", *((unsigned long *) &op)); \ - else \ - printf("%lx%08lx", *((unsigned long *) &op), \ - *(((unsigned long *) &op) + 1)); \ + enum { n = sizeof(type) }; \ + union { type x; unsigned char i[n]; } u = { .x = op }; \ + for (int k = 0; k < n; k++) \ + printf("%02x", u.i[k]); \ } #define DFP_BINOP_PRINT(op1, op2, result, type, op, cc) \ diff --git a/none/tests/s390x/dfpconv.stdout.exp b/none/tests/s390x/dfpconv.stdout.exp index d30a0d63db..54ef54ba53 100644 --- a/none/tests/s390x/dfpconv.stdout.exp +++ b/none/tests/s390x/dfpconv.stdout.exp @@ -1,8 +1,8 @@ -CXGTRA round=0 0 -> 220800000000000000000000 -CXGTRA round=0 1 -> 220800000000000000000001 -CXGTRA round=0 -1 -> 2208000000000000115afb55b -CXGTRA round=0 -2147483648 -> 22080000000000008c78af48 -CXGTRA round=0 2147483647 -> 22080000000000008c78af47 +CXGTRA round=0 0 -> 22080000000000000000000000000000 +CXGTRA round=0 1 -> 22080000000000000000000000000001 +CXGTRA round=0 -1 -> 22080000000000000000000115afb55b +CXGTRA round=0 -2147483648 -> 2208000000000000000000008c78af48 +CXGTRA round=0 2147483647 -> 2208000000000000000000008c78af47 CDGTRA round=1 0 -> 2238000000000000 CDGTRA round=1 1 -> 2238000000000001 CDGTRA round=1 -1 -> 2238000115afb55b @@ -23,25 +23,25 @@ CGDTRA round=1 4154000000000016 -> -1 cc=3 CGDTRA round=1 2224000000000016 -> 0 cc=2 CGDTRA round=1 20bc000000000001 -> 0 cc=2 CGDTRA round=1 23a000000093fcff -> -1 cc=3 -CGDTRA round=1 3c000000000001 -> 0 cc=2 +CGDTRA round=1 003c000000000001 -> 0 cc=2 CGDTRA round=1 77fcff3fcff3fcff -> -1 cc=3 -CGXTRA round=1 a207c0000000000000000011 -> -1 cc=1 -CGXTRA round=1 220800000000000000000000 -> 0 cc=0 -CGXTRA round=1 220800000000000000000001 -> 1 cc=2 -CGXTRA round=1 2207c0000000000000000014 -> 1 cc=2 -CGXTRA round=1 2207c0000000000000000015 -> 2 cc=2 -CGXTRA round=1 2207c0000000000000000016 -> 2 cc=2 -CGXTRA round=1 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=1 2209c0000000000000000016 -> 160000000 cc=2 -CGXTRA round=1 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=1 220ac0000000000000000016 -> -2022801408 cc=2 -CGXTRA round=1 220cc0000000000000000016 -> -1 cc=3 -CGXTRA round=1 2239c0000000000000000016 -> -1 cc=3 -CGXTRA round=1 2206c0000000000000000016 -> 0 cc=2 -CGXTRA round=1 21f040000000000000000001 -> 0 cc=2 -CGXTRA round=1 221e8000000000000093fcff -> -1 cc=3 -CGXTRA round=1 21a840000000000000000001 -> 0 cc=2 -CGXTRA round=1 226440000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=1 a207c000000000000000000000000011 -> -1 cc=1 +CGXTRA round=1 22080000000000000000000000000000 -> 0 cc=0 +CGXTRA round=1 22080000000000000000000000000001 -> 1 cc=2 +CGXTRA round=1 2207c000000000000000000000000014 -> 1 cc=2 +CGXTRA round=1 2207c000000000000000000000000015 -> 2 cc=2 +CGXTRA round=1 2207c000000000000000000000000016 -> 2 cc=2 +CGXTRA round=1 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=1 2209c000000000000000000000000016 -> 160000000 cc=2 +CGXTRA round=1 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=1 220ac000000000000000000000000016 -> -2022801408 cc=2 +CGXTRA round=1 220cc000000000000000000000000016 -> -1 cc=3 +CGXTRA round=1 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=1 2206c000000000000000000000000016 -> 0 cc=2 +CGXTRA round=1 21f04000000000000000000000000001 -> 0 cc=2 +CGXTRA round=1 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=1 21a84000000000000000000000000001 -> 0 cc=2 +CGXTRA round=1 22644000000000000024ff3fcff3fcff -> -1 cc=3 CDGTRA round=3 0 -> 2238000000000000 CDGTRA round=3 1 -> 2238000000000001 CDGTRA round=3 -1 -> 2238000115afb55b @@ -62,25 +62,25 @@ CGDTRA round=3 4154000000000016 -> -1 cc=3 CGDTRA round=3 2224000000000016 -> 1 cc=2 CGDTRA round=3 20bc000000000001 -> 1 cc=2 CGDTRA round=3 23a000000093fcff -> -1 cc=3 -CGDTRA round=3 3c000000000001 -> 1 cc=2 +CGDTRA round=3 003c000000000001 -> 1 cc=2 CGDTRA round=3 77fcff3fcff3fcff -> -1 cc=3 -CGXTRA round=3 a207c0000000000000000011 -> -1 cc=1 -CGXTRA round=3 220800000000000000000000 -> 0 cc=0 -CGXTRA round=3 220800000000000000000001 -> 1 cc=2 -CGXTRA round=3 2207c0000000000000000014 -> 1 cc=2 -CGXTRA round=3 2207c0000000000000000015 -> 1 cc=2 -CGXTRA round=3 2207c0000000000000000016 -> 1 cc=2 -CGXTRA round=3 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=3 2209c0000000000000000016 -> 160000000 cc=2 -CGXTRA round=3 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=3 220ac0000000000000000016 -> -2022801408 cc=2 -CGXTRA round=3 220cc0000000000000000016 -> -1 cc=3 -CGXTRA round=3 2239c0000000000000000016 -> -1 cc=3 -CGXTRA round=3 2206c0000000000000000016 -> 1 cc=2 -CGXTRA round=3 21f040000000000000000001 -> 1 cc=2 -CGXTRA round=3 221e8000000000000093fcff -> -1 cc=3 -CGXTRA round=3 21a840000000000000000001 -> 1 cc=2 -CGXTRA round=3 226440000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=3 a207c000000000000000000000000011 -> -1 cc=1 +CGXTRA round=3 22080000000000000000000000000000 -> 0 cc=0 +CGXTRA round=3 22080000000000000000000000000001 -> 1 cc=2 +CGXTRA round=3 2207c000000000000000000000000014 -> 1 cc=2 +CGXTRA round=3 2207c000000000000000000000000015 -> 1 cc=2 +CGXTRA round=3 2207c000000000000000000000000016 -> 1 cc=2 +CGXTRA round=3 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=3 2209c000000000000000000000000016 -> 160000000 cc=2 +CGXTRA round=3 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=3 220ac000000000000000000000000016 -> -2022801408 cc=2 +CGXTRA round=3 220cc000000000000000000000000016 -> -1 cc=3 +CGXTRA round=3 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=3 2206c000000000000000000000000016 -> 1 cc=2 +CGXTRA round=3 21f04000000000000000000000000001 -> 1 cc=2 +CGXTRA round=3 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=3 21a84000000000000000000000000001 -> 1 cc=2 +CGXTRA round=3 22644000000000000024ff3fcff3fcff -> -1 cc=3 CDGTRA round=4 0 -> 2238000000000000 CDGTRA round=4 1 -> 2238000000000001 CDGTRA round=4 -1 -> 2238000115afb55b @@ -101,25 +101,25 @@ CGDTRA round=4 4154000000000016 -> -1 cc=3 CGDTRA round=4 2224000000000016 -> 0 cc=2 CGDTRA round=4 20bc000000000001 -> 0 cc=2 CGDTRA round=4 23a000000093fcff -> -1 cc=3 -CGDTRA round=4 3c000000000001 -> 0 cc=2 +CGDTRA round=4 003c000000000001 -> 0 cc=2 CGDTRA round=4 77fcff3fcff3fcff -> -1 cc=3 -CGXTRA round=4 a207c0000000000000000011 -> -1 cc=1 -CGXTRA round=4 220800000000000000000000 -> 0 cc=0 -CGXTRA round=4 220800000000000000000001 -> 1 cc=2 -CGXTRA round=4 2207c0000000000000000014 -> 1 cc=2 -CGXTRA round=4 2207c0000000000000000015 -> 2 cc=2 -CGXTRA round=4 2207c0000000000000000016 -> 2 cc=2 -CGXTRA round=4 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=4 2209c0000000000000000016 -> 160000000 cc=2 -CGXTRA round=4 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=4 220ac0000000000000000016 -> -2022801408 cc=2 -CGXTRA round=4 220cc0000000000000000016 -> -1 cc=3 -CGXTRA round=4 2239c0000000000000000016 -> -1 cc=3 -CGXTRA round=4 2206c0000000000000000016 -> 0 cc=2 -CGXTRA round=4 21f040000000000000000001 -> 0 cc=2 -CGXTRA round=4 221e8000000000000093fcff -> -1 cc=3 -CGXTRA round=4 21a840000000000000000001 -> 0 cc=2 -CGXTRA round=4 226440000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=4 a207c000000000000000000000000011 -> -1 cc=1 +CGXTRA round=4 22080000000000000000000000000000 -> 0 cc=0 +CGXTRA round=4 22080000000000000000000000000001 -> 1 cc=2 +CGXTRA round=4 2207c000000000000000000000000014 -> 1 cc=2 +CGXTRA round=4 2207c000000000000000000000000015 -> 2 cc=2 +CGXTRA round=4 2207c000000000000000000000000016 -> 2 cc=2 +CGXTRA round=4 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=4 2209c000000000000000000000000016 -> 160000000 cc=2 +CGXTRA round=4 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=4 220ac000000000000000000000000016 -> -2022801408 cc=2 +CGXTRA round=4 220cc000000000000000000000000016 -> -1 cc=3 +CGXTRA round=4 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=4 2206c000000000000000000000000016 -> 0 cc=2 +CGXTRA round=4 21f04000000000000000000000000001 -> 0 cc=2 +CGXTRA round=4 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=4 21a84000000000000000000000000001 -> 0 cc=2 +CGXTRA round=4 22644000000000000024ff3fcff3fcff -> -1 cc=3 CDGTRA round=5 0 -> 2238000000000000 CDGTRA round=5 1 -> 2238000000000001 CDGTRA round=5 -1 -> 2238000115afb55b @@ -140,25 +140,25 @@ CGDTRA round=5 4154000000000016 -> -1 cc=3 CGDTRA round=5 2224000000000016 -> 0 cc=2 CGDTRA round=5 20bc000000000001 -> 0 cc=2 CGDTRA round=5 23a000000093fcff -> -1 cc=3 -CGDTRA round=5 3c000000000001 -> 0 cc=2 +CGDTRA round=5 003c000000000001 -> 0 cc=2 CGDTRA round=5 77fcff3fcff3fcff -> -1 cc=3 -CGXTRA round=5 a207c0000000000000000011 -> -1 cc=1 -CGXTRA round=5 220800000000000000000000 -> 0 cc=0 -CGXTRA round=5 220800000000000000000001 -> 1 cc=2 -CGXTRA round=5 2207c0000000000000000014 -> 1 cc=2 -CGXTRA round=5 2207c0000000000000000015 -> 1 cc=2 -CGXTRA round=5 2207c0000000000000000016 -> 1 cc=2 -CGXTRA round=5 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=5 2209c0000000000000000016 -> 160000000 cc=2 -CGXTRA round=5 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=5 220ac0000000000000000016 -> -2022801408 cc=2 -CGXTRA round=5 220cc0000000000000000016 -> -1 cc=3 -CGXTRA round=5 2239c0000000000000000016 -> -1 cc=3 -CGXTRA round=5 2206c0000000000000000016 -> 0 cc=2 -CGXTRA round=5 21f040000000000000000001 -> 0 cc=2 -CGXTRA round=5 221e8000000000000093fcff -> -1 cc=3 -CGXTRA round=5 21a840000000000000000001 -> 0 cc=2 -CGXTRA round=5 226440000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=5 a207c000000000000000000000000011 -> -1 cc=1 +CGXTRA round=5 22080000000000000000000000000000 -> 0 cc=0 +CGXTRA round=5 22080000000000000000000000000001 -> 1 cc=2 +CGXTRA round=5 2207c000000000000000000000000014 -> 1 cc=2 +CGXTRA round=5 2207c000000000000000000000000015 -> 1 cc=2 +CGXTRA round=5 2207c000000000000000000000000016 -> 1 cc=2 +CGXTRA round=5 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=5 2209c000000000000000000000000016 -> 160000000 cc=2 +CGXTRA round=5 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=5 220ac000000000000000000000000016 -> -2022801408 cc=2 +CGXTRA round=5 220cc000000000000000000000000016 -> -1 cc=3 +CGXTRA round=5 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=5 2206c000000000000000000000000016 -> 0 cc=2 +CGXTRA round=5 21f04000000000000000000000000001 -> 0 cc=2 +CGXTRA round=5 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=5 21a84000000000000000000000000001 -> 0 cc=2 +CGXTRA round=5 22644000000000000024ff3fcff3fcff -> -1 cc=3 CDGTRA round=6 0 -> 2238000000000000 CDGTRA round=6 1 -> 2238000000000001 CDGTRA round=6 -1 -> 2238000115afb55b @@ -179,25 +179,25 @@ CGDTRA round=6 4154000000000016 -> -1 cc=3 CGDTRA round=6 2224000000000016 -> 1 cc=2 CGDTRA round=6 20bc000000000001 -> 1 cc=2 CGDTRA round=6 23a000000093fcff -> -1 cc=3 -CGDTRA round=6 3c000000000001 -> 1 cc=2 +CGDTRA round=6 003c000000000001 -> 1 cc=2 CGDTRA round=6 77fcff3fcff3fcff -> -1 cc=3 -CGXTRA round=6 a207c0000000000000000011 -> -1 cc=1 -CGXTRA round=6 220800000000000000000000 -> 0 cc=0 -CGXTRA round=6 220800000000000000000001 -> 1 cc=2 -CGXTRA round=6 2207c0000000000000000014 -> 2 cc=2 -CGXTRA round=6 2207c0000000000000000015 -> 2 cc=2 -CGXTRA round=6 2207c0000000000000000016 -> 2 cc=2 -CGXTRA round=6 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=6 2209c0000000000000000016 -> 160000000 cc=2 -CGXTRA round=6 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=6 220ac0000000000000000016 -> -2022801408 cc=2 -CGXTRA round=6 220cc0000000000000000016 -> -1 cc=3 -CGXTRA round=6 2239c0000000000000000016 -> -1 cc=3 -CGXTRA round=6 2206c0000000000000000016 -> 1 cc=2 -CGXTRA round=6 21f040000000000000000001 -> 1 cc=2 -CGXTRA round=6 221e8000000000000093fcff -> -1 cc=3 -CGXTRA round=6 21a840000000000000000001 -> 1 cc=2 -CGXTRA round=6 226440000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=6 a207c000000000000000000000000011 -> -1 cc=1 +CGXTRA round=6 22080000000000000000000000000000 -> 0 cc=0 +CGXTRA round=6 22080000000000000000000000000001 -> 1 cc=2 +CGXTRA round=6 2207c000000000000000000000000014 -> 2 cc=2 +CGXTRA round=6 2207c000000000000000000000000015 -> 2 cc=2 +CGXTRA round=6 2207c000000000000000000000000016 -> 2 cc=2 +CGXTRA round=6 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=6 2209c000000000000000000000000016 -> 160000000 cc=2 +CGXTRA round=6 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=6 220ac000000000000000000000000016 -> -2022801408 cc=2 +CGXTRA round=6 220cc000000000000000000000000016 -> -1 cc=3 +CGXTRA round=6 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=6 2206c000000000000000000000000016 -> 1 cc=2 +CGXTRA round=6 21f04000000000000000000000000001 -> 1 cc=2 +CGXTRA round=6 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=6 21a84000000000000000000000000001 -> 1 cc=2 +CGXTRA round=6 22644000000000000024ff3fcff3fcff -> -1 cc=3 CDGTRA round=7 0 -> 2238000000000000 CDGTRA round=7 1 -> 2238000000000001 CDGTRA round=7 -1 -> 2238000115afb55b @@ -218,25 +218,25 @@ CGDTRA round=7 4154000000000016 -> -1 cc=3 CGDTRA round=7 2224000000000016 -> 0 cc=2 CGDTRA round=7 20bc000000000001 -> 0 cc=2 CGDTRA round=7 23a000000093fcff -> -1 cc=3 -CGDTRA round=7 3c000000000001 -> 0 cc=2 +CGDTRA round=7 003c000000000001 -> 0 cc=2 CGDTRA round=7 77fcff3fcff3fcff -> -1 cc=3 -CGXTRA round=7 a207c0000000000000000011 -> -2 cc=1 -CGXTRA round=7 220800000000000000000000 -> 0 cc=0 -CGXTRA round=7 220800000000000000000001 -> 1 cc=2 -CGXTRA round=7 2207c0000000000000000014 -> 1 cc=2 -CGXTRA round=7 2207c0000000000000000015 -> 1 cc=2 -CGXTRA round=7 2207c0000000000000000016 -> 1 cc=2 -CGXTRA round=7 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=7 2209c0000000000000000016 -> 160000000 cc=2 -CGXTRA round=7 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=7 220ac0000000000000000016 -> -2022801408 cc=2 -CGXTRA round=7 220cc0000000000000000016 -> -1 cc=3 -CGXTRA round=7 2239c0000000000000000016 -> -1 cc=3 -CGXTRA round=7 2206c0000000000000000016 -> 0 cc=2 -CGXTRA round=7 21f040000000000000000001 -> 0 cc=2 -CGXTRA round=7 221e8000000000000093fcff -> -1 cc=3 -CGXTRA round=7 21a840000000000000000001 -> 0 cc=2 -CGXTRA round=7 226440000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=7 a207c000000000000000000000000011 -> -2 cc=1 +CGXTRA round=7 22080000000000000000000000000000 -> 0 cc=0 +CGXTRA round=7 22080000000000000000000000000001 -> 1 cc=2 +CGXTRA round=7 2207c000000000000000000000000014 -> 1 cc=2 +CGXTRA round=7 2207c000000000000000000000000015 -> 1 cc=2 +CGXTRA round=7 2207c000000000000000000000000016 -> 1 cc=2 +CGXTRA round=7 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=7 2209c000000000000000000000000016 -> 160000000 cc=2 +CGXTRA round=7 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=7 220ac000000000000000000000000016 -> -2022801408 cc=2 +CGXTRA round=7 220cc000000000000000000000000016 -> -1 cc=3 +CGXTRA round=7 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=7 2206c000000000000000000000000016 -> 0 cc=2 +CGXTRA round=7 21f04000000000000000000000000001 -> 0 cc=2 +CGXTRA round=7 221e800000000000000000000093fcff -> -1 cc=3 +CGXTRA round=7 21a84000000000000000000000000001 -> 0 cc=2 +CGXTRA round=7 22644000000000000024ff3fcff3fcff -> -1 cc=3 CDGTRA round=8 0 -> 2238000000000000 CDGTRA round=8 1 -> 2238000000000001 CDGTRA round=8 -1 -> 2238000115afb55b @@ -257,25 +257,25 @@ CGDTRA round=8 4154000000000016 -> -1 cc=3 CGDTRA round=8 2224000000000016 -> 0 cc=2 CGDTRA round=8 20bc000000000001 -> 0 cc=2 CGDTRA round=8 23a000000093fcff -> -1 cc=3 -CGDTRA round=8 3c000000000001 -> 0 cc=2 +CGDTRA round=8 003c000000000001 -> 0 cc=2 CGDTRA round=8 77fcff3fcff3fcff -> -1 cc=3 -CGXTRA round=8 a207c0000000000000000011 -> -1 cc=1 -CGXTRA round=8 220800000000000000000000 -> 0 cc=0 -CGXTRA round=8 220800000000000000000001 -> 1 cc=2 -CGXTRA round=8 2207c0000000000000000014 -> 1 cc=2 -CGXTRA round=8 2207c0000000000000000015 -> 2 cc=2 -CGXTRA round=8 2207c0000000000000000016 -> 2 cc=2 -CGXTRA round=8 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=8 2209c0000000000000000016 -> 160000000 cc=2 -CGXTRA round=8 2208c0000000000000000016 -> 16000 cc=2 -CGXTRA round=8 220ac0000000000000000016 -> -2022801408 cc=2 -CGXTRA round=8 220cc0000000000000000016 -> -1 cc=3 -CGXTRA round=8 2239c0000000000000000016 -> -1 cc=3 -CGXTRA round=8 2206c0000000000000000016 -> 0 cc=2 -CGXTRA round=8 21f040000000000000000001 -> 0 cc=2 -CGXTRA round=8 221e8000000000000093fcff -> -1 cc=3 -CGXTRA round=8 21a840000000000000000001 -> 0 cc=2 -CGXTRA round=8 226440000000000024ff3fcff3fcff -> -1 cc=3 +CGXTRA round=8 a207c000000000000000000000000011 -> -1 cc=1 +CGXTRA round=8 22080000000000000000000000000000 -> 0 cc=0 +CGXTRA round=8 22080000000000000000000000000001 -> 1 cc=2 +CGXTRA round=8 2207c000000000000000000000000014 -> 1 cc=2 +CGXTRA round=8 2207c000000000000000000000000015 -> 2 cc=2 +CGXTRA round=8 2207c000000000000000000000000016 -> 2 cc=2 +CGXTRA round=8 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=8 2209c000000000000000000000000016 -> 160000000 cc=2 +CGXTRA round=8 2208c000000000000000000000000016 -> 16000 cc=2 +CGXTRA round=8 220ac000000000000000000000000016 -> -2022801408 cc=2 +CGXTRA round=8 220cc000000000000000000000000016 -> -1 cc=3 +CGXTRA round=8 2239c000000000000000000000000016 -> -1 cc=3 +CGXTRA round=8 2206c000000000000000000000000016 -> 0 cc=2 +CGXTRA round=8 21f04000000000000000000000000001 -> 0 cc=2 +CGXTRA ro... [truncated message content] |
|
From: Andreas A. <ar...@so...> - 2023-09-07 14:45:12
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=e5440ef64eb66d954d72224db9d4712f3704c74b commit e5440ef64eb66d954d72224db9d4712f3704c74b Author: Andreas Arnez <ar...@li...> Date: Thu Sep 7 16:43:24 2023 +0200 s390x regtest: Reduce pfpo test case output The `pfpo' test case prints floating-point values with the "%f" and "%Lf" formats. Sometimes also "%lf" is used, but that's equivalent to "%f" since the "l" length modifier doesn't affect floating-point formatting. These "f"-style formats are not well suited for such a test case: * They generate excessively long output for numbers with large absolute values. This makes `pfpo.stdout.exp' difficult to handle. * They can lose precision, in particular for numbers close to zero, where they just print zeros. Use the formats "%a" and "%La" instead and adjust pfpo.stdout.exp accordingly. Diff: --- none/tests/s390x/pfpo.c | 36 +- none/tests/s390x/pfpo.stdout.exp | 996 +++++++++++++++++++-------------------- 2 files changed, 516 insertions(+), 516 deletions(-) diff --git a/none/tests/s390x/pfpo.c b/none/tests/s390x/pfpo.c index 1bfd8896c7..a5300d5c51 100644 --- a/none/tests/s390x/pfpo.c +++ b/none/tests/s390x/pfpo.c @@ -83,7 +83,7 @@ int main() /* f32 -> d32 */ for(j = 0; j < 3; j++) { printf("f32 -> d32: round=%x ", i); - printf("%f -> ", f32_in[j]); + printf("%a -> ", f32_in[j]); d32 = PFPO(f32_in[j], float, _Decimal32, PFPO_F32_TO_D32, i, ret_code, cc); DFP_VAL_PRINT(d32, _Decimal32); @@ -93,7 +93,7 @@ int main() /* f32 -> d64 */ for(j = 0; j < 3; j++) { printf("f32 -> d64: round=%x ", i); - printf("%f -> ", f32_in[j]); + printf("%a -> ", f32_in[j]); d64 = PFPO(f32_in[j], float, _Decimal64, PFPO_F32_TO_D64, i, ret_code, cc); DFP_VAL_PRINT(d64, _Decimal64); @@ -103,7 +103,7 @@ int main() /* f32 -> d128 */ for(j = 0; j < 3; j++) { printf("f32 -> d128: round=%x ", i); - printf("%f -> ", f32_in[j]); + printf("%a -> ", f32_in[j]); d128 = PFPO(f32_in[j], float, _Decimal128, PFPO_F32_TO_D128, i, ret_code, cc); DFP_VAL_PRINT(d128, _Decimal128); @@ -113,7 +113,7 @@ int main() /* f64 -> d32 */ for(j = 0; j < 3; j++) { printf("f64 -> d32: round=%x ", i); - printf("%lf -> ", f64_in[j]); + printf("%a -> ", f64_in[j]); d32 = PFPO(f64_in[j], double, _Decimal32, PFPO_F64_TO_D32, i, ret_code, cc); DFP_VAL_PRINT(d32, _Decimal32); @@ -123,7 +123,7 @@ int main() /* f64 -> d64 */ for(j = 0; j < 3; j++) { printf("f64 -> d64: round=%x ", i); - printf("%lf -> ", f64_in[j]); + printf("%a -> ", f64_in[j]); d64 = PFPO(f64_in[j], double, _Decimal64, PFPO_F64_TO_D64, i, ret_code, cc); DFP_VAL_PRINT(d64, _Decimal64); @@ -133,7 +133,7 @@ int main() /* f64 -> d128 */ for(j = 0; j < 3; j++) { printf("f64 -> d128: round=%x ", i); - printf("%lf -> ", f64_in[j]); + printf("%a -> ", f64_in[j]); d128 = PFPO(f64_in[j], double, _Decimal128, PFPO_F64_TO_D128, i, ret_code, cc); DFP_VAL_PRINT(d128, _Decimal128); @@ -143,7 +143,7 @@ int main() /* f128 -> d32 */ for(j = 0; j < 3; j++) { printf("f128 -> d32: round=%x ", i); - printf("%Lf -> ", f128_in[j]); + printf("%La -> ", f128_in[j]); d32 = PFPO(f128_in[j], long double, _Decimal32, PFPO_F128_TO_D32, i, ret_code, cc); DFP_VAL_PRINT(d32, _Decimal32); @@ -153,7 +153,7 @@ int main() /* f128 -> d64 */ for(j = 0; j < 3; j++) { printf("f128 -> d6: round=%x ", i); - printf("%Lf -> ", f128_in[j]); + printf("%La -> ", f128_in[j]); d64 = PFPO(f128_in[j], long double, _Decimal64, PFPO_F128_TO_D64, i, ret_code, cc); DFP_VAL_PRINT(d64, _Decimal64); @@ -163,7 +163,7 @@ int main() /* f128 -> d128 */ for(j = 0; j < 3; j++) { printf("f128 -> d128: round=%x ", i); - printf("%Lf -> ", f128_in[j]); + printf("%La -> ", f128_in[j]); d128 = PFPO(f128_in[j], long double, _Decimal128, PFPO_F128_TO_D128, i, ret_code, cc); DFP_VAL_PRINT(d128, _Decimal128); @@ -177,7 +177,7 @@ int main() printf(" -> "); f32 = PFPO(d32_in[j], _Decimal32, float, PFPO_D32_TO_F32, i, ret_code, cc); - printf("%f", f32); + printf("%a", f32); printf(" ret=%d cc=%d\n", ret_code, cc); } @@ -188,7 +188,7 @@ int main() printf(" -> "); f64 = PFPO(d32_in[j], _Decimal32, double, PFPO_D32_TO_F64, i, ret_code, cc); - printf("%lf", f64); + printf("%a", f64); printf(" ret=%d cc=%d\n", ret_code, cc); } @@ -199,7 +199,7 @@ int main() printf(" -> "); f128 = PFPO(d32_in[j], _Decimal32, long double, PFPO_D32_TO_F128, i, ret_code, cc); - printf("%Lf", f128); + printf("%La", f128); printf(" ret=%d cc=%d\n", ret_code, cc); } @@ -210,7 +210,7 @@ int main() printf(" -> "); f32 = PFPO(d64_in[j], _Decimal64, float, PFPO_D64_TO_F32, i, ret_code, cc); - printf("%f", f32); + printf("%a", f32); printf(" ret=%d cc=%d\n", ret_code, cc); } @@ -221,7 +221,7 @@ int main() printf(" -> "); f64 = PFPO(d64_in[j], _Decimal64, double, PFPO_D64_TO_F64, i, ret_code, cc); - printf("%lf", f64); + printf("%a", f64); printf(" ret=%d cc=%d\n", ret_code, cc); } @@ -232,7 +232,7 @@ int main() printf(" -> "); f128 = PFPO(d64_in[j], _Decimal64, long double, PFPO_D64_TO_F128, i, ret_code, cc); - printf("%Lf", f128); + printf("%La", f128); printf(" ret=%d cc=%d\n", ret_code, cc); } @@ -243,7 +243,7 @@ int main() printf(" -> "); f32 = PFPO(d128_in[j], _Decimal128, float, PFPO_D128_TO_F32, i, ret_code, cc); - printf("%f", f32); + printf("%a", f32); printf(" ret=%d cc=%d\n", ret_code, cc); } @@ -254,7 +254,7 @@ int main() printf(" -> "); f64 = PFPO(d128_in[j], _Decimal128, double, PFPO_D128_TO_F64, i, ret_code, cc); - printf("%lf", f64); + printf("%a", f64); printf(" ret=%d cc=%d\n", ret_code, cc); } @@ -265,7 +265,7 @@ int main() printf(" -> "); f128 = PFPO(d128_in[j], _Decimal128, long double, PFPO_D128_TO_F128, i, ret_code, cc); - printf("%Lf", f128); + printf("%La", f128); printf(" ret=%d cc=%d\n", ret_code, cc); } } diff --git a/none/tests/s390x/pfpo.stdout.exp b/none/tests/s390x/pfpo.stdout.exp index 1b2c2ffd1e..8d874c48a9 100644 --- a/none/tests/s390x/pfpo.stdout.exp +++ b/none/tests/s390x/pfpo.stdout.exp @@ -1,542 +1,542 @@ pfpo test: function=81090600 ret=0 cc=0 pfpo test: function=81990600 ret=0 cc=3 -f32 -> d32: round=0 123.565681 -> 2614d757 ret=0 cc=1 -f32 -> d32: round=0 340282346638528859811704183484516925440.000000 -> 4c58092d ret=0 cc=1 -f32 -> d32: round=0 0.000000 -> 793d65a ret=0 cc=1 -f32 -> d64: round=0 123.565681 -> 260535d5a1cbd4db ret=0 cc=1 -f32 -> d64: round=0 340282346638528859811704183484516925440.000000 -> 2e96024b66672d4f ret=0 cc=1 -f32 -> d64: round=0 0.000000 -> 2564f5969d04b14e ret=0 cc=1 -f32 -> d128: round=0 123.565681 -> 2203c00000000001275ae8317d1774a5 ret=0 cc=0 -f32 -> d128: round=0 340282346638528859811704183484516925440.000000 -> 2e096024b66672d4eb78971063c934e9 ret=0 cc=1 -f32 -> d128: round=0 0.000000 -> 25f64f5969d04b16ba1faeedab748946 ret=0 cc=1 -f64 -> d32: round=0 123456789999.565674 -> 26a4d2e8 ret=0 cc=1 -f64 -> d32: round=0 0.000000 -> 0 ret=0 cc=1 -f64 -> d32: round=0 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 78000000 ret=0 cc=1 -f64 -> d64: round=0 123456789999.565674 -> 262934b9c7fa7f57 ret=0 cc=1 -f64 -> d64: round=0 0.000000 -> 92d251ce3ea1d01 ret=0 cc=1 -f64 -> d64: round=0 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 46cffbcecb45b196 ret=0 cc=1 -f64 -> d128: round=0 123456789999.565674 -> 22050000000028e56f3cffb97734b8a5 ret=0 cc=0 -f64 -> d128: round=0 0.000000 -> 29b2d251ce3ea1d016ac1a4cb976ca04 ret=0 cc=1 -f64 -> d128: round=0 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 264cffbcecb45b195e20c55d13765c44 ret=0 cc=1 -f128 -> d32: round=0 1234567812345678912345678912.565679 -> 27a4d2e8 ret=0 cc=1 -f128 -> d32: round=0 0.000000 -> 0 ret=0 cc=1 -f128 -> d32: round=0 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417 7162953020146688023840758460362266064801429775954071350503798086491301571640240603117869087963725103358735127747952757485954175729209366513987527090552156639395055892078049145404329785576235656459912085996690971808088819200637227714312184890119222096790535459636284173260024397328029395243137866685140273814343210366365711716704235864727595612319707939678392791472827201953770606021226384578832048093417175268096392535394477302808636757047960540505251629590999325352655864646827938215500871669466622098650860409905071311454742674110428395423227629949387596131127438371928396826762575553883728144908453957471281620658715882191088872401166513619620508000291762999388260824175475167322699304731332612589218455168152354553543104581145283036073945261007305787740920947368222860154593611266425495417996453338825496707641459550170513308000612538651401801532119293614565003435147928902055320217600618822326157365533772949809740595905201879614597993867415130285059344104536034801923833493211151718110510041 0859283099181138255290906487302953341869108711810789500442688176586596184141926748623200592978995620749458764990166217231872299948451232582608703156193638368974068650527977529678933161368382279859704065160052412902514989487315319694209505667084746692764481259650670012944357951247923062137397808873125708979962290218382410541293048306560345986312037174428230137707015382387860995121893754295696415795098806060898578291065623811614220357410475745182817080487525744620412834851382908273172236418938049358833894766437062327982075583164620541748839306283820178954721954319445090211369992596537690819279215212221282457887933650687528861730346951711224545131544716428039252357496280417537592794897109698390524231879769534704369047422381326650563976116443884426653136462685121963399443415409856212739593618442182144427343153450786016161428702272098406156966033337278824103713153807737748015267058325792053556997331818811268567331899796749778678600125140387302392012771762685862703817056280727669968735627 4072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919 655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.000000 -> 78000000 ret=0 cc=1 -f128 -> d6: round=0 1234567812345678912345678912.565679 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=0 0.000000 -> 0 ret=0 cc=1 -f128 -> d6: round=0 11897314953572317650857593266280070161964690526416940455296988842121635797553123923249740128484620735259020335647491268597552654335738044626726987519452614908534619587250212628458657994054044935746815660966861725749537917922922562207770958581127024364754425370926089351382473456772795938067736923300946157461197257841728898925219399207576542048645656733564522472781522888677006389355954564966995114417529096068785132509483113968861005268330921286839747521922663867918808736943430773481555641016699711385127868747534969965492217276867701965515128127124882894699522980318674699246839815766645626677867190614996396303416570983054252372208766646300878087672561828032202122199248523759030495209113959109189212052734967685881190301115930187893680392320116714041758451088547069652156057771135162574048188176950750257152997059167143521036717827591193160344983921697206318001640341246989181422275773004593098804547151796062998955075830758511951858579711731676769660579988993526318854177 1629530201466880238407584603622660648014297759540713505037980864913015716402406031178690879637251033587351277479527574859541757292093665139875270905521566393950558920780491454043297855762356564599120859966909718080888192006372277143121848901192220967905354596362841732600243973280293952431378666851402738143432103663657117167042358647275956123197079396783927914728272019537706060212263845788320480934171752680963925353944773028086367570479605405052516295909993253526558646468279382155008716694666220986508604099050713114547426741104283954232276299493875961311274383719283968267625755538837281449084539574712816206587158821910888724011665136196205080002917629993882608241754751673226993047313326125892184551681523545535431045811452830360739452610073057877409209473682228601545936112664254954179964533388254967076414595501705133080006125386514018015321192936145650034351479289020553202176006188223261573655337729498097405959052018796145979938674151302850593441045360348019238334932111517181105100410 8592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274 0727734031326941048316158793543958115858251128378415632227616233344591881315378823557324830300859768903829697344762145934281912127171413330475778675522185174310648487603731962903101244661450870783771405285330486842042787995966525140093689645274949887199960882300656681962362988057336899603713062261584649972434905644722540718975641441285398399860960455632647712855850663041779957201017448443871583297673755604162078008788300720724139086578556672395463693577757813442881959891763133568564178454342328148867442267467070669797555771217887984687777001164729541036218105671078698556464147135026278363212569574072174617383635524242487624364780853518109957492932381740813319050481446127009055414257022203025376114948242287653245779337785198187786973402825809127806749790589380625568560010760577059821666868247560375696157604976198194820527581185327293331277336037421498470014639319813407196813308444082630175452416442933724832172345616942639378557592944486629790954192274518015884259778696940266014279196 55168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.000000 -> 7800000000000000 ret= 0 cc=1 -f128 -> d128: round=0 1234567812345678912345678912.565679 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 -f128 -> d128: round=0 0.000000 -> d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 -f128 -> d128: round=0 118973149535723176508575932662800701619646905264169404552969888421216357975531239232497401284846207352590203356474912685975526543357380446267269875194526149085346195872502126284586579940540449357468156609668617257495379179229225622077709585811270243647544253709260893513824734567727959380677369233009461574611972578417288989252193992075765420486456567335645224727815228886770063893559545649669951144175290960687851325094831139688610052683309212868397475219226638679188087369434307734815556410166997113851278687475349699654922172768677019655151281271248828946995229803186746992468398157666456266778671906149963963034165709830542523722087666463008780876725618280322021221992485237590304952091139591091892120527349676858811903011159301878936803923201167140417584510885470696521560577711351625740481881769507502571529970591671435210367178275911931603449839216972063180016403412469891814222757730045930988045471517960629989550758307585119518585797117316767696605799889935263188541 7716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004 1085928309918113825529090648730295334186910871181078950044268817658659618414192674862320059297899562074945876499016621723187229994845123258260870315619363836897406865052797752967893316136838227985970406516005241290251498948731531969420950566708474669276448125965067001294435795124792306213739780887312570897996229021838241054129304830656034598631203717442823013770701538238786099512189375429569641579509880606089857829106562381161422035741047574518281708048752574462041283485138290827317223641893804935883389476643706232798207558316462054174883930628382017895472195431944509021136999259653769081927921521222128245788793365068752886173034695171122454513154471642803925235749628041753759279489710969839052423187976953470436904742238132665056397611644388442665313646268512196339944341540985621273959361844218214442734315345078601616142870227209840615696603333727882410371315380773774801526705832579205355699733181881126856733189979674977867860012514038730239201277176268586270381705628072766996873562 7407277340313269410483161587935439581158582511283784156322276162333445918813153788235573248303008597689038296973447621459342819121271714133304757786755221851743106484876037319629031012446614508707837714052853304868420427879959665251400936896452749498871999608823006566819623629880573368996037130622615846499724349056447225407189756414412853983998609604556326477128558506630417799572010174484438715832976737556041620780087883007207241390865785566723954636935777578134428819598917631335685641784543423281488674422674670706697975557712178879846877770011647295410362181056710786985564641471350262783632125695740721746173836355242424876243647808535181099574929323817408133190504814461270090554142570222030253761149482422876532457793377851981877869734028258091278067497905893806255685600107605770598216668682475603756961576049761981948205275811853272933312773360374214984700146393198134071968133084440826301754524164429337248321723456169426393785575929444866297909541922745180158842597786969402660142791 9655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.000000 -> 46d0ccfec65b75d31f9 44bf65a6ca007 ret=0 cc=1 -d32 -> f32: round=0 2614d757 -> 123.565697 ret=0 cc=1 +f32 -> d32: round=0 0x1.ee4342p+6 -> 2614d757 ret=0 cc=1 +f32 -> d32: round=0 0x1.fffffep+127 -> 4c58092d ret=0 cc=1 +f32 -> d32: round=0 0x1p-126 -> 793d65a ret=0 cc=1 +f32 -> d64: round=0 0x1.ee4342p+6 -> 260535d5a1cbd4db ret=0 cc=1 +f32 -> d64: round=0 0x1.fffffep+127 -> 2e96024b66672d4f ret=0 cc=1 +f32 -> d64: round=0 0x1p-126 -> 2564f5969d04b14e ret=0 cc=1 +f32 -> d128: round=0 0x1.ee4342p+6 -> 2203c00000000001275ae8317d1774a5 ret=0 cc=0 +f32 -> d128: round=0 0x1.fffffep+127 -> 2e096024b66672d4eb78971063c934e9 ret=0 cc=1 +f32 -> d128: round=0 0x1p-126 -> 25f64f5969d04b16ba1faeedab748946 ret=0 cc=1 +f64 -> d32: round=0 0x1.cbe991def90dp+36 -> 26a4d2e8 ret=0 cc=1 +f64 -> d32: round=0 0x1p-1022 -> 0 ret=0 cc=1 +f64 -> d32: round=0 0x1.fffffffffffffp+1023 -> 78000000 ret=0 cc=1 +f64 -> d64: round=0 0x1.cbe991def90dp+36 -> 262934b9c7fa7f57 ret=0 cc=1 +f64 -> d64: round=0 0x1p-1022 -> 92d251ce3ea1d01 ret=0 cc=1 +f64 -> d64: round=0 0x1.fffffffffffffp+1023 -> 46cffbcecb45b196 ret=0 cc=1 +f64 -> d128: round=0 0x1.cbe991def90dp+36 -> 22050000000028e56f3cffb97734b8a5 ret=0 cc=0 +f64 -> d128: round=0 0x1p-1022 -> 29b2d251ce3ea1d016ac1a4cb976ca04 ret=0 cc=1 +f64 -> d128: round=0 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 ret=0 cc=1 +f128 -> d32: round=0 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 +f128 -> d32: round=0 0x1p-16382 -> 0 ret=0 cc=1 +f128 -> d32: round=0 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 +f128 -> d6: round=0 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d6: round=0 0x1p-16382 -> 0 ret=0 cc=1 +f128 -> d6: round=0 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d128: round=0 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 +f128 -> d128: round=0 0x1p-16382 -> d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 +f128 -> d128: round=0 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 +d32 -> f32: round=0 2614d757 -> 0x1.ee4346p+6 ret=0 cc=1 d32 -> f32: round=0 77f3fcff -> inf ret=0 cc=1 -d32 -> f32: round=0 600001 -> 0.000000 ret=0 cc=1 -d32 -> f64: round=0 2614d757 -> 123.565700 ret=0 cc=1 -d32 -> f64: round=0 77f3fcff -> 9999998999999999145058500637276236756335285900858519878078201916184111084614646836542515064078336.000000 ret=0 cc=1 -d32 -> f64: round=0 600001 -> 0.000000 ret=0 cc=1 -d32 -> f128: round=0 2614d757 -> 123.565700 ret=0 cc=1 -d32 -> f128: round=0 77f3fcff -> 9999998999999999999999999999999999462354159244984568360531049341302200948801429690072240675094528.000000 ret=0 cc=1 -d32 -> f128: round=0 600001 -> 0.000000 ret=0 cc=1 -d64 -> f32: round=0 262934b9c7fa7f57 -> 123456790528.000000 ret=0 cc=1 -d64 -> f32: round=0 3c000000000001 -> 0.000000 ret=0 cc=1 +d32 -> f32: round=0 600001 -> 0x0p+0 ret=0 cc=1 +d32 -> f64: round=0 2614d757 -> 0x1.ee4346dc5d639p+6 ret=0 cc=1 +d32 -> f64: round=0 77f3fcff -> 0x1.2ba093e5c6114p+322 ret=0 cc=1 +d32 -> f64: round=0 600001 -> 0x1.55c2076bf9a55p-316 ret=0 cc=1 +d32 -> f128: round=0 2614d757 -> 0x1.ee4346dc5d63886594af4f0d844dp+6 ret=0 cc=1 +d32 -> f128: round=0 77f3fcff -> 0x1.2ba093e5c6114735dacf25995a53p+322 ret=0 cc=1 +d32 -> f128: round=0 600001 -> 0x1.55c2076bf9a55103aca57b853e4dp-316 ret=0 cc=1 +d64 -> f32: round=0 262934b9c7fa7f57 -> 0x1.cbe992p+36 ret=0 cc=1 +d64 -> f32: round=0 3c000000000001 -> 0x0p+0 ret=0 cc=1 d64 -> f32: round=0 77fcff3fcff3fcff -> inf ret=0 cc=1 -d64 -> f64: round=0 262934b9c7fa7f57 -> 123456789999.565704 ret=0 cc=1 -d64 -> f64: round=0 3c000000000001 -> 0.000000 ret=0 cc=1 +d64 -> f64: round=0 262934b9c7fa7f57 -> 0x1.cbe991def90d2p+36 ret=0 cc=1 +d64 -> f64: round=0 3c000000000001 -> 0x0p+0 ret=0 cc=1 d64 -> f64: round=0 77fcff3fcff3fcff -> inf ret=0 cc=1 -d64 -> f128: round=0 262934b9c7fa7f57 -> 123456789999.565700 ret=0 cc=1 -d64 -> f128: round=0 3c000000000001 -> 0.000000 ret=0 cc=1 -d64 -> f128: round=0 77fcff3fcff3fcff -> 9999999999999999000000000000000000013723202727516060118807077893448616268747199640509480875143654370524821933293844615764721668487788941176186611501359635428425057176258171019295271247185046529699191156424938761709359083589727106005789174223154354416401110127617320588057734183075456542453869127620182239429135678998347351873054557747250681274391162650971365131334722353902232279187456.000000 ret=0 cc=1 -d128 -> f32: round=0 2606934b9d1c71778671c5de19cb9779 -> 1234567826894753579187306496.000000 ret=0 cc=1 -d128 -> f32: round=0 840000000000000000001 -> 0.000000 ret=0 cc=1 +d64 -> f128: round=0 262934b9c7fa7f57 -> 0x1.cbe991def90d1b71758e219652bdp+36 ret=0 cc=1 +d64 -> f128: round=0 3c000000000001 -> 0x1.a05139c5bac394dad6250fff96cp-1273 ret=0 cc=1 +d64 -> f128: round=0 77fcff3fcff3fcff -> 0x1.ebeeb7a9b56d9b60e91dc03ab30bp+1278 ret=0 cc=1 +d128 -> f32: round=0 2606934b9d1c71778671c5de19cb9779 -> 0x1.fe9af4p+89 ret=0 cc=1 +d128 -> f32: round=0 840000000000000000001 -> 0x0p+0 ret=0 cc=1 d128 -> f32: round=0 77ffcff3fcff3fcff3fcff3fcff3fcff -> inf ret=0 cc=1 -d128 -> f64: round=0 2606934b9d1c71778671c5de19cb9779 -> 1234567812345678857580314624.000000 ret=0 cc=1 -d128 -> f64: round=0 840000000000000000001 -> 0.000000 ret=0 cc=1 +d128 -> f64: round=0 2606934b9d1c71778671c5de19cb9779 -> 0x1.fe9af39b0ba6dp+89 ret=0 cc=1 +d128 -> f64: round=0 840000000000000000001 -> 0x0p+0 ret=0 cc=1 d128 -> f64: round=0 77ffcff3fcff3fcff3fcff3fcff3fcff -> inf ret=0 cc=1 -d128 -> f128: round=0 2606934b9d1c71778671c5de19cb9779 -> 1234567812345678912345678912.565679 ret=0 cc=1 -d128 -> f128: round=0 840000000000000000001 -> 0.000000 ret=0 cc=1 +d128 -> f128: round=0 2606934b9d1c71778671c5de19cb9779 -> 0x1.fe9af39b0ba6d66022922048682bp+89 ret=0 cc=1 +d128 -> f128: round=0 840000000000000000001 -> 0x0p+0 ret=0 cc=1 d128 -> f128: round=0 77ffcff3fcff3fcff3fcff3fcff3fcff -> inf ret=0 cc=1 -f32 -> d32: round=1 123.565681 -> 2614d757 ret=0 cc=1 -f32 -> d32: round=1 340282346638528859811704183484516925440.000000 -> 4c58092d ret=0 cc=1 -f32 -> d32: round=1 0.000000 -> 793d65a ret=0 cc=1 -f32 -> d64: round=1 123.565681 -> 260535d5a1cbd4db ret=0 cc=1 -f32 -> d64: round=1 340282346638528859811704183484516925440.000000 -> 2e96024b66672d4f ret=0 cc=1 -f32 -> d64: round=1 0.000000 -> 2564f5969d04b14e ret=0 cc=1 -f32 -> d128: round=1 123.565681 -> 2203c00000000001275ae8317d1774a5 ret=0 cc=0 -f32 -> d128: round=1 340282346638528859811704183484516925440.000000 -> 2e096024b66672d4eb78971063c934e9 ret=0 cc=1 -f32 -> d128: round=1 0.000000 -> 25f64f5969d04b16ba1faeedab748946 ret=0 cc=1 -f64 -> d32: round=1 123456789999.565674 -> 26a4d2e8 ret=0 cc=1 -f64 -> d32: round=1 0.000000 -> 0 ret=0 cc=1 -f64 -> d32: round=1 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 78000000 ret=0 cc=1 -f64 -> d64: round=1 123456789999.565674 -> 262934b9c7fa7f57 ret=0 cc=1 -f64 -> d64: round=1 0.000000 -> 92d251ce3ea1d01 ret=0 cc=1 -f64 -> d64: round=1 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 46cffbcecb45b196 ret=0 cc=1 -f64 -> d128: round=1 123456789999.565674 -> 22050000000028e56f3cffb97734b8a5 ret=0 cc=0 -f64 -> d128: round=1 0.000000 -> 29b2d251ce3ea1d016ac1a4cb976ca04 ret=0 cc=1 -f64 -> d128: round=1 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 264cffbcecb45b195e20c55d13765c44 ret=0 cc=1 -f128 -> d32: round=1 1234567812345678912345678912.565679 -> 27a4d2e8 ret=0 cc=1 -f128 -> d32: round=1 0.000000 -> 0 ret=0 cc=1 -f128 -> d32: round=1 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417 7162953020146688023840758460362266064801429775954071350503798086491301571640240603117869087963725103358735127747952757485954175729209366513987527090552156639395055892078049145404329785576235656459912085996690971808088819200637227714312184890119222096790535459636284173260024397328029395243137866685140273814343210366365711716704235864727595612319707939678392791472827201953770606021226384578832048093417175268096392535394477302808636757047960540505251629590999325352655864646827938215500871669466622098650860409905071311454742674110428395423227629949387596131127438371928396826762575553883728144908453957471281620658715882191088872401166513619620508000291762999388260824175475167322699304731332612589218455168152354553543104581145283036073945261007305787740920947368222860154593611266425495417996453338825496707641459550170513308000612538651401801532119293614565003435147928902055320217600618822326157365533772949809740595905201879614597993867415130285059344104536034801923833493211151718110510041 0859283099181138255290906487302953341869108711810789500442688176586596184141926748623200592978995620749458764990166217231872299948451232582608703156193638368974068650527977529678933161368382279859704065160052412902514989487315319694209505667084746692764481259650670012944357951247923062137397808873125708979962290218382410541293048306560345986312037174428230137707015382387860995121893754295696415795098806060898578291065623811614220357410475745182817080487525744620412834851382908273172236418938049358833894766437062327982075583164620541748839306283820178954721954319445090211369992596537690819279215212221282457887933650687528861730346951711224545131544716428039252357496280417537592794897109698390524231879769534704369047422381326650563976116443884426653136462685121963399443415409856212739593618442182144427343153450786016161428702272098406156966033337278824103713153807737748015267058325792053556997331818811268567331899796749778678600125140387302392012771762685862703817056280727669968735627 4072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919 655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.000000 -> 78000000 ret=0 cc=1 -f128 -> d6: round=1 1234567812345678912345678912.565679 -> 266934b9d1c71779 ret=0 cc=1 -f128 -> d6: round=1 0.000000 -> 0 ret=0 cc=1 -f128 -> d6: round=1 11897314953572317650857593266280070161964690526416940455296988842121635797553123923249740128484620735259020335647491268597552654335738044626726987519452614908534619587250212628458657994054044935746815660966861725749537917922922562207770958581127024364754425370926089351382473456772795938067736923300946157461197257841728898925219399207576542048645656733564522472781522888677006389355954564966995114417529096068785132509483113968861005268330921286839747521922663867918808736943430773481555641016699711385127868747534969965492217276867701965515128127124882894699522980318674699246839815766645626677867190614996396303416570983054252372208766646300878087672561828032202122199248523759030495209113959109189212052734967685881190301115930187893680392320116714041758451088547069652156057771135162574048188176950750257152997059167143521036717827591193160344983921697206318001640341246989181422275773004593098804547151796062998955075830758511951858579711731676769660579988993526318854177 1629530201466880238407584603622660648014297759540713505037980864913015716402406031178690879637251033587351277479527574859541757292093665139875270905521566393950558920780491454043297855762356564599120859966909718080888192006372277143121848901192220967905354596362841732600243973280293952431378666851402738143432103663657117167042358647275956123197079396783927914728272019537706060212263845788320480934171752680963925353944773028086367570479605405052516295909993253526558646468279382155008716694666220986508604099050713114547426741104283954232276299493875961311274383719283968267625755538837281449084539574712816206587158821910888724011665136196205080002917629993882608241754751673226993047313326125892184551681523545535431045811452830360739452610073057877409209473682228601545936112664254954179964533388254967076414595501705133080006125386514018015321192936145650034351479289020553202176006188223261573655337729498097405959052018796145979938674151302850593441045360348019238334932111517181105100410 8592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274 0727734031326941048316158793543958115858251128378415632227616233344591881315378823557324830300859768903829697344762145934281912127171413330475778675522185174310648487603731962903101244661450870783771405285330486842042787995966525140093689645274949887199960882300656681962362988057336899603713062261584649972434905644722540718975641441285398399860960455632647712855850663041779957201017448443871583297673755604162078008788300720724139086578556672395463693577757813442881959891763133568564178454342328148867442267467070669797555771217887984687777001164729541036218105671078698556464147135026278363212569574072174617383635524242487624364780853518109957492932381740813319050481446127009055414257022203025376114948242287653245779337785198187786973402825809127806749790589380625568560010760577059821666868247560375696157604976198194820527581185327293331277336037421498470014639319813407196813308444082630175452416442933724832172345616942639378557592944486629790954192274518015884259778696940266014279196 55168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.000000 -> 7800000000000000 ret= 0 cc=1 -f128 -> d128: round=1 1234567812345678912345678912.565679 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 -f128 -> d128: round=1 0.000000 -> d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 -f128 -> d128: round=1 118973149535723176508575932662800701619646905264169404552969888421216357975531239232497401284846207352590203356474912685975526543357380446267269875194526149085346195872502126284586579940540449357468156609668617257495379179229225622077709585811270243647544253709260893513824734567727959380677369233009461574611972578417288989252193992075765420486456567335645224727815228886770063893559545649669951144175290960687851325094831139688610052683309212868397475219226638679188087369434307734815556410166997113851278687475349699654922172768677019655151281271248828946995229803186746992468398157666456266778671906149963963034165709830542523722087666463008780876725618280322021221992485237590304952091139591091892120527349676858811903011159301878936803923201167140417584510885470696521560577711351625740481881769507502571529970591671435210367178275911931603449839216972063180016403412469891814222757730045930988045471517960629989550758307585119518585797117316767696605799889935263188541 7716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004 1085928309918113825529090648730295334186910871181078950044268817658659618414192674862320059297899562074945876499016621723187229994845123258260870315619363836897406865052797752967893316136838227985970406516005241290251498948731531969420950566708474669276448125965067001294435795124792306213739780887312570897996229021838241054129304830656034598631203717442823013770701538238786099512189375429569641579509880606089857829106562381161422035741047574518281708048752574462041283485138290827317223641893804935883389476643706232798207558316462054174883930628382017895472195431944509021136999259653769081927921521222128245788793365068752886173034695171122454513154471642803925235749628041753759279489710969839052423187976953470436904742238132665056397611644388442665313646268512196339944341540985621273959361844218214442734315345078601616142870227209840615696603333727882410371315380773774801526705832579205355699733181881126856733189979674977867860012514038730239201277176268586270381705628072766996873562 7407277340313269410483161587935439581158582511283784156322276162333445918813153788235573248303008597689038296973447621459342819121271714133304757786755221851743106484876037319629031012446614508707837714052853304868420427879959665251400936896452749498871999608823006566819623629880573368996037130622615846499724349056447225407189756414412853983998609604556326477128558506630417799572010174484438715832976737556041620780087883007207241390865785566723954636935777578134428819598917631335685641784543423281488674422674670706697975557712178879846877770011647295410362181056710786985564641471350262783632125695740721746173836355242424876243647808535181099574929323817408133190504814461270090554142570222030253761149482422876532457793377851981877869734028258091278067497905893806255685600107605770598216668682475603756961576049761981948205275811853272933312773360374214984700146393198134071968133084440826301754524164429337248321723456169426393785575929444866297909541922745180158842597786969402660142791 9655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.000000 -> 46d0ccfec65b75d31f9 44bf65a6ca007 ret=0 cc=1 -d32 -> f32: round=1 2614d757 -> 123.565697 ret=0 cc=1 +f32 -> d32: round=1 0x1.ee4342p+6 -> 2614d757 ret=0 cc=1 +f32 -> d32: round=1 0x1.fffffep+127 -> 4c58092d ret=0 cc=1 +f32 -> d32: round=1 0x1p-126 -> 793d65a ret=0 cc=1 +f32 -> d64: round=1 0x1.ee4342p+6 -> 260535d5a1cbd4db ret=0 cc=1 +f32 -> d64: round=1 0x1.fffffep+127 -> 2e96024b66672d4f ret=0 cc=1 +f32 -> d64: round=1 0x1p-126 -> 2564f5969d04b14e ret=0 cc=1 +f32 -> d128: round=1 0x1.ee4342p+6 -> 2203c00000000001275ae8317d1774a5 ret=0 cc=0 +f32 -> d128: round=1 0x1.fffffep+127 -> 2e096024b66672d4eb78971063c934e9 ret=0 cc=1 +f32 -> d128: round=1 0x1p-126 -> 25f64f5969d04b16ba1faeedab748946 ret=0 cc=1 +f64 -> d32: round=1 0x1.cbe991def90dp+36 -> 26a4d2e8 ret=0 cc=1 +f64 -> d32: round=1 0x1p-1022 -> 0 ret=0 cc=1 +f64 -> d32: round=1 0x1.fffffffffffffp+1023 -> 78000000 ret=0 cc=1 +f64 -> d64: round=1 0x1.cbe991def90dp+36 -> 262934b9c7fa7f57 ret=0 cc=1 +f64 -> d64: round=1 0x1p-1022 -> 92d251ce3ea1d01 ret=0 cc=1 +f64 -> d64: round=1 0x1.fffffffffffffp+1023 -> 46cffbcecb45b196 ret=0 cc=1 +f64 -> d128: round=1 0x1.cbe991def90dp+36 -> 22050000000028e56f3cffb97734b8a5 ret=0 cc=0 +f64 -> d128: round=1 0x1p-1022 -> 29b2d251ce3ea1d016ac1a4cb976ca04 ret=0 cc=1 +f64 -> d128: round=1 0x1.fffffffffffffp+1023 -> 264cffbcecb45b195e20c55d13765c44 ret=0 cc=1 +f128 -> d32: round=1 0x1.fe9af39b0ba6d66022922048682bp+89 -> 27a4d2e8 ret=0 cc=1 +f128 -> d32: round=1 0x1p-16382 -> 0 ret=0 cc=1 +f128 -> d32: round=1 0x1.ffffffffffffffffffffffffffffp+16383 -> 78000000 ret=0 cc=1 +f128 -> d6: round=1 0x1.fe9af39b0ba6d66022922048682bp+89 -> 266934b9d1c71779 ret=0 cc=1 +f128 -> d6: round=1 0x1p-16382 -> 0 ret=0 cc=1 +f128 -> d6: round=1 0x1.ffffffffffffffffffffffffffffp+16383 -> 7800000000000000 ret=0 cc=1 +f128 -> d128: round=1 0x1.fe9af39b0ba6d66022922048682bp+89 -> 2606934b9d1c71778671c5de19cb9779 ret=0 cc=1 +f128 -> d128: round=1 0x1p-16382 -> d2ede220cc32483ba1962ddf1d687d3 ret=0 cc=1 +f128 -> d128: round=1 0x1.ffffffffffffffffffffffffffffp+16383 -> 46d0ccfec65b75d31f944bf65a6ca007 ret=0 cc=1 +d32 -> f32: round=1 2614d757 -> 0x1.ee4346p+6 ret=0 cc=1 d32 -> f32: round=1 77f3fcff -> inf ret=0 cc=1 -d32 -> f32: round=1 600001 -> 0.000000 ret=0 cc=1 -d32 -> f64: round=1 2614d757 -> 123.565700 ret=0 cc=1 -d32 -> f64: round=1 77f3fcff -> 9999998999999999145058500637276236756335285900858519878078201916184111084614646836542515064078336.000000 ret=0 cc=1 -d32 -> f64: round=1 600001 -> 0.000000 ret=0 cc=1 -d32 -> f128: round=1 2614d757 -> 123.565700 ret=0 cc=1 -d32 -> f128: round=1 77f3fcff -> 9999998999999999999999999999999999462354159244984568360531049341302200948801429690072240675094528.000000 ret=0 cc=1 -d32 -> f128: round=1 600001 -> 0.000000 ret=0 cc=1 -d64 -> f32: round=1 262934b9c7fa7f57 -> 123456790528.000000 ret=0 cc=1 -d64 -> f32: round=1 3c000000000001 -> 0.000000 ret=0 cc=1 +d32 -> f32: round=1 600001 -> 0x0p+0 ret=0 cc=1 +d32 -> f64: round=1 2614d757 -> 0x1.ee4346dc5d639p+6 ret=0 cc=1 +d32 -> f64: round=1 77f3fcff -> 0x1.2ba093e5c6114p+322 ret=0 cc=1 +d32 -> f64: round=1 600001 -> 0x1.55c2076bf9a55p-316 ret=0 cc=1 +d32 -> f128: round=1 2614d757 -> 0x1.ee4346dc5d63886594af4f0d844dp+6 ret=0 cc=1 +d32 -> f128: round=1 77f3fcff -> 0x1.2ba093e5c6114735dacf25995a53p+322 ret=0 cc=1 +d32 -> f128: round=1 600001 -> 0x1.55c2076bf9a55103aca57b853e4dp-316 ret=0 cc=1 +d64 -> f32: round=1 262934b9c7fa7f57 -> 0x1.cbe992p+36 ret=0 cc=1 +d64 -> f32: round=1 3c000000000001 -> 0x0p+0 ret=0 cc=1 d64 -> f32: round=1 77fcff3fcff3fcff -> inf ret=0 cc=1 -d64 -> f64: round=1 262934b9c7fa7f57 -> 123456789999.565704 ret=0 cc=1 -d64 -> f64: round=1 3c000000000001 -> 0.000000 ret=0 cc=1 +d64 -> f64: round=1 262934b9c7fa7f57 -> 0x1.cbe991def90d2p+36 ret=0 cc=1 +d64 -> f64: round=1 3c000000000001 -> 0x0p+0 ret=0 cc=1 d64 -> f64: round=1 77fcff3fcff3fcff -> inf ret=0 cc=1 -d64 -> f128: round=1 262934b9c7fa7f57 -> 123456789999.565700 ret=0 cc=1 -d64 -> f128: round=1 3c000000000001 -> 0.000000 ret=0 cc=1 -d64 -> f128: round=1 77fcff3fcff3fcff -> 9999999999999999000000000000000000013723202727516060118807077893448616268747199640509480875143654370524821933293844615764721668487788941176186611501359635428425057176258171019295271247185046529699191156424938761709359083589727106005789174223154354416401110127617320588057734183075456542453869127620182239429135678998347351873054557747250681274391162650971365131334722353902232279187456.000000 ret=0 cc=1 -d128 -> f32: round=1 2606934b9d1c71778671c5de19cb9779 -> 1234567826894753579187306496.000000 ret=0 cc=1 -d128 -> f32: round=1 840000000000000000001 -> 0.000000 ret=0 cc=1 +d64 -> f128: round=1 262934b9c7fa7f57 -> 0x1.cbe991def90d1b71758e219652bdp+36 ret=0 cc=1 +d64 -> f128: round=1 3c000000000001 -> 0x1.a05139c5bac394dad6250fff96cp-1273 ret=0 cc=1 +d64 -> f128: round=1 77fcff3fcff3fcff -> 0x1.ebeeb7a9b56d9b60e91dc03ab30bp+1278 ret=0 cc=1 +d128 -> f32: round=1 2606934b9d1c71778671c5de19cb9779 -> 0x1.fe9af4p+89 ret=0 cc=1 +d128 -> f32: round=1 840000000000000000001 -> 0x0p+0 ret=0 cc=1 d128 -> f32: round=1 77ffcff3fcff3fcff3fcff3fcff3fcff -> inf ret=0 cc=1 -d128 -> f64: round=1 2606934b9d1c71778671c5de19cb9779 -> 1234567812345678857580314624.000000 ret=0 cc=1 -d128 -> f64: round=1 840000000000000000001 -> 0.000000 ret=0 cc=1 +d128 -> f64: round=1 2606934b9d1c71778671c5de19cb9779 -> 0x1.fe9af39b0ba6dp+89 ret=0 cc=1 +d128 -> f64: round=1 840000000000000000001 -> 0x0p+0 ret=0 cc=1 d128 -> f64: round=1 77ffcff3fcff3fcff3fcff3fcff3fcff -> inf ret=0 cc=1 -d128 -> f128: round=1 2606934b9d1c71778671c5de19cb9779 -> 1234567812345678912345678912.565679 ret=0 cc=1 -d128 -> f128: round=1 840000000000000000001 -> 0.000000 ret=0 cc=1 +d128 -> f128: round=1 2606934b9d1c71778671c5de19cb9779 -> 0x1.fe9af39b0ba6d66022922048682bp+89 ret=0 cc=1 +d128 -> f128: round=1 840000000000000000001 -> 0x0p+0 ret=0 cc=1 d128 -> f128: round=1 77ffcff3fcff3fcff3fcff3fcff3fcff -> inf ret=0 cc=1 -f32 -> d32: round=8 123.565681 -> 2614d757 ret=0 cc=1 -f32 -> d32: round=8 340282346638528859811704183484516925440.000000 -> 4c58092d ret=0 cc=1 -f32 -> d32: round=8 0.000000 -> 793d65a ret=0 cc=1 -f32 -> d64: round=8 123.565681 -> 260535d5a1cbd4db ret=0 cc=1 -f32 -> d64: round=8 340282346638528859811704183484516925440.000000 -> 2e96024b66672d4f ret=0 cc=1 -f32 -> d64: round=8 0.000000 -> 2564f5969d04b14e ret=0 cc=1 -f32 -> d128: round=8 123.565681 -> 2203c00000000001275ae8317d1774a5 ret=0 cc=0 -f32 -> d128: round=8 340282346638528859811704183484516925440.000000 -> 2e096024b66672d4eb78971063c934e9 ret=0 cc=1 -f32 -> d128: round=8 0.000000 -> 25f64f5969d04b16ba1faeedab748946 ret=0 cc=1 -f64 -> d32: round=8 123456789999.565674 -> 26a4d2e8 ret=0 cc=1 -f64 -> d32: round=8 0.000000 -> 0 ret=0 cc=1 -f64 -> d32: round=8 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 78000000 ret=0 cc=1 -f64 -> d64: round=8 123456789999.565674 -> 262934b9c7fa7f57 ret=0 cc=1 -f64 -> d64: round=8 0.000000 -> 92d251ce3ea1d01 ret=0 cc=1 -f64 -> d64: round=8 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 46cffbcecb45b196 ret=0 cc=1 -f64 -> d128: round=8 123456789999.565674 -> 22050000000028e56f3cffb97734b8a5 ret=0 cc=0 -f64 -> d128: round=8 0.000000 -> 29b2d251ce3ea1d016ac1a4cb976ca04 ret=0 cc=1 -f64 -> d128: round=8 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 -> 264cffbcecb45b195e20c55d13765c44 ret=0 cc=1 -f128 -> d32: round=8 1234567812345678912345678912.565679 -> 27a4d2e8 ret=0 cc=1 -f128 -> d32: round=8 0.000000 -> 0 ret=0 cc=1 -f128 -> d32: round=8 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417 7162953020146688023840758460362266064801429775954071350503798086491301571640240603117869087963725103358735127747952757485954175729209366513987527090552156639395055892078049145404329785576235656459912085996690971808088819200637227714312184890119222096790535459636284173260024397328029395243137866685140273814343210366365711716704235864727595612319707939678392791472827201953770606021226384578832048093417175268096392535394477302808636757047960540505251629590999325352655864646827938215500871669466622098650860409905071311454742674110428395423227629949387596131127438371928396826762575553883728144908453957471281620658715882191088872401166513619620508000291762999388260824175475167322699304731332612589218455168152354553543104581145283036073945261007305787740920947368222860154593611266425495417996453338825496707641459550170513308000612538651401801532119293614565003435147928902055320217600618822326157365533772949809740595905201879614597993867415130285059344104536034801923833493211151718110510041 0859283099181138255290906487302953341869108711810789500442688176586596184141926748623200592978995620749458764990166217231872299948451232582608703156193638368974068650527977529678933161368382279859704065160052412902514989487315319694209505667084746692764481259650670012944357951247923062137397808873125708979962290218382410541293048306560345986312037174428230137707015382387860995121893754295696415795098806060898578291065623811614220357410475745182817080487525744620412834851382908273172236418938049358833894766437062327982075583164620541748839306283820178954721954319445090211369992596537690819279215212221282457887933650687528861730346951711224545131544716428039252357496280417537592794897109698390524231879769534704369047422381326650563976116443884426653136462685121963399443415409856212739593618442182144427343153450786016161428702272098406156966033337278824103713153807737748015267058325792053556997331818811268567331899796749778678600125140387302392012771762685862703817056280727669968735627 407277340313269410483161587935439581158582511283784156322276162333445918813153788235573248303008597689038296973447621459342819121271714133304757786755221851743106484876037319629031012446614508707837714052853304868420427879959665251400936896452749498871999608823006566819623629880573368996037130622615846499724349056447225407189756414412853983998609604556326477128558506630417799572010174484438715832976737556041620780087883007207241390865785566723954636935777578134428819598917631335685641784543423281488674422674670706697975557712178879846877770011647295410362181056710786985564641471350262783632125695740721746173836355242424876243647808535181099574929323817408133190504814461270090554142570222030253761149482422876532457793377851981877869734028258091278067497905893806255685600107605... [truncated message content] |
|
From: Paul F. <pa...@so...> - 2023-09-03 12:23:21
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=c086bbdd66dc8e7cba02f06de74aff37bb79b3ea commit c086bbdd66dc8e7cba02f06de74aff37bb79b3ea Author: Paul Floyd <pj...@wa...> Date: Sun Sep 3 14:20:42 2023 +0200 Solaris regtest: aligned / sized expecteds and an improved filter A couple of testcases fail due to ever changing output for floating point infinity. Add memalign and aligned_alloc expecteds for Solaris 11.3 (which doesn't have aligned_allloc). Diff: --- memcheck/tests/Makefile.am | 1 + memcheck/tests/memalign_args.stderr.exp-solaris | 11 +++++++++++ memcheck/tests/sized_aligned_new_delete_misaligned | Bin 0 -> 42384 bytes memcheck/tests/solaris/Makefile.am | 1 + memcheck/tests/solaris/aligned_alloc.stderr.exp-solaris | 0 none/tests/amd64/filter_inf_nan | 6 +++--- none/tests/x86/filter_inf_nan | 6 +++--- 7 files changed, 19 insertions(+), 6 deletions(-) diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index e216521b5e..4442d945cc 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -257,6 +257,7 @@ EXTRA_DIST = \ memalign_args.vgtest memalign_args.stderr.exp \ memalign_args.stderr.exp-glibc \ memalign_args.stderr.exp-darwin \ + memalign_args.stderr.exp-solaris \ memcmptest.stderr.exp memcmptest.stderr.exp2 \ memcmptest.stdout.exp memcmptest.vgtest \ memmem.stderr.exp memmem.vgtest \ diff --git a/memcheck/tests/memalign_args.stderr.exp-solaris b/memcheck/tests/memalign_args.stderr.exp-solaris new file mode 100644 index 0000000000..c255e02f1c --- /dev/null +++ b/memcheck/tests/memalign_args.stderr.exp-solaris @@ -0,0 +1,11 @@ +Conditional jump or move depends on uninitialised value(s) + at 0x........: memalign (vg_replace_malloc.c:...) + by 0x........: main (memalign_args.c:19) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: posix_memalign (vg_replace_malloc.c:...) + by 0x........: main (memalign_args.c:23) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: valloc (vg_replace_malloc.c:...) + by 0x........: main (memalign_args.c:31) diff --git a/memcheck/tests/sized_aligned_new_delete_misaligned b/memcheck/tests/sized_aligned_new_delete_misaligned new file mode 100755 index 0000000000..1c69036c16 Binary files /dev/null and b/memcheck/tests/sized_aligned_new_delete_misaligned differ diff --git a/memcheck/tests/solaris/Makefile.am b/memcheck/tests/solaris/Makefile.am index fe1e2ca3fb..f80a23448d 100644 --- a/memcheck/tests/solaris/Makefile.am +++ b/memcheck/tests/solaris/Makefile.am @@ -13,6 +13,7 @@ noinst_HEADERS = scalar.h EXTRA_DIST = \ aligned_alloc.stderr.exp aligned_alloc.vgtest \ + aligned_alloc.stderr.exp-solaris \ brk.stderr.exp brk.stdout.exp brk.vgtest \ context_stack_die.stderr.exp context_stack_die.stdout.exp context_stack_die.vgtest \ door_data.stderr.exp door_data.stdout.exp door_data.vgtest \ diff --git a/memcheck/tests/solaris/aligned_alloc.stderr.exp-solaris b/memcheck/tests/solaris/aligned_alloc.stderr.exp-solaris new file mode 100644 index 0000000000..e69de29bb2 diff --git a/none/tests/amd64/filter_inf_nan b/none/tests/amd64/filter_inf_nan index ce40f21dc8..1e660e5a7c 100755 --- a/none/tests/amd64/filter_inf_nan +++ b/none/tests/amd64/filter_inf_nan @@ -1,9 +1,9 @@ #! /bin/sh -# Solaris libc prints 'Inf' or 'Infinity' instead of 'inf' +# Solaris libc prints 'Inf' or 'Infinity' or 'infinity' instead of 'inf' # and 'NaN' instead of 'nan'. Filter these differences here. -sed "s/-Infinity/ -inf/g" | -sed "s/Infinity/ inf/g" | +sed "s/-[Ii]nfinity/ -inf/g" | +sed "s/[Ii]nfinity/ inf/g" | sed "s/Inf/inf/g" | sed "s/NaN/nan/g" diff --git a/none/tests/x86/filter_inf_nan b/none/tests/x86/filter_inf_nan index b4ddfc9b1c..f70958cff1 100755 --- a/none/tests/x86/filter_inf_nan +++ b/none/tests/x86/filter_inf_nan @@ -1,9 +1,9 @@ #! /bin/sh -# Solaris libc prints 'Infinity' instead of 'inf' and 'NaN' instead of 'nan'. +# Solaris libc prints 'Infinity' or 'infinity' instead of 'inf' and 'NaN' instead of 'nan'. # Filter these differences here. -sed "s/-Infinity/ -inf/g" | -sed "s/Infinity/ inf/g" | +sed "s/-[Ii]nfinity/ -inf/g" | +sed "s/[Ii]nfinity/ inf/g" | sed "s/NaN/nan/g" exit 0 |
|
From: Paul F. <pa...@so...> - 2023-09-03 06:30:00
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=28621328367f4160d78e8f9f6acf715415853b8c commit 28621328367f4160d78e8f9f6acf715415853b8c Author: Paul Floyd <pj...@wa...> Date: Sun Sep 3 08:28:26 2023 +0200 coverity: various fixes Null check, uninitialized variable and several print format uses of size_t. clang-tidy also complains about most of them. Diff: --- coregrind/m_debuginfo/debuginfo.c | 2 +- coregrind/m_debuginfo/readelf.c | 3 ++- coregrind/vgdb.c | 23 +++++++++++++---------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/coregrind/m_debuginfo/debuginfo.c b/coregrind/m_debuginfo/debuginfo.c index 0c4eb99c0d..4f6ffd48ae 100644 --- a/coregrind/m_debuginfo/debuginfo.c +++ b/coregrind/m_debuginfo/debuginfo.c @@ -2828,7 +2828,7 @@ const HChar* VG_(describe_IP)(DiEpoch ep, Addr eip, const InlIPCursor *iipc) ); know_dirinfo = buf_dirname[0] != '\0'; } else { - const DiInlLoc *cur_inl = iipc && iipc->cur_inltab >= 0 + const DiInlLoc *cur_inl = iipc && iipc->di && iipc->cur_inltab >= 0 ? & iipc->di->inltab[iipc->cur_inltab] : NULL; vg_assert (cur_inl); diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c index ef9a722ad9..13efc46b84 100644 --- a/coregrind/m_debuginfo/readelf.c +++ b/coregrind/m_debuginfo/readelf.c @@ -2933,7 +2933,8 @@ Bool ML_(read_elf_object) ( struct _DebugInfo* di ) /* TOPLEVEL */ /* Read .eh_frame and .debug_frame (call-frame-info) if any. Do the .eh_frame section(s) first. */ - vg_assert(di->n_ehframe >= 0 && di->n_ehframe <= N_EHFRAME_SECTS); + /* i->n_ehframe is unsigned and cannot be negative */ + vg_assert(di->n_ehframe <= N_EHFRAME_SECTS); for (i = 0; i < di->n_ehframe; i++) { /* see Comment_on_EH_FRAME_MULTIPLE_INSTANCES above for why this next assertion should hold. */ diff --git a/coregrind/vgdb.c b/coregrind/vgdb.c index 9e21a00d66..8e030e27b1 100644 --- a/coregrind/vgdb.c +++ b/coregrind/vgdb.c @@ -1035,8 +1035,11 @@ send_packet_start: // or -1 if no packet could be read. static int receive_packet(char *buf, int noackmode) { - int bufcnt = 0, ret; - char c, c1, c2; + int bufcnt = 0; + int ret; + char c; + char c1 = '\0'; + char c2; unsigned char csum = 0; // Look for first '$' (start of packet) or error. @@ -1428,12 +1431,12 @@ void do_multi_mode(int check_trials, int in_port) // Count the lenghts of each substring, init to -1 to compensate for // each substring starting with a delim char. - for (int i = 0; i < count; i++) + for (size_t i = 0; i < count; i++) len[i] = -1; count_len(';', buf, len); if (next_str) { DEBUG(1, "vRun: next_str %s\n", next_str); - for (int i = 0; i < count; i++) { + for (size_t i = 0; i < count; i++) { /* Handle the case when the arguments * was specified to gdb's run command * but no remote exec-file was set, @@ -1449,16 +1452,16 @@ void do_multi_mode(int check_trials, int in_port) if (i < count - 1) next_str = next_delim_string(next_str, *delim); } - DEBUG(1, "vRun decoded: %s, next_str %s, len[%d] %d\n", + DEBUG(1, "vRun decoded: %s, next_str %s, len[%zu] %zu\n", decoded_string[i], next_str, i, len[i]); } /* If we didn't get any arguments or the filename is an empty string, valgrind won't know which program to run. */ - DEBUG (1, "count: %d, len[0]: %d\n", count, len[0]); + DEBUG (1, "count: %zu, len[0]: %zu\n", count, len[0]); if (! count || len[0] == 0) { free(len); - for (int i = 0; i < count; i++) + for (size_t i = 0; i < count; i++) free (decoded_string[i]); free (decoded_string); send_packet ("E01", noackmode); @@ -1469,7 +1472,7 @@ void do_multi_mode(int check_trials, int in_port) launch valgrind with the correct arguments... We then use the valgrind pid to start relaying packets. */ pid_t valgrind_pid = -1; - int res = fork_and_exec_valgrind (count, + int res = fork_and_exec_valgrind ((int)count, decoded_string, working_dir, in_port, @@ -1706,7 +1709,7 @@ void gdb_relay(int pid, int send_noack_mode, char *q_buf) buflen = getpkt(buf, from_pid, to_pid); if (buflen != 2 || strcmp(buf, "OK") != 0) { if (buflen != 2) - ERROR(0, "no ack mode: unexpected buflen %d, buf %s\n", + ERROR(0, "no ack mode: unexpected buflen %zu, buf %s\n", buflen, buf); else ERROR(0, "no ack mode: unexpected packet %s\n", buf); @@ -1729,7 +1732,7 @@ void gdb_relay(int pid, int send_noack_mode, char *q_buf) if (buflen > 0) { waiting_for_qsupported = False; } else { - ERROR(0, "Unexpected getpkt for qSupported reply: %d\n", + ERROR(0, "Unexpected getpkt for qSupported reply: %zu\n", buflen); } } else if (!read_from_pid_write_to_gdb(from_pid)) |
|
From: Paul F. <pa...@so...> - 2023-09-03 06:28:15
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=777b0e041a880f6cce5b8e39068aa77ca11ff50d commit 777b0e041a880f6cce5b8e39068aa77ca11ff50d Author: Paul Floyd <pj...@wa...> Date: Sun Sep 3 08:27:19 2023 +0200 FreeBSD: clarify which package GNU cp is in (needed for nightly tests) Diff: --- README.freebsd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.freebsd b/README.freebsd index ce1e435f5d..449796353f 100644 --- a/README.freebsd +++ b/README.freebsd @@ -156,7 +156,7 @@ and "gmake regtest". Again, more details can be seen in README_DEVELOPERS. If you want to run the 'nightly' script (see nightly/README.txt) -you will need to install gcp and coreutils and modify the +you will need to install coreutils (for GNU cp) and modify the nightly/conf/freebsd.* files. The default configuration sends an e-mail to the valgrind-testresults mailing list. |
|
From: Paul F. <pa...@so...> - 2023-09-02 21:46:06
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=1e197de36e1d116294d2f19c4d47fb91a6611208 commit 1e197de36e1d116294d2f19c4d47fb91a6611208 Author: Paul Floyd <pj...@wa...> Date: Sat Sep 2 23:43:31 2023 +0200 coverity: fix a couple of forward nulls In the new sized/aligned memcheck code. Diff: --- memcheck/mc_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c index 90b89a9115..3f34e3dc19 100644 --- a/memcheck/mc_main.c +++ b/memcheck/mc_main.c @@ -7305,7 +7305,7 @@ static Bool mc_handle_client_request ( ThreadId tid, UWord* arg, UWord* ret ) if (mc && mc->szB != aligned_alloc_info->size) { MC_(record_size_mismatch_error) ( tid, mc, aligned_alloc_info->size, "new/delete"); } - if (aligned_alloc_info->orig_alignment != mc->alignB) { + if (mc && aligned_alloc_info->orig_alignment != mc->alignB) { MC_(record_align_mismatch_error) ( tid, mc, aligned_alloc_info->orig_alignment, "new/delete"); } if (aligned_alloc_info->orig_alignment == 0 || @@ -7318,7 +7318,7 @@ static Bool mc_handle_client_request ( ThreadId tid, UWord* arg, UWord* ret ) if (mc && mc->szB != aligned_alloc_info->size) { MC_(record_size_mismatch_error) ( tid, mc, aligned_alloc_info->size, "new[]/delete[]" ); } - if (aligned_alloc_info->orig_alignment != mc->alignB) { + if (mc && aligned_alloc_info->orig_alignment != mc->alignB) { MC_(record_align_mismatch_error) ( tid, mc, aligned_alloc_info->orig_alignment, "new[]/delete[]"); } if (aligned_alloc_info->orig_alignment == 0 || |
|
From: Paul F. <pa...@so...> - 2023-09-02 21:20:11
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=9ed8f42357f73c290c7bff85246977ff1972fbb8 commit 9ed8f42357f73c290c7bff85246977ff1972fbb8 Author: Paul Floyd <pj...@wa...> Date: Sat Sep 2 23:19:17 2023 +0200 coverity: a few bits of dead code and one vgdb command line leak Diff: --- coregrind/launcher-freebsd.c | 19 +------------------ coregrind/vgdb.c | 5 +++++ include/pub_tool_basics.h | 5 ----- memcheck/mc_translate.c | 9 +-------- 4 files changed, 7 insertions(+), 31 deletions(-) diff --git a/coregrind/launcher-freebsd.c b/coregrind/launcher-freebsd.c index 030b183b57..8687de3f59 100644 --- a/coregrind/launcher-freebsd.c +++ b/coregrind/launcher-freebsd.c @@ -198,7 +198,7 @@ int main(int argc, char** argv, char** envp) const char *toolname = NULL; const char *clientname = NULL; const char *platform; - const char *default_platform; + const char *default_platform = VG_PLATFORM; const char *cp; char *toolfile; char launcher_name[PATH_MAX+1]; @@ -243,23 +243,6 @@ int main(int argc, char** argv, char** envp) toolname = "memcheck"; } - /* Select a platform to use if we can't decide that by looking at - the executable (eg because it's a shell script). Note that the - default_platform is not necessarily either the primary or - secondary build target. Instead it's chosen to maximise the - chances that /bin/sh will work on it. Hence for a primary - target of ppc64-linux we still choose ppc32-linux as the default - target, because on most ppc64-linux setups, the basic /bin, - /usr/bin, etc, stuff is built in 32-bit mode, not 64-bit - mode. */ - if (0==strcmp(VG_PLATFORM,"x86-freebsd")) { - default_platform = "x86-freebsd"; - } else if (0==strcmp(VG_PLATFORM,"amd64-freebsd")) { - default_platform = "amd64-freebsd"; - } else { - barf("Unknown VG_PLATFORM '%s'", VG_PLATFORM); - } - /* Work out what platform to use, or use the default platform if not possible. */ if (clientname == NULL) { diff --git a/coregrind/vgdb.c b/coregrind/vgdb.c index c024ffca6b..9e21a00d66 100644 --- a/coregrind/vgdb.c +++ b/coregrind/vgdb.c @@ -2269,6 +2269,11 @@ void parse_options(int argc, char** argv, arg_errors++; } } else if (is_opt(argv[i], "--vgdb-prefix=")) { + if (vgdb_prefix) { + // was specified more than once on the command line + // ignore earlier uses + free(vgdb_prefix); + } vgdb_prefix = strdup (argv[i] + 14); } else if (is_opt(argv[i], "--valgrind=")) { char *path = argv[i] + 11; diff --git a/include/pub_tool_basics.h b/include/pub_tool_basics.h index d22a425238..bf5a5ba7fa 100644 --- a/include/pub_tool_basics.h +++ b/include/pub_tool_basics.h @@ -233,11 +233,6 @@ typedef UWord _val; UWord _val2; Bool _isError; -#if defined(VGP_amd64_freebsd) - char padding[7]; -#else - char padding[3]; -#endif } SysRes; diff --git a/memcheck/mc_translate.c b/memcheck/mc_translate.c index 72ccb3c8c6..f8aca1641c 100644 --- a/memcheck/mc_translate.c +++ b/memcheck/mc_translate.c @@ -4822,18 +4822,11 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce, and_or_ty = Ity_I1; improve = mkImproveOR1; goto do_And_Or; do_And_Or: - return - assignNew( - 'V', mce, - and_or_ty, - difd(mce, uifu(mce, vatom1, vatom2), - difd(mce, improve(mce, atom1, vatom1), - improve(mce, atom2, vatom2) ) ) ); - return assignNew('V', mce, and_or_ty, difd(mce, uifu(mce, vatom1, vatom2), difd(mce, improve(mce, atom1, vatom1), improve(mce, atom2, vatom2) ) ) ); + case Iop_Xor8: return mkUifU8(mce, vatom1, vatom2); case Iop_Xor16: |
|
From: Paul F. <pa...@so...> - 2023-09-02 15:38:43
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=fa2f351cf8aecfc4fa3377eac5daa565df13d963 commit fa2f351cf8aecfc4fa3377eac5daa565df13d963 Author: Paul Floyd <pj...@wa...> Date: Sat Sep 2 17:33:35 2023 +0200 regtest: silence some more warnings A massif test that checks that --ignore-fn Sadly neither C nor C++ has a standard way of specifying functons to _never_ inline, and GCC and LLVM seem to have different extensions. GCC complains about __attribute__((optnone)). Diff: --- configure.ac | 1 + massif/tests/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 5ce94c318c..0ce6cccb6d 100755 --- a/configure.ac +++ b/configure.ac @@ -2606,6 +2606,7 @@ AC_GCC_WARNING_SUBST_NO([fortify-source], [FLAG_W_NO_FORTIFY_SOURCE]) AC_GCC_WARNING_SUBST_NO([builtin-memcpy-chk-size], [FLAG_W_NO_BUILTIN_MEMCPY_CHK_SIZE]) AC_GCC_WARNING_SUBST_NO([incompatible-pointer-types-discards-qualifiers], [FLAG_W_NO_INCOMPATIBLE_POINTER_TYPES_DISCARDS_QUALIFIERS]) AC_GCC_WARNING_SUBST_NO([suspicious-bzero], [FLAG_W_NO_SUSPICIOUS_BZERO]) +AC_GCC_WARNING_SUBST_NO([attributes], [FLAG_W_NO_ATTRIBUTES]) AC_GCC_WARNING_SUBST_NO_VAL([alloc-size-larger-than], [1677216], [FLAG_W_NO_ALLOC_SIZE_LARGER_THAN]) diff --git a/massif/tests/Makefile.am b/massif/tests/Makefile.am index f8deeb5766..636bc8f85a 100644 --- a/massif/tests/Makefile.am +++ b/massif/tests/Makefile.am @@ -91,7 +91,7 @@ AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) bug469146_SOURCES = bug469146.cpp # -fno-optimize-sibling-calls because otherwise some platforms will have # tail call optimization which messes up --ignore-fn -bug469146_CXXFLAGS = $(AM_CXXFLAGS) -O2 -fno-optimize-sibling-calls @FLAG_W_NO_USE_AFTER_FREE@ +bug469146_CXXFLAGS = $(AM_CXXFLAGS) -O2 -fno-optimize-sibling-calls @FLAG_W_NO_USE_AFTER_FREE@ @FLAG_W_NO_ATTRIBUTES@ new_cpp_SOURCES = new-cpp.cpp overloaded_new_SOURCES = overloaded-new.cpp # pre C++11 compilers don't have exception specs |
|
From: Paul F. <pa...@so...> - 2023-09-02 15:16:09
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=86a8f04c7f5d31050d841e82397f052fc6a958a6 commit 86a8f04c7f5d31050d841e82397f052fc6a958a6 Author: Paul Floyd <pj...@wa...> Date: Sat Sep 2 17:12:23 2023 +0200 regtest: silence a few warnings A couple of testcases that use 'new' that will throw an uncaught exception. The variable doesn't get used, there is only an assert to check that nothing is reached after the new expressions. Diff: --- configure.ac | 1 + memcheck/tests/Makefile.am | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 2aaf3f44bb..5ce94c318c 100755 --- a/configure.ac +++ b/configure.ac @@ -2592,6 +2592,7 @@ AC_GCC_WARNING_SUBST_NO([static-local-in-inline], [FLAG_W_NO_STATIC_LOCAL_IN_INL AC_GCC_WARNING_SUBST_NO([mismatched-new-delete], [FLAG_W_NO_MISMATCHED_NEW_DELETE]) AC_GCC_WARNING_SUBST_NO([infinite-recursion], [FLAG_W_NO_INFINITE_RECURSION]) AC_GCC_WARNING_SUBST_NO([expansion-to-defined], [FLAG_W_NO_EXPANSION_TO_DEFINED]) +AC_GCC_WARNING_SUBST_NO([unused-variable], [FLAG_W_NO_UNUSED_VARIABLE]) AC_GCC_WARNING_SUBST_NO([unused-but-set-variable], [FLAG_W_NO_UNUSED_BUT_SET_VARIABLE]) AC_GCC_WARNING_SUBST_NO([non-power-of-two-alignment], [FLAG_W_NO_NON_POWER_OF_TWO_ALIGNMENT]) AC_GCC_WARNING_SUBST_NO([sign-compare], [FLAG_W_NO_SIGN_COMPARE]) diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index 24b39099a7..e216521b5e 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -625,9 +625,9 @@ sized_aligned_new_delete_args_CXXFLAGS = ${AM_CXXFLAGS} -std=c++17 sized_aligned_new_delete_misaligned1_SOURCES = sized_aligned_new_delete_misaligned1.cpp sized_aligned_new_delete_misaligned1_CXXFLAGS = ${AM_CXXFLAGS} -std=c++17 sized_aligned_new_delete_misaligned2_SOURCES = sized_aligned_new_delete_misaligned2.cpp -sized_aligned_new_delete_misaligned2_CXXFLAGS = ${AM_CXXFLAGS} -std=c++17 +sized_aligned_new_delete_misaligned2_CXXFLAGS = ${AM_CXXFLAGS} -std=c++17 @FLAG_W_NO_UNUSED_VARIABLE@ sized_aligned_new_delete_misaligned3_SOURCES = sized_aligned_new_delete_misaligned3.cpp -sized_aligned_new_delete_misaligned3_CXXFLAGS = ${AM_CXXFLAGS} -std=c++17 +sized_aligned_new_delete_misaligned3_CXXFLAGS = ${AM_CXXFLAGS} -std=c++17 @FLAG_W_NO_UNUSED_VARIABLE@ if COMPILER_IS_CLANG cxx17_aligned_new_CXXFLAGS += -fsized-deallocation sized_aligned_new_delete_args_CXXFLAGS += -fsized-deallocation |
|
From: Paul F. <pa...@so...> - 2023-09-02 14:26:32
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=a265a206203003cc0433f786478fe81a6cc3298a commit a265a206203003cc0433f786478fe81a6cc3298a Author: Paul Floyd <pj...@wa...> Date: Sun Mar 12 08:26:04 2023 +0100 Add memcheck errors for aligned and sized allocations and deallocations Bug 433857 Add validation to C++17 aligned new/delete alignment size Bug 433859 Add mismatched detection to C++ 17 aligned new/delete Bug 466105 aligned_alloc problems, part 2 Bug 467441 Add mismatched detection to C++ 14 sized delete Memcheck now tests and warns about the values used for alignment and size. These apply to various functions: memalign, posix_memalign and aligned_alloc in C and various overloads of operators new and delete in C++. The kinds of error that can be detected are - invalid alignment, for instance the alignment is usually required to be a power of 2 - mismatched alignment between aligned allocation and aligned deallocation - mismatched size when sized delete is used - bad size for functions that have implementation defined behaviour when the requested size is zero An example of the new errors is: int *pi = memalign(31, 100); which will generate the following error ==96206== Invalid alignment value: 31 (should be power of 2) ==96206== at 0x485195E: memalign (vg_replace_malloc.c:1886) ==96206== by 0x20200E: main (memalign.c:59) Diff: --- .gitignore | 8 +- NEWS | 19 +- coregrind/m_replacemalloc/vg_replace_malloc.c | 710 +++++++++++---------- coregrind/m_tooliface.c | 6 +- coregrind/pub_core_replacemalloc.h | 6 +- coregrind/pub_core_tooliface.h | 6 +- dhat/dh_main.c | 6 +- drd/drd_malloc_wrappers.c | 6 +- helgrind/hg_main.c | 6 +- include/pub_tool_replacemalloc.h | 31 + include/pub_tool_tooliface.h | 6 +- massif/ms_main.c | 6 +- memcheck/docs/mc-manual.xml | 58 +- memcheck/mc_errors.c | 262 +++++++- memcheck/mc_include.h | 13 +- memcheck/mc_main.c | 123 +++- memcheck/mc_malloc_wrappers.c | 41 +- memcheck/memcheck.h | 3 +- memcheck/tests/Makefile.am | 66 +- memcheck/tests/duplicate_align_size_errors.cpp | 53 ++ memcheck/tests/filter_size_t | 4 +- memcheck/tests/filter_stanza_and_size_t | 6 + memcheck/tests/filter_used_supp | 7 + memcheck/tests/filter_xml | 7 + memcheck/tests/freebsd/Makefile.am | 21 +- memcheck/tests/freebsd/aligned_alloc.c | 38 ++ memcheck/tests/freebsd/aligned_alloc.stderr.exp | 8 + memcheck/tests/freebsd/aligned_alloc.vgtest | 2 + .../tests/freebsd/aligned_alloc_xml.stderr.exp | 101 +++ memcheck/tests/freebsd/aligned_alloc_xml.vgtest | 4 + .../tests/freebsd/aligned_allocs_supp.stderr.exp | 15 + memcheck/tests/freebsd/aligned_allocs_supp.supp | 20 + memcheck/tests/freebsd/aligned_allocs_supp.vgtest | 4 + memcheck/tests/freebsd/bug470713.cpp | 1 + memcheck/tests/freebsd/delete_sized_mismatch.cpp | 22 + .../tests/freebsd/delete_sized_mismatch.stderr.exp | 14 + .../tests/freebsd/delete_sized_mismatch.vgtest | 3 + .../freebsd/delete_sized_mismatch_xml.stderr.exp | 139 ++++ .../tests/freebsd/delete_sized_mismatch_xml.vgtest | 3 + memcheck/tests/freebsd/errno_aligned_allocs.c | 4 + .../tests/freebsd/errno_aligned_allocs.stderr.exp | 28 +- memcheck/tests/freebsd/memalign.stderr.exp | 32 + memcheck/tests/freebsd/memalign_supp.stderr.exp | 13 + memcheck/tests/freebsd/memalign_supp.supp | 6 + memcheck/tests/freebsd/memalign_supp.vgtest | 2 + memcheck/tests/linux/Makefile.am | 4 +- memcheck/tests/linux/aligned_alloc.stderr.exp-musl | 8 + memcheck/tests/linux/memalign.c | 8 + memcheck/tests/linux/memalign.stderr.exp | 40 ++ memcheck/tests/linux/memalign.stderr.exp-musl | 40 ++ memcheck/tests/memalign_args.stderr.exp-darwin | 7 +- memcheck/tests/mismatches.cpp | 4 +- memcheck/tests/mismatches.stderr.exp2 | 56 ++ memcheck/tests/mismatches_xml.stderr.exp | 331 ++++++++++ memcheck/tests/mismatches_xml.stderr.exp2 | 427 +++++++++++++ memcheck/tests/mismatches_xml.vgtest | 3 + memcheck/tests/new_delete_mismatch_size.cpp | 30 + memcheck/tests/new_delete_mismatch_size.stderr.exp | 28 + memcheck/tests/new_delete_mismatch_size.vgtest | 5 + .../tests/new_delete_mismatch_size_supp.stderr.exp | 4 + .../new_delete_mismatch_size_supp.stderr.exp_32 | 4 + memcheck/tests/new_delete_mismatch_size_supp.supp | 57 ++ .../tests/new_delete_mismatch_size_supp.vgtest | 4 + memcheck/tests/posix_memalign.c | 52 +- memcheck/tests/posix_memalign.stderr.exp | 40 ++ memcheck/tests/posix_memalign.stderr.exp-darwin | 50 ++ memcheck/tests/posix_memalign.vgtest | 1 + memcheck/tests/posix_memalign_supp.stderr.exp | 2 + memcheck/tests/posix_memalign_supp.supp | 14 + memcheck/tests/posix_memalign_supp.vgtest | 3 + memcheck/tests/posix_memalign_xml.stderr.exp | 333 ++++++++++ memcheck/tests/posix_memalign_xml.vgtest | 3 + .../tests/sized_aligned_new_delete_args.vgtest | 2 +- .../sized_aligned_new_delete_misaligned.stderr.exp | 10 - .../sized_aligned_new_delete_misaligned.vgtest | 4 - ...pp => sized_aligned_new_delete_misaligned1.cpp} | 40 +- ...sized_aligned_new_delete_misaligned1.stderr.exp | 68 ++ .../sized_aligned_new_delete_misaligned1.vgtest | 4 + ..._aligned_new_delete_misaligned1_supp.stderr.exp | 8 + ...igned_new_delete_misaligned1_supp.stderr.exp_32 | 8 + .../sized_aligned_new_delete_misaligned1_supp.supp | 133 ++++ ...ized_aligned_new_delete_misaligned1_supp.vgtest | 4 + ...d_aligned_new_delete_misaligned1_xml.stderr.exp | 525 +++++++++++++++ ...sized_aligned_new_delete_misaligned1_xml.vgtest | 4 + .../tests/sized_aligned_new_delete_misaligned2.cpp | 10 + ...sized_aligned_new_delete_misaligned2.stderr.exp | 9 + .../sized_aligned_new_delete_misaligned2.vgtest | 4 + ..._aligned_new_delete_misaligned2_supp.stderr.exp | 1 + ...igned_new_delete_misaligned2_supp.stderr.exp_32 | 1 + .../sized_aligned_new_delete_misaligned2_supp.supp | 133 ++++ ...ized_aligned_new_delete_misaligned2_supp.vgtest | 4 + ...d_aligned_new_delete_misaligned2_xml.stderr.exp | 108 ++++ ...sized_aligned_new_delete_misaligned2_xml.vgtest | 4 + .../tests/sized_aligned_new_delete_misaligned3.cpp | 11 + ...sized_aligned_new_delete_misaligned3.stderr.exp | 9 + .../sized_aligned_new_delete_misaligned3.vgtest | 4 + ..._aligned_new_delete_misaligned3_supp.stderr.exp | 1 + ...igned_new_delete_misaligned3_supp.stderr.exp_32 | 1 + .../sized_aligned_new_delete_misaligned3_supp.supp | 133 ++++ ...ized_aligned_new_delete_misaligned3_supp.vgtest | 4 + ...d_aligned_new_delete_misaligned3_xml.stderr.exp | 108 ++++ ...sized_aligned_new_delete_misaligned3_xml.vgtest | 4 + memcheck/tests/solaris/aligned_alloc.stderr.exp | 8 + memcheck/tests/solaris/memalign.stderr.exp | 44 ++ 104 files changed, 4425 insertions(+), 483 deletions(-) diff --git a/.gitignore b/.gitignore index 6538eb718b..6aeb41df94 100644 --- a/.gitignore +++ b/.gitignore @@ -866,6 +866,7 @@ /memcheck/tests/descr_belowsp /memcheck/tests/dir /memcheck/tests/doublefree +/memcheck/tests/duplicate_align_size_errors /memcheck/tests/dw4 /memcheck/tests/erringfds /memcheck/tests/error_counts @@ -932,6 +933,7 @@ /memcheck/tests/nanoleak /memcheck/tests/nanoleak2 /memcheck/tests/nanoleak_supp +/memcheck/tests/new_delete_mismatch_size /memcheck/tests/new_nothrow /memcheck/tests/new_override /memcheck/tests/noisy_child @@ -971,7 +973,9 @@ /memcheck/tests/sh-mem /memcheck/tests/sh-mem-random /memcheck/tests/sized_aligned_new_delete_args -/memcheck/tests/sized_aligned_new_delete_misaligned +/memcheck/tests/sized_aligned_new_delete_misaligned1 +/memcheck/tests/sized_aligned_new_delete_misaligned2 +/memcheck/tests/sized_aligned_new_delete_misaligned3 /memcheck/tests/sigaltstack /memcheck/tests/sigkill /memcheck/tests/signal2 @@ -1341,11 +1345,13 @@ /memcheck/tests/freebsd/Makefile.in /memcheck/tests/freebsd/452275 /memcheck/tests/freebsd/access +/memcheck/tests/freebsd/aligned_alloc /memcheck/tests/freebsd/bug464476 /memcheck/tests/freebsd/bug470713 /memcheck/tests/freebsd/capsicum /memcheck/tests/freebsd/chflags /memcheck/tests/freebsd/chmod_chown +/memcheck/tests/freebsd/delete_sized_mismatch /memcheck/tests/freebsd/errno_aligned_allocs /memcheck/tests/freebsd/eventfd1 /memcheck/tests/freebsd/eventfd2 diff --git a/NEWS b/NEWS index 41f6d8699a..7c5247f071 100644 --- a/NEWS +++ b/NEWS @@ -22,9 +22,20 @@ AMD64/macOS 10.13 and nanoMIPS/Linux. * support has been added for FreeBSD 14 and FreeBSD 15. - * ==================== TOOL CHANGES =================== +* Memcheck now tests and warns about the values used for + alignment and size. These apply to various functions: memalign, + posix_memalign and aligned_alloc in C and various overloads + of operators new and delete in C++. The kinds of error that can + be detected are + - invalid alignment, for instance the alignment is usually required + to be a power of 2 + - mismatched alignment between aligned allocation and aligned + deallocation + - mismatched size when sized delete is used + - bad size for functions that have implementation defined behaviour + when the requested size is zero * ==================== FIXED BUGS ==================== @@ -35,8 +46,12 @@ bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather than mailing the developers (or mailing lists) directly -- bugs that are not entered into bugzilla tend to get forgotten about or ignored. -426751 Valgrind reports «still reachable» memory using musl (alpine running inside docker) +426751 Valgrind reports "still reachable" memory using musl (alpine running inside docker) +433857 Add validation to C++17 aligned new/delete alignment size +433859 Add mismatched detection to C++ 17 aligned new/delete 460192 Add epoll_pwait2 +466105 aligned_alloc problems, part 2 +467441 Add mismatched detection to C++ 14 sized delete 469049 link failure on ppc64 (big endian) valgrind 3.20 469146 massif --ignore-fn does not ignore inlined functions 469768 Make it possible to install gdb scripts in a different location diff --git a/coregrind/m_replacemalloc/vg_replace_malloc.c b/coregrind/m_replacemalloc/vg_replace_malloc.c index a71aa4b5b2..6c6f0d60f7 100644 --- a/coregrind/m_replacemalloc/vg_replace_malloc.c +++ b/coregrind/m_replacemalloc/vg_replace_malloc.c @@ -67,9 +67,14 @@ #include "pub_core_mallocfree.h" // for VG_MIN_MALLOC_SZB, VG_AR_CLIENT #include "pub_core_redir.h" // for VG_REPLACE_FUNCTION_* #include "pub_core_replacemalloc.h" +#include "../../memcheck/memcheck.h" #define VG_ALIGN_ROUNDUP(size, alignment) (((size) + (alignment) - 1) & ~((alignment) - 1)) +#define VERIFY_ALIGNMENT(aligned_alloc_info) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(_VG_USERREQ__MEMCHECK_VERIFY_ALIGNMENT, \ + aligned_alloc_info, 0, 0, 0, 0) + /* Assignment of behavioural equivalence class tags: 1NNNP is intended to be reserved for the Valgrind core. Current usage: @@ -307,15 +312,18 @@ extern int * __error(void) __attribute__((weak)); /* Generate a replacement for 'fnname' in object 'soname', which calls 'vg_replacement' to allocate aligned memory. If that fails, return NULL. */ -#define ALLOC_or_NULL_ALIGNED(soname, fnname, vg_replacement) \ +#define ALLOC_or_NULL_ALIGNED(soname, fnname, vg_replacement, tag) \ \ void* VG_REPLACE_FUNCTION_EZU(10010,soname,fnname) (SizeT n, SizeT alignment); \ void* VG_REPLACE_FUNCTION_EZU(10010,soname,fnname) (SizeT n, SizeT alignment) \ { \ void* v; \ + SizeT orig_alignment = alignment; \ \ DO_INIT; \ TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n); \ + struct AlignedAllocInfo aligned_alloc_info = { .orig_alignment=alignment, .size=n, .alloc_kind=AllocKind##tag}; \ + VERIFY_ALIGNMENT(&aligned_alloc_info); \ MALLOC_TRACE(#fnname "(size %llu, al %llu)", (ULong)n, (ULong)alignment ); \ \ if ((alignment == 0) \ @@ -327,7 +335,7 @@ extern int * __error(void) __attribute__((weak)); if (alignment < VG_MIN_MALLOC_SZB) \ alignment = VG_MIN_MALLOC_SZB; \ \ - v = (void*)VALGRIND_NON_SIMD_CALL2( info.tl_##vg_replacement, n, alignment ); \ + v = (void*)VALGRIND_NON_SIMD_CALL3( info.tl_##vg_replacement, n, alignment, orig_alignment ); \ MALLOC_TRACE(" = %p\n", v ); \ if (!v) SET_ERRNO_ENOMEM; \ return v; \ @@ -382,15 +390,18 @@ extern int * __error(void) __attribute__((weak)); 'vg_replacement' to allocate aligned memory. If that fails, it bombs the system. */ -#define ALLOC_or_BOMB_ALIGNED(soname, fnname, vg_replacement) \ +#define ALLOC_or_BOMB_ALIGNED(soname, fnname, vg_replacement, tag) \ \ void* VG_REPLACE_FUNCTION_EZU(10030,soname,fnname) (SizeT n, SizeT alignment); \ void* VG_REPLACE_FUNCTION_EZU(10030,soname,fnname) (SizeT n, SizeT alignment) \ { \ void* v; \ + SizeT orig_alignment = alignment; \ \ DO_INIT; \ TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n); \ + struct AlignedAllocInfo aligned_alloc_info = { .orig_alignment=alignment, .size=n, .alloc_kind=AllocKind##tag }; \ + VERIFY_ALIGNMENT(&aligned_alloc_info); \ MALLOC_TRACE(#fnname "(size %llu, al %llu)", (ULong)n, (ULong)alignment ); \ \ if ((alignment == 0) \ @@ -406,7 +417,7 @@ extern int * __error(void) __attribute__((weak)); if (alignment < VG_MIN_MALLOC_SZB) \ alignment = VG_MIN_MALLOC_SZB; \ \ - v = (void*)VALGRIND_NON_SIMD_CALL2( info.tl_##vg_replacement, n, alignment ); \ + v = (void*)VALGRIND_NON_SIMD_CALL3( info.tl_##vg_replacement, n, alignment, orig_alignment ); \ MALLOC_TRACE(" = %p\n", v ); \ if (NULL == v) { \ VALGRIND_PRINTF( \ @@ -519,55 +530,55 @@ extern int * __error(void) __attribute__((weak)); #if defined(VGO_linux) // operator new(unsigned int, std::align_val_t) #if VG_WORDSIZE == 4 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBC_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_t, __builtin_new_aligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBC_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); #endif // operator new(unsigned long, std::align_val_t) #if VG_WORDSIZE == 8 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBC_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBC_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); #endif #elif defined(VGO_freebsd) - // operator new(unsigned int) + // operator new(unsigned int, std::align_val_t) #if VG_WORDSIZE == 4 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_t, __builtin_new_aligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); #endif - // operator new(unsigned long) + // operator new(unsigned long, std::align_val_t) #if VG_WORDSIZE == 8 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); #endif #elif defined(VGO_darwin) #if VG_WORDSIZE == 4 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_t, __builtin_new_aligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); #endif #if VG_WORDSIZE == 8 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); #endif #elif defined(VGO_solaris) // operator new(unsigned int, std::align_val_t) #if VG_WORDSIZE == 4 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_t, __builtin_new_aligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_t, __builtin_new_aligned, NewAligned); #endif // operator new(unsigned long, std::align_val_t) #if VG_WORDSIZE == 8 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned, NewAligned); #endif @@ -639,55 +650,55 @@ extern int * __error(void) __attribute__((weak)); #if defined(VGO_linux) // operator new(unsigned int, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 4 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBC_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBC_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); #endif // operator new(unsigned long, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 8 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBC_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBC_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); #endif #elif defined(VGO_freebsd) // operator new(unsigned int, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 4 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); #endif // operator new(unsigned long, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 8 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); #endif #elif defined(VGO_darwin) #if VG_WORDSIZE == 4 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); #endif #if VG_WORDSIZE == 8 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); #endif #elif defined(VGO_solaris) // operator new(unsigned, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 4 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, __ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, __ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, __ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, __ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); #endif // operator new(unsigned long, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 8 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned, NewAligned); #endif #endif @@ -761,57 +772,57 @@ extern int * __error(void) __attribute__((weak)); #if defined(VGO_linux) // operator new[](unsigned int, std::align_val_t) #if VG_WORDSIZE == 4 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBC_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBC_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); #endif // operator new[](unsigned long, std::align_val_t) #if VG_WORDSIZE == 8 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBC_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBC_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); #endif #elif defined(VGO_freebsd) // operator new[](unsigned int, std::align_val_t) #if VG_WORDSIZE == 4 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); #endif // operator new[](unsigned long, std::align_val_t) #if VG_WORDSIZE == 8 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); #endif #elif defined(VGO_darwin) #if VG_WORDSIZE == 4 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); #endif // operator new[](unsigned long, std::align_val_t) #if VG_WORDSIZE == 8 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); #endif #elif defined(VGO_solaris) // operator new[](unsigned int, std::align_val_t) #if VG_WORDSIZE == 4 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); #endif // operator new[](unsigned long, std::align_val_t) #if VG_WORDSIZE == 8 - ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); - ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned, VecNewAligned ); #endif #endif @@ -882,57 +893,57 @@ extern int * __error(void) __attribute__((weak)); #if defined(VGO_linux) // operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 4 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBC_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBC_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); #endif // operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 8 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBC_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBC_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); #endif #elif defined(VGO_freebsd) // operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 4 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); #endif // operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 8 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); #endif #elif defined(VGO_darwin) #if VG_WORDSIZE == 4 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); #endif // operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 8 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); #endif #elif defined(VGO_solaris) // operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 4 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); #endif // operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) #if VG_WORDSIZE == 8 - ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); - ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned, VecNewAligned ); #endif #endif @@ -1044,13 +1055,16 @@ extern int * __error(void) __attribute__((weak)); /*------------------- C++14 delete sized -------------------*/ -#define DELETE_SIZED(soname, fnname, vg_replacement) \ +#define DELETE_SIZED(soname, fnname, vg_replacement, tag) \ \ void VG_REPLACE_FUNCTION_EZU(10050,soname,fnname) (void *p, SizeT size); \ void VG_REPLACE_FUNCTION_EZU(10050,soname,fnname) (void *p, SizeT size) \ { \ + struct AlignedAllocInfo aligned_alloc_info = { .size=size, .mem=p, .alloc_kind=AllocKind##tag }; \ + \ DO_INIT; \ TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)size); \ + VERIFY_ALIGNMENT(&aligned_alloc_info); \ MALLOC_TRACE(#fnname "(%p)\n", p ); \ if (p == NULL) \ return; \ @@ -1060,79 +1074,89 @@ extern int * __error(void) __attribute__((weak)); #if defined(VGO_linux) // operator delete(void*, unsigned int) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete ); - DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvj, __builtin_delete ); - DELETE_SIZED(VG_Z_LIBC_SONAME, _ZdlPvj, __builtin_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvj, __builtin_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete, DeleteSized ); + DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvj, __builtin_delete, DeleteSized ); + DELETE_SIZED(VG_Z_LIBC_SONAME, _ZdlPvj, __builtin_delete, DeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvj, __builtin_delete, DeleteSized ); // operator delete(void*, unsigned long) #elif __SIZEOF_SIZE_T__ == 8 - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvm, __builtin_delete ); - DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvm, __builtin_delete ); - DELETE_SIZED(VG_Z_LIBC_SONAME, _ZdlPvm, __builtin_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvm, __builtin_delete, DeleteSized ); + DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvm, __builtin_delete, DeleteSized ); + DELETE_SIZED(VG_Z_LIBC_SONAME, _ZdlPvm, __builtin_delete, DeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete, DeleteSized ); #endif #elif defined(VGO_freebsd) // operator delete(void*, unsigned int) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete ); - DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvj, __builtin_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvj, __builtin_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete, DeleteSized ); + DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvj, __builtin_delete, DeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvj, __builtin_delete, DeleteSized ); #elif __SIZEOF_SIZE_T__ == 8 // operator delete(void*, unsigned long) - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvm, __builtin_delete ); - DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvm, __builtin_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvm, __builtin_delete, DeleteSized ); + DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvm, __builtin_delete, DeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete, DeleteSized ); #endif #elif defined(VGO_darwin) // operator delete(void*, unsigned int) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete ); - DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvj, __builtin_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvj, __builtin_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete, DeleteSized ); + DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvj, __builtin_delete, DeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvj, __builtin_delete, DeleteSized ); #elif __SIZEOF_SIZE_T__ == 8 // operator delete(void*, unsigned long) - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvm, __builtin_delete ); - DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvm, __builtin_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvm, __builtin_delete, DeleteSized ); + DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdlPvm, __builtin_delete, DeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete, DeleteSized ); #endif #elif defined(VGO_solaris) // operator delete(void*, unsigned long) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvj, __builtin_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete, DeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvj, __builtin_delete, DeleteSized ); #elif __SIZEOF_SIZE_T__ == 8 - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvm, __builtin_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvm, __builtin_delete, DeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete, DeleteSized ); #endif #endif /*------------------- C++17 delete aligned -------------------*/ -#define DELETE_ALIGNED(soname, fnname, vg_replacement) \ +/* No need to check the alignment + * either the alignment matches the alloc + * or the alloc would have failed */ + +#define DELETE_ALIGNED(soname, fnname, vg_replacement, tag ) \ \ void VG_REPLACE_FUNCTION_EZU(10050,soname,fnname) (void *p, SizeT alignment); \ void VG_REPLACE_FUNCTION_EZU(10050,soname,fnname) (void *p, SizeT alignment) \ { \ + struct AlignedAllocInfo aligned_alloc_info = { .orig_alignment=alignment, .mem=p, .alloc_kind=AllocKind##tag }; \ + \ DO_INIT; \ TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)alignment); \ + VERIFY_ALIGNMENT(&aligned_alloc_info); \ MALLOC_TRACE(#fnname "(%p)\n", p ); \ if (p == NULL) \ return; \ (void)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, p ); \ } -#define DELETE_SIZED_ALIGNED(soname, fnname, vg_replacement) \ +#define DELETE_SIZED_ALIGNED(soname, fnname, vg_replacement, tag ) \ \ void VG_REPLACE_FUNCTION_EZU(10050,soname,fnname) (void *p, SizeT size, SizeT alignment); \ void VG_REPLACE_FUNCTION_EZU(10050,soname,fnname) (void *p, SizeT size, SizeT alignment) \ { \ + struct AlignedAllocInfo aligned_alloc_info = { .orig_alignment=alignment, .size=size, .mem=p, .alloc_kind=AllocKind##tag }; \ + \ DO_INIT; \ TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)size); \ TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)alignment); \ + VERIFY_ALIGNMENT(&aligned_alloc_info); \ MALLOC_TRACE(#fnname "(%p)\n", p ); \ if (p == NULL) \ return; \ @@ -1141,76 +1165,76 @@ extern int * __error(void) __attribute__((weak)); #if defined(VGO_linux) // operator delete(void*, std::align_val_t) - DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); - DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); - DELETE_ALIGNED(VG_Z_LIBC_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); - DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(VG_Z_LIBC_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); // operator delete(void*, unsigned int, std::align_val_t) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(VG_Z_LIBC_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBC_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); // operator delete(void*, unsigned long, std::align_val_t) #elif __SIZEOF_SIZE_T__ == 8 - DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(VG_Z_LIBC_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBC_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); #endif #elif defined(VGO_freebsd) // operator delete(void*, std::align_val_t) - DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); - DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); - DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); // operator delete(void*, unsigned int, std::align_val_t) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); // operator delete(void*, unsigned long, std::align_val_t) #elif __SIZEOF_SIZE_T__ == 8 - DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); #endif #elif defined(VGO_darwin) // operator delete(void*, std::align_val_t) - DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); - DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); - DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); // operator delete(void*, unsigned int, std::align_val_t) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); // operator delete(void*, unsigned long, std::align_val_t) #elif __SIZEOF_SIZE_T__ == 8 - DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); #endif #elif defined(VGO_solaris) // operator delete(void*, std::align_val_t) - DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); - DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_t, __builtin_delete_aligned, DeleteAligned ); // operator delete(void*, unsigned int, std::align_val_t) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvjSt11align_val_t, __builtin_delete_aligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvjSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); // operator delete(void*, unsigned long, std::align_val_t) #elif __SIZEOF_SIZE_T__ == 8 - DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); - DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); + DELETE_SIZED_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned, DeleteSizedAligned ); #endif #endif @@ -1247,29 +1271,29 @@ extern int * __error(void) __attribute__((weak)); #if defined(VGO_linux) // operator delete(void*, std::align_val_t, std::nothrow_t const&) - DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); - DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); - DELETE_ALIGNED(VG_Z_LIBC_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); - DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(VG_Z_LIBC_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); // no sized version of this operator #elif defined(VGO_freebsd) // operator delete(void*, std::align_val_t, std::nothrow_t const&) - DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); - DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); - DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); #elif defined(VGO_darwin) - DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); - DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); - DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); #elif defined(VGO_solaris) // operator delete(void*, std::align_val_t, std::nothrow_t const&) - DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); - DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); + DELETE_ALIGNED(SO_SYN_MALLOC, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned, DeleteAligned ); // no sized version of this operator @@ -1311,51 +1335,51 @@ extern int * __error(void) __attribute__((weak)); #if defined(VGO_linux) // operator delete[](void*, unsigned int) #if __SIZEOF_SIZE_T__ == 4 - DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdaPvj, __builtin_vec_delete ); - DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdaPvj, __builtin_vec_delete ); - DELETE_SIZED(VG_Z_LIBC_SONAME, _ZdaPvj, __builtin_vec_delete ); - DELETE_SIZED(SO_SYN_MALLOC, _ZdaPvj, __builtin_vec_delete ); + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdaPvj, __builtin_vec_delete, VecDeleteSized ); + DELETE_SIZED(VG_Z_LIBCXX_SONAME, _ZdaPvj, __builtin_vec_delete, VecDeleteSized ); + DELETE_SIZED(VG_Z_LIBC_SONAME, _ZdaPvj, __builtin_vec_delete, VecDeleteSized ); + DELETE_SIZED(SO_SYN_MALLOC, _ZdaPvj, ... [truncated message content] |
|
From: Paul F. <pa...@so...> - 2023-09-02 12:10:13
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=6489bc63a13fcf614cdb1cb318ea9a1f898a39cd commit 6489bc63a13fcf614cdb1cb318ea9a1f898a39cd Author: Paul Floyd <pj...@wa...> Date: Sat Sep 2 14:08:07 2023 +0200 regtest: make memcheck sem test quiet On Solaris the summary shows 7 allocations causing a diff. Diff: --- memcheck/tests/sem.stderr.exp | 10 ---------- memcheck/tests/sem.vgtest | 1 + 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/memcheck/tests/sem.stderr.exp b/memcheck/tests/sem.stderr.exp index eb42921c60..e69de29bb2 100644 --- a/memcheck/tests/sem.stderr.exp +++ b/memcheck/tests/sem.stderr.exp @@ -1,10 +0,0 @@ - - -HEAP SUMMARY: - in use at exit: 0 bytes in 0 blocks - total heap usage: 0 allocs, 0 frees, 0 bytes allocated - -For a detailed leak analysis, rerun with: --leak-check=full - -For lists of detected and suppressed errors, rerun with: -s -ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/memcheck/tests/sem.vgtest b/memcheck/tests/sem.vgtest index 876f002110..a95230830b 100644 --- a/memcheck/tests/sem.vgtest +++ b/memcheck/tests/sem.vgtest @@ -1 +1,2 @@ prog: ../../none/tests/sem +vgopts: -q |
|
From: Paul F. <pa...@so...> - 2023-09-02 11:52:52
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=b93ae9a9c8c071fcbf2d0ece052d084b63f6c39c commit b93ae9a9c8c071fcbf2d0ece052d084b63f6c39c Author: Paul Floyd <pj...@wa...> Date: Sat Sep 2 13:52:12 2023 +0200 Solaris: fix a few compiler warnings Diff: --- coregrind/m_coredump/coredump-solaris.c | 2 +- coregrind/m_debuginfo/readelf.c | 2 +- coregrind/m_initimg/initimg-solaris.c | 2 +- coregrind/m_syswrap/syswrap-solaris.c | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/coregrind/m_coredump/coredump-solaris.c b/coregrind/m_coredump/coredump-solaris.c index 8e84dba51f..00d131b370 100644 --- a/coregrind/m_coredump/coredump-solaris.c +++ b/coregrind/m_coredump/coredump-solaris.c @@ -886,7 +886,7 @@ void VG_(make_coredump)(ThreadId tid, const vki_siginfo_t *si, VG_(snprintf)(filename, filename_size, "%s%s.%d", basename, coreext, VG_(getpid)()); else - VG_(snprintf)(filename, filename_size, "%s%s.%d.%d", + VG_(snprintf)(filename, filename_size, "%s%s.%d.%u", basename, coreext, VG_(getpid)(), seq); seq++; diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c index a4c79efd0f..ef9a722ad9 100644 --- a/coregrind/m_debuginfo/readelf.c +++ b/coregrind/m_debuginfo/readelf.c @@ -1343,7 +1343,7 @@ DiImage* open_debug_file( const HChar* name, const HChar* buildid, UInt crc, if (VG_(clo_verbosity) > 1) VG_(message)(Vg_DebugMsg, " .. build-id mismatch (found %s wanted %s)\n", - debug_buildid, buildid); + (debug_buildid ? debug_buildid : "(null)"), buildid); ML_(dinfo_free)(debug_buildid); return NULL; } diff --git a/coregrind/m_initimg/initimg-solaris.c b/coregrind/m_initimg/initimg-solaris.c index 3e473c8803..1e9e3fd061 100644 --- a/coregrind/m_initimg/initimg-solaris.c +++ b/coregrind/m_initimg/initimg-solaris.c @@ -920,7 +920,7 @@ IIFinaliseImageInfo VG_(ii_create_image)(IICreateImageInfo iicii, szB = VG_PGROUNDUP(szB); VG_(debugLog)(1, "initimg", - "Setup client stack: size will be %ld\n", szB); + "Setup client stack: size will be %lu\n", szB); iifii.clstack_max_size = szB; iifii.initial_client_SP = setup_client_stack(init_sp, env, &info, diff --git a/coregrind/m_syswrap/syswrap-solaris.c b/coregrind/m_syswrap/syswrap-solaris.c index ed3cb4a551..b5489644c1 100644 --- a/coregrind/m_syswrap/syswrap-solaris.c +++ b/coregrind/m_syswrap/syswrap-solaris.c @@ -639,10 +639,11 @@ void VG_(restore_context)(ThreadId tid, vki_ucontext_t *uc, CorePart part, if (tst->os_state.ustack && VG_(am_is_valid_for_client)((Addr)tst->os_state.ustack, sizeof(*tst->os_state.ustack), - VKI_PROT_WRITE)) + VKI_PROT_WRITE)) { *tst->os_state.ustack = uc->uc_stack; VG_TRACK(post_mem_write, part, tid, (Addr)&tst->os_state.ustack, sizeof(tst->os_state.ustack)); + } } /* Restore the architecture-specific part of the context. */ |
|
From: Paul F. <pa...@so...> - 2023-09-02 11:21:48
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=ae4e70d97d46c58a99782ff007df1cdc34ac1219 commit ae4e70d97d46c58a99782ff007df1cdc34ac1219 Author: Paul Floyd <pj...@wa...> Date: Sat Sep 2 15:20:36 2023 +0200 FreeBSD: Add support for building on FreeBSD 15.0 Diff: --- NEWS | 2 ++ configure.ac | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 832d24e45a..41f6d8699a 100644 --- a/NEWS +++ b/NEWS @@ -20,6 +20,8 @@ AMD64/macOS 10.13 and nanoMIPS/Linux. * ================== PLATFORM CHANGES ================= +* support has been added for FreeBSD 14 and FreeBSD 15. + * ==================== TOOL CHANGES =================== diff --git a/configure.ac b/configure.ac index e9592f47ec..2aaf3f44bb 100755 --- a/configure.ac +++ b/configure.ac @@ -398,6 +398,8 @@ case "${host_os}" in freebsd_13_2=1320 AC_DEFINE([FREEBSD_14], 1400, [FREEBSD_VERS value for FreeBSD 14.x]) freebsd_14=1400 + AC_DEFINE([FREEBSD_15], 1500, [FREEBSD_VERS value for FreeBSD 15.x]) + freebsd_15=1500 AC_MSG_CHECKING([for the kernel version]) kernel=`uname -r` @@ -446,7 +448,7 @@ case "${host_os}" in ;; *) AC_MSG_RESULT([unsupported (${kernel})]) - AC_MSG_ERROR([Valgrind works on FreeBSD 10.x to 14.x]) + AC_MSG_ERROR([Valgrind works on FreeBSD 10.x to 15.x]) ;; esac ;; @@ -455,9 +457,14 @@ case "${host_os}" in AC_DEFINE([FREEBSD_VERS], FREEBSD_14, [FreeBSD version]) freebsd_vers=$freebsd_14 ;; + 15.*) + AC_MSG_RESULT([FreeBSD 15.x (${kernel})]) + AC_DEFINE([FREEBSD_VERS], FREEBSD_15, [FreeBSD version]) + freebsd_vers=$freebsd_15 + ;; *) AC_MSG_RESULT([unsupported (${kernel})]) - AC_MSG_ERROR([Valgrind works on FreeBSD 10.x to 14.x]) + AC_MSG_ERROR([Valgrind works on FreeBSD 10.x to 15.x]) ;; esac |
|
From: Mark W. <ma...@kl...> - 2023-09-02 00:08:12
|
Hi Carl, On Fri, Sep 01, 2023 at 11:59:39AM -0700, Carl Love via Valgrind-developers wrote: > The test results are: > > machine pre-lazy-load current mainline with ppc debuginfo fix with Explicitly-load- > (as of 8/31/2023) libc-and-any-sonames > > Power 8 LE Red Hat Enterprise Linux Server 7.9 (Maipo) > 707 tests, 708 tests, 708 tests 708 tests, > 4 stderr failures, 280 stderr failures, 247 stderr failures, 4 stderr failures, > 0 stdout failures, 54 stdout failures, 54 stdout failures, 0 stdout failures, > 13 stderrB failures, 16 stderrB failures, 16 stderrB failures, 13 stderrB failures, > 0 stdoutB failures, 11 stdoutB failures, 12 stdoutB failures 0 stdoutB failures > 9 post failures 13 post failures 9 post failures 9 post failures > > Power 8 BE Ubuntu 20.04.5 LTS (Focal Fossa) > 742 tests, 743 tests, 743 tests, 743 tests, > 2 stderr failures, 671 stderr failures, 671 stderr failures, 671 stderr failures > 0 stdout failures, 152 stdout failures, 152 stdout failures, 152 stdout failures, > 0 stderrB failures, 14 stderrB failures, 14 stderrB failures, 14 stderrB failures, > 2 stdoutB failures, 20 stdoutB failures, 20 stdoutB failures, 20 stdoutB failures, > 9 post failures 43 post failures 43 post failures 43 post failures > > Power 9 LE Ubuntu 20.04.5 LTS (Focal Fossa) > 711 tests, 712 tests, 712 tests, 712 tests, > 4 stderr failures, 280 stderr failures, 247 stderr failures, 4 stderr failures, > 0 stdout failures, 54 stdout failures, 54 stdout failures, 0 stdout failures, > 13 stderrB failures, 16 stderrB failures, 16 stderrB failures, 13 stderrB failures, > 0 stdoutB failures, 12 stdoutB failures, 12 stdoutB failures 0 stdoutB failures, > 9 post failures 13 post failures 9 post failures 9 post failures > > Power 10 LE Red Hat Enterprise Linux 9.0 (Plow) > 719 tests 720 tests, 720 tests, 720 tests, > 2 stderr failures, 42 stderr failures, 2 stderr failures, 2 stderr failures, > 0 stdout failures, 0 stdout failures, 0 stdout failures, 0 stdout failures, > 2 stderrB failures, 2 stderrB failures, 2 stderrB failures, 2 stderrB failures, > 10 stdoutB failures, 10 stdoutB failures, 10 stdoutB failures, 10 stdoutB failures > 0 post failures 3 post failures 0 post failures 0 post failures > > The Explicitly-load-libc-and-any-sonames-that-contain-ma.patch seems > to fix the issues across the various OS distributions for the LE > machines. It does appear that there is a separate issue with the > original patch to lazily load the debug info on PowerPC BE. > Hopefully we can sort that issue out when Aaron gets back from > vacation. The little endian results look really good. Thanks for all the testing. I pushed both Aaron's and my commit. I don't yet fully understand what is going on with big endian. Cheers, Mark |