diff --git a/wally-pipelined/config/busybear/wally-config.vh b/wally-pipelined/config/busybear/wally-config.vh index d48a06d0..81e4949a 100644 --- a/wally-pipelined/config/busybear/wally-config.vh +++ b/wally-pipelined/config/busybear/wally-config.vh @@ -68,7 +68,7 @@ `define CLINTBASE 32'h02000000 `define CLINTRANGE 32'h0000FFFF `define PLICBASE 32'h0C000000 -`define PLICRANGE 32'h0FFFFFFF +`define PLICRANGE 32'h03FFFFFF `define UARTBASE 32'h10000000 `define UARTRANGE 32'h00000007 `define VBD0BASE 32'h10001000 diff --git a/wally-pipelined/config/coremark/wally-config.vh b/wally-pipelined/config/coremark/wally-config.vh index 7653f390..5f0714ae 100644 --- a/wally-pipelined/config/coremark/wally-config.vh +++ b/wally-pipelined/config/coremark/wally-config.vh @@ -76,6 +76,8 @@ `define GPIORANGE 32'h000000FF `define UARTBASE 32'h10000000 `define UARTRANGE 32'h00000007 +`define PLICBASE 32'h0C000000 +`define PLICRANGE 32'h03FFFFFF // Test modes @@ -88,6 +90,9 @@ // Hardware configuration `define UART_PRESCALE 1 +// Can add PLIC Config here +// Num interrupt sources + /* verilator lint_off STMTDLY */ /* verilator lint_off WIDTH */ /* verilator lint_off ASSIGNDLY */ diff --git a/wally-pipelined/config/coremark_bare/wally-config.vh b/wally-pipelined/config/coremark_bare/wally-config.vh index f8c71712..8f2512f3 100644 --- a/wally-pipelined/config/coremark_bare/wally-config.vh +++ b/wally-pipelined/config/coremark_bare/wally-config.vh @@ -76,6 +76,8 @@ `define GPIORANGE 32'h000000FF `define UARTBASE 32'h10000000 `define UARTRANGE 32'h00000007 +`define PLICBASE 32'h0C000000 +`define PLICRANGE 32'h03FFFFFF // Test modes diff --git a/wally-pipelined/config/rv32ic/wally-config.vh b/wally-pipelined/config/rv32ic/wally-config.vh index edcd6107..5ee1d170 100644 --- a/wally-pipelined/config/rv32ic/wally-config.vh +++ b/wally-pipelined/config/rv32ic/wally-config.vh @@ -72,6 +72,8 @@ `define GPIORANGE 32'h000000FF `define UARTBASE 32'h10000000 `define UARTRANGE 32'h00000007 +`define PLICBASE 32'h0C000000 +`define PLICRANGE 32'h03FFFFFF // Bus Interface width `define AHBW 32 diff --git a/wally-pipelined/config/rv64ic/wally-config.vh b/wally-pipelined/config/rv64ic/wally-config.vh index 7057db95..c3f9849a 100644 --- a/wally-pipelined/config/rv64ic/wally-config.vh +++ b/wally-pipelined/config/rv64ic/wally-config.vh @@ -76,6 +76,8 @@ `define GPIORANGE 32'h000000FF `define UARTBASE 32'h10000000 `define UARTRANGE 32'h00000007 +`define PLICBASE 32'h0C000000 +`define PLICRANGE 32'h03FFFFFF // Test modes diff --git a/wally-pipelined/config/rv64icfd/wally-config.vh b/wally-pipelined/config/rv64icfd/wally-config.vh index 617be64a..9b3dae29 100644 --- a/wally-pipelined/config/rv64icfd/wally-config.vh +++ b/wally-pipelined/config/rv64icfd/wally-config.vh @@ -76,6 +76,8 @@ `define GPIORANGE 32'h000000FF `define UARTBASE 32'h10000000 `define UARTRANGE 32'h00000007 +`define PLICBASE 32'h0C000000 +`define PLICRANGE 32'h03FFFFFF // Test modes diff --git a/wally-pipelined/src/ebu/ahblite.sv b/wally-pipelined/src/ebu/ahblite.sv index 2f5c4f7b..20137866 100644 --- a/wally-pipelined/src/ebu/ahblite.sv +++ b/wally-pipelined/src/ebu/ahblite.sv @@ -150,8 +150,10 @@ module ahblite ( assign CaptureDataM = ((BusState == MEMREAD) && (NextBusState != MEMREAD)) || ((BusState == ATOMICREAD) && (NextBusState == ATOMICWRITE)); // We think this introduces an unnecessary cycle of latency in memory accesses - flopenr #(`XLEN) ReadDataNewWReg(clk, reset, CaptureDataM, ReadDataM, ReadDataNewW); // *** check that this does not break when there is no instruction read after data read - flopenr #(`XLEN) ReadDataOldWReg(clk, reset, CaptureDataM, ReadDataNewW, ReadDataOldW); // *** check that this does not break when there is no instruction read after data read + // *** can the following be simplified down to one register? + // *** examine more closely over summer? + flopenr #(`XLEN) ReadDataNewWReg(clk, reset, CaptureDataM, ReadDataM, ReadDataNewW); + flopenr #(`XLEN) ReadDataOldWReg(clk, reset, CaptureDataM, ReadDataNewW, ReadDataOldW); assign ReadDataW = (BusState == INSTRREADC) ? ReadDataOldW : ReadDataNewW; // Extract and sign-extend subwords if necessary diff --git a/wally-pipelined/src/fpu/FMA/add.sv b/wally-pipelined/src/fpu/FMA/add.sv index 05a6fd7e..a6bf5b18 100644 --- a/wally-pipelined/src/fpu/FMA/add.sv +++ b/wally-pipelined/src/fpu/FMA/add.sv @@ -31,14 +31,14 @@ module add(r, s, t, sum, wire [105:0] r2; // partial product possibly zeroed out wire [105:0] s2; // partial product possibly zeroed out - wire [163:0] t2; // addend after inversion if necessary - wire [163:0] sum0; // sum of compound adder +0 mode - wire [163:0] sum1; // sum of compound adder +1 mode + wire [164:0] t2; // addend after inversion if necessary + wire [164:0] sum0; // sum of compound adder +0 mode + wire [164:0] sum1; // sum of compound adder +1 mode wire [163:0] prodshifted; // sum of compound adder +1 mode // Invert addend if z's sign is diffrent from the product's sign - assign t2 = invz ? ~t : t; + assign t2 = invz ? ~{1'b0,t} : {1'b0,t}; // Zero out product if Z >> product or product really should be zero @@ -48,15 +48,15 @@ module add(r, s, t, sum, // Compound adder // Consists of 3:2 CSA followed by long compound CPA assign prodshifted = {56'b0, r2, 2'b0} + {56'b0, s2, 2'b0}; - assign sum0 = prodshifted + t2 + 158'b0; - assign sum1 = prodshifted + t2 + 158'b1; + assign sum0 = {1'b0,prodshifted} + t2 + 158'b0; + assign sum1 = {1'b0,prodshifted} + t2 + 158'b1; // +1 from invert of z above // Check sign bits in +0/1 modes - assign negsum0 = sum0[157]; - assign negsum1 = sum1[157]; + assign negsum0 = sum0[164]; + assign negsum1 = sum1[164]; // Mux proper result (+Oil mode and inversion) using 4:1 mux - assign sum = selsum1 ? (negsum ? -sum1 : sum1) : (negsum ? -sum0 : sum0); + assign sum = selsum1 ? (negsum ? -sum1[163:0] : sum1[163:0]) : (negsum ? -sum0[163:0] : sum0[163:0]); endmodule diff --git a/wally-pipelined/src/fpu/FMA/align.sv b/wally-pipelined/src/fpu/FMA/align.sv index 040f7862..1c31cfe1 100644 --- a/wally-pipelined/src/fpu/FMA/align.sv +++ b/wally-pipelined/src/fpu/FMA/align.sv @@ -17,7 +17,7 @@ module align(zman, ae, aligncnt, xzero, yzero, zzero, zdenorm, proddenorm, t, bs input [51:0] zman; // Fraction of addend z; input [12:0] ae; // sign of exponent of addend z; - input [11:0] aligncnt; // amount to shift + input [12:0] aligncnt; // amount to shift input xzero; // Input X = 0 input yzero; // Input Y = 0 input zzero; // Input Z = 0 @@ -48,13 +48,13 @@ module align(zman, ae, aligncnt, xzero, yzero, zzero, zdenorm, proddenorm, t, bs // Compute sign of aligncnt + 104 to check for shifting too far right - assign align104 = aligncnt+104; + //assign align104 = aligncnt+104; // Shift addend by alignment count. Generate sticky bits from // addend on right shifts. Handle special cases of shifting // by too much. - always @(z2 or aligncnt or align104 or zzero or xzero or yzero or zdenorm or proddenorm) + always @(z2 or aligncnt or zzero or xzero or yzero or zdenorm or proddenorm) begin // Default to clearing sticky bits @@ -63,36 +63,37 @@ module align(zman, ae, aligncnt, xzero, yzero, zzero, zdenorm, proddenorm, t, bs // And to using product as primary operand in adder I exponent gen killprod = 0; - - if ($signed(aligncnt) <= $signed(-105)) begin //ae<=-103 + // d = aligncnt + // p = 53 + if ($signed(aligncnt) <= $signed(-105)) begin //d<=-2p+1 //product ancored case with saturated shift - sumshift = 163; + sumshift = 163; // 3p+4 shift = {~zdenorm,zman,163'b0} >> sumshift; - t = {shift[208:51]}; - bs = |(shift[50:0]); - //bs = ~zzero; //set sticky bit - zexpsel = 0; - end else if($signed(aligncnt) <= $signed(2)) begin // -103> sumshift; - t = {shift[208:51]}; + t = {shift[215:52]}; bs = |(shift[51:0]); - zexpsel = 0; - end else if ($signed(aligncnt)<=$signed(55)) begin //2> sumshift; + t = {shift[215:52]}; + bs = |(shift[51:0]); + //zexpsel = 0; + end else if ($signed(aligncnt)<=$signed(55)) begin // 2 < d <= p+2 // addend ancored case sumshift = 56-aligncnt; shift = {~zdenorm,zman, 163'b0} >> sumshift; - t = {shift[208:51]}; + t = {shift[215:52]}; bs = |(shift[51:0]); - zexpsel = 1; - end else begin // ae>= 55 + //zexpsel = 1; + end else begin // d >= p+3 // addend anchored case with saturated shift sumshift = 0; shift = {~zdenorm,zman, 163'b0} >> sumshift; t = {shift[215:52]}; bs = |(shift[51:0]); - zexpsel = 1; + //ps = 1; + //zexpsel = 1; // use some behavioral code to find sticky bit. This is really // done by hardware in the shifter. diff --git a/wally-pipelined/src/fpu/FMA/expgen.sv b/wally-pipelined/src/fpu/FMA/expgen.sv index 4d996f88..b5d29f31 100644 --- a/wally-pipelined/src/fpu/FMA/expgen.sv +++ b/wally-pipelined/src/fpu/FMA/expgen.sv @@ -46,7 +46,7 @@ module expgen(xexp, yexp, zexp, input proddenorm; // product is denorm input specialsel; // Select special result input zexpsel; // Select special result - output [11:0] aligncnt; // shift count for alignment shifter + output [12:0] aligncnt; // shift count for alignment shifter output [62:52] wexp; // Exponent of result output prodof; // X*Y exponent out of bounds output sumof; // X*Y+Z exponent out of bounds @@ -72,9 +72,9 @@ module expgen(xexp, yexp, zexp, // if exponent is out of bounds - assign ae = xexp + yexp; + assign ae = xexp + yexp -1023; - assign prodof = (ae - 1023 > 2046 && ~ae[12]); + assign prodof = (ae > 2046 && ~ae[12]); // Compute alignment shift count // Adjust for postrounding normalization of Z. @@ -82,12 +82,12 @@ module expgen(xexp, yexp, zexp, // check if a round overflows is shorter than the actual round and // is masked by the bypass mux and two 10 bit adder delays. - assign aligncnt = zexp - ae;// KEP use all of ae - + assign aligncnt = zexp -(xexp + yexp -1023) - 1 + ~xdenorm + ~ydenorm - ~zdenorm;// KEP use all of ae + //assign aligncnt = zexp - ae;// KEP use all of ae // Select exponent (usually from product except in case of huge addend) - assign be = zexpsel ? zexp : ae; + //assign be = zexpsel ? zexp : ae; // Adjust exponent based on normalization // A compound adder takes care of the case of post-rounding normalization @@ -109,7 +109,7 @@ module expgen(xexp, yexp, zexp, // bypass occurs before rounding or taking early results - assign wbypass = de0[10:0]; + //assign wbypass = de0[10:0]; // In a non-critical special mux, we combine the early result from other // FPU blocks with the results of exceptional conditions. Overflow diff --git a/wally-pipelined/src/fpu/FMA/fmac.sv b/wally-pipelined/src/fpu/FMA/fmac.sv index 0741d2b3..0602f4be 100644 --- a/wally-pipelined/src/fpu/FMA/fmac.sv +++ b/wally-pipelined/src/fpu/FMA/fmac.sv @@ -60,7 +60,7 @@ module fmac(x, y, z, rn, rz, rp, rm, logic [163:0] t; // output of alignment shifter logic [163:0] sum; // output of carry prop adder logic [53:0] v; // normalized sum, R, S bits - logic [11:0] aligncnt; // shift count for alignment + logic [12:0] aligncnt; // shift count for alignment logic [8:0] normcnt; // shift count for normalizer logic [12:0] ae; // multiplier expoent logic bs; // sticky bit of addend diff --git a/wally-pipelined/src/fpu/FMA/normalize.sv b/wally-pipelined/src/fpu/FMA/normalize.sv index ff50daf7..f69d2cb0 100644 --- a/wally-pipelined/src/fpu/FMA/normalize.sv +++ b/wally-pipelined/src/fpu/FMA/normalize.sv @@ -20,7 +20,7 @@ module normalize(sum, zexp, normcnt, ae, aligncnt, sumshift, sumzero, bs, ps, de input [62:52] zexp; // sum input [8:0] normcnt; // normalization shift count input [12:0] ae; // normalization shift count - input [11:0] aligncnt; // normalization shift count + input [12:0] aligncnt; // normalization shift count input [8:0] sumshift; // normalization shift count input sumzero; // sum is zero input bs; // sticky bit for addend @@ -37,6 +37,7 @@ module normalize(sum, zexp, normcnt, ae, aligncnt, sumshift, sumzero, bs, ps, de logic resultdenorm; // Input Z is denormalized logic [12:0] de0; logic [163:0] sumshifted; // shifted sum + logic [163:0] sumshiftedtmp; // shifted sum logic tmp; // When the sum is zero, normalization does not apply and only the @@ -53,24 +54,42 @@ logic tmp; assign tmp = ($signed(ae-normcnt+2) >= $signed(-1022)); always @(sum or normcnt or sumshift or ae or aligncnt) begin - if ($signed(aligncnt)<=$signed(2)) begin // special case - if ($signed(ae-normcnt+2) >= $signed(-1022)) begin - sumshifted = sum << (55+normcnt); - v = sumshifted[157:104]; + // d = aligncnt + // l = normcnt + // p = 53 + // ea + eb = ae + if ($signed(aligncnt)<=$signed(2)) begin //d<=2 + // product anchored or cancellation + if ($signed(ae-normcnt+2) >= $signed(-1022)) begin //ea+eb-l+2 >= emin + //normal result + sumshifted = sum << (55+normcnt); // p+2+l + v = sumshifted[162:109]; resultdenorm = 0; + //de0 = ae-normcnt+2-1023; de0 = ae-normcnt+2; end else begin sumshifted = sum << (1079+ae); - v = sumshifted[157:104]; + v = sumshifted[162:109]; resultdenorm = 1; de0 = 0; end end else begin // extract normalized bits - sumshifted = sum << sumshift; - v = sumshifted[157:104]; + sumshifted = sum << sumshift;//-1; + //if(sumshifted[163])begin + // v = sumshifted[162:109]; + // de0 = zexp -1; + //end else if (zdenorm || sumshifted[162]) begin + // v = sumshifted[161:108]; + // de0 = zexp; + //end else begin + // v = sumshifted[160:107]; + // de0 = zexp+1; + //end + + v = sumshifted[162:109]; + de0 = zexp; resultdenorm = 0; - de0 = zexp; end end diff --git a/wally-pipelined/src/fpu/FMA/sign.sv b/wally-pipelined/src/fpu/FMA/sign.sv index c14698ca..f7c7cd54 100644 --- a/wally-pipelined/src/fpu/FMA/sign.sv +++ b/wally-pipelined/src/fpu/FMA/sign.sv @@ -40,6 +40,7 @@ module sign(xsign, ysign, zsign, negsum0, negsum1, bs, ps, killprod, rm, overflo // Internal nodes wire zerosign; // sign if result= 0 + wire sumneg; // sign if result= 0 wire infsign; // sign if result= Inf reg negsum; // negate result of adder reg selsum1; // select +1 mode from compound adder @@ -50,27 +51,35 @@ logic tmp; assign psign = xsign ^ ysign; // Invert addend if sign of Z is different from sign of product assign invz = zsign ^ psign; - assign invz = (zsign ^ psign); - // Select +l mode for adder and compute if result must be negated - // This is done according to cases based on the sticky bit. - always @(invz or negsum0 or negsum1 or bs or ps) - begin - if (~invz) begin // both inputs have same sign //KEP if overflow - negsum = 0; - selsum1 = 0; - end else if (bs) begin // sticky bit set on addend - selsum1 = 0; - negsum = negsum0; - end else if (ps) begin // sticky bit set on product - selsum1 = 1; - negsum = negsum1; - end else begin // both sticky bits clear - selsum1 = negsum1; // KEP 210113-10:44 Selsum1 was adding 1 to values that were multiplied by 0 - // selsum1 = ~negsum1; //original - negsum = negsum1; - end - end + //do you invert z + assign invz = (zsign ^ psign); + + assign selsum1 = invz; + //negate sum if its negitive + assign negsum = (selsum1&negsum1) | (~selsum1&negsum0); + // is the sum negitive + // if p - z is the sum negitive + // if -p + z is the sum positive + // if -p - z then the sum is negitive + assign sumneg = invz&zsign&negsum1 | invz&psign&~negsum1 | (zsign&psign); + //always @(invz or negsum0 or negsum1 or bs or ps) + // begin + // if (~invz) begin // both inputs have same sign + // negsum = 0; + // selsum1 = 0; + // end else if (bs) begin // sticky bit set on addend + // selsum1 = 0; + // negsum = negsum0; + // end else if (ps) begin // sticky bit set on product + // selsum1 = 1; + // negsum = negsum1; + // end else begin // both sticky bits clear + // //selsum1 = negsum1; // KEP 210113-10:44 Selsum1 was adding 1 to values that were multiplied by 0 + // selsum1 = ~negsum1; //original + // negsum = negsum1; + // end + //end // Compute sign of result // This involves a special case when the sum is zero: @@ -91,6 +100,6 @@ logic tmp; assign infsign = zinf ? zsign : psign; //KEP 210112 keep the correct sign when result is infinity //assign infsign = xinf ? (yinf ? psign : xsign) : yinf ? ysign : zsign;//original assign tmp = invalid ? 0 : (inf ? infsign :(sumzero ? zerosign : psign ^ negsum)); - assign wsign = invalid ? 0 : (inf ? infsign :(sumzero ? zerosign : psign ^ negsum)); + assign wsign = invalid ? 0 : (inf ? infsign :(sumzero ? zerosign : sumneg)); endmodule diff --git a/wally-pipelined/src/fpu/FMA/tbgen/results.dat b/wally-pipelined/src/fpu/FMA/tbgen/results.dat index 3bf08c13..9fbfc777 100644 --- a/wally-pipelined/src/fpu/FMA/tbgen/results.dat +++ b/wally-pipelined/src/fpu/FMA/tbgen/results.dat @@ -1,130 +1,653 @@ -0000000000000001 7fdffffeffffffbf 4000000000080004 4007ffffc007fff5 4000000000080005 Wrong xdenorm 85959 -0000000000000001 c3ded4d0b02cd6aa 000c158ac12ac439 83eed4d0b02cd6ae 80bed1cb4d7c8bf9 Wrong xdenorm zdenorm 91485 -c15000000010001f 434ffffffffffffe 47f55792228596a0 c7e550dbbaf4d2c2 47f557922285969f Wrong 97625 -0000000000000001 7fe0000000000001 4340000000000001 4340000000000002 4340000000000001 Wrong xdenorm 99467 -0000000000000001 bfdffffffffffffe 801fffffffffbfc0 8021ffffffffdfe0 801fffffffffbfc0 Wrong xdenorm 117273 -0000000000000001 ffe0000000000000 40d4000040000000 40d3ffc040000000 40d4000040000000 Wrong xdenorm 133851 -000fffffffffffff 3fcffc007fffffff 800fffffffffffff 800800ffe0000000 800c007fefffffff Wrong xdenorm zdenorm 147973 -000fffffffffffff 3feffffffffffffe 000ffffffffffffe 001ffffffffffffd 001ffffffffffffc Wrong xdenorm zdenorm 154727 -000ffffffffffffe 41dffffffffff900 0000000000000001 02000000000ffc7e 01fffffffffff8fc Wrong xdenorm zdenorm 230863 -0010000000000000 bf4fdffffff7fffe 800ffffffffffffe 801003fbfffffeff 801003fbfffffefe Wrong zdenorm 308227 -0010000000000000 be6fffffbffffff7 8000000000000000 8000000000000000 800000000fffffe0 Wrong w=-zero unflw 313753 -0010000000000001 bcafffffffffffff 801fffffffffffff 8000000000000000 8020000000000000 Wrong w=-zero unflw 392345 -0010000000000001 bfe0000000000001 800ffffffffffffe 8018000000000000 8017ffffffffffff Wrong zdenorm 397871 -802000003ffffbff c3cfffffffffffd7 0000000000000001 040000003ffffbeb 040000003ffffbea Wrong zdenorm 448219 -dc10000000001eff 0000000000000001 802d63f274ada691 9c20000000001f01 98f0000000001eff Wrong ydenorm 489971 -001ffffffffffffe 3fddfbffffffffff 000ffffffffffffe 001efdfffffffffe 001efdfffffffffd Wrong zdenorm 551371 -3ca0000000000000 0000000000000001 000e8d6ac606e59d 000e8d6ac606e59e 000e8d6ac606e59d Wrong ydenorm zdenorm 559353 -3ca0000000000000 434ffffffffffffe c019cab46f8c90a7 c011cab46f8c90a7 c011cab46f8c90a8 Wrong 586983 -3ca0000000000001 bfe000000fffdfff 3fee60af9e2e4b00 bfa9f5061d1b5008 3fee60af9e2e4aff Wrong 649611 -3ca0000000000001 7fe0000000000000 ffefffffffffffff 7ca8000000000000 ffeffffffffffffe Wrong 657593 -44f0000000000dff 000000007fbffffe 801ffffffffffffe 05000000ff800dfb 03bfefffff801bf0 Wrong ydenorm 680311 -3ca0000000000001 bfffffffffffffff 3ff0007ffffffc00 bfefff0000000802 3ff0007ffffffbff Wrong 680925 -3cafffffffffffff 3caffffffffffffe bcaffffffffffffe 397fffffffffffff bcaffffffffffffc Wrong 707327 -3cafffffffffffff c01ffffffffffffe c02cbe486a2b0809 c02cbe486a2b0809 c02cbe486a2b080a Wrong 758289 -000667c5d67e1d85 3fdfeffffdffffff 001fffffffffffff 002398247cab1886 002199247ccb1886 Wrong xdenorm 763201 -000007fffffffffe 3f6ffffffe01fffe 000ffffffffffffe 00100807ffff7fff 00100007ffffff7e Wrong xdenorm zdenorm 768727 -3caffffffffffffe 4060000001000006 4070001fffff7ffe 4070001fffff7ffe 4070001fffff7fff Wrong 771183 -3caffffffffffffe 3fdfffffffffffff 3fe0000000000000 3fe0000000000000 3fe0000000000001 Wrong 779165 -bfd7ffffffbfffff 4000000000000000 3fffffffffffffff 3ff40000001fffff 3ff4000000200000 Wrong 787147 -3caffffffffffffe c00ffffffffffffe c01000000020007f c01000000020007f c010000000200080 Wrong 824601 -3caffffffffffffe c00fffffffffff08 4010000000000001 4010000000000001 4010000000000000 Wrong 827671 -800000000000007e ffd26a0f710537a9 c01b3b74de550046 c018ee32f034592d c01b3b74de550022 Wrong xdenorm 861441 -47f9aa99d39dd7d8 0000000000000001 8000000000000000 0809aa99d39dd7db 04d9aa99d39dd7d8 Wrong ydenorm 908719 -bfef000004000000 c000000000000000 c34ff80000000006 42afffffffffebe0 c34ff80000000005 Wrong 1031519 -bfe0010000007fff 3ff00003ffffff7f 4340000000000000 4340000000000000 433fffffffffffff Wrong 1039501 -3fdffffffffffffe 000ffffffffffffe 8000000000000001 fcdfffffffffffff 0007fffffffffffe Wrong ydenorm zdenorm 1049939 -802000007fffffbf 400ffffffffffffe 8000000000000001 804100007fffffbe 804000007fffffbe Wrong zdenorm 1068973 -3fdffffffffffffe bfffffffffffffff 3fefffffffffffff 3caffffffffffffe 3cafffffffffffff Wrong 1099673 -c7fffffffb7fffff 37efffffffdffbff c34000003ffffffc c34000003ffffffc c34000003ffffffd Wrong 1104585 -3fe0000000000001 3ca0000000000000 bcaffffffffffffe bca7fffffffffffd bca7fffffffffffe Wrong 1193615 -bfe00000000effff 800fffffffffffff 8010000000000001 8000000000000000 8007fffffff88002 Wrong w=-zero ydenorm unflw 1223701 -3feffffffffffffe 3ff0000000000000 bfefffffffffffff bc9ffffffffffffc bca0000000000000 Wrong 1342817 -3feffffffffffffe 801fffffffffffff 800007fffffbfffe 802401fffffefffe 802003fffffdfffe Wrong zdenorm 1366149 -bfd0002000007fff 0000000000000001 0010000000000001 0000000000000000 0010000000000001 Wrong ydenorm unflw 1466845 -0003476357ebf517 7fe000004000003f 8000000000000000 3ff68ec70a130546 3fda3b1b284c141d Wrong xdenorm 1503685 -4000002003fffffe bc4fffffbffffffe bfbfffffffffe3ff bfbfffffffffe3ff bfbfffffffffe400 Wrong 1635081 -3ca00ffdffffffff 3fdffffffffffffe bfe0000000000001 bfe0000000000001 bfe0000000000000 Wrong 1687885 -801fffffbf000000 4012b6da70c3decc 0000000000000006 8041b6da4ac07317 8042b6da4ac07316 Wrong zdenorm 1753583 -b7ff7ffffffff000 7fe0000000000000 78b01fffefffffff 78b01f03efffffff 78b01f03f0000000 Wrong 1843841 -400fffffffffffff 8000000000000001 801fffffffffffff 8030000000000000 8020000000000001 Wrong ydenorm 1851209 -00003fefffffffff ffeffffffffffffe 8000000000000000 c0007fdffffffffd bfaff7ffffffff7e Wrong xdenorm 1881295 -800000000003fffe 578284b14dfcc6e4 8000000000000000 979284b14e060938 958284a80ba41fe6 Wrong xdenorm 1989973 -bfdeffffff000000 002ffffffffc3ffe 0000002003fffffe 8016ffeffcfc5dff 801effdffafc5e00 Wrong zdenorm 2018831 -401fffffffffffff 3fdffffffffffffe c340000000400002 433fffffff800000 c340000000400000 Wrong 2106633 -401fffffffffffff 4010000000000001 c050ffffffff0000 c041fffffffdffff c041fffffffe0000 Wrong 2117685 -4340000000000000 3fd0000000000000 3fd0000000000001 4320000000000000 4320000000000001 Wrong 2243555 -bcb58ba32df145e0 3fbe0000003fffff 3fe0000000000000 3fe0000000000000 3fdfffffffffffff Wrong 2365741 -bfed82e3c6c037db 3ff0000000000000 4340000000000000 4340000000000000 433fffffffffffff Wrong 2389687 -3fdfffffffff7000 bcaffffffffffffe 3fe0000000000001 3fe0000000000001 3fe0000000000000 Wrong 2417317 -8000000002000000 ff100001efffffff 8d261bb2da873976 3f200001f400007b 3d800001efffffff Wrong xdenorm 2422229 -bb0fb893e0decb72 c1cffff7ffbfffff c03ffc0000003fff c03ffc0000003fff c03ffc0000003ffe Wrong 2546871 -800000000e000000 3fffffffffffffff 034ffff80ffffffe 034ffff80ffffffc 034ffff80ffffffe Wrong xdenorm 2600903 -7fe0000000000001 4000000000000000 ffefffffffffffff 7ff0000000000000 7cb8000000000000 Wrong w=+inf 2602745 -7fe0000000000001 8000000000000001 c010000000000001 c014000000000002 c010000000000002 Wrong ydenorm 2619323 -7fe0000000000001 bcafffffffffffff 7fefffffdffffffc fe70000002800000 7fefffffdffffffb Wrong 2626077 -7fefffffffffffff 0000000000000001 37ffffff7ffffeff 4000000000000001 3ccfffffffffffff Wrong ydenorm 2653707 -3feffffffffbfffd 3ca0000000000001 bfe0000000000001 3fe0000000000000 bfe0000000000000 Wrong 2660461 -000ffffffff00006 bfe0000000000001 0000000000000001 7dfffff400000002 8007fffffff80002 Wrong xdenorm zdenorm 2770981 -fd61dd32fb8e3b2c 0000000000000001 801ffffffffffffe bd71dd32fb8e3b2e ba41dd32fb8e3b2c Wrong ydenorm 3003073 -000fff000000000f 3ff00800001fffff 8010000000000000 0000000000000000 000006ff801ffe0e Wrong xdenorm unflw 3117277 -8000000000000001 400effffff000000 0010000000000000 8000000000000000 000ffffffffffffc Wrong w=-zero xdenorm unflw 3143065 -8000000000000001 40211275ffe5ee3c 0000000000000001 802e24ebffcbdc7c 8000000000000008 Wrong xdenorm zdenorm 3148591 -8000000000000001 c1c01ffffffffefe 03100007fe000000 0310000900000000 03100007fe000000 Wrong xdenorm 3152889 -8000000000000001 3fe0000000000001 800fffffffffffff 8014000000000000 8010000000000000 Wrong xdenorm zdenorm 3155345 -8000000000000001 7fef848cc01517b4 c340000000000001 c340000000000002 c340000000000001 Wrong xdenorm 3170695 -8000000000000001 7feffffffffffffe 410ffffffc007ffe 410fffeffc007ffe 410ffffffc007ffe Wrong xdenorm 3173151 -8000000000000001 bffffffffffffffe 002e000000100000 0033000000080000 002e000000100001 Wrong xdenorm 3195255 -8000000000000001 ffe0000000000000 3feffffffffffffe 4000000000000000 3ff0000000000001 Wrong xdenorm 3205079 -8000000000000001 ffe0000000000001 c1ffbfffdffffffe c1ffbfffdfeffffe c1ffbfffdffffffe Wrong xdenorm 3206307 -800fffffffffffff 3ff0000000000000 001ffffffffffffe 0000000000000000 000fffffffffffff Wrong xdenorm unflw 3227183 -3e7ffffffefc0000 bfffffffffffffff 41c0ea1ad0c683e5 c1be2bca5e72f83a 41c0ea1ad0c683e3 Wrong 3264023 -3fffa9456a66b8c6 3caffffffffffffe c00ffffffffffffe c00ffffffffffffe c00ffffffffffffd Wrong 3290425 -800ffffffffffffe 3fe0000000000001 0010000400000010 0000000000000000 0008000400000011 Wrong xdenorm unflw 3294723 -800ffffffffffffe 3fd0000000007ffe 000fffffffffffff 0007ffffffffc001 000bffffffffe000 Wrong xdenorm zdenorm 3308845 -800ffffffffffffe c010000000000000 800dfede47fbc1e2 002880486e010f84 00290090dc021f0b Wrong xdenorm zdenorm 3338931 -bfdffc90d6e1fc1f 3ca1ffffffffeffe bfe66ad464a87aac bfe66ad464a87aac bfe66ad464a87aad Wrong 3367175 -8010000000000000 bfe0000000000000 000fffffffffffff 0018000000000000 0017ffffffffffff Wrong zdenorm 3398489 -7fe800000000003e 8004de935d68d1e8 801fffffffffffff c0034ddd0c1d3b0e bfed37743074ebbb Wrong ydenorm 3437785 -8010000000000001 bfefffffffffffff 801ffffffffffffe 8000000000000000 800ffffffffffffe Wrong w=-zero unflw 3470327 -801fffffffffffff bfdffffffffffffe 0000000000021fff 0018000000010ffe 0010000000021ffe Wrong zdenorm 3537867 -0005e0458a43fbdb 7fdfffbfffffffff 0000000000000000 3ffbc0539371cea5 3fe780e726e39d4b Wrong xdenorm 3691981 -bca0000000000001 3cafffffffffffff 3cafffffffffffff b970000000000000 3caffffffffffffe Wrong 3707945 -bca0000000000001 3fefffffffffffff bff0400000000400 bff0400000000400 bff0400000000401 Wrong 3714699 -bca0000000000001 c34ffffffffffffe c000000000000000 0000000000000000 b980000000000000 Wrong 3763205 -bcafffffffffffff 3fc200001fffffff 3fdffff00000ffff 3fdffff00000ffff 3fdffff00000fffe Wrong 3788379 -bcafffffffffffff 800ffffffffffffe 8000000000000000 0000000000000000 0000000000000001 Wrong ydenorm unflw 3807413 -bcaffffffffffffe 3fdffffffffffffe 3ff0000000000000 3ff0000000000000 3fefffffffffffff Wrong 3851621 -bcaffffffffffffe 001ffffffffc0000 8000000000000001 8000000000000005 8000000000000003 Wrong zdenorm 3878023 -7fec5fed92358a74 400000001bffffff ffefc0003ffffffe 7ff0000000000000 7fe8ffdb47bad466 Wrong w=+inf 3889689 -bfdfffffffffffff 000fffffffffffff 0000000000000000 8000000000000000 8007ffffffffffff Wrong w=-zero ydenorm unflw 4050557 -bfdfffffffffffff 8000000000000001 8010000000800400 8000000000000000 8010000000800400 Wrong w=-zero ydenorm unflw 4084941 -bfdfffffffffffff bff0000000000000 bfe0000000000001 bca7ffffffffffff bca8000000000000 Wrong 4100291 -bff400003ffffffe bfeffffffffffffe 434fffffffffffff 434fffffffffffff 4350000000000000 Wrong 4169059 -43f00002003ffffe 8000000000000001 0010000000000000 8400000200400000 80cffe04007ffffc Wrong ydenorm 4224319 -bfe0000000000000 801fffffffffffff 00000007fff80000 00180003fffc0000 00100007fff80000 Wrong zdenorm 4228617 -bfe0000000000000 c000000000000001 c00ffffffffffffe c007fffffffffffd c007fffffffffffe Wrong 4243967 -bfcfdffffeffffff 8000000000000001 000fffffffffe080 0011fdffffeff040 000fffffffffe080 Wrong ydenorm zdenorm 4573685 -bfffffffffffffff 0000000000000001 8010000000000001 8020000000000001 8010000000000003 Wrong ydenorm 4608683 -bfffffffffffffff 3cafffffffffffff 3ff00000040001ff bfeffffff7fffc06 3ff00000040001fd Wrong 4615437 -d2b6d8b0e4fde949 0000000000000001 0011fffffffffeff 92c6d8b0e4fde94c 8f96d8b0e4fde949 Wrong ydenorm 4678679 -3fd07dfffffffffe 8010000000000001 0000000000000001 7fef040000000006 80041f7fffffffff Wrong zdenorm 4716133 -bffffffffffffffe bfffffffffffffff c00ffffffffffffe bcbffffffffffffc bcbffffffffffffe Wrong 4730255 -c000000000000001 00000000004fffff 801ffffffffffffe 80280000004fffff 80200000004ffffe Wrong ydenorm 4839547 -c00982d68cfe066b 000ffffffffffffe 8000000000000001 802d82d68cfe0668 802982d68cfe0668 Wrong ydenorm zdenorm 4959277 -346ffffffffffeef 480ffffeffffffe0 3fdfffffffffffff 3fdfffffffffffff 3fe0000000000000 Wrong 4962961 -c01fffffffffffff 0007ffffffff0000 8000000000000000 803ffffffffdffff 802ffffffffbffff Wrong ydenorm 5176633 -c01fffffffffffff bfc08000000fffff 434ffffffffffffe 434ffffffffffffe 434fffffffffffff Wrong 5193211 -c3a000000fffff7f 80000000000005fe 001000003ffffbff 03b0000010000b7b 0127f80817f81f3f Wrong ydenorm 5450477 -0012000000000001 4000000000000001 000909a97b1f06a1 0028426a5ec7c1aa 002684d4bd8f8353 Wrong zdenorm 5535209 -ffe0000000000000 8000000000000001 c03000000000003f c02e00000000007e c03000000000003f Wrong ydenorm 5621169 -ffe0000000000001 3ca0c6fe6997e5e2 7fefffffffffffff fca8637f34cbf2f2 7feffffffffffffe Wrong 5673973 -ffe0000000000001 800fffffffffffff c340000000000001 4340000000000000 c340000000000000 Wrong ydenorm 5691779 -43f4595959dece4b 8000000000000001 801fffffffffffff 8404595959dece4e 80d45b5959dece4b Wrong ydenorm 5760547 -ffefffffffffffff 3ca14e19e3a06f13 7fe00000000ff7fe ffdfffffffe01006 7fe00000000ff7fd Wrong 5783265 -ffeffffffffffffe 8000000000000001 000fffffffffffff 4000000000000001 3ccffffffffffffe Wrong ydenorm zdenorm 5829929 -ffeffffffffffffe 800001fffbffffff bac0000ffeffffff 400003fff7fffffd 3f5fffbfffffeffe Wrong ydenorm 5832999 -bca0000004000080 bff0000000000009 bff0000000000001 3fefffffffffffff bff0000000000000 Wrong 5841595 -3fffffffff9ffffe 800000000f7ffffe 800ffdffbffffffe 801ffefffecffffa 800ffdffdefffffa Wrong ydenorm zdenorm 5887031 -41ccc32b421f1ac0 8000000000000001 802ffffc0000001e 81dcc32b461f1a44 802ffffc1cc32b60 Wrong ydenorm 5899925 -41ffffffffffff87 8000000000000001 0000000000000000 820fffffffffff8b 8000000200000000 Wrong ydenorm 6039335 +0000000000000000 7fefffffffffffff 3cafffffffffffff 3fffffffffffffff 3cafffffffffffff Wrong 30209 +ffe00000001fff00 8010000000000000 3fb9ffffffffffff 40006800001fff00 4000d000001fff00 Wrong 38265 +43d0000000fe0000 bcaffffffffffffe c1d001fffffffdff c1d00201fffffe1e c1d00200fffffe0f Wrong 44307 +b8016e821e7114dc bfeffffffffffffe b7f000000001fff7 37fadd043ce129ba 37f2dd043ce029bf Wrong 50349 +0000000000000000 ffeffffffffffffe c340000000000000 c340000000000002 c340000000000000 Wrong 66461 +3feffff77fffffff bfc0003fffffffbe 40200000fffbffff 402f7fff21fc8801 401f800021f88800 Wrong 94657 +c0003fffffffff7f 37effffffe004000 381e29836bc8d7f8 37fbd306d9996ff2 381609836c4ac7f8 Wrong 118825 +be5bffffffffeffe c01fffffffffffff 3ff7c1136e8aa3ca 3ff7c113de8aa3ca 3ff7c113a68aa3ca Wrong 128895 +423fdfc000000000 3ca0000000000001 c00584e2101be3ef c00584d2203be3ef c00584da182be3ef Wrong 147021 +c03c54bd6921b05d c02fe007ffffffff c0020b6d2412fdf2 407c266453c3d5f6 407c1458e69fc2f8 Wrong 149035 +375fe20000000000 3fe0000000000001 b46ffffffffe0010 374fe1ffffffffc2 374fe1ffffffff82 Wrong 153063 +403fffffe001ffff 3e5daa9beba734ca 4023fe0e11be1e1e 4023fe0e4d1355ba 4023fe0e2f68b9ec Wrong 155077 +40e200000000003f 4000000000000000 41cffffffffffdfe 41c0011ffffffdfe 41d00047fffffeff Wrong 159105 +ba5bfffffffbffff c3eff8f4a38946a4 c03fffffbfffc000 c03fffffbf1ff150 c03fffffbf8fd8a8 Wrong 167161 +50aafe7c26407d06 3ffdfff7ffffffff 0e058c435455cc58 50b94e8da43d6ba4 50b94e8da43d6ba5 Wrong 173203 +000fffffffffffff ffeffffffffffffe 3ff0000000000001 bffbfffffffffffc c007fffffffffffc Wrong xdenorm 205427 +43dc9799aeac7b3a 3ff0000000000000 c0fff7ffffffffff 43dc9799aeac7afa 43dc9799aeac7aba Wrong 225567 +bcaffc0000000ffe c0100000001ffffb bfcffff7ffffbffe bfcffff7ffffbfbe bfcffff7ffffbfde Wrong 245707 +403000000000080e bfdfffffffffffff c05dfff800000000 c00fff8000002036 c05ffff800000102 Wrong 255777 +412007fffeffffff bfffffffffffffff 4012000040000000 c13007fdbefff7fe c13007fb7effeffe Wrong 261819 +c7eff7fffdffffff 3fe0000000000000 45bffffff7fffe00 c7dff7fffdfbffff c7dff7fffdf7ffff Wrong 292029 +3fefff7ffffeffff 41e0001003ffffff c074811e0051b61d 41dfff9fde7ca3fb 41dfff9fb57a67fb Wrong 300085 +bfdfffffb0000000 401ffffffffffffe 4000000800003fff c007fffbafffdffe bfffffef5fff7ffe Wrong 304113 +0010000000000000 7fe0000000000000 c340000000000000 c34ffffffffffffe c33ffffffffffffe Wrong 308141 +c09000003fffbfff bcafffffffffffff c02ffffffffe01ff c02ffffffffe00ff c02ffffffffe017f Wrong 322239 +beef802000000000 c000000000000001 4000000000dfffff 4000001f80ffffff 4000000fc0efffff Wrong 334323 +bdfffff8000000fe ba37ef95f9e7fcb2 ba2fc000007fffff ba2fbfffffc0837f ba2fc000002041bf Wrong 336337 +bfe7da39e756fab8 c340000000000001 41d87200e15761ba 4337da3a183afc7c 4337da3a491efe3f Wrong 340365 +bf4ff8000003ffff 400fc000000001ff bfd1000000040000 bfd17ee040040fe8 bfd13f70200407f4 Wrong 348421 +bf3fe0003ffffffe 3ff0000000000000 bd83fffffffffffe bf3fe000413ffffe bf3fe000427ffffe Wrong 364533 +38f986d8ef088441 400ffffffffffffe b806d62a6adf932d 391986d3397de988 391986cd83f34ed0 Wrong 370575 +3d50fffffffffbff 434ffffffffffffe c13ff000007fffff c13fce0000800007 c13fdf0000800003 Wrong 376617 +c1c007ffffffff7f c7effffffffc1fff 47ffffffff800001 49c00800007e0e86 49c0080000fe0e86 Wrong 396757 +b7f9e772425b7128 bfaffdc000000000 380ffffffffbfffd 38019e59ffc12c68 381067967fef4b19 Wrong 402799 +40d000000000ffc0 3ffffffffffffffe bff8001fffffffff 40dfffcfffc1ff7e 40dfff9fff81ff7e Wrong 437037 +42a0400000ffffff 3fb0007feffffffe c09f800000000400 42604081f04207fc 42604081efc407fc Wrong 439051 +001fffffffffffff 7fe0000000000000 3ff0000000000001 4012000000000000 4014000000000000 Wrong 447107 +c09000fffffbfffe 4020000fffffffee 3fd0803fffffffff c0c000ff80bbffe8 c0c000ef007bffe8 Wrong 457177 +8020007ffdffffff 9beffff7fff7fffe 000ffffffff7fffe 0000000000000000 000ffffffff7fffe Wrong zdenorm unflw 475303 +ba00000000047fff c340000000000000 c08020000000001f c08020000000001b c08020000000001d Wrong 479331 +3f4000100000003f 3feffffffffffffe 422ff00000007fff 422ff0000000807f 422ff0000000803f Wrong 503499 +48700001fbfffffe bfcffffffc000400 c05bfffffffffbfe c8500001fa0001be c8500001fa0001bf Wrong 505513 +001ffffffffffffe 7feffffffffffffe bff0000000000001 401dfffffffffffc 401bfffffffffffc Wrong 519611 +4713ee08a1624b47 42ddfffe00000000 47f1ffffffffffee 4a02af26d8701c7c 4a02af26d8749c7c Wrong 529681 +3ed03feffffffffe bf1ffbfff7fffffe 3fd000000000037e 3fdffffffefc24fe 3fcffffffefc287c Wrong 535723 +3fbf800000001000 bff0000000000001 c1dfffff7fff7fff c1dfffff800f3fff c1dfffff80075fff Wrong 539751 +c02c219606615d02 40d0000001fdfffe bfb0002800000000 c10c219649e2ab8c c10c219689e34b8d Wrong 541765 +c0000000007ffff6 c010000000000000 c04fffffefffffff c037ffffefc00004 c04bffffefe00002 Wrong 545793 +401fffbffffffffc c0000000000100ff 3fdb0c7f1aa6dcb7 c02f938e03976683 c02f275c072ccb10 Wrong 553849 +409ff7fffffff7ff bf836ac78348eb47 bfc2000007ffffff c03377ecd1701431 c03389ecd1781431 Wrong 571975 +3ca0000000000000 434ffffffffffffe bcafffffffffffff 3ffffffffffffffe 3ffffffffffffffd Wrong 586073 +c1d45d281aa37a03 3c80dfffffffffff 3fe080000000fffe 3fe07fffd50c7f66 3fe07fffea86bfb2 Wrong 596143 +3ca0000000000000 bfffffffffffffff 3cafffffffffffff bc9fffffffffffff 0000000000000000 Wrong 610241 +bfd0000120000000 c000000000000000 3fc00003ff7fffff 3fe200019ff00000 3fe400021fe00000 Wrong 612255 +3ca0000000000000 c010000000000001 bff0000000000001 bff0000000000005 bff0000000000003 Wrong 616283 +3caf8000001fffff c340000000000000 3fdfffffdffeffff bffb800004201fff bff7800008203fff Wrong 618297 +3fb0ffffffffffff 407000000fffffbf c0f00000000800fe c0fffde00005e0fe c0effde0000de1fc Wrong 632395 +c050000003dfffff bd6000000004000f 3fef7fffffffffde 3fef80000007ffde 3fef80000003ffde Wrong 638437 +3ca0000000000001 3fe0000000000000 3ff0000000000001 3ff0000000000002 3ff0000000000001 Wrong 640451 +c5b00000000ffffd 434fffffffffffff 47ddffffffffdfff c90ffffe201ffff9 c90ffffc401ffff9 Wrong 654549 +3ca0000000000001 7feffffffffffffe 3cafffffffffffff 7c90000000000000 7ca0000000000000 Wrong 658577 +ffe0000000038000 3c100007ffffffff 3feffe0003fffffe fc00000800038000 fc00000800038001 Wrong 662605 +3ca0000000000001 c000000000000001 bcafffffffffffff bcb8000000000002 bcc0000000000001 Wrong 682745 +3ca0000000000001 c340000000000001 3ff0000000000001 bfe0000000000003 bcb0000000000001 Wrong 688787 +3cafffffffffffff 3fd0000000000000 3cafffffffffffff 3ca7ffffffffffff 3cb3ffffffffffff Wrong 706913 +c3e02000000fffff 3fdfffffffffffff c0cfffff00008000 c3d0200000100006 c3d020000010000e Wrong 708927 +3b1001fffff7ffff c3ec47dbdb9fc9e2 c19f80000000001f c19f800000001c6a c19f800000000e45 Wrong 710941 +3cafffffffffffff 3feffffffffffffe bff0000000000001 bfffffffffffffff bff0000000000000 Wrong 712955 +c1dfffffefffdfff 4010000000000001 43e0004001000000 43e0004000800000 43e0004000c00000 Wrong 721011 +3f0fffffebfffffe 7fd0000000404000 7fd0000010200000 7fd00080101fb202 7fd00040101fd901 Wrong 729067 +38c000fffffffff6 bca0000000000000 37e76291995d8252 37e76291995d424e 37e76291995d6250 Wrong 739137 +37ffc3cd8026eda0 bfe0000000000000 beab43550afc66d5 bea0000000000000 beab43550afc66d5 Wrong 745179 +3caf0000007fffff 43c3ba241e9c39cf 43efeffdffffffff 43efeffe00000000 43efeffdffffffff Wrong 747193 +bfaffffdfffffeff c000000000000000 3f4000080000001f 3fc007ff03ffff80 3fc00fff07ffff80 Wrong 751221 +3cafffffffffffff c010000000000001 3cafffffffffffff bccc000000000001 bcc8000000000001 Wrong 755249 +3fd000000fbfffff c01ffffffffffffe 3fe00000fffffefe bffbffffdf80003c bff7ffff9f80007d Wrong 757263 +bfd000080000000f b7e1fbffffffffff b800200000003ffe b7ebc0fdc0807ff8 b7fe007ee0407ffa Wrong 771361 +3caffffffffffffe 3fdffffffffffffe bcafffffffffffff b967ffffffffffff bca0000000000001 Wrong 779417 +3caffffffffffffe 3ffffffffffffffe 3ff0000000000001 3ff0000000000005 3ff0000000000003 Wrong 785459 +3caffffffffffffe c340000000000000 bcafffffffffffff bffffffffffffffe bfffffffffffffff Wrong 827753 +3ffb8acd8e55074b c34ffffffffffffe 41c3d05e9bb88a09 c35b8acd8960efa2 c35b8acd846cd7fb Wrong 829767 +3fd0000000000000 3feffffffffffffe 3cafffffffffffff 3fd0000000000001 3fd0000000000003 Wrong 851921 +f4d0700000000000 4061ae8809f49782 c3effffff7ffff7f f5422a4dc23a47a6 f5422a4dc23a47a7 Wrong 855949 +3fd0000000000000 400fffffffffffff bff0000000000001 3fdffffffffffffc bcb8000000000000 Wrong 857963 +3fd0000000000000 434fffffffffffff 4340000000000000 4330000000000000 4348000000000000 Wrong 864005 +4030001000000040 41efffffffffffff 42e0000000003ffa 42e0040004003ffa 42e0020002003ffa Wrong 880117 +3fd0000000000000 bfd0000000000001 3ff0000000000001 3fdc000000000002 3fee000000000002 Wrong 882131 +4020001000000003 bfdffffffffffffe bfe007ffffffffbe c011008ffffffffe c012010ffffffffa Wrong 884145 +c02fffffffff7fff bffffffffffffffe bf6ffefffffffffc 403fff8003ff7ffd 403fff0007ff7ffd Wrong 890187 +3fd0000000000000 ffe0000000000000 3cafffffffffffff ffb0000000000000 ffc0000000000000 Wrong 900257 +3fd0000000000001 3fffffffffffffff bcafffffffffffff 3fdfffffffffffff 3fdffffffffffffd Wrong 924425 +3fd0000000000001 401fffffffffffff 3ff0000000000001 4004000000000000 4008000000000001 Wrong 930467 +3fd0000000000001 bca0000000000001 3cafffffffffffff 3c97fffffffffffe 3cabfffffffffffe Wrong 948593 +3fd0000000000001 bfe0000000000000 bff0000000000001 bfe4000000000001 bff2000000000001 Wrong 954635 +401ffdfffff00000 bfeffffffffffffe c3400d15caf2c5ca c3400d15caf2c5d2 c3400d15caf2c5ce Wrong 956649 +3fd0000000000001 c000000000000000 4340000000000000 434fffffffffffff 433fffffffffffff Wrong 960677 +c3cffffffffbffbf c34fffffffffffff 43d0ed5944b60c56 472ffffffffbffbe 472ffffffffbffbf Wrong 968733 +3fd0000000000001 ffeffffffffffffe bcafffffffffffff ffc0000000000000 ffd0000000000000 Wrong 972761 +3c300000fffff7ff c2bfff0000000004 bfcbfb075ca1326a bfcbfd074cc13169 bfcbfc0754b131ea Wrong 976789 +c0f0e9718d9cdce9 3fd0000000000001 c01ffffffffffefd c0d0ea718d9cdcea c0d0eb718d9cdcea Wrong 986859 +3fdfffffffffffff 400fffffffffffff 3cafffffffffffff 3ffffffffffffffe 3fffffffffffffff Wrong 996929 +bffffc03ffffffff 4010000000000000 c23fdf0000000000 c23fdf00000ffe02 c23fdf000007ff01 Wrong 998943 +3fdfffffffffffff 4340000000000001 bff0000000000001 4320000000000000 432fffffffffffff Wrong 1002971 +bed003ffc0000000 c00ffdfffffefffe bf4ffffffbfffff7 bf4effd003ffc7f9 bf4f7fe7ffffe3f8 Wrong 1006999 +3fdfffffffffffff bfd0000000000000 bcafffffffffffff bfc0000000000003 bfc0000000000007 Wrong 1021097 +3fdfffffffffffff bff0000000000000 3ff0000000000001 3ca8000000000000 3fe0000000000002 Wrong 1027139 +3fdfffffffffffff c00ffffffffffffe c340000000000000 c340000000000002 c340000000000001 Wrong 1033181 +3f700000003fdfff bca0000000007fdf bf50400000007fff bf50400000008003 bf50400000008001 Wrong 1043251 +3fab095e19bc680a 3fe0000000000000 be74000000010000 3f9b095b99bc680a 3f9b095919bc680a Wrong 1059363 +c040010000020000 bff00000100000fe 3fd5ca5e3cb16df4 404016ca6e3fb26c 40402c94cc7c63da Wrong 1073461 +3fdffffffffffffe 7fe0000000000001 3ff0000000000001 7fc0000000000000 7fd0000000000000 Wrong 1075475 +403000200001ffff 43effffffffffffe c1eff7dfffffffff 443000200001801e 443000200001003f Wrong 1079503 +3fdffffffffffffe bfe0000000000000 3cafffffffffffff bfcffffffffffffa bfcffffffffffff6 Wrong 1093601 +bce000000001fc00 3ff80cabb0668b82 b9fffffffcffffff bce80cabb0698734 bce80cabb0698754 Wrong 1097629 +3fdffffffffffffe bffffffffffffffe bff0000000000001 bff7fffffffffffe bfffffffffffffff Wrong 1099643 +3fdffffffffffffe c01ffffffffffffe 4340000000000000 434ffffffffffffc 433ffffffffffffc Wrong 1105685 +b80fffffffff001e 593ffc07ffffffff 41c00000000007ef d15ffc07ffff003c d15ffc07ffff003d Wrong 1115755 +3fe0000000000000 3cafffffffffffff 3ff0000000000001 3ff0000000000002 3ff0000000000001 Wrong 1123811 +c1f000000401ffff 3ff0000000000000 41d0060da9f8c199 c1ebfe7c9d85cf98 c1e7fcf933079f32 Wrong 1131867 +400fffff7f800000 4010000000000000 3fe0000000400000 40303fffbfc10000 40307fffbfc20000 Wrong 1137909 +c34fbffffffff7fe 40100000001fffbe 406814b7cd412dec c36fc000003f776f c36fc000003f7763 Wrong 1158049 +3fe0000000000000 bfeffffffffffffe bcafffffffffffff bfd0000000000000 bfe0000000000001 Wrong 1166105 +3fe0000000000000 c00ffffffffffffe 3ff0000000000001 bff7fffffffffffe bfeffffffffffffa Wrong 1172147 +42c008fffffffffe c0200008001fffff 43effff5ffffffff 43efffb5dbdfed7e 43efffd5edeff6bf Wrong 1176175 +3fe0000000000000 c34fffffffffffff c340000000000000 c348000000000000 c350000000000000 Wrong 1178189 +c34ffefe00000000 bc4feffffffffffd c020000000000087 c02fc02202fe0087 c01fc02202fe010e Wrong 1182217 +3fe0000000000001 3fd0000000000001 bff0000000000001 bfd8000000000001 bfec000000000001 Wrong 1196315 +c65000000000003d 3fe0000000000000 c7f0008000080000 c7f0008004080000 c7f0008002080000 Wrong 1198329 +c1d000803ffffffe 3feffc00000000fe bffffffeffffefff c1cffd00607000f6 c1cffd0060f000f2 Wrong 1212427 +3f1fffff7f000000 41e007fff0000000 3faa435b79a850e6 411007ffc9a31bba 411007ffe3e67734 Wrong 1224511 +c310000040001fff bfb03ffffffffffd 41cfbfbffffffffe 42d0400830f0207c 42d0401020e0207c Wrong 1230553 +3fe0000000000001 bffffffffffffffe 3cafffffffffffff bfefffffffffffff bfeffffffffffffe Wrong 1238609 +3fe0000000000001 c01fffffffffffff bff0000000000001 c012000000000000 c014000000000001 Wrong 1244651 +ffd000407fffffff 8020fffffffe0000 404136d99d2d1461 400ab7117166a2ff 404246dde5acf460 Wrong 1254721 +3fefffffffffffff 3ca0000000000001 bcafffffffffffff 395fffffffffffff bc9ffffffffffffd Wrong 1262777 +bfd0100007ffffff 3fd297ee8e336ca8 c01000000000083e c0109554343074f9 c0104aaa1a183e9b Wrong 1266805 +3fefffffffffffff 3fe0000000000001 3ff0000000000001 3ff0000000000000 3ff8000000000001 Wrong 1268819 +3fefffffffffffff 4000000000000000 c340000000000000 c34ffffffffffffe c33ffffffffffffe Wrong 1274861 +42aefffffffffbfe 4040080000040000 c0000000000087fe 42ff0f800007bbec 42ff0f800007bbdc Wrong 1297015 +42401ffffffffbff bfefffffffffc03f be500200000003fe c2401fffffffdbde c2401fffffffdbdf Wrong 1303057 +3fefffffffffffff c00fffffffffffff bcafffffffffffff c00ffffffffffffe c00fffffffffffff Wrong 1311113 +3feffffffffffffe 3fd0000000000001 3cafffffffffffff 3fd0000000000002 3fd0000000000004 Wrong 1335281 +439fffffff0001ff c04fffffef7fffff c1d0000000300000 c3ffffffee8201fe c3ffffffee8401ff Wrong 1339309 +3feffffffffffffe 3ff0000000000000 bff0000000000001 3fdffffffffffffa bcc0000000000000 Wrong 1341323 +3feffffffffffffe 4010000000000000 4340000000000000 4340000000000004 4340000000000002 Wrong 1347365 +434fe000ffffffff bca0000000000001 3fa600a985274f0b bfff87fe59eb62c5 bfff2ffbb3d6c589 Wrong 1367505 +43c567cde92a1dfd b8000203fffffffe 3ee00000007fdfff 3ee00000007fdfea 3ee00000007fdff4 Wrong 1369519 +3feffffffffffffe ffe0000000000001 bff0000000000001 ffd0000000000000 ffe0000000000000 Wrong 1389659 +41f000007ffffbfe 3fef177822a30420 c0a0001040000000 41ef17789b5e3b6b 41ef17781b5db96b Wrong 1393687 +42c2000001ffffff 3caffffffffffffe 3fdff80000002000 3fd1180000202000 3fe0440000081000 Wrong 1403757 +3ff0000000000000 3fe0000000000000 bcafffffffffffff 3fdffffffffffffe 3fdffffffffffffc Wrong 1407785 +3ff0000000000000 4000000000000000 3ff0000000000001 4004000000000000 4008000000000000 Wrong 1413827 +c02ce0c00cac853f 400fffffffffffff c36fffc0000ffffe c36fffc00010000c c36fffc000100005 Wrong 1415841 +3ff0000000000000 401ffffffffffffe c340000000000000 c34ffffffffffff8 c33ffffffffffff8 Wrong 1419869 +3ff0000000010006 8010000000000001 801f7fffffffffff 801fc00000010006 8027c00000008003 Wrong 1433967 +3ff0000000000000 bcafffffffffffff bff0000000000001 bff0000000000003 bff0000000000002 Wrong 1437995 +3ff0000000000000 bfefffffffffffff 4340000000000000 434fffffffffffff 433fffffffffffff Wrong 1444037 +bf71bfb471d6b240 c3cefffffffffff7 41ffffc000000001 435131b70e477ca9 435131b74e46fca9 Wrong 1478275 +3ff0000000000001 3ff0000000000000 3cafffffffffffff 3ff0000000000001 3ff0000000000002 Wrong 1480289 +3ff0000000000001 400ffffffffffffe bff0000000000001 400c000000000000 4007ffffffffffff Wrong 1486331 +3d80000800003fff 401fffffffffffff 3b40000000000037 3db0000800004ffe 3db0000800005ffe Wrong 1488345 +3ff0000000000001 434ffffffffffffe 4340000000000000 4354000000000000 4358000000000000 Wrong 1492373 +8ea000800007fffe 7fe0000000000001 cc6000000200000f ce9000800008ffff ce9000800009ffff Wrong 1494387 +bddfff81ffffffff bf4ffffffff7ffbe 0ceffedffffffffe 3d3fff81fff7ffdc 3d3fff81fff7ffdd Wrong 1502443 +3ff0000000000001 bfdfffffffffffff 3ff0000000000001 3c90000000000001 3fe0000000000002 Wrong 1510499 +bf7107ffffffffff 3fdeffffffffdfff c02010000ffffffe c020121007fffffc c02011080bfffffd Wrong 1532653 +bff000403fffffff 3fdf3e0be31ebee9 b802c73b4852e1e1 bfdf3e8958467aee bfdf3e8958467aef Wrong 1538695 +3fc0fffffffffff7 3cafffffffffffff bf8011ffffffffff bf8011ffffffffdd bf8011ffffffffee Wrong 1542723 +37ffffff00000006 c7e00001ffffffde 41c795c3980a9c95 41c795c3970a9c7d 41c795c3978a9c89 Wrong 1544737 +41fffff7ffbffffe 400fffffffffffff bf59af9a3b538749 421ffff7ffbfff30 421ffff7ffbffe62 Wrong 1554807 +4e5f3dce4e5c17a8 aeea7c211e03a2ce c00001effffffffe c00001f000000675 c00001f000000339 Wrong 1556821 +3fffffffffffffff 401ffffffffffffe 3ff0000000000001 40307ffffffffffe 4030ffffffffffff Wrong 1558835 +3fffffffffffffff bcafffffffffffff 3cafffffffffffff bcb7fffffffffffe bcaffffffffffffd Wrong 1576961 +3fffffffffffffff bfe0000000000001 bff0000000000001 bff8000000000001 c000000000000001 Wrong 1583003 +3fdfffffffffdff7 bff0000000000000 bfb503dcf633da77 bfe1503dcf632da3 bfe2a07b9ec66b4a Wrong 1585017 +3fffffffffffffff c000000000000001 4340000000000000 434ffffffffffffc 433ffffffffffffc Wrong 1589045 +bfb0200001000000 3fffffffffffffff 3ec000000007fff7 bfc01ff800fffffb bfc01ff000fffff7 Wrong 1621269 +c3e76f2c56d0d8d0 c04fc00000000020 42ef800000000007 4447404e3d233736 4447404e7c233736 Wrong 1623283 +401fffffdeffffff 4010000000000001 3fdc00000fffffff 40401bffef900000 404037ffefa00000 Wrong 1627311 +bca0000dffffffff b8500000000fffee 36c9b3089edd6940 36c9b308a0dd6b00 36c9b3089fdd6a20 Wrong 1635367 +3ffffffffffffffe bfd0000000000001 bcafffffffffffff bfe0000000000001 bfe0000000000002 Wrong 1649465 +3ffffffffffffffe bff0000000000001 3ff0000000000001 bff7ffffffffffff bfeffffffffffffe Wrong 1655507 +3ffffffffffffffe c010000000000000 c340000000000000 c340000000000008 c340000000000004 Wrong 1661549 +bfbf80000001ffff 3f3fffffffefffdf 3fc573070215e3ae 3fc56f170215e566 3fc5710f0215e48a Wrong 1665577 +bfbfffff007fffff 000fffffffffffff 000bffffffc00000 fff0000000000000 000a00000fb80000 Wrong ydenorm zdenorm w=-inf 1675647 +3eeffffffffffbfe bfa78bde48d46ae7 be6413896ff4d5bd bea82c7a94540ea2 bea8cd16dfd3b550 Wrong 1677661 +47f0000002000000 3cafffffffffffff c5fffdffffffe000 c5fffdfdffffdfc0 c5fffdfeffffdfe0 Wrong 1681689 +4000000000000000 3fdffffffffffffe 4340000000000000 4340000000000001 4340000000000000 Wrong 1685717 +bfd0fffff7ffffff 4340000000000001 c0b0002000001ffe c320fffff8001000 c320fffff8002000 Wrong 1699815 +c0332683837ce949 c0f000000800ffff 41e0000000000fff 41e004c9a0e35456 41e00264d071b22b Wrong 1713913 +4000000000000000 c000000000000000 bff0000000000001 c012000000000000 c014000000000000 Wrong 1728011 +c1df000000004000 3e46552ef24d77ca 402403ffffffffff c030a1857abb38b6 c027410af576716d Wrong 1732039 +4000000000000000 c340000000000000 4340000000000000 c348000000000000 c340000000000000 Wrong 1734053 +bd6ffff800000040 c34fffffffffffff c06ffffffa000000 40cfbff8000c003f 40cf7ff80018003f Wrong 1736067 +4000000000000001 3caffffffffffffe 3ff0000000000001 3ff0000000000005 3ff0000000000003 Wrong 1752179 +c34407ffffffffff 3fd0000000000001 434ee78a270158c4 4334e38a270158c4 4349e58a270158c4 Wrong 1754193 +bef0000040002000 c00fffdffffeffff 3f94c3676ce5c5c1 3f94e3674d65c481 3f94d3675d25c521 Wrong 1756207 +4000000000000001 3fefffffffffffff c340000000000000 c34ffffffffffffe c33ffffffffffffe Wrong 1758221 +c3faf4d1799b420e 4010000000000001 c3335809be152176 c41af4f829aebe3a c41af51ed9c23a64 Wrong 1766277 +4020fefffffffffe c01ffffffffffffe 402fc3fffffffffe c04e057ffffffffa c04a0cfffffffffa Wrong 1768291 +3f2fffddffffffff bffffffffffffffe c1e00000001003fe c1e0000000100bfe c1e00000001007fe Wrong 1796487 +4000000000000001 c010000000000000 3ff0000000000001 c01e000000000002 c01c000000000002 Wrong 1800515 +4000000000000001 c34ffffffffffffe c340000000000000 c362000000000000 c364000000000000 Wrong 1806557 +3fd0005ffffffffe c3e411c0691b2909 c34ffffff81fffff c3c42238d399afa9 c3c43238d395bfa9 Wrong 1810585 +c1c01f7fffffffff c0cbfffff8000000 bfe0000002000004 429c371ff7f03efe 429c371ff7f03dfe Wrong 1816627 +400fffffffffffff 3fdfffffffffffff bff0000000000001 3ff7fffffffffffe 3feffffffffffffa Wrong 1824683 +c1c0000000000fde 3fe0000000000001 41d4cbff08b3d9b1 41b997fe1167a383 41d0cbff08b3d5b9 Wrong 1826697 +400fffffffffffff 3fffffffffffffff 4340000000000000 4340000000000008 4340000000000004 Wrong 1830725 +c03f8000000000fe 4340000000000000 c1c0040000000007 c38f8000008020fe c38f8000010040fe Wrong 1838781 +c03100000001ffff bfeffffffffffffe 414fffff800fffff 4140001080100001 4150000400080000 Wrong 1862949 +402fffffe0040000 c3ea62add43fe399 c3d000001e000000 c42aa2adba58821a c42ae2adbad0821a Wrong 1864963 +4050000090000000 c00fffffffffffff 40bfffffffffbffe 40bdffffedffbffe 40befffff6ffbffe Wrong 1868991 +400fffffffffffff c01ffffffffffffe bff0000000000001 c0403ffffffffffe c0407fffffffffff Wrong 1873019 +c0377bbf63a456e8 c34fffffffffffff c0bfffffff7fefff 43977bbf63a456a7 43977bbf63a45667 Wrong 1875033 +400ffffffffffffe 3cafffffffffffff bcafffffffffffff 3ccbfffffffffffd 3cc7fffffffffffd Wrong 1891145 +3ff0000007c00000 3fd0000000000001 c02fffffffff3fff c02effffff833fff c02f7fffffc13fff Wrong 1893159 +400ffffffffffffe 3fefffffffffffff 3ff0000000000001 4011fffffffffffe 4013ffffffffffff Wrong 1897187 +bcdfffffffff7bfe 3ff0000000000000 be200ffffffffff6 be201001fffffff6 be201000fffffff6 Wrong 1899201 +400ffffffffffffe 4000000000000001 c340000000000000 c34ffffffffffff8 c33ffffffffffff8 Wrong 1903229 +c1d0000007fffeff c07fffffff03ffff bfdffffffffe7ffe 426000000781f6fe 426000000781eefe Wrong 1913299 +c013a5cd955a8eca 3e007fffff7fffff 3b0059c22188f0f5 be2442fc016834d0 be2442fc016834ce Wrong 1919341 +400ffffffffffffe bfd0000000000000 4340000000000000 434fffffffffffff 433fffffffffffff Wrong 1927397 +41c00000000fffef c01fffffffffffff 40700007fffbfffe c1effffff01ff7dd c1efffffe01fefdd Wrong 1941495 +bfe8f26bc072a863 b81ffffffff00000 381000020fffffff 3820793664331796 38247936e8331796 Wrong 1949551 +4010000000000000 3fdfffffffffffff 3cafffffffffffff 3fffffffffffffff 4000000000000000 Wrong 1963649 +4010000000000000 3ff0000000000001 bff0000000000001 400c000000000002 4008000000000002 Wrong 1969691 +3fdfffbffffffffa 4000000000000000 400080003fffffff 40003ff01ffffffe 40087ff03ffffffe Wrong 1971705 +401efffffffbffff 400c000000000fff 3fee5f5b0ddd3442 403b997d6c34044f 403c12fad86b7920 Wrong 1973719 +4010000000000000 4010000000000001 4340000000000000 4340000000000010 4340000000000008 Wrong 1975733 +4010000000000000 bca0000000000000 3ff0000000000001 3ffffffffffffffd 3feffffffffffffe Wrong 1993859 +4010000000000000 bfdffffffffffffe c340000000000000 c340000000000002 c340000000000001 Wrong 1999901 +c1c1ffffffffffbf c1f20000000007fe beefdfffffffffef 43c44000000008b4 43c44000000008b5 Wrong 2040181 +4010000000000001 4000000000000001 3ff0000000000001 4021000000000002 4022000000000002 Wrong 2042195 +4010000000000001 4340000000000000 c340000000000000 435c000000000002 4358000000000002 Wrong 2048237 +4010000000000001 bcaffffffffffffe bff0000000000001 bff0000000000009 bff0000000000005 Wrong 2066363 +4010000000000001 bfeffffffffffffe 4340000000000000 434ffffffffffffc 433ffffffffffffc Wrong 2072405 +3fafffff00040000 41c000000000007f 3fb6225da8dafef7 417fffff00b513eb 417fffff016626d9 Wrong 2076433 +3fdfff80007fffff c010000000000001 c000000003fe0000 c007ffc0023f0000 c00fffc0043e0000 Wrong 2080461 +3fb00000000000fd 3648d98a332e5571 35080008e5baca0b 3608d9963332c9d7 3608d9a233373cb5 Wrong 2088517 +be1ffff0ffffffff 3f5fffff00000000 3fcffffffdfbffff 3fcffffffdf80001 3fcffffffdfa0000 Wrong 2100601 +401fffffffffffff 3ff0000000000001 3cafffffffffffff 4020000000000000 4020000000000001 Wrong 2108657 +c00ffffffff7bffe 3ffffffffffffffe bfd47afa8ed01f9a c02051ebea37207c c020a3d7d47260fb Wrong 2110671 +401fffffffffffff 4010000000000000 bff0000000000001 403f7fffffffffff 403effffffffffff Wrong 2114699 +bf90b94940132032 7fefffffffffffff ffdfbfffffffdfff ffd1d72928024405 ffe065ca4a008901 Wrong 2122755 +401fffffffffffff bfdffffffffffffe 3ff0000000000001 c00bfffffffffffd c007fffffffffffd Wrong 2138867 +c34ff80000001000 bfe0000000000001 c3ff7efffffffffe c3ff7b00fffffffc c3ff7d007ffffffd Wrong 2140881 +400fdffe00000000 4000beb28ac6e8df c1df7ffff8000000 c1df7ffff3d4834d c1df7ffff5ea41a6 Wrong 2142895 +401fffffffffffff bfffffffffffffff c340000000000000 c340000000000010 c340000000000008 Wrong 2144909 +4020000000003fbe c000000000000001 c1cfefffffffff7f c1cff0000fffff7f c1cff00007ffff7f Wrong 2146923 +3fceb158f9d7dfa5 c340000000000001 c34c63caebfbfe18 c3104084a9c7d807 c3501cfb059b7d06 Wrong 2152965 +b7e00001ffffff00 3caffffffffffffe b800000001ffffff b800000002000000 b800000001ffffff Wrong 2171091 +3fe0000ffffffffc bcae000000001ffe 0010040000000006 bc9e001e00001ff6 bc9e001e00001ff7 Wrong 2185189 +40c00007fc000000 c1cffffff8001fff bf1fff8000100000 c2a00007f8000e00 c2a00007f8000e01 Wrong 2191231 +401ffffffffffffe bcaffffffffffffe 3cafffffffffffff bcddfffffffffffc bcdbfffffffffffc Wrong 2205329 +3fc013ffffffffff 3fc000000ffffefe bfedffffffffdfff bfecfebffefea00f bfed7f5fff7f4007 Wrong 2209357 +401ffffffffffffe bfefffffffffffff bff0000000000001 c020fffffffffffe c021ffffffffffff Wrong 2211371 +bd6800000007ffff c3d8a89c08d5d92c 4000040000000800 41527e7546b68d07 41527e7586c68d07 Wrong 2215399 +401ffffffffffffe c00fffffffffffff 4340000000000000 434fffffffffffe0 433fffffffffffe0 Wrong 2217413 +c010140b934d5ff7 c03f80000003ffff c00fffffff0fffff 405f2776ca0819f0 405ea776ca0bd9f0 Wrong 2227483 +c1d000000000203f 001ffffffffffffe 001ffffffffff7bf 81ffffffffc0407c 81ffffffff80407c Wrong 2237553 +4340000000000000 3fd0000000000000 c340000000000000 c320000000000000 c338000000000000 Wrong 2241581 +3febffffffdffffe c3b0080000000fff c3f0000002000002 c3f1c0e001fe00c2 c3f0e07001ff0062 Wrong 2251651 +41f00000fc000000 401fffffffffffff 4366fe581a30b534 4366fe5a1a30d4b4 4366fe591a30c4f4 Wrong 2255679 +3fd34fb8606858f1 8000000000000001 0010000000f80000 fff0000000000000 0010000000f80000 Wrong ydenorm w=-inf 2267763 +4340000000000000 c010000000000001 c340000000000000 c362000000000001 c364000000000001 Wrong 2289917 +7fe3795af4a2b560 000ffffffffffffe 0020008000200000 3ff3795af4a2b55e 4003795af4a2b55e Wrong ydenorm 2304015 +434f8da321556224 c01b2588e50183be 427142efd04a8c6b c37ac47bc30b10c8 c37ac473219328a3 Wrong 2306029 +4340000000000001 3ca0000000000000 bff0000000000001 3fe0000000000001 0000000000000000 Wrong 2308043 +00114508bde544e1 3caffffffffffffe 800010000003fffe 8000000000000000 800010000003fffd Wrong w=-zero zdenorm unflw 2310057 +4340000000000001 3fe0000000000000 4340000000000000 4340000000000000 4348000000000000 Wrong 2314085 +3f8b17d321454789 3fd7ffffffffff7f bfe000080ffffffe bfefaec0969c3029 bfdfaec8a69c3027 Wrong 2318113 +4340000000000001 401ffffffffffffe bcafffffffffffff 4360000000000000 4370000000000000 Wrong 2326169 +3ff0078000000000 42b13867492e71c0 c15ffffffc0000fe 42b140797998bf8d 42b140793998bf95 Wrong 2330197 +c1effffffbffffbf 41eff99f4885a23d c3cfffe000000001 c3f1fccda243370a c3f3fccba243370a Wrong 2336239 +ca7fff0000000fff 3ca62fd739ece5a5 48000000003f0000 480ffe9d0de34cce 47fffe9d0e224cce Wrong 2348323 +c00ffbfdfffffffe c010000000000000 3eef7bb95b77143e 402ffbfefbddcada 402ffbfff7bb95b5 Wrong 2358393 +c03fffe07ffffffe c0c87ec3854317ef c23400016adf210a c233fff52b896ccc c233fffb4b3446eb Wrong 2378533 +434fffffffffffff 3fd0000000000000 3ff0000000000001 4330000000000000 4330000000000001 Wrong 2380547 +434fffffffffffff 3feffffffffffffe c340000000000000 4347fffffffffffd 433ffffffffffffa Wrong 2386589 +c1f0001fffff7ffe 3fffffffffffffff 4020000000043fff c200001fffdf7ffd c200001fffbf7ffd Wrong 2388603 +42a0020000000007 bdafe01fffffffff 3ff000000021ffff c05fc41c03ffbc0d c05fa41c03ff780d Wrong 2396659 +400c1d1b46e04d2b be4e00000000001f c02f7fff00000000 c02f7fff034b6932 c02f7fff01a5b499 Wrong 2402701 +bc1c9a8f60ba2ec4 413000000020ffff 3fe0000e00000000 3fe0000dffffe365 3fe0000dfffff1b3 Wrong 2408743 +c2400fffffffff7f bca0000000000000 4017fffffffffff7 4018000807fffff7 4018000403fffff7 Wrong 2412771 +7f600000fbffffff c024153a49a4352e b2a0000000200002 ff94153b85f28b34 ff94153b85f28b35 Wrong 2414785 +c1ffffffffff3fff bfe0000000000000 c01fffffffe00000 41efffffff7f3fff 41effffffeff3fff Wrong 2418813 +3ecffffffffe0000 3fc0fff800000000 c0d00010000007fe c0d0000ffffbc800 c0d0000ffffde7ff Wrong 2420827 +bfdc000000080000 bfbfffffffffefe0 c035edb781f59599 c035d1b781f58da7 c035dfb781f591a0 Wrong 2426869 +434ffffffffffffe 3ca0000000000000 3cafffffffffffff 3ffffffffffffffe 3fffffffffffffff Wrong 2447009 +434ffffffffffffe 3fdffffffffffffe bff0000000000001 433ffffffffffffc 433ffffffffffffb Wrong 2453051 +434ffffffffffffe 3ffffffffffffffe 4340000000000000 4361fffffffffffe 4363fffffffffffe Wrong 2459093 +c34ffffffffffc00 bbe000000000027f 43dfffffeffffbff 43d487c0c983e604 43dfffffeffffbff Wrong 2469163 +800ffffffdffffff bfcffe00003ffffe 800ffff01ffffffe 7ff0000000000000 800c00302077f7ff Wrong xdenorm zdenorm w=+inf 2475205 +434ffffffffffffe bca0000000000001 c340000000000000 c340000000000002 c340000000000001 Wrong 2483261 +c0effaffffffffff 3f1ffbfffffffdff bfc929330a6f28fb c0202dd2b614dd51 c02060251c29bba3 Wrong 2487289 +bff007f7ffffffff bff0000000000000 3ed10000007ffffe 3ff007fa2000000f 3ff007fc4000001f Wrong 2491317 +401ffffffbfffbff 3fbfffef80000000 c00000400000007f bf121080005ddfbe bff00088420001f6 Wrong 2493331 +434ffffffffffffe c000000000000001 3cafffffffffffff c350000000000000 c360000000000000 Wrong 2495345 +bf3fffffdc000000 c00ffffffffffffe bef00000000043fe 3f5fdfffdbffff76 3f5fbfffdbfffeee Wrong 2497359 +41d47345faf3a236 bca000effffffffe 401e32064ec9ba5f 401e32063a5541a3 401e3206448f7e01 Wrong 2505415 +445ff7ffefffffff 3fdfffffffffffff 41efeffffffffff6 444ff7fff0003fde 444ff7fff0007fbe Wrong 2521527 +c1b00800ffffffff c076927c86fdafbf bf80001effffffff 42369dc72e68f605 42369dc72e68f505 Wrong 2547709 +7fe0000000000000 8010000000000001 bff0000000000001 c004000000000001 c008000000000002 Wrong 2549723 +7fe0000000000001 3fdffffffffffffe 3cafffffffffffff 7fc0000000000000 7fd0000000000000 Wrong 2592017 +3fb00000000ffffe 3fe0000000000001 413001ffdfffffff 413001ffefffffff 413001ffe7ffffff Wrong 2594031 +7fe0000000000001 8000000000000001 bcafffffffffffff bcb4000000000001 bcc8000000000001 Wrong ydenorm 2616185 +7fefffffffffffff 000ffffffffffffe 4340000000000000 4340000000000004 4340000000000002 Wrong ydenorm 2652437 +43412867894a0dc5 c3f94739873de8c1 3fcbffdfffffffff c74b1b82c2ed1472 c74b1b82c2ed1473 Wrong 2680633 +b7f001000000003e bfdffffffffffffe b7f00000004001ff 371ffff7ffc7bffe b7dffe0001000782 Wrong 2696745 +c01fc000ffffffff bfeff0001fffffff 406bffeffffffffe 406dfaf211f4000e 406cfd7108fa0006 Wrong 2698759 +42cf0007fffffffe bfffffffffffffff 43fffb7fffffffff 43fffb707ffbffff 43fffb783ffdffff Wrong 2702787 +7feffffffffffffe 001fffffffffffff c340000000000000 c34ffffffffffff8 c33ffffffffffff8 Wrong 2724941 +c060003fffff7ffe 3ca0000000000001 c02000fffefffffe c02000ffff00000e c02000ffff000006 Wrong 2726955 +37e000000001ffff 434001000007ffff 38100007ffe00000 3b300100000a0020 3b300100000a0022 Wrong 2753137 +c03ffffffffffbef c00fffffffffffff c07ffffe02000000 c05ffffc04000412 c077fffe02000104 Wrong 2775291 +bca0001008000000 41c0000000000fdf 3feac3e63849250d 3feac3e5f848e4ed 3feac3e6184904fd Wrong 2777305 +3f0ff7ffffffc000 c34fffffffffffff 3feeffffffff7fff c26ff7ffffffb07f c26ff7ffffffa0ff Wrong 2781333 +bff9babb71f7f8b0 b80fffffdfffffee bb7000000000003e bb7000000000003d bb7000000000003e Wrong 2789389 +3f1fffffe0000004 426cedd14ca226b4 41e00007ffff7fff 41e1cee512fac556 41e0e776897d22aa Wrong 2795431 +c08ffffffffe001e 3ff0000000000000 c070220000000000 c092043fffff000f c094087fffff000f Wrong 2805501 +c3368331494c07f2 bfffffffffffffff 41d0000007ffffff 43468331594c07f9 43468331694c0801 Wrong 2841753 +405001ffffffffbf c010000000000001 bfe01ffffffffffb c0700607ffffffc0 c0700a0fffffffc0 Wrong 2847795 +c3407ffffffffffa 3fefffffffff007f c1cef00000000000 c34080000f777c3b c34080001eef7c3b Wrong 2861893 +c34ffc00ffffffff bef38655f21f4b0d 412ff8000000003f 425383e7c313b6b4 425383e9c293b6b4 Wrong 2873977 +c07ffe0001ffffff 4000000000000000 4210080000007ffe 421007ffe0027ffc 421007fff0017ffd Wrong 2878005 +bfdfffe00fffffff 3fccf2165e6eea40 3ff0000023fffffe 3ffc61c0f4a5cd1e 3fec61c118a5cd1c Wrong 2880019 +bfdeffffffff8000 c000000000000001 3fccc2e7f3c48eec 3ff14c2e7f3c08f0 3ff3185cfe7851de Wrong 2914257 +401618d4abc2ecba 3fe97989d3f9c41b 3deffffffffbffef 40119753370a7449 40119753370c7449 Wrong 2916271 +bfdce145472b2459 c1dffc3ffffffffe c3fffbfffffeffff c3fffbfffff7c886 c3fffbfffffb6443 Wrong 2934397 +431ff800000000ff 3fd0000000000000 407fffffbfffff7f 42fff800000010ff 42fff800000020ff Wrong 2938425 +bff00000107fffff c052f75c56a2dd94 bfd0005fffffffff 4052ef5c3a31f4cc 4052e75c0a31f4cc Wrong 2946481 +bda01000000000ff 400ffffffffffffe 3fcffe3fffffffff 3fcffe3fffdfdfff 3fcffe3fffefefff Wrong 2950509 +c02ff80000000002 119215fb360e73ac 114000200000000e 91d20d75af40f010 91d20975a740f010 Wrong 2958565 +8010000007f7ffff ffdc0ffffffffffe 3fefc00000003ffe 4002000006fd03fe 4005f80006fd0bfe Wrong 2964607 +4022e75b40b8c691 c010000000000001 bfd2ffed1d2049e5 c042fa5b2dd5e6dc c0430d5b1af30726 Wrong 2986761 +7fd03fffffbfffff 0000000000000000 3fffffff00003ffe 3ff81fff7fe01ffe 3fffffff00003ffe Wrong 2998845 +c047e499ddfa806a 3fdffffffffffffe b7fe0fffffffffff c037e499ddfa8068 c037e499ddfa8069 Wrong 3010929 +3d2ffffbfffffffe 434e000000000003 bff0000040ffffff 408dfbfc3fefc001 408df7fc3fdf8001 Wrong 3049195 +3fffffffff7f8000 c000000000000001 c0b0000800fffffe c0b0080800ffdfde c0b0040800ffefee Wrong 3053223 +c1f03ffff7ffffff 41d0000000bfffff c090000001007fff c3d03ffff8c2fffe c3d03ffff8c2ffff Wrong 3061279 +3fbffffffdfff7fe 3feffffffffee000 bfcffffff801ffff 3e17f35ffc004801 bfbffffff2052800 Wrong 3079405 +c21103fffffffffe 400fffffffffffff c3e0200ffffffffe c3e020100440fffe c3e0201002207ffe Wrong 3089475 +bfb00207fffffffe c1f80bd9803691dc c3f000200000007e c3f0001ffffcfea1 c3f0001ffffe7f90 Wrong 3091489 +8000000000000000 7feffffffffffffe bcafffffffffffff bffffffffffffffe bcafffffffffffff Wrong 3099545 +406ffe0000fffffe bfd0000000000001 400f499c83e9329a c04f03b31ce0b66b c04e096638c16cd6 Wrong 3113643 +c05fffffffdeffff bff0000000000001 c01000000007dfff 405f7fffffdec101 405effffffde8201 Wrong 3119685 +400040000007ffff bfa738fe57513611 c0200000000081ff c0205e5789436a5c c0202f2bc4a1f62e Wrong 3121699 +47e00010007fffff 40266ebea38fe729 c1f0001001fffffe 48166ed5130200ac 48166ed5130200ad Wrong 3139825 +bf1fffffffffefbe 4060001fff7ffffe bfb9717e7198ca76 bf6718e7158c6647 bfbd71867178c86d Wrong 3157951 +7a2e9622e5ca04a5 21f6a376abef6748 bfefff80000007ff 5c35a3762db52e1a 5c35a3762db52e1b Wrong 3176077 +3f4ffffffffffe06 3fe121d0404af4cc 403ef7a477cb376d 403ef7e8ff0c3899 403ef7c6bb6bb803 Wrong 3182119 +c100007fffffffbf b3fffffffffffffe 36cfffc00000000e 36cfffc00400200e 36cfffc00200100e Wrong 3188161 +bfbffffffffb7fff 40afffffef000000 3fd000000000fe00 c07ffdffeefb7fdf c07ffbffeefb7fc0 Wrong 3194203 +8000000000000001 ffe0000000000001 3ff0000000000001 3fd0000000000005 3ff0000000000003 Wrong xdenorm 3202259 +c090003ffffffffb 3fefffffffffffff 41d00000003ffe00 41dffffe0037fe00 41cffffe0077fc00 Wrong 3222399 +c0200000000017ff c3e07feffffffffe 41637ffffffffffe 44107ff0000019f5 44107ff000001b2d Wrong 3230455 +c010000000000ffa bfd0000000000000 3f60000000200002 3ff00400000017fa 3ff0080000001ffa Wrong 3252609 +3fd00000ffffff80 bff0000000000000 bf6000000020ffff bfd0100100002080 bfd0200100004180 Wrong 3258651 +3fcffffffff7ff7f bff4691aa0d59fcd 40600007ffe00000 406feb9ee53f2f7b 405feba6e51f2f7b Wrong 3260665 +7560000001fffffe 3fc1e915aabc5c49 f5dfc0000fffffff f5dfb70b85298340 f5dfbb85ca94c19f Wrong 3284833 +401ffffe07fffffe 4010000000000001 c1f7e00000000000 c1f7dffffc00003f c1f7dffffe000020 Wrong 3300945 +bf9ff7ffffffffff 41e828069d05f676 401b3add2f8a8e68 c19821fc8dc14660 c19821fc8023d7c8 Wrong 3327127 +3fc000000000bfff c01ffffffffffffe bfefff9000000000 bff7ffe40000bffe bfffffc80000bffe Wrong 3337197 +800ffffffffffffe ffe0000000000000 bcafffffffffffff 3feffffffffffffc 3ffffffffffffffb Wrong xdenorm 3341225 +c1c0000003ffffff 3cafffffffffffff 3ca0000000002fff be80000003dffffe be80000003bffffe Wrong 3355323 +b891000000000006 40000000003ff800 380ffffffffeffdf b8a0fc000043f7a6 b8a0f8000043f7c6 Wrong 3375463 +8010000000000000 7fefffffffffffff 4340000000000000 434ffffffffffffc 433ffffffffffffc Wrong 3377477 +c1dc00ffffffffff bfd0000000000000 bf8fffe000001000 41bc00fffffe0001 41bc00fffffc0003 Wrong 3391575 +ffd0008800000000 802b2144a835a75b 428000000000020f 4280000000003853 4280000000001d31 Wrong 3393589 +3f80001ffffefffe bfeffffffffffffe 41dfc10000000000 41dfc0fffffefffe 41dfc0ffffff7fff Wrong 3397617 +c00ffffc7fffffff 3fd7ffffdfffffff bca000400000000e bff7fffd4000037e bff7fffd4000037f Wrong 3411715 +3fbfffffefbfffff 3f600001ff7ffffe bfc000fffffffffe bfcff0fffe089fff bfbff1fffe089ffd Wrong 3417757 +3fbff7fffffffffd 47f0203ffffffffe c7fffffffe00fffe c7d7f1e40401fffe c7fdfc790000fffe Wrong 3423799 +41efffffffff807f 3fd0000000000001 c01feffffffff7ff 41cffffffe008081 41cffffffc018081 Wrong 3427827 +4248c62fe782eace c1effe0000004000 41dfff7ffffffffe c448c4a38484842c c448c4a38484642d Wrong 3435883 +bdcfe00ffffffffe bfdffffffffffffe bfc000000200000f bfc0000001e01fff bfc0000001f01007 Wrong 3464079 +41100008000ffffe bffffffffffffffe 3fb1baac953356d1 c1200007ee555368 c1200007dc9aa6d3 Wrong 3470121 +3dffff0000001fff 406ff08000000000 c04000000807ffff c0400000060907f7 c0400000070883fb Wrong 3472135 +bf5fffbffffdfffe 3ca0000000000001 3f1ffffffe0003ff 3f1ffffffe0003df 3f1ffffffe0003ef Wrong 3494289 +403fffffff801000 3fe0000000000001 bff0803fffffffff 402ef7fbff801002 402deff7ff801002 Wrong 3500331 +5e78a4f96abc9de7 4000000000000001 47f8c8e01d92ead7 5e88a4f96abc9de8 5e88a4f96abc9de9 Wrong 3506373 +c0d0080000000007 4011f8543ddec32b c1e712df030dcd92 c1e71327084f6d89 c1e7130305ae9d8d Wrong 3508387 +801fffffffffffff 7fe0000000000001 bff0000000000001 c012000000000000 c014000000000001 Wrong 3516443 +41f0000000002000 bcaffffffffffffe bfc1f235f0a8f509 bfc1f245f0a8f509 bfc1f23df0a8f509 Wrong 3530541 +c3c0000010000003 c343ff7fffffffff 0b7fffffffffffff 4713ff8013ff8002 4713ff8013ff8003 Wrong 3532555 +c02217a020fc8a2d 3fa000020000001e 3fcfffbffffeffff bfc42f64c7e19cdd bfa0be131f887378 Wrong 3550681 +c00bc65690157317 c030000000002001 402d9eb7730c175f 404f7a2d7e772d91 40519702366c583f Wrong 3568807 +3abfffffffff0400 400ffffffaffffff 37efe0000000ffff 3adffffffaff041f 3adffffffaff043f Wrong 3580891 +bca0000000000000 3fdfffffffffffff 3ff0000000000001 3ff0000000000000 3ff0000000000001 Wrong 3637283 +76c453fc3a9fc346 47d00fc000000000 7fdeca60d8a5decb 7fdeca65f2a59885 7fdeca6365a5bba8 Wrong 3677563 +bca0000000000000 bffffffffffffffe bcafffffffffffff 3c9ffffffffffffd b960000000000000 Wrong 3679577 +bca0000000000000 c01ffffffffffffe 3ff0000000000001 3ff0000000000009 3ff0000000000005 Wrong 3685619 +bed470c16ca5a9a9 c340000000000001 3fd0020000000008 422470c16ca5e9b2 422470c16ca629ba Wrong 3687633 +bca0000000000001 3cafffffffffffff 3cafffffffffffff 3caffffffffffffd 3caffffffffffffe Wrong 3703745 +be6dffffffffff7e c0a555407160bc9b 3ffeb19129135086 3ffeb2d127d9f531 3ffeb2312876a2dc Wrong 3707773 +bca0000000000001 3fe0000000000001 bff0000000000001 bff0000000000002 bff0000000000001 Wrong 3709787 +3f7ffffffffff7fc c1e1ffffffffffde c03fffff80000400 c1720000fffff75c c1720001fffff35c Wrong 3713815 +bec0008000003ffe 434ffffffffffffe 3fb14dec1eb3ba6a c220008000002eaf c220008000001d61 Wrong 3723885 +bca0000000000001 c00ffffffffffffe 3cafffffffffffff 3cc4000000000000 3cc8000000000000 Wrong 3752081 +bca0000000000001 c34fffffffffffff bff0000000000001 3ff8000000000000 3ff0000000000000 Wrong 3758123 +bcafffffffffffff 3fd0000000000001 bcafffffffffffff bca8000000000000 bcb4000000000000 Wrong 3776249 +bcafffffffffffff 3ff0000000000001 3ff0000000000001 3fffffffffffffff 3ff0000000000000 Wrong 3782291 +c3407ffffeffffff bfb9a56ed8cc7a8b c26080000000003f 430a708a4df88770 430a6e7a4df88770 Wrong 3786319 +bfc0000000800008 43d0001000000002 c3cffffbffff8000 c3c40002001fc022 c3d20000000fc011 Wrong 3804445 +c1f00080007ffffe 3fc000000000003b 3fcff80000000fff c1c0008000700439 c1c0008000600839 Wrong 3816529 +bcafffffffffffff c01fffffffffffff bcafffffffffffff 3cddfffffffffffe 3cdbfffffffffffe Wrong 3824585 +bcaffffffffffffe 3fe0000000000001 3cafffffffffffff b94ffffffffffffc 3c9ffffffffffffe Wrong 3848753 +400a345eeb63ab2b 3feffffffffffffe 3fc00001ffffbfff 400ab45efb63a929 400b345f0b63a729 Wrong 3850767 +bffa3a6cef49b307 c9603ffdfffffffe c47fffff803fffff 496aa3535bb93be6 496aa3535bb93be7 Wrong 3852781 +bcaffffffffffffe 4000000000000000 bff0000000000001 bff0000000000005 bff0000000000003 Wrong 3854795 +bcaffffffffffffe 4340000000000000 4340000000000000 434ffffffffffffe 433ffffffffffffe Wrong 3860837 +3fa0000003ffff7e 434fffffffffffff c3d7fffffffffffc c3d7feffffffbffc c3d7ff7fffffdffc Wrong 3862851 +3fef869027739b45 41c1000400000000 bfdfffff6fffffff 41c0bf8085a76f6c 41c0bf8085876f6c Wrong 3864865 +bcaffffffffffffe c34fffffffffffff 3cafffffffffffff 400ffffffffffffd 400ffffffffffffe Wrong 3897089 +e4c25c774d9f6f1b 401fc00000ffffff 3c3000000007efff e4f237be5f9713f6 e4f237be5f9713f7 Wrong 3907159 +bdf0000000020002 409fffffefff7fff c020000000008000 c020000020007ff0 c020000010007ff8 Wrong 3919243 +bfd0000000000000 3ff0000000000000 bcafffffffffffff bfd0000000000002 bfd0000000000004 Wrong 3921257 +bfd0000000000000 4010000000000000 3ff0000000000001 bfdffffffffffffe 3cb0000000000000 Wrong 3927299 +c1effffe0000007e 401fffffffffffff c3c73160da37c1be c3c73160e237c13e c3c73160de37c17e Wrong 3929313 +bfd0000000000000 434ffffffffffffe c340000000000000 c33fffffffffffff c348000000000000 Wrong 3933341 +bfd0000000000000 bfdfffffffffffff bff0000000000001 bfd8000000000002 bfec000000000002 Wrong 3951467 +bccb12e85bca0cfe bfe0000000000001 3f0fffff7fffefff 3f0fffff8001a12e 3f0fffff8000c896 Wrong 3953481 +41900007fffffffe c000000000000000 41ce00007fffffff 41b5fffc80000000 41c9fffe80000000 Wrong 3959523 +3feffffffff80040 43d00000017fffff 40803fe000000000 43d00000017c001f 43d00000017c0020 Wrong 3973621 +380fefffffff8000 3caffffffffffffe b7ff00000003ffff b7ff00000003fff7 b7ff00000003fffb Wrong 3983691 +bfef000fffffffff 43ed53d0520eac50 c1f9b9e740692e8a c3ec6940798019db c3ec69407999d3c2 Wrong 3985705 +bfd0000000000001 4000000000000000 3cafffffffffffff bfe0000000000000 bfdffffffffffffe Wrong 3993761 +bfd0000000000001 401ffffffffffffe bff0000000000001 c004000000000000 c008000000000000 Wrong 3999803 +bfd0000000000001 7feffffffffffffe 4340000000000000 ffc0000000000000 ffd0000000000000 Wrong 4005845 +bfd0000000000001 bcafffffffffffff bcafffffffffffff bc8ffffffffffffd bca7ffffffffffff Wrong 4017929 +bfd0000000000001 bfefffffffffffff 3ff0000000000001 3fe8000000000001 3ff4000000000001 Wrong 4023971 +bfd0000000000001 c000000000000001 c340000000000000 c34fffffffffffff c33fffffffffffff Wrong 4030013 +c1c2485c59a21ee6 3fdfffffffffffff 43e0008000001000 43e0007ffffb7de9 43e0007ffffdc6f4 Wrong 4056195 +bfb000000001fffb c13e89be71ac5f37 43e0000000000203 43e000000000027d 43e0000000000240 Wrong 4070293 +3cc56618ec6d04ec c02ffffffff00000 404003ffffe00000 404003ffffdffffd 404003ffffdfffff Wrong 4082377 +bfdfffffffffffff bfdfffffffffffff 3cafffffffffffff 3fd0000000000001 3fd0000000000003 Wrong 4090433 +3f3e007ffffffffe bfe0000000000000 3ff0000000001f7f 3ffffe1ff8001f7f 3feffe1ff8003efe Wrong 4092447 +bfdfffffffffffff bff0000000000001 bff0000000000001 bc90000000000001 bfe0000000000002 Wrong 4096475 +c0beffdfffffffff c000000000000000 bffdfffffffdfffe 40ceff6800000007 40cefef00000000f Wrong 4098489 +bfdfffffffffffff c010000000000001 4340000000000000 4340000000000002 4340000000000001 Wrong 4102517 +c070000000024000 c01ffffffffffffe c1e0000004003ffe c1effffe04003ffe c1dffffe08007ffc Wrong 4104531 +bf2ff00000000003 000ffffffffffffe 8022000000ffffff 802200ff80ffffff 8022007fc0ffffff Wrong ydenorm 4116615 +bfdffffffffffffe 3ca0000000000000 3ff0000000000001 3ff0000000000000 3ff0000000000001 Wrong 4120643 +3fc00000fffc0000 400fffffffffffff 423d5a6ff0405c99 423d5a6ff0415c99 423d5a6ff040dc99 Wrong 4134741 +bfdffffffb000000 4340000000000001 42b0007fffefffff c32fefff7b001002 c32fdffefb002002 Wrong 4140783 +43cfffffffefefff b9bffffefffff7ff 3fd066c1ac02aac5 3fd066c1abfeaac5 3fd066c1ac00aac5 Wrong 4148839 +bfdffffffffffffe bfe0000000000001 bcafffffffffffff 3fcffffffffffffc 3fcffffffffffff8 Wrong 4162937 +bfdffffffffffffe c000000000000001 3ff0000000000001 3ff8000000000000 4000000000000000 Wrong 4168979 +c0ffdffffffe0000 3f9fffff80000001 c34fffffff800000 c34fffffff800ff0 c34fffffff8007f8 Wrong 4173007 +bfdffffffffffffe c340000000000000 c340000000000000 bff0000000000000 c330000000000001 Wrong 4175021 +c080000000043fff 3e80000004007ffe c1c9224041a80188 c1c9224041a80588 c1c9224041a80388 Wrong 4185091 +bfe0000000000000 3caffffffffffffe bff0000000000001 bff0000000000002 bff0000000000001 Wrong 4193147 +bca003ffffff0000 400ac4372520559f 3fcbd9e12ac2c108 3fcbd9e12ac2c0ed 3fcbd9e12ac2c0fb Wrong 4203217 +4bb000040000003e 318ffffffffff7ff bfe0000000000017 bfeffffffffff017 bfdffffffffff02e Wrong 4209259 +c03ffefffffffdff 40bc282748cfc06d bf2ffffefdfffffe c10c274607d5782a c10c274608157828 Wrong 4227385 +bfe0000000000000 bff0000000000001 3cafffffffffffff 3fe0000000000002 3fe0000000000003 Wrong 4235441 +c3d0000007fffeff bffffffffffffffe 4343523e456566ff 43e0026a4fc8abab 43e004d497915858 Wrong 4237455 +bfe0000000000000 c010000000000000 bff0000000000001 3ff8000000000000 3feffffffffffffe Wrong 4241483 +bfe0000000000001 3fdffffffffffffe 3ff0000000000001 3fd0000000000002 3fe8000000000002 Wrong 4265651 +4070400000000100 4000000000000001 40300000001ff800 40808000000080e1 4080c000000100c1 Wrong 4273707 +398ffffffffbffc0 c0a783c6e834743b 381ffffffffef000 ba4783c6e82f8393 ba4783c6e82d8393 Wrong 4287805 +3fd007dffffffffe bfeffffffffffffe bfc5181d7bde39ef bfd54de75ef78e78 bfda93eebdef1cf4 Wrong 4303917 +3ca0000007fc0000 c34fffffffffffff 42d20f3b307165cc 42d20f3b307164cc 42d20f3b3071654c Wrong 4316001 +bfe0000000000001 ffeffffffffffffe c340000000000000 7fd0000000000000 7fe0000000000000 Wrong 4320029 +4120000010003fff bfb0000000028000 3ff0000001f7ffff c0dfffe020057c0e c0dfffc02005781e Wrong 4330099 +bfefffffffffffff 3caffffffffffffe 3cafffffffffffff bc9ffffffffffffb 396fffffffffffff Wrong 4332113 +41f0000007ffdfff c80ffc0000fffffe b81046efcde22968 ca0ffc0010fdc004 ca0ffc0010fdc005 Wrong 4336141 +bfefffffffffffff 3fefffffffffffff bff0000000000001 bff8000000000000 c000000000000000 Wrong 4338155 +bfefffffffffffff 400fffffffffffff 4340000000000000 434ffffffffffffc 433ffffffffffffc Wrong 4344197 +bfeffffffffffffe 3fdfffffffffffff bcafffffffffffff bfdfffffffffffff bfe0000000000000 Wrong 4404617 +bfeffffffffffffe 3fffffffffffffff 3ff0000000000001 bff7fffffffffffc bfeffffffffffff8 Wrong 4410659 +c1ffffffffffffdf 4000000000000000 402dfffeffffffff c20fffffffc3ffe1 c20fffffff87ffe3 Wrong 4412673 +bfeffffffffffffe 4010000000000001 c340000000000000 c340000000000004 c340000000000002 Wrong 4416701 +40234ca759ebc6df 3fd0007ffffffffb c20b30390456082e c20b3039042f6daa c20b30390442baec Wrong 4420729 +bfeffffffffffffe bca0000000000000 bff0000000000001 bff0000000000000 bff0000000000001 Wrong 4434827 +4032fffffffffffe bfefffffffffffff 3fefffbfffffbfff c0328001000000fd c0320002000001fd Wrong 4442883 +3e7491c102f637fb c00fffffffffffff 401ffffe000007ff 401ffffdd6dc85f9 401ffffdeb6e46fc Wrong 4448925 +c7f0000000007eff ba5001f800000000 41cfffffffffffeb 425009f800007f0e 425011f800007f0f Wrong 4469065 +bff0000000000000 3fefffffffffffff 3cafffffffffffff bfeffffffffffffe bfeffffffffffffd Wrong 4477121 +bff0000000000000 4000000000000001 bff0000000000001 c004000000000001 c008000000000002 Wrong 4483163 +40057f9ad8c03509 bfcfffff00007fff 3fefc0ffffffffff bfc67c68b30ed105 3fd482cba678977d Wrong 4487191 +bff0000000000000 4340000000000001 4340000000000000 c330000000000002 c000000000000000 Wrong 4489205 +bff0000000000000 bfd0000000000000 3ff0000000000001 3fe8000000000001 3ff4000000000001 Wrong 4507331 +3fb0000001dfffff bfdfffffffffffff 40ffffffffc10000 40fffffeffc0ffe2 40ffffff7fc0fff1 Wrong 4509345 +bff0000000000000 bfeffffffffffffe c340000000000000 c34fffffffffffff c33fffffffffffff Wrong 4513373 +bca3b1086bf83c68 bfffffffffffffff bffffff000ffffff bffffff000fffffc bffffff000fffffe Wrong 4515387 +40fffffbfc000000 43efffeffffffeff c3e0000088000000 44ffffe7fc01deff 44ffffe3fc01bcff Wrong 4517401 +3fb7fffffffffff6 40200003fffffc00 bf9000000fffffbe 3fe7c005ffbff9f7 3fe78005ff7ff9f8 Wrong 4529485 +c34fdffffffbffff 0000000000000001 00000007fbffffff 801fdffe00fbffff 802fdffc01fc0000 Wrong ydenorm zdenorm 4533513 +c3fffffffffffb80 3fe0000000000000 c3efffffffff9ffe c3f7ffffffffe5c0 c3ffffffffffcdbf Wrong 4545597 +bff0000000000001 3ff0000000000001 bcafffffffffffff bff0000000000002 bff0000000000003 Wrong 4549625 +bff0000000000001 4010000000000001 3ff0000000000001 c00c000000000004 c008000000000004 Wrong 4555667 +bca926b08c93f8ce 401ffffffffffffe c01fff7fff7fffff c01fff7fff800002 c01fff7fff800001 Wrong 4557681 +c02001fffdffffff 3fe00000800fffff c02f5b9b276e56d7 c027aecdd2c72c62 c033ae4db33f2be7 Wrong 4559695 +bff0000000000001 bca0000000000000 3cafffffffffffff 3cb0000000000000 3cb8000000000000 Wrong 4573793 +c3c86555ae0cf8fe bca59e810275f37d 3d7152cdf414b4ce 40807b56eba58a9a 40807b56eba58a9e Wrong 4577821 +bff0000000000001 bfdffffffffffffe bff0000000000001 bca0000000000001 bfe0000000000002 Wrong 4579835 +b7ffffffffff9fff 3fc3853bc130e493 b1500007fffffdfe b7d3853bc130aa02 b7d3853bc130aa03 Wrong 4583863 +bff0000000000001 bffffffffffffffe 4340000000000000 4340000000000002 4340000000000001 Wrong 4585877 +ba0ffffffffffffe c340000000000001 207ec15f8069f3d2 3d50000000000000 3d60000000000000 Wrong 4593933 +c06905febb773604 c022a0c0b2a5ae70 3fe47dd1c6d2de46 409d236fc2abcc2e 409d24b79fc8395c Wrong 4608031 +7fdfffffffffff3e 3fd1b85566f6674c c03ffffffffffc02 7fc1b85566f666e0 7fc1b85566f666e1 Wrong 4614073 +bfffffffffffffff 4340000000000000 bff0000000000001 c34fffffffffffff c350000000000000 Wrong 4628171 +bfffffffffffffff bcaffffffffffffe bcafffffffffffff 3cb7fffffffffffd 3caffffffffffffb Wrong 4646297 +bffffffffe0003ff bfdfffffffffffff 40031ade702700a8 3fc8d6f379381538 400b1ade6fa701a8 Wrong 4648311 +bfffffffffffffff bfeffffffffffffe 3ff0000000000001 4003ffffffffffff 4007ffffffffffff Wrong 4652339 +bfffffffffffffff c00fffffffffffff c340000000000000 c34ffffffffffff8 c33ffffffffffff8 Wrong 4658381 +40150f7b4d5e78b3 c130000fffbfffff 43f55ef6c9431743 43f55ef6c9430cbb 43f55ef6c94311ff Wrong 4674493 +4082298b4297e5d7 42f007fffffe0000 bcaffffffffc0001 438232a00836ec98 438232a00836ec99 Wrong 4680535 +000001000000007f c001fffffffff7ff 00bffffffffffff7 00bffffedffffff6 00bfffff6ffffff7 Wrong xdenorm 4698661 +802876727078cfd2 7fefffffffffffff c008e292c0aae569 c02b92c4c88e2c7e c02eaf1720a3892b Wrong 4702689 +3fbffffffe000100 bcafffffffffffff bf8ffffffffd7fff bf8ffffffffd801f bf8ffffffffd800f Wrong 4714773 +bffffffffffffffe bfdffffffffffffe 3cafffffffffffff 3feffffffffffffd 3feffffffffffffe Wrong 4718801 +bffffffffffffffe bfffffffffffffff bff0000000000001 400bfffffffffffd 4007fffffffffffd Wrong 4724843 +400ffffffffffd7f c000000000000001 c013fffffdffffff c023fffffffffec0 c029fffffefffec0 Wrong 4726857 +bffffffffffffffe c01fffffffffffff 4340000000000000 4340000000000010 4340000000000008 Wrong 4730885 +c000000000000000 3ca0000000000001 3ff0000000000001 3fffffffffffffff 3ff0000000000000 Wrong 4749011 +c000000000000000 3fe0000000000000 c340000000000000 c340000000000001 c340000000000000 Wrong 4755053 +436f8bb30527c3e1 c3dfff0000400000 c5e000000fffffef c75f8ab6b7ceb219 c75f8ab6c7ceb229 Wrong 4765123 +c000000000000000 4340000000000000 3cafffffffffffff c340000000000000 c350000000000000 Wrong 4767137 +3fe0000000000027 bfffffffffffff77 40600001ffffdfff 406fc001ffffdfff 405fc003ffffbffe Wrong 4777207 +7fe000001000003f 8010000000000001 c00040003fffffff c008200030000040 c010200028000020 Wrong 4781235 +c00636536d8ad40e bff0000000000001 400f97076662a920 401300eb905e1450 401ae6ad69f6be98 Wrong 4793319 +c000000000000000 c00fffffffffffff 3ff0000000000001 4021000000000000 4022000000000000 Wrong 4797347 +c00000000000801f bff000000ff7ffff c1fffffe00000001 c1fffffdffc00001 c1fffffdffe00001 Wrong 4801375 +c000000000000000 c340000000000001 c340000000000000 4348000000000002 4340000000000002 Wrong 4803389 +c000000000000001 3fd0000000000000 bff0000000000001 bff0000000000001 bff8000000000002 Wrong 4821515 +3fc080001fffffff 3fdffffffffffffe 3e60000400000007 3fb0800060000ffe 3fb08000a0001ffe Wrong 4823529 +c000000000000001 3ff0000000000000 4340000000000000 434ffffffffffffe 433ffffffffffffe Wrong 4827557 +c000000000000001 434ffffffffffffe bcafffffffffffff c350000000000000 c360000000000000 Wrong 4839641 +bea000002001ffff c1cef0dea2ce737b 400e000000000000 407f0edee0b40eda 407f2cdee0b40edb Wrong 4855753 +c000000000000001 bfffffffffffffff 3cafffffffffffff 4010000000000000 4010000000000001 Wrong 4863809 +3f30000020000000 c000000000000000 bfcfffffc001ffff bfc01fffc041ffff bfd007ffe0110000 Wrong 4865823 +c000000000000001 c010000000000001 bff0000000000001 401e000000000004 401c000000000004 Wrong 4869851 +c00fffffffffffff 3ca0000000000000 bcafffffffffffff bcc3ffffffffffff bcc7ffffffffffff Wrong 4887977 +c31feff7fffffffe 407f14dabf153af4 43c9f50da1a060a1 43a4e4d2b6c1c0b2 43c233bb7e80a07d Wrong 4892005 +c00fffffffffffff 3fe0000000000000 3ff0000000000001 bff7fffffffffffe bfeffffffffffffc Wrong 4894019 +bff080007fffffff 3fefffffffffffff 41f0002003ffffff 41f0002003defffe 41f0002003ef7fff Wrong 4896033 +c00fffffffffffff 3ffffffffffffffe c340000000000000 c340000000000008 c340000000000004 Wrong 4900061 +3eb7fffffffffff0 434fffffffffffff 3fc01fffffffffef 421800000000406f 42180000000080ef Wrong 4908117 +434ffe0000000003 3f050506fa43403e c036d0c0e5df8b63 426503b6a9d22f00 426503b6a9d0c1f4 Wrong 4910131 +40affffbfffffff6 c20000000003fffd c01ffdfffe000000 c2bffffc000803ef c2bffffc000807ef Wrong 4922215 +37effeffdfffffff bff0000000000000 b7efffd7ffffffff b7f7ff75efffffff b7ffff6befffffff Wrong 4932285 +4047c422625c8dfb 3ff000010003ffff 42e0000000000700 42e00000000012e2 42e0000000000cf1 Wrong 4940341 +c00fffffffffffff c340000000000001 3ff0000000000001 4360000000000000 4360000000000001 Wrong 4942355 +bfbfffffbffff7ff c34ffffffffffffe 40196d6b50f2a50c 431fffffbffff80a 431fffffbffff816 Wrong 4944369 +489fffefffffeffe b6efffffffbffffc 3fbffffffff7effe 3fa000080017f7f1 3fb800040007f3f7 Wrong 4946383 +c00ffffffffffffe 3fd0000000000000 3cafffffffffffff bfeffffffffffffd bfeffffffffffffc Wrong 4960481 +c00ffffffffffffe 3feffffffffffffe bff0000000000001 c011fffffffffffe c013fffffffffffe Wrong 4966523 +c00ffffffffffffe 400ffffffffffffe 4340000000000000 434ffffffffffff0 433ffffffffffff0 Wrong 4972565 +4320037fffffffff 4010000000000001 41fdc4b3a046b212 434003807712ce81 43400380ee259d02 Wrong 4974579 +41d07fffff800000 c010ffffffbffffe bfd07fffffffffdf c1f187ffff380ffe c1f187ffff3a1ffe Wrong 4982635 +c00ffffffffffffe bfd0000000000001 c340000000000000 c34fffffffffffff c33fffffffffffff Wrong 4996733 +bcce2e656dd76af6 c01ffffffffffffe 40582ea8ffab0667 40582ea8ffab0668 40582ea8ffab0667 Wrong 5010831 +00000004000007fe ffeffffffffffffe c030000003fffeff c0100002040002fe c0300001040000fe Wrong xdenorm 5016873 +40000010007ffffe 3f6b3db4bb3d6728 3fd095716ec3b12b 3fd16f5fee9211ab 3fd10268aeaae16b Wrong 5018887 +c010000000000000 3fdffffffffffffe bcafffffffffffff bffffffffffffffe bfffffffffffffff Wrong 5032985 +c010000000000000 3ffffffffffffffe 3ff0000000000001 c01dfffffffffffe c01bfffffffffffe Wrong 5039027 +c010000000000000 401fffffffffffff c340000000000000 c340000000000020 c340000000000010 Wrong 5045069 +3f67c855ae00ce43 4340000000000001 43e6f149c1994369 43e6f14fb3aeaee9 43e6f14cbaa3f929 Wrong 5047083 +c010000000000000 bca0000000000001 bff0000000000001 bffffffffffffffd bfeffffffffffffe Wrong 5063195 +c010000000000000 bfe0000000000001 4340000000000000 4340000000000002 4340000000000001 Wrong 5069237 +403fffffffffffdb 423356b030815738 bf9080007fffffff 428356b030815711 428356b030815701 Wrong 5073265 +41a69ac8bdfdb461 c3d0083fffffffff 41d8313b8d51b193 c586a6708d7fab30 c586a6708d7fab31 Wrong 5079307 +c010000000000000 c340000000000000 bcafffffffffffff 4350000000000000 4360000000000000 Wrong 5081321 +401000ffffffffff 4ba80119d03cc382 800fe0000000001e 4bc80299e1d9c74c 4bc80299e1d9c74d Wrong zdenorm 5085349 +c010000000000001 3feffffffffffffe 3cafffffffffffff c000000000000000 c00fffffffffffff Wrong 5105489 +c010000000000001 400fffffffffffff bff0000000000001 c030800000000000 c031000000000001 Wrong 5111531 +c010000000000001 434fffffffffffff 4340000000000000 c36e000000000001 c36c000000000001 Wrong 5117573 +c010000000000001 bfd0000000000001 3ff0000000000001 3ff8000000000002 4000000000000002 Wrong 5135699 +c010000000000001 bff0000000000000 c340000000000000 c34ffffffffffffc c33ffffffffffffc Wrong 5141741 +37ea3353806450ba bffffffffffffffe b803fffffffff7ff b80719a9c032245c b8108cd4e019102e Wrong 5143755 +c1fff7fffffffe00 c01ffffffffffffe bf38000000000040 422ff7fffffffde6 422ff7fffffffdce Wrong 5149797 +bcaffffdf7fffffe 366ffffffe1fffff b20f000000000007 b3300000eb10000e b3300002db10000e Wrong 5169937 +c01fffffffffffff 401fffffffffffff 3ff0000000000001 c04fbffffffffffe c04f7ffffffffffe Wrong 5184035 +bf40000804000000 3ccfffff7ffefffe be9000000fffffff be90000010003fff be90000010001fff Wrong 5200147 +c01fffffffffffff bca0000000000001 3cafffffffffffff 3cd2000000000000 3cd4000000000000 Wrong 5202161 +423c64df6ca8aa39 bcaffffffffffffe 3ff1ae3ab5f11d36 3ff1ae01ec3243e4 3ff1ae1e5111b08d Wrong 5204175 +c01fffffffffffff bfe0000000000000 bff0000000000001 400bffffffffffff 4007fffffffffffe Wrong 5208203 +c01fffffffffffff c000000000000000 4340000000000000 4340000000000010 4340000000000008 Wrong 5214245 +bf1fffffe0ffffff bfcffffffbffff00 bf9000001ffffc00 bf9ff00020117c00 bf8ff00040117800 Wrong 5236399 +47fe17f4025a7deb b7f000000fffffef 41c000400000001f 41c0003ffe1e80dd 41c0003fff0f407e Wrong 5242441 +8010000000803fff 3ff0000000000001 000fffe07fffffff 8000000000000000 8000001f80804001 Wrong w=-zero zdenorm unflw 5246469 +bca000000003fffb 4010000000000000 3fddfffffffffe00 3fddfffffffffdf0 3fddfffffffffdf8 Wrong 5252511 +3ffefffeffffffff 38100002fffffffe b81effff7fffffff 380f000a1fff9ff7 36f53fff3ff08000 Wrong 5266609 +c01ffffffffffffe bfd0000000000000 bcafffffffffffff 3ffffffffffffffe 3ffffffffffffffd Wrong 5274665 +c1c07fffffffffff bfdffffffffffffe 42db2d4be861df6a 42db2d542861df6a 42db2d500861df6a Wrong 5276679 +41cdffffc0000000 bfbff87ffffffffe 41c000000080ffff 41a1038420fa7fff 41b881c210fe3ffe Wrong 5278693 +c01ffffffffffffe bff0000000000000 3ff0000000000001 4020ffffffffffff 4021ffffffffffff Wrong 5280707 +c01ffffffffffffe c00ffffffffffffe c340000000000000 c34fffffffffffe0 c33fffffffffffe0 Wrong 5286749 +002dfffeffffffff ffefffffffffffff 3ffffffffffffbfc c02bffff0000003e c029ffff0000007f Wrong 5294805 +c383f50a0cb6ed42 41eb3dd4a3b7b79c c189841022924e71 c580fd50335fe824 c580fd50335fe825 Wrong 5302861 +c340000000000000 3fdfffffffffffff 4340000000000000 3fe0000000000000 4330000000000000 Wrong 5310917 +bcafffc0001ffffe 3fe0000000000000 bfc000400000000f bfc0004000000017 bfc0004000000013 Wrong 5312931 +43f017fffffffffe bcaffffffffffffe c01effffffffefff c0b01bdffffffffb c0b01fbffffffff9 Wrong 5343141 +4128574d5c8f3538 bfefffffffffffff c3ebfd9ee3d633db c3ebfd9ee3d636e6 c3ebfd9ee3d63560 Wrong 5349183 +c340000000000000 bffffffffffffffe bff0000000000001 434ffffffffffffe 434ffffffffffffd Wrong 5353211 +c340000000000000 c01ffffffffffffe 4340000000000000 4370ffffffffffff 4371ffffffffffff Wrong 5359253 +c340000000000001 3cafffffffffffff 3ff0000000000001 bff8000000000000 bff0000000000000 Wrong 5377379 +c340000000000001 3fe0000000000001 c340000000000000 c340000000000001 c348000000000001 Wrong 5383421 +c340000000000001 bfeffffffffffffe bcafffffffffffff 4330000000000000 4340000000000000 Wrong 5419673 +bfaffd7ffffffffe bfffffffffffffff 402ffff400000000 40207fea00000000 40301ff780000000 Wrong 5421687 +c34fffffffffffff 3fd0000000000001 bff0000000000001 c330000000000001 c330000000000002 Wrong 5449883 +c34fffffffffffff 3ff0000000000001 4340000000000000 c348000000000001 c340000000000001 Wrong 5455925 +c03000003ffdffff 4034000000000002 3fb0100000001000 c073ff7fcffd8000 c073feff4ffd8000 Wrong 5459953 +41dffffffffffefb bfeffc0000000040 41c07ffc00000000 c1dbdc00ffffff3b c1d7bc01ffffff3b Wrong 5465995 +4acfffffffe07fff 380111a0c92fbee3 bfc020eb7964e9df 42e111a0c91ef186 42e111a0c91ef184 Wrong 5472037 +c1effffffffc0003 bfefffffffffffff 41df7ffffffffbff 41f3effffffdff81 41f7dffffffdff01 Wrong 5488149 +bf5ffdfeffffffff c1c00000000007fe c068f8e52e02b635 412ffd3738d69fe4 412ffc6f71ad2fcf Wrong 5502247 +43c00000000c0000 3ba03fffffffeffe c19e0000000001fe c19dfffffff7e1fe c19dfffffffbf1fe Wrong 5508289 +c00595ebd72b467c 43cf77fffffffffe c1e9531cb30bc1e8 c3e53a2eace5781d c3e53a2eacf221ac Wrong 5520373 +c07ffbffffffefff 3feffffffffffffe 43deffffff7ffffe 43deffffff7ffffd 43deffffff7ffffe Wrong 5524401 +c34ffffffffffffe 4000000000000000 c340000000000000 c361ffffffffffff c363ffffffffffff Wrong 5528429 +c01ffff000001ffe 419fffbfffffffff 4020088000000000 c1cfffaffe1f0ffd c1cfffaffc1dfffd Wrong 5532457 +c34ffffffffffffe bcaffffffffffffe 4340000000000000 4340000000000004 4340000000000002 Wrong 5552597 +3ff221640e87bbad bfd0000000000001 c1d70a764cfa4319 c1d70a764d1e85e1 c1d70a764d0c647d Wrong 5554611 +3ffffffffffff780 bff0000000000001 400cfefb818713c9 bfc80823f3c71dc8 3ff9fdf7030e3010 Wrong 5560653 +c3c7979fc93cf795 c01ffffdffefffff c72fffdfffffbfff c72fffdfffffbff9 c72fffdfffffbffc Wrong 5568709 +bf76a55146618ff8 c2c000001fffbffe 3fe000bffffffffe 4246a55173abf7ee 4246a55173ac17f0 Wrong 5574751 +40d4374fa828b57a 3ffffffffffffffe b08008000000000f 40e4374fa828b578 40e4374fa828b579 Wrong 5596905 +3ca00000005fffff 7fefffffffffffff 7fe0043fffffffff 7fe0044000000001 7fe0044000000000 Wrong 5608989 +be10000000080010 41e00000003ffbff 3ea954e801d58acc bfffffff9b3c5816 bfffffff35e8b80f Wrong 5611003 +ffe0000000000000 801ffffffffffffe 3ff0000000000001 4011ffffffffffff 4013ffffffffffff Wrong 5619059 +3f8fffdffffff7ff bfdfffe0000ffffe bfc00000002007ff bfc1fffc0023077e bfc0fffe002187be Wrong 5629129 +c0ce6b6deff071a3 3feffffffffffffe 3f9ff00000fffffe c0ce6b6bf0f07191 c0ce6b69f1f07181 Wrong 5663367 +bfcff8000003ffff c0c00000007fbfff bff0000001000007 409ff6000103201d 409ff4000103001d Wrong 5671423 +be90e49a299e9782 3f5000000fc00000 401ffffffc000004 401ffffffbf78db7 401ffffffbfbc6dd Wrong 5683507 +ffe0000000000001 800ffffffffffffe 3cafffffffffffff 3feffffffffffffe 3fffffffffffffff Wrong ydenorm 5685521 +c0c01f0000000000 3ff0001fff7fffff be12dd4b694fb5d8 c0c01f203d7f092d c0c01f203d7f0a5b Wrong 5695591 +bca0000007fefffe c1f1000003ffffff 3fe000007ffffbff 3fe000029ffffd8f 3fe000018ffffcc7 Wrong 5713717 +ffefffffffffffff 0010000000000000 c340000000000000 c340000000000004 c340000000000002 Wrong 5721773 +b7fffff80000001f 001ffffffffffffe 800fffffffff07ff 8000000000000000 800fffffffff07ff Wrong w=-zero zdenorm unflw 5723787 +3fdfffff80007fff 3fdffffffffffffe 402001ffffffffe0 402101fffc0003e0 402081fffe0001e0 Wrong 5729829 +43f008000000003e 3fffffffffffffff c3dc8b92c412fd96 43fc7e8da77da0c8 43f8ed1b4efb4115 Wrong 5735871 +7fd4100000000000 bf2ffffe03fffffe 9e4f275405eb089b ff140ffec181fffe ff140ffec181ffff Wrong 5743927 +3fd0000401ffffff c07fffe000007fff 3fafc000001fffff c05ffdec03f879fd c05ffbf003f877fd Wrong 5786221 +ffeffffffffffffe 0000000000000000 bff0000000000001 c003ffffffffffff bff0000000000001 Wrong 5788235 +c398d85aca9eff71 400fffffffffffff 41e5fab80ef2d73e c3b8d85aca471490 c3b8d85ac9ef29b0 Wrong 5808375 +bf1fffff8003ffff bfd0000000000000 c220800004000000 c220800003fffff8 c220800003fffffc Wrong 5832543 +ffeffffffffffffe bfe0000000000001 bff0000000000001 7fd0000000000000 7fe0000000000000 Wrong 5836571 +3812031359e6b20b c00ffffffffffffe b7f02000000003ff b832841359e6b22a b833051359e6b24a Wrong 5844627 +c1cfffffff7ffffe bfaf0e5ff2ac719c 41f89242d54a35b2 41f90e7c5512f692 41f8d05f952e9622 Wrong 5858725 +bfffffffffbfffbe 3ff0400003fffffe 417dd4e89ed4c2a5 417dd4e85dd4c296 417dd4e87e54c29d Wrong 5864767 +37e037ad784678e1 3fdfffffffffffff b7e000000000103f 376bd6bc233450bf b7cf90a50f734f3b Wrong 5868795 +c2700007fffffe00 415fffffe0000003 c34fffffffff7dff c3e00407effff5f1 c3e00807effff5e1 Wrong 5870809 +bfcc03a8225fe071 ffeffffffffffffe ffe0000420000000 ff9fe300ed00fc86 ffd1fe342ed00fc8 Wrong 5923173 +c050000003fff000 3cafffffffffffff 402ffffffffffdf7 402ffffffffffde7 402ffffffffffdef Wrong 5935257 +3eb9c788bafd1c8d c3cfbfffefffffff 4011ffffffffff7f c29993f99ca354f6 c29993f99ca34bf6 Wrong 5937271 +c0300000bfffffff 3fe0000000000001 401fffffe0400000 c01000018fe00000 bed9fc0000000001 Wrong 5941299 +dd32c11cf81b2b12 40002b8c7d146fad c021abbfd858aa44 dd42f428a25015a0 dd42f428a25015a1 Wrong 5955397 +41c0000000800080 40f0002fffffffff 43fa043fa875191b 43fa0443a881193b 43fa0441a87b192b Wrong 5961439 +43301fffffffffff bd2ffffffefdffff c0594b450d492733 c0734968a12722e5 c07672d142d047cb Wrong 5967481 +3fe0188bb8c96308 bfd0000000000000 bfc0000007ffff7f bfc8188bbcc962c8 bfd00c45e064b144 Wrong 5971509 diff --git a/wally-pipelined/src/fpu/FMA/tbgen/results.srt b/wally-pipelined/src/fpu/FMA/tbgen/results.srt index eda76cb2..1cfac616 100644 --- a/wally-pipelined/src/fpu/FMA/tbgen/results.srt +++ b/wally-pipelined/src/fpu/FMA/tbgen/results.srt @@ -1,111 +1,934 @@ -3fdfffffffffffff 7fefffffffffffff ffe0000000000001 fcafffffffffffff fcb0000000000000 Wrong 1008219 -3fdfffffffffffff bcafffffffffffff 3fde6565aa50f6d7 bf99a9a55af092b0 3fde6565aa50f6d5 Wrong 1020499 -c1b000000007fffc f792000000000000 bfeffffffffffffe 795200000008fffc 795200000008fffb Wrong 1169087 -3fefffffffffffff 4010000000000001 43600000080007ff 43600000080007ff 4360000008000800 Wrong 1280221 -3fefffffffffffff bca00000001ffff7 bffb69bd490d5d32 bffb69bd490d5d32 bffb69bd490d5d33 Wrong 1309693 -3feffffffffffffe bca0000000000001 3fe00000ffffffbf bfdffffe00000084 3fe00000ffffffbe Wrong 1368637 -3ff0000000000000 3fffdffffffffffe c34ffffffbfffdff 41a0000807fc0000 c34ffffffbfffdfe Wrong 1414687 -3ff0000000000000 bcafffffffffffff 3ffffffffffffffe bcc8000000000000 3ffffffffffffffd Wrong 1439247 -3ff0000000000001 c340000000000001 bfeffffffffffffe c340000000000002 c340000000000003 Wrong 1527663 -47afffffbffc0000 3847cedaf8426a4c c34ffffff800007f 41affffe09f3b6b2 c34ffffff800007e Wrong 1667655 -4000000000000000 3fdffffffffffffe bff0000000000000 bcaffffffffffffe bcb0000000000000 Wrong 1687917 -400fffffffffffff 3fd0000000000001 c340000000000001 c340000000000001 c340000000000000 Wrong 1826067 -4010000000000000 bca00ffffffffffe 401fc0000fffffff bfaffff8000000c0 401fc0000ffffffe Wrong 1972813 -3fdfffffffffffdb 3cafffffffffffff bfeffffffffffffe bfeffffffffffffe bfeffffffffffffd Wrong 2032985 -4010000000000001 bfd0000000000000 4340000000000001 c33fffffffffffff 4340000000000000 Wrong 2069211 -bfffffffffffffde bfe0040000003ffe c34fffffffffffff c34fffffffffffff c34ffffffffffffe Wrong 2114033 -bfe886c7cff8293d c00ff000000000fe 434fffffffffffff 3ff0f508d8205bd6 4350000000000000 Wrong 2843465 -c02ffffffffffffe 404fffc007fffffe 43cfeffffffdffff c340000002000300 43cfeffffffdfffd Wrong 3439045 -bcafffffffffffff 3fffffffffffffff c000000000000000 c000000000000000 c000000000000001 Wrong 3787797 -bcafffffffffffff bfd0000000000001 bca0000000000001 bc90000000000001 bc90000000000002 Wrong 3815427 -3ca3809288505f2e bfeffffffffffffe 3ffffffffffffffe 3ffffffffffffffe 3ffffffffffffffd Wrong 3889721 -bfd0000000000001 c010000000000001 c3400010003ffffe 433fffdfff800005 c3400010003ffffd Wrong 4037695 -bfdfffffffffffff c01fffffffffffff c00fffffffffffff bcbffffffffffffd bcbfffffffffffff Wrong 4108305 -bfdffffffffffffe c00fffffffffffff 434fffffffffffff 434fffffffffffff 4350000000000000 Wrong 4174617 -bfe0000000000000 3fe0000000000001 3feffffffffffffe 3fe7fffffffffffd 3fe7fffffffffffe Wrong 4202247 -bfe0000000000001 bcafffffffffffff bca0000000000001 b94ffffffffffffe b950000000000001 Wrong 4301715 -bff0000000000001 bff0000000000000 c010000000000001 c008000000000001 c008000000000002 Wrong 4589067 -bafff9ffffffffff c18fffffffffffff bfe44b07ce3485bb bfe44b07ce3485bb bfe44b07ce3485ba Wrong 4640643 -bfffffffffffffff bffffffffffffffe 434fffffffffffff 3ffffffffffffffa 4350000000000000 Wrong 4660905 -bffffffffffffffe 3fdfffffffffffff 3feffffffffffffe 3c9ffffffffffffc 3c9ffffffffffffe Wrong 4688535 -3ff6119af86b7717 bfeffffffffffffe 4340000000000000 4340000000000000 433fffffffffffff Wrong 469127 -c000000000000001 3fd0000000000000 4340000000000000 4340000000000000 433fffffffffffff Wrong 4826685 -be02001ffffffffe bfdf000400000000 c13e2351e06b232f 40fdcae1f94dcd21 c13e2351e06b232e Wrong 5082723 -c010000000000001 bca0000000000000 c0100007f7fffffe 400ffff010000005 c0100007f7fffffd Wrong 5137369 -ffe0000000000000 bcaffffffffffffe ffee000000008000 7faffffffff80010 ffee000000007fff Wrong 5629183 -3a0c00000000007f 400ffffffffffffe 3d70200003fffffe 3d70200003fffffe 3d70200003ffffff Wrong 5885835 -3ca0000000000000 c010000000000000 401fffffffffffff bcd8000000000000 401ffffffffffffe Wrong 615873 -3cafffffffffffff 401fffffffffffff 4021e792682c4909 4021e792682c4909 4021e792682c490a Wrong 722095 -3caffffffffffffe c01bf4d171e6823d c01fffffffffffff bcc7e9a2e3cd0477 c020000000000000 Wrong 769373 -3fd0000000000000 c00fffe7ffffffff 4340000000000000 4340000000000000 433fffffffffffff Wrong 846737 -3fd0000000000000 c01ffffffffffffe bca0000000000001 bffffffffffffffe bfffffffffffffff Wrong 897699 -3fd0000000000001 bff0000000000000 3ff0000000000000 3fe7ffffffffffff 3fe8000000000000 Wrong 958485 -801fffffffffffff bfbffffffffd7ffe 0000000000000000 0000000000000000 0003ffffffffb000 Wrong unflw 3499217 -0010000000000001 bd0081ffffffffff 0010000000000001 0000000000000000 000fffffffffffe0 Wrong unflw 410183 -0021ffffffffff7e 3feffffffffffffe 801fff0010000000 0000000000000000 000400ffeffffefa Wrong unflw 4134093 -001fffffffffffff 3caffffffffffffe 8000000000000000 0000000000000000 0000000000000002 Wrong unflw 427989 -80220000000000ff bcaffffffffffffe 802ffffff00fffff 0000000000000000 802ffffff00ffffe Wrong unflw 5349813 -82c0040000007fff 3ca0000000000000 0010000000000001 0000000000000000 000ffbfeffffffe1 Wrong unflw 5381741 -3fe0000000000000 801ffffffffffffe 0000000000000000 8000000000000000 800fffffffffffff Wrong w=-zero unflw 1157421 -0010000000000000 c000000000000001 001ffffffffffffe 8000000000000000 8000000000000004 Wrong w=-zero unflw 334047 -801fffffffffffff bfe0000040000000 801fffffdffffffd 8000000000000000 800fffff9ffffffe Wrong w=-zero unflw 3525619 -001fffffffffffff 3fe100000fffffff 801ffffffffffffe 8000000000000000 800efffff0000000 Wrong w=-zero unflw 487547 -000fffffffffffff bfd0000000000001 0000000000000000 8000000000000000 8004000000000000 Wrong w=-zero xdenorm unflw 184845 -800ffffffffffffe bffffffffffffffe 801fffffffffffff 8000000000000000 8000000000000005 Wrong w=-zero xdenorm unflw 3334665 -0000000000000001 c340000000000000 0021f7ffffffffff 8350000000000000 0003effffffffffe Wrong xdenorm 130813 -0000000000000001 ffefffffffffffff 400ffffffffffffe 3ffffffffffffff9 400ffffffffffffc Wrong xdenorm 135111 -0000000000000001 ffeffffffffffffe 38041fffffffffff c000000000000001 bccffffffffffffe Wrong xdenorm 136339 -000fffffffffffff 7fe0000000000000 3ca0000000000001 3ffffffffffffffe 3fffffffffffffff Wrong xdenorm 168267 -000f7ffffffffbfe 7fdfffffffeeffff c34fffffffffffff c34fffffffffffff c34ffffffffffffe Wrong xdenorm 168881 -00076127f4ebe458 7feffffff7f7fffe c1d0def838064556 c1d0def8371032d7 c1d0def8379032d7 Wrong xdenorm 2761803 -8000000000000001 bfcf000000003ffe 0010000000000000 0011f00000000400 0010000000000000 Wrong xdenorm 3167657 -8000000000000001 ffeffffffffffffe 401ffffffffffffe 4023ffffffffffff 401fffffffffffff Wrong xdenorm 3207567 -000000000008ffff 7feffffffffffffe 4340000000000000 4340000000000001 4340000000000000 Wrong xdenorm 4359431 -8006734cfd26d7ab bfeffffffffffffe 001ffffffffffffe 002739a67e936bd4 002339a67e936bd4 Wrong xdenorm 5215961 -00056efa865ceb48 ffdf7fdfffffffff c000000000000000 c00d39312d48f13e c00559392d48f13e Wrong xdenorm 5860661 -0000000000000001 3fcce6810165a323 001fffffffffffff 0020e734080b2d19 001fffffffffffff Wrong xdenorm 84149 -0000000000000001 48001caa6570456b 0000000000000000 08101caa6570456d 04e01caa6570456b Wrong xdenorm 95201 -0000000000000001 4340000000000001 8010000000000000 0350000000000002 0010000000000002 Wrong xdenorm 96429 -000ffffffffffffe bfeb2c0fbae7607b 0010000000000000 0000000000000000 000269f8228c4fc4 Wrong xdenorm unflw 249929 -0000000000000001 400fffffffffffff 801ffffffffffffe 0000000000000000 801ffffffffffffa Wrong xdenorm unflw 90903 -8000000000000001 c03ffffffffffef7 0000000000000001 00507fffffffff7e 0000000000000021 Wrong xdenorm zdenorm 3173183 -800fffffffffffff 3f1dffffffffbfff 800ffffffffffffe 80100077fffffffe 80100077fffffffd Wrong xdenorm zdenorm 3250547 -800fffffffffffff bff0000000000001 0000000000000001 0018000000000000 0010000000000001 Wrong xdenorm zdenorm 3262827 -800ffffffffffffe c01fffffffffffff 800ffffffffffffe 003bfffffffffffb 003bfffffffffffc Wrong xdenorm zdenorm 3340191 -8001c94a70185f15 bf9080000000001e 0000000000000001 000050bca61cc912 0000075e530e6489 Wrong xdenorm zdenorm 5335691 -0000000000000001 c3c000004000001f 000ffffffffffffe 83d0000040000021 809ff0008000003e Wrong xdenorm zdenorm 89675 -4010000000000000 800002fffffffffe 8019e21990370ecf 802cf70cc81b8764 8019ee1990370ec7 Wrong ydenorm 2011495 -ffd00000000013fe 8000000000000001 8010000000000000 3fe0000000001400 3cb00000000013fe Wrong ydenorm 2060615 -401fffffffffffff 8000000000000001 0000000000000000 8030000000000001 8000000000000008 Wrong ydenorm 2129997 -401ffffffffffffe 8000000fc0000000 0010000000000000 8028003efffffffe 000fff8200000000 Wrong ydenorm 2195081 -7fe0000000000000 000000000000007f 40108001ffffffff 401480020000003e 401080020000003e Wrong ydenorm 2558569 -7fe0000000000001 0000000000000001 b80ffeffffffff7f 3ff0000000000003 3cc0000000000001 Wrong ydenorm 2584357 -7fe0000000000001 80058a95d520aff2 bcaffffffffffffe bffb152baa415fe7 bfe62a575482bfcb Wrong ydenorm 2587427 -bfe0000000000000 8000000000000001 001ffffffffffffe 0021ffffffffffff 001ffffffffffffe Wrong ydenorm 4224351 -c1dfffffffffd7ff 00008000003fffff 001ffffffffffffe 81f0ffffffffeabd 81afffffffffd7bf Wrong ydenorm 461759 -ffe0000000000001 0000000000000001 3fffffffffffffff 3feffffffffffff8 3ffffffffffffffd Wrong ydenorm 5655585 -ffe0000000000001 8005e2e035872cbc 4010000000000001 4016f1701ac3965f 4012f1701ac3965f Wrong ydenorm 5715143 -ffefffffffffffff 8000000000000001 bca0000000000001 4000000000000001 3ccbffffffffffff Wrong ydenorm 5760579 -41ffffffffffff87 8000000000000001 0000000000000000 820fffffffffff8b 8000000200000000 Wrong ydenorm 6039335 -3fe0000000000001 8000008100000000 0010000000000000 0000000000000000 000fffbf80000000 Wrong ydenorm unflw 1222505 -400ffffffffffffe 8000000000000001 0000000001ffff80 8017ffffff000042 0000000001ffff7c Wrong ydenorm zdenorm 1921237 -40afae6465ddbca7 00006f1e30d0e43a 800ffffffffffffe 00c0b137d3169bd3 007b40b404f7afe8 Wrong ydenorm zdenorm 2495327 -c05d0d58b7637bf5 000ffffffffffffe 8002f77910ff1aeb 807d3347a9857a27 807d19369ba7785d Wrong ydenorm zdenorm 2724963 -3fc8b2426b25d8d2 80000200007fffff 000fffffffffffff 000ce8f220568732 000fff9d36dda125 Wrong ydenorm zdenorm 3064505 -bca0000000000000 8000000000000001 800fffffffffffff 7cc8000000000001 800fffffffffffff Wrong ydenorm zdenorm 3666225 -c3e760ff13e9db70 0000000000000001 800ffffffffffffe 83f760ff13e9db73 80c762ff13e9db70 Wrong ydenorm zdenorm 4818089 -e9b000000040000e 8000000000000001 000fffffffffffff 29c0000000400010 269000000040000e Wrong ydenorm zdenorm 524387 -3ca0000000000001 800ffffffffffffe 000ffffffffffffe fcd7ffffffffffff 000ffffffffffffe Wrong ydenorm zdenorm 665607 -3fd0000000000001 0000000000000001 800ffffffffffffe 800bfffffffffffd 800ffffffffffffe Wrong ydenorm zdenorm 908751 -3fe0000000000000 802ffffffbfffffc 000ffff7ffffffbf 80100003fc00001c 80100007fc00003d Wrong zdenorm 1154965 -3feffffffffffffe 801ffffffffffffb 000fffffffffffff 800ffffffffffff3 800ffffffffffffa Wrong zdenorm 1388285 -3ffffffffffffffe 002bffbffffffffe 000ff7fffffffefe 003ffebfffffffdc 003ffdbfffffffbc Wrong zdenorm 1663357 -bff0000040040000 001ffffffffffffe 0000000000000001 801800008007fffd 802000004003fffe Wrong zdenorm 2309285 -001ffffbfffff7ff bffafaef051722b5 000ffffffffffffe 8022faeba5b93b53 8022faeba5b93b54 Wrong zdenorm 3224759 -8010000000000000 3ff00000000000c0 8000000000000001 80180000000000c0 80100000000000c1 Wrong zdenorm 3416327 -801fffffffffffff 3feffffffffffffe 8000000000000001 8023ffffffffffff 801ffffffffffffe Wrong zdenorm 3505971 -0010000000000001 bfbfffffc07fffff 000fffffffffffff 000c000007efffff 000e000003f7ffff Wrong zdenorm 415709 -001ffffffffffffe 3ff0000000000001 000fffffffffffff 0028000000000000 0027ffffffffffff Wrong zdenorm 505353 -001ffffffffffffe 4010000000000001 0000003ffbffffff 00410003ffc00000 00400007ff800000 Wrong zdenorm 512107 -0020007fffffffff bcafffffffffffff 800fffffffffffff 8010000000000002 8010000000000001 Wrong zdenorm 6116699 -3ca0000000000001 00184112bdfd66a0 800fffffffffffff 800ffffffffffffd 800ffffffffffffe Wrong zdenorm 658853 +3fdfffffffffffff 4340000000000001 bff0000000000001 4320000000000000 432fffffffffffff Wrong 1002971 +bed003ffc0000000 c00ffdfffffefffe bf4ffffffbfffff7 bf4effd003ffc7f9 bf4f7fe7ffffe3f8 Wrong 1006999 +3fdfffffffffffff bfd0000000000000 bcafffffffffffff bfc0000000000003 bfc0000000000007 Wrong 1021097 +b92fffdfc0000000 8020000000100006 bf74cfab3bcc97f9 3f7b3054c4336807 bf74cfab3bcc97f9 Wrong 1025125 +3fdfffffffffffff bff0000000000000 3ff0000000000001 3ca8000000000000 3fe0000000000002 Wrong 1027139 +a19ffff7ff7fffff bd0e000010000000 c03ffffffbfe0000 4030000004020000 c03ffffffbfe0000 Wrong 1031167 +3fdfffffffffffff c00ffffffffffffe c340000000000000 c340000000000002 c340000000000001 Wrong 1033181 +b801eb65455027da ffefffffffffffff ffefffc000001000 7fe0003ffffff000 ffefffc000001000 Wrong 1041237 +3f700000003fdfff bca0000000007fdf bf50400000007fff bf50400000008003 bf50400000008001 Wrong 1043251 +c12bffffffffffbe 8000000000000000 c3c0000000000000 43c0000000000000 c3c0000000000000 Wrong 104727 +3fab095e19bc680a 3fe0000000000000 be74000000010000 3f9b095b99bc680a 3f9b095919bc680a Wrong 1059363 +c040010000020000 bff00000100000fe 3fd5ca5e3cb16df4 404016ca6e3fb26c 40402c94cc7c63da Wrong 1073461 +3fdffffffffffffe 7fe0000000000001 3ff0000000000001 7fc0000000000000 7fd0000000000000 Wrong 1075475 +403000200001ffff 43effffffffffffe c1eff7dfffffffff 443000200001801e 443000200001003f Wrong 1079503 +b8bffffffff00040 bcaffffffffffffe c29d554ac7605657 4292aab5389fa9a9 c29d554ac7605657 Wrong 1089573 +36e00000000fff00 3fe0000100000006 c3fffefe00000000 43f0010200000000 c3fffefe00000000 Wrong 1091587 +3fdffffffffffffe bfe0000000000000 3cafffffffffffff bfcffffffffffffa bfcffffffffffff6 Wrong 1093601 +bce000000001fc00 3ff80cabb0668b82 b9fffffffcffffff bce80cabb0698734 bce80cabb0698754 Wrong 1097629 +3fdffffffffffffe bffffffffffffffe bff0000000000001 bff7fffffffffffe bfffffffffffffff Wrong 1099643 +3fdffffffffffffe c01ffffffffffffe 4340000000000000 c340000000000004 433ffffffffffffc Wrong 1105685 +b80fffffffff001e 593ffc07ffffffff 41c00000000007ef d15ffc07ffff003c d15ffc07ffff003d Wrong 1115755 +47effff100000000 0010000000000001 bfbfffbfffffffbf 3fb0004000000041 bfbfffbfffffffbf Wrong 1119783 +3fe0000000000000 3cafffffffffffff 3ff0000000000001 3ff0000000000002 3ff0000000000001 Wrong 1123811 +3fe0000000000000 3fe0000000000001 c340000000000000 4340000000000000 c340000000000000 Wrong 1129853 +c1f000000401ffff 3ff0000000000000 41d0060da9f8c199 c1ebfe7c9d85cf98 c1e7fcf933079f32 Wrong 1131867 +400fffff7f800000 4010000000000000 3fe0000000400000 40303fffbfc10000 40307fffbfc20000 Wrong 1137909 +2a50000000107fff 434ffffffffffffe c32ffffe01000000 43200001ff000000 c32ffffe01000000 Wrong 1143951 +3fe0000000000000 8010000000000000 4340000000000000 c340000000000000 4340000000000000 Wrong 1154021 +c34fbffffffff7fe 40100000001fffbe 406814b7cd412dec c36fc000003f776f c36fc000003f7763 Wrong 1158049 +3fe0000000000000 bfeffffffffffffe bcafffffffffffff bfd0000000000000 bfe0000000000001 Wrong 1166105 +3fe0000000000000 c00ffffffffffffe 3ff0000000000001 bff7fffffffffffd bfeffffffffffffa Wrong 1172147 +42c008fffffffffe c0200008001fffff 43effff5ffffffff 43efffb5dbdfed7e 43efffd5edeff6bf Wrong 1176175 +3fe0000000000000 c34fffffffffffff c340000000000000 c348000000000000 c350000000000000 Wrong 1178189 +c34ffefe00000000 bc4feffffffffffd c020000000000087 c02fc02202fe0087 c01fc02202fe010e Wrong 1182217 +c0003fffffffff7f 37effffffe004000 381e29836bc8d7f8 37fbd306d9996ff2 381609836c4ac7f8 Wrong 118825 +3fe0000000000001 3fd0000000000001 bff0000000000001 bfd8000000000001 bfec000000000001 Wrong 1196315 +c65000000000003d 3fe0000000000000 c7f0008000080000 c7f0008004080000 c7f0008002080000 Wrong 1198329 +c1d000803ffffffe 3feffc00000000fe bffffffeffffefff c1cffd00607000f6 c1cffd0060f000f2 Wrong 1212427 +403fdffffe000000 c011da12116127a8 7d8bfe3fae41652f fd8401c051be9ad1 7d8bfe3fae41652f Wrong 1218469 +3f1fffff7f000000 41e007fff0000000 3faa435b79a850e6 411007ffc9a31bba 411007ffe3e67734 Wrong 1224511 +c310000040001fff bfb03ffffffffffd 41cfbfbffffffffe 42d0400830f0207c 42d0401020e0207c Wrong 1230553 +39260035abdd89ad bfefffffffffffff 41efdfbfffffffff c1e0204000000001 41efdfbfffffffff Wrong 1234581 +3fe0000000000001 bffffffffffffffe 3cafffffffffffff bfefffffffffffff bfeffffffffffffe Wrong 1238609 +3fe0000000000001 c01fffffffffffff bff0000000000001 c012000000000000 c014000000000001 Wrong 1244651 +44c4c56f2310e46d c340000000000001 6dfffffffff800ff edf000000007ff01 6dfffffffff800ff Wrong 1246665 +390067d3f6bbe86d c7c4863b5c262ee4 7fef7fffffffeffe ffe0800000001002 7fef7fffffffeffe Wrong 1248679 +ffd000407fffffff 8020fffffffe0000 404136d99d2d1461 400ab7117166a2ff 404246dde5acf460 Wrong 1254721 +3fefffffffffffff 3ca0000000000001 bcafffffffffffff 395fffffffffffff bc9ffffffffffffd Wrong 1262777 +bfd0100007ffffff 3fd297ee8e336ca8 c01000000000083e c0109554343074f9 c0104aaa1a183e9b Wrong 1266805 +3fefffffffffffff 3fe0000000000001 3ff0000000000001 3ff0000000000000 3ff8000000000001 Wrong 1268819 +3fefffffffffffff 4000000000000000 c340000000000000 4340000000000002 c33ffffffffffffe Wrong 1274861 +be5bffffffffeffe c01fffffffffffff 3ff7c1136e8aa3ca 3ff7c113de8aa3ca 3ff7c113a68aa3ca Wrong 128895 +c1d3b0ae9c0eb661 801fffffffffffff ff9bffffffffc000 7f94000000004000 ff9bffffffffc000 Wrong 1295001 +42aefffffffffbfe 4040080000040000 c0000000000087fe 42ff0f800007bbec 42ff0f800007bbdc Wrong 1297015 +3fefffffffffffff bcaffffffffffffe 4340000000000000 c340000000000000 4340000000000000 Wrong 1299029 +4030080004000000 bfd0000000000001 74a074eb9de02cce f4af8b14621fd332 74a074eb9de02cce Wrong 1301043 +42401ffffffffbff bfefffffffffc03f be500200000003fe c2401fffffffdbde c2401fffffffdbdf Wrong 1303057 +3fefffffffffffff c00fffffffffffff bcafffffffffffff c00ffffffffffffe c00fffffffffffff Wrong 1311113 +3feffffffffffffe 3fd0000000000001 3cafffffffffffff 3fd0000000000002 3fd0000000000004 Wrong 1335281 +439fffffff0001ff c04fffffef7fffff c1d0000000300000 c3ffffffee8201fe c3ffffffee8401ff Wrong 1339309 +3feffffffffffffe 3ff0000000000000 bff0000000000001 3fdffffffffffffa bcc0000000000000 Wrong 1341323 +3feffffffffffffe 4010000000000000 4340000000000000 4340000000000004 4340000000000002 Wrong 1347365 +002fffffffdfeffe 270010000fffffff bfffffffe000003f 3ff000001fffffc1 bfffffffe000003f Wrong 1357435 +434fe000ffffffff bca0000000000001 3fa600a985274f0b bfff87fe59eb62c5 bfff2ffbb3d6c589 Wrong 1367505 +43c567cde92a1dfd b8000203fffffffe 3ee00000007fdfff 3ee00000007fdfea 3ee00000007fdff4 Wrong 1369519 +3feffffffffffffe ffe0000000000001 bff0000000000001 ffd0000000000000 ffe0000000000000 Wrong 1389659 +41f000007ffffbfe 3fef177822a30420 c0a0001040000000 41ef17789b5e3b6b 41ef17781b5db96b Wrong 1393687 +3ff0000000005000 00100001f0000000 c3f5cfc170570406 43fa303e8fa8fbfa c3f5cfc170570406 Wrong 1399729 +42c2000001ffffff 3caffffffffffffe 3fdff80000002000 3fd1180000202000 3fe0440000081000 Wrong 1403757 +4010000007f7fffe 8029b242064ab31e 3fbfffff001ffffe bfb00000ffe00002 3fbfffff001ffffe Wrong 1405771 +3ff0000000000000 3fe0000000000000 bcafffffffffffff 3fdffffffffffffe 3fdffffffffffffc Wrong 1407785 +3ff0000000000000 4000000000000000 3ff0000000000001 4004000000000000 4008000000000000 Wrong 1413827 +c02ce0c00cac853f 400fffffffffffff c36fffc0000ffffe c36fffc00010000c c36fffc000100005 Wrong 1415841 +3ff0000000000000 401ffffffffffffe c340000000000000 c34ffffffffffff8 c33ffffffffffff8 Wrong 1419869 +3ff0000000010006 8010000000000001 801f7fffffffffff 801fc00000010006 8027c00000008003 Wrong 1433967 +3ff0000000000000 bcafffffffffffff bff0000000000001 bff0000000000003 bff0000000000002 Wrong 1437995 +3ff0000000000000 bfefffffffffffff 4340000000000000 c340000000000001 433fffffffffffff Wrong 1444037 +3ff0000000000001 0010000000000000 c340000000000000 4340000000000000 c340000000000000 Wrong 1468205 +423fdfc000000000 3ca0000000000001 c00584e2101be3ef c00584d2203be3ef c00584da182be3ef Wrong 147021 +bf71bfb471d6b240 c3cefffffffffff7 41ffffc000000001 435131b70e477ca9 435131b74e46fca9 Wrong 1478275 +3ff0000000000001 3ff0000000000000 3cafffffffffffff 3ff0000000000001 3ff0000000000002 Wrong 1480289 +3ff0000000000001 400ffffffffffffe bff0000000000001 400c000000000000 4007ffffffffffff Wrong 1486331 +3d80000800003fff 401fffffffffffff 3b40000000000037 3db0000800004ffe 3db0000800005ffe Wrong 1488345 +c03c54bd6921b05d c02fe007ffffffff c0020b6d2412fdf2 407c266453c3d5f6 407c1458e69fc2f8 Wrong 149035 +3ff0000000000001 434ffffffffffffe 4340000000000000 4354000000000000 4358000000000000 Wrong 1492373 +8ea000800007fffe 7fe0000000000001 cc6000000200000f ce9000800008ffff ce9000800009ffff Wrong 1494387 +4000010000000000 bbb3ffffdfffffff 3fd4000000000000 bfdc000000000000 3fd4000000000000 Wrong 1496401 +bddfff81ffffffff bf4ffffffff7ffbe 0ceffedffffffffe 3d3fff81fff7ffdc 3d3fff81fff7ffdd Wrong 1502443 +3ff0000000000001 bfdfffffffffffff 3ff0000000000001 3c90000000000001 3fe0000000000002 Wrong 1510499 +41f03fffbfffffff c340000000000000 5a2ffdfbfffffffe da20020400000002 5a2ffdfbfffffffe Wrong 1524597 +375fe20000000000 3fe0000000000001 b46ffffffffe0010 374fe1ffffffffc2 374fe1ffffffff82 Wrong 153063 +bf7107ffffffffff 3fdeffffffffdfff c02010000ffffffe c020121007fffffc c02011080bfffffd Wrong 1532653 +bff000403fffffff 3fdf3e0be31ebee9 b802c73b4852e1e1 bfdf3e8958467aee bfdf3e8958467aef Wrong 1538695 +3fc0fffffffffff7 3cafffffffffffff bf8011ffffffffff bf8011ffffffffdd bf8011ffffffffee Wrong 1542723 +37ffffff00000006 c7e00001ffffffde 41c795c3980a9c95 41c795c3970a9c7d 41c795c3978a9c89 Wrong 1544737 +403fffffe001ffff 3e5daa9beba734ca 4023fe0e11be1e1e 4023fe0e4d1355ba 4023fe0e2f68b9ec Wrong 155077 +41fffff7ffbffffe 400fffffffffffff bf59af9a3b538749 421ffff7ffbfff30 421ffff7ffbffe62 Wrong 1554807 +4e5f3dce4e5c17a8 aeea7c211e03a2ce c00001effffffffe c00001f000000675 c00001f000000339 Wrong 1556821 +3fffffffffffffff 401ffffffffffffe 3ff0000000000001 40307ffffffffffe 4030ffffffffffff Wrong 1558835 +3fffffffffffffff bcafffffffffffff 3cafffffffffffff bcb7fffffffffffe bcaffffffffffffd Wrong 1576961 +3fffffffffffffff bfe0000000000001 bff0000000000001 bff8000000000001 c000000000000001 Wrong 1583003 +3fdfffffffffdff7 bff0000000000000 bfb503dcf633da77 bfe1503dcf632da3 bfe2a07b9ec66b4a Wrong 1585017 +3fffffffffffffff c000000000000001 4340000000000000 434ffffffffffffc 433ffffffffffffc Wrong 1589045 +40e200000000003f 4000000000000000 41cffffffffffdfe 41c0011ffffffdfe 41d00047fffffeff Wrong 159105 +3ffffffffffffffe 3caffffffffffffe c340000000000000 4340000000000000 c340000000000000 Wrong 1613213 +bfb0200001000000 3fffffffffffffff 3ec000000007fff7 bfc01ff800fffffb bfc01ff000fffff7 Wrong 1621269 +c3e76f2c56d0d8d0 c04fc00000000020 42ef800000000007 4447404e3d233736 4447404e7c233736 Wrong 1623283 +401fffffdeffffff 4010000000000001 3fdc00000fffffff 40401bffef900000 404037ffefa00000 Wrong 1627311 +bca0000dffffffff b8500000000fffee 36c9b3089edd6940 36c9b308a0dd6b00 36c9b3089fdd6a20 Wrong 1635367 +3ffffffffffffffe bfd0000000000001 bcafffffffffffff bfe0000000000001 bfe0000000000002 Wrong 1649465 +c3f23b5d47b0fea9 bfe0000000000000 d9ffffffffffdfff 59f0000000002001 d9ffffffffffdfff Wrong 1651479 +3ffffffffffffffe bff0000000000001 3ff0000000000001 bff7ffffffffffff bfeffffffffffffe Wrong 1655507 +3ffffffffffffffe c010000000000000 c340000000000000 c340000000000008 c340000000000004 Wrong 1661549 +bfbf80000001ffff 3f3fffffffefffdf 3fc573070215e3ae 3fc56f170215e566 3fc5710f0215e48a Wrong 1665577 +ba5bfffffffbffff c3eff8f4a38946a4 c03fffffbfffc000 c03fffffbf1ff150 c03fffffbf8fd8a8 Wrong 167161 +3eeffffffffffbfe bfa78bde48d46ae7 be6413896ff4d5bd bea82c7a94540ea2 bea8cd16dfd3b550 Wrong 1677661 +47f0000002000000 3cafffffffffffff c5fffdffffffe000 c5fffdfdffffdfc0 c5fffdfeffffdfe0 Wrong 1681689 +4000000000000000 3fdffffffffffffe 4340000000000000 4340000000000001 4340000000000000 Wrong 1685717 +becffffff8000003 2eb5b3f4af3d7bf6 41307fffffffffbf c13f800000000041 41307fffffffffbf Wrong 1695787 +bfd0fffff7ffffff 4340000000000001 c0b0002000001ffe c320fffff8001000 c320fffff8002000 Wrong 1699815 +c0332683837ce949 c0f000000800ffff 41e0000000000fff 41e004c9a0e35456 41e00264d071b22b Wrong 1713913 +4000000000000000 c000000000000000 bff0000000000001 c012000000000000 c014000000000000 Wrong 1728011 +50aafe7c26407d06 3ffdfff7ffffffff 0e058c435455cc58 50b94e8da43d6ba4 50b94e8da43d6ba5 Wrong 173203 +c1df000000004000 3e46552ef24d77ca 402403ffffffffff c030a1857abb38b6 c027410af576716d Wrong 1732039 +4000000000000000 c340000000000000 4340000000000000 c348000000000000 c340000000000000 Wrong 1734053 +bd6ffff800000040 c34fffffffffffff c06ffffffa000000 40cfbff8000c003f 40cf7ff80018003f Wrong 1736067 +c340000000004100 001fffffffffffff 3fb9f4a28a317ba3 bfb60b5d75ce845d 3fb9f4a28a317ba3 Wrong 1748151 +ac733af5cc6534e5 bfbfffffffffe003 be7fffffff800040 3e700000007fffc0 be7fffffff800040 Wrong 1750165 +4000000000000001 3caffffffffffffe 3ff0000000000001 3ff0000000000005 3ff0000000000003 Wrong 1752179 +c34407ffffffffff 3fd0000000000001 434ee78a270158c4 4334e38a270158c4 4349e58a270158c4 Wrong 1754193 +bef0000040002000 c00fffdffffeffff 3f94c3676ce5c5c1 3f94e3674d65c481 3f94d3675d25c521 Wrong 1756207 +4000000000000001 3fefffffffffffff c340000000000000 4340000000000002 c33ffffffffffffe Wrong 1758221 +c3faf4d1799b420e 4010000000000001 c3335809be152176 c41af4f829aebe3a c41af51ed9c23a64 Wrong 1766277 +4020fefffffffffe c01ffffffffffffe 402fc3fffffffffe c04e057ffffffffa c04a0cfffffffffa Wrong 1768291 +4000000000000001 8010000000000001 4340000000000000 c340000000000000 4340000000000000 Wrong 1782389 +3efffffffe000040 bc1000000000207f 40effffffffdc000 c0e0000000024000 40effffffffdc000 Wrong 1786417 +3f2fffddffffffff bffffffffffffffe c1e00000001003fe c1e0000000100bfe c1e00000001007fe Wrong 1796487 +4000000000000001 c010000000000000 3ff0000000000001 c01e000000000002 c01c000000000002 Wrong 1800515 +4000000000000001 c34ffffffffffffe c340000000000000 c362000000000000 c364000000000000 Wrong 1806557 +3fd0005ffffffffe c3e411c0691b2909 c34ffffff81fffff c3c42238d399afa9 c3c43238d395bfa9 Wrong 1810585 +0000000000000000 3fffffffffffffff c340000000000000 4340000000000000 c340000000000000 Wrong 18125 +c1c01f7fffffffff c0cbfffff8000000 bfe0000002000004 429c371ff7f03efe 429c371ff7f03dfe Wrong 1816627 +400fffffffffffff 3fdfffffffffffff bff0000000000001 3ff7fffffffffffe 3feffffffffffffa Wrong 1824683 +c1c0000000000fde 3fe0000000000001 41d4cbff08b3d9b1 41b997fe1167a383 41d0cbff08b3d5b9 Wrong 1826697 +b8d3ffffff000000 c3d5607787b731da ffdffffffffffffe 7fd0000000000002 ffdffffffffffffe Wrong 1828711 +400fffffffffffff 3fffffffffffffff 4340000000000000 4340000000000008 4340000000000004 Wrong 1830725 +c03f8000000000fe 4340000000000000 c1c0040000000007 c38f8000008020fe c38f8000010040fe Wrong 1838781 +c03100000001ffff bfeffffffffffffe 414fffff800fffff 4140001080100001 4150000400080000 Wrong 1862949 +402fffffe0040000 c3ea62add43fe399 c3d000001e000000 c42aa2adba58821a c42ae2adbad0821a Wrong 1864963 +4050000090000000 c00fffffffffffff 40bfffffffffbffe 40bdffffedffbffe 40befffff6ffbffe Wrong 1868991 +400fffffffffffff c01ffffffffffffe bff0000000000001 c0403ffffffffffe c0407fffffffffff Wrong 1873019 +c0377bbf63a456e8 c34fffffffffffff c0bfffffff7fefff 43977bbf63a456a7 43977bbf63a45667 Wrong 1875033 +400ffffffffffffe 3cafffffffffffff bcafffffffffffff 3ccbfffffffffffd 3cc7fffffffffffd Wrong 1891145 +3ff0000007c00000 3fd0000000000001 c02fffffffff3fff c02effffff833fff c02f7fffffc13fff Wrong 1893159 +400ffffffffffffe 3fefffffffffffff 3ff0000000000001 4011fffffffffffe 4013ffffffffffff Wrong 1897187 +bcdfffffffff7bfe 3ff0000000000000 be200ffffffffff6 be201001fffffff6 be201000fffffff6 Wrong 1899201 +400ffffffffffffe 4000000000000001 c340000000000000 c34ffffffffffff8 c33ffffffffffff8 Wrong 1903229 +c1d0000007fffeff c07fffffff03ffff bfdffffffffe7ffe 426000000781f6fe 426000000781eefe Wrong 1913299 +c013a5cd955a8eca 3e007fffff7fffff 3b0059c22188f0f5 be2442fc016834d0 be2442fc016834ce Wrong 1919341 +c02ffbfffffffbff 801ffffffffffffe c7eff7fffbffffff 47e0080004000001 c7eff7fffbffffff Wrong 1923369 +400ffffffffffffe bfd0000000000000 4340000000000000 c340000000000001 433fffffffffffff Wrong 1927397 +c030000000107ffe bfffffffffffffff c3c0800000002000 43cf7fffffffe000 c3c0800000002000 Wrong 1935453 +41c00000000fffef c01fffffffffffff 40700007fffbfffe c1effffff01ff7dd c1efffffe01fefdd Wrong 1941495 +bfe8f26bc072a863 b81ffffffff00000 381000020fffffff 3820793664331796 38247936e8331796 Wrong 1949551 +4010000000000000 3fdfffffffffffff 3cafffffffffffff 3fffffffffffffff 4000000000000000 Wrong 1963649 +4010000000000000 3ff0000000000001 bff0000000000001 400c000000000002 4008000000000002 Wrong 1969691 +3fdfffbffffffffa 4000000000000000 400080003fffffff 40003ff01ffffffe 40087ff03ffffffe Wrong 1971705 +401efffffffbffff 400c000000000fff 3fee5f5b0ddd3442 403b997d6c34044f 403c12fad86b7920 Wrong 1973719 +4010000000000000 4010000000000001 4340000000000000 4340000000000010 4340000000000008 Wrong 1975733 +381f8007fffffffe 401ffffffffffffe c3fffffefffc0000 43f0000100040000 c3fffffefffc0000 Wrong 1977747 +4010000000000000 bca0000000000000 3ff0000000000001 3ffffffffffffffd 3feffffffffffffe Wrong 1993859 +4010000000000000 bfdffffffffffffe c340000000000000 c340000000000002 c340000000000001 Wrong 1999901 +41c0007ffc000000 3c4ff80000001fff c49ef96d79f85b02 449106928607a4fe c49ef96d79f85b02 Wrong 2028097 +3f8cd1cdc67650ea c017effffffffffe 43cffdefffffffff c3c0021000000001 43cffdefffffffff Wrong 203413 +c1c1ffffffffffbf c1f20000000007fe beefdfffffffffef 43c44000000008b4 43c44000000008b5 Wrong 2040181 +4010000000000001 4000000000000001 3ff0000000000001 4021000000000002 4022000000000002 Wrong 2042195 +4010000000000001 4340000000000000 c340000000000000 435c000000000002 4358000000000002 Wrong 2048237 +4010000000000001 8010000000000000 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 2060321 +47f422d15fbfc2a7 c04000001fc00000 7fdffeffffbfffff ffd0010000400001 7fdffeffffbfffff Wrong 2064349 +4010000000000001 bcaffffffffffffe bff0000000000001 bff0000000000009 bff0000000000005 Wrong 2066363 +4010000000000001 bfeffffffffffffe 4340000000000000 434ffffffffffffc 433ffffffffffffc Wrong 2072405 +3fafffff00040000 41c000000000007f 3fb6225da8dafef7 417fffff00b513eb 417fffff016626d9 Wrong 2076433 +3fdfff80007fffff c010000000000001 c000000003fe0000 c007ffc0023f0000 c00fffc0043e0000 Wrong 2080461 +3fb00000000000fd 3648d98a332e5571 35080008e5baca0b 3608d9963332c9d7 3608d9a233373cb5 Wrong 2088517 +c3d39f1456976025 0000000000000000 7fefffffff7fffef ffe0000000800011 7fefffffff7fffef Wrong 2092545 +401fffffffffffff 0010000000000001 c340000000000000 4340000000000000 c340000000000000 Wrong 2096573 +be1ffff0ffffffff 3f5fffff00000000 3fcffffffdfbffff 3fcffffffdf80001 3fcffffffdfa0000 Wrong 2100601 +401fffffffffffff 3ff0000000000001 3cafffffffffffff 4020000000000000 4020000000000001 Wrong 2108657 +c00ffffffff7bffe 3ffffffffffffffe bfd47afa8ed01f9a c02051ebea37207c c020a3d7d47260fb Wrong 2110671 +401fffffffffffff 4010000000000000 bff0000000000001 403f7fffffffffff 403effffffffffff Wrong 2114699 +b810004000000010 401ffffffffffffe 403fff7ffffff000 c030008000001000 403fff7ffffff000 Wrong 2116713 +bf90b94940132032 7fefffffffffffff ffdfbfffffffdfff ffd1d72928024405 ffe065ca4a008901 Wrong 2122755 +002ffffffff7bfff b12b2946e3e0cc24 41aaea0575638d88 c1a515fa8a9c7278 41aaea0575638d88 Wrong 2124769 +c041c7dce2709a19 0010000000000001 3fcf7ffffff00000 bfc0800000100000 3fcf7ffffff00000 Wrong 213483 +401fffffffffffff bfdffffffffffffe 3ff0000000000001 c00bfffffffffffd c007fffffffffffd Wrong 2138867 +c34ff80000001000 bfe0000000000001 c3ff7efffffffffe c3ff7b00fffffffc c3ff7d007ffffffd Wrong 2140881 +400fdffe00000000 4000beb28ac6e8df c1df7ffff8000000 c1df7ffff3d4834d c1df7ffff5ea41a6 Wrong 2142895 +401fffffffffffff bfffffffffffffff c340000000000000 c340000000000010 c340000000000008 Wrong 2144909 +4020000000003fbe c000000000000001 c1cfefffffffff7f c1cff0000fffff7f c1cff00007ffff7f Wrong 2146923 +3fceb158f9d7dfa5 c340000000000001 c34c63caebfbfe18 c3104084a9c7d807 c3501cfb059b7d06 Wrong 2152965 +43fe690733095b3f 0010000000000000 9c0cf7eb74a0fe9b 1c0308148b5f0165 9c0cf7eb74a0fe9b Wrong 2165049 +b7e00001ffffff00 3caffffffffffffe b800000001ffffff b800000002000000 b800000001ffffff Wrong 2171091 +c3c03ffffffffbfe 8deffffe07ffffff ba5fdfffff7fffff 3a50200000800001 ba5fdfffff7fffff Wrong 2179147 +3fe0000ffffffffc bcae000000001ffe 0010040000000006 bc9e001e00001ff6 bc9e001e00001ff7 Wrong 2185189 +40c00007fc000000 c1cffffff8001fff bf1fff8000100000 c2a00007f8000e00 c2a00007f8000e01 Wrong 2191231 +c2700000003ff7ff 801fffffffffffff bdfffffe7ffffffe 3df0000180000002 bdfffffe7ffffffe Wrong 2201301 +401ffffffffffffe bcaffffffffffffe 3cafffffffffffff bcddfffffffffffc bcdbfffffffffffc Wrong 2205329 +3fc013ffffffffff 3fc000000ffffefe bfedffffffffdfff bfecfebffefea00f bfed7f5fff7f4007 Wrong 2209357 +401ffffffffffffe bfefffffffffffff bff0000000000001 c020fffffffffffe c021ffffffffffff Wrong 2211371 +38d407fffffffffe bff0000000000001 47efffffffdfdffe c7e0000000202002 47efffffffdfdffe Wrong 2213385 +bd6800000007ffff c3d8a89c08d5d92c 4000040000000800 41527e7546b68d07 41527e7586c68d07 Wrong 2215399 +401ffffffffffffe c00fffffffffffff 4340000000000000 434fffffffffffe0 433fffffffffffe0 Wrong 2217413 +c010140b934d5ff7 c03f80000003ffff c00fffffff0fffff 405f2776ca0819f0 405ea776ca0bd9f0 Wrong 2227483 +c1d000000000203f 001ffffffffffffe 001ffffffffff7bf 81ffffffffc0407c 81ffffffff80407c Wrong 2237553 +4340000000000000 3fd0000000000000 c340000000000000 c320000000000000 c338000000000000 Wrong 2241581 +3febffffffdffffe c3b0080000000fff c3f0000002000002 c3f1c0e001fe00c2 c3f0e07001ff0062 Wrong 2251651 +43dc9799aeac7b3a 3ff0000000000000 c0fff7ffffffffff 43dc9799aeac7afa 43dc9799aeac7aba Wrong 225567 +41f00000fc000000 401fffffffffffff 4366fe581a30b534 4366fe5a1a30d4b4 4366fe591a30c4f4 Wrong 2255679 +9f4ee4bea2031544 d8e0000200fffffe bfeffff00fffffff 3fe0000ff0000001 bfeffff00fffffff Wrong 2281861 +4340000000000000 c010000000000001 c340000000000000 c362000000000001 c364000000000001 Wrong 2289917 +434f8da321556224 c01b2588e50183be 427142efd04a8c6b c37ac47bc30b10c8 c37ac473219328a3 Wrong 2306029 +4340000000000001 3ca0000000000000 bff0000000000001 3fe0000000000001 0000000000000000 Wrong 2308043 +4000001000000020 c1f1000000000004 6a4fffffffdffff7 ea40000000200009 6a4fffffffdffff7 Wrong 2312071 +4340000000000001 3fe0000000000000 4340000000000000 4340000000000000 4348000000000000 Wrong 2314085 +3f8b17d321454789 3fd7ffffffffff7f bfe000080ffffffe bfefaec0969c3029 bfdfaec8a69c3027 Wrong 2318113 +4340000000000001 401ffffffffffffe bcafffffffffffff 4360000000000000 4370000000000000 Wrong 2326169 +3ff0078000000000 42b13867492e71c0 c15ffffffc0000fe 42b140797998bf8d 42b140793998bf95 Wrong 2330197 +c1effffffbffffbf 41eff99f4885a23d c3cfffe000000001 c3f1fccda243370a c3f3fccba243370a Wrong 2336239 +ca7fff0000000fff 3ca62fd739ece5a5 48000000003f0000 480ffe9d0de34cce 47fffe9d0e224cce Wrong 2348323 +c00ffbfdfffffffe c010000000000000 3eef7bb95b77143e 402ffbfefbddcada 402ffbfff7bb95b5 Wrong 2358393 +434fffffffffffff 0010000000000000 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong 2374505 +c03fffe07ffffffe c0c87ec3854317ef c23400016adf210a c233fff52b896ccc c233fffb4b3446eb Wrong 2378533 +434fffffffffffff 3fd0000000000000 3ff0000000000001 4330000000000000 4330000000000001 Wrong 2380547 +434fffffffffffff 3feffffffffffffe c340000000000000 4347fffffffffffd 433ffffffffffffa Wrong 2386589 +c1f0001fffff7ffe 3fffffffffffffff 4020000000043fff c200001fffdf7ffd c200001fffbf7ffd Wrong 2388603 +42a0020000000007 bdafe01fffffffff 3ff000000021ffff c05fc41c03ffbc0d c05fa41c03ff780d Wrong 2396659 +400c1d1b46e04d2b be4e00000000001f c02f7fff00000000 c02f7fff034b6932 c02f7fff01a5b499 Wrong 2402701 +bc1c9a8f60ba2ec4 413000000020ffff 3fe0000e00000000 3fe0000dffffe365 3fe0000dfffff1b3 Wrong 2408743 +434fffffffffffff 801fffffffffffff 4340000000000000 c340000000000000 4340000000000000 Wrong 2410757 +c2400fffffffff7f bca0000000000000 4017fffffffffff7 4018000807fffff7 4018000403fffff7 Wrong 2412771 +7f600000fbffffff c024153a49a4352e b2a0000000200002 ff94153b85f28b34 ff94153b85f28b35 Wrong 2414785 +c1ffffffffff3fff bfe0000000000000 c01fffffffe00000 41efffffff7f3fff 41effffffeff3fff Wrong 2418813 +3ecffffffffe0000 3fc0fff800000000 c0d00010000007fe c0d0000ffffbc800 c0d0000ffffde7ff Wrong 2420827 +bfdc000000080000 bfbfffffffffefe0 c035edb781f59599 c035d1b781f58da7 c035dfb781f591a0 Wrong 2426869 +434ffffffffffffe 3ca0000000000000 3cafffffffffffff 3ffffffffffffffe 3fffffffffffffff Wrong 2447009 +c06321ec0ecef83a 3cafffffffffffff 43dfffffffefff7f c3d0000000100081 43dfffffffefff7f Wrong 2449023 +434ffffffffffffe 3fdffffffffffffe bff0000000000001 433ffffffffffffc 433ffffffffffffb Wrong 2453051 +bcaffc0000000ffe c0100000001ffffb bfcffff7ffffbffe bfcffff7ffffbfbe bfcffff7ffffbfde Wrong 245707 +434ffffffffffffe 3ffffffffffffffe 4340000000000000 4361fffffffffffe 4363fffffffffffe Wrong 2459093 +c34ffffffffffc00 bbe000000000027f 43dfffffeffffbff 43d487c0c983e604 43dfffffeffffbff Wrong 2469163 +c017ff8000000000 8010000000000000 bfcfffffff820000 3fc00000007e0000 bfcfffffff820000 Wrong 2479233 +434ffffffffffffe bca0000000000001 c340000000000000 c340000000000002 c340000000000001 Wrong 2483261 +c0effaffffffffff 3f1ffbfffffffdff bfc929330a6f28fb c0202dd2b614dd51 c02060251c29bba3 Wrong 2487289 +bff007f7ffffffff bff0000000000000 3ed10000007ffffe 3ff007fa2000000f 3ff007fc4000001f Wrong 2491317 +401ffffffbfffbff 3fbfffef80000000 c00000400000007f bf121080005ddfbe bff00088420001f6 Wrong 2493331 +434ffffffffffffe c000000000000001 3cafffffffffffff c350000000000000 c360000000000000 Wrong 2495345 +bf3fffffdc000000 c00ffffffffffffe bef00000000043fe 3f5fdfffdbffff76 3f5fbfffdbfffeee Wrong 2497359 +0f2fdfefffffffff 3a7ffffffdff7fff c09c6db48153d631 4093924b7eac29cf c09c6db48153d631 Wrong 2499373 +41d47345faf3a236 bca000effffffffe 401e32064ec9ba5f 401e32063a5541a3 401e3206448f7e01 Wrong 2505415 +445ff7ffefffffff 3fdfffffffffffff 41efeffffffffff6 444ff7fff0003fde 444ff7fff0007fbe Wrong 2521527 +c01010001fffffff 3ff0000000000001 43ffffffffe1fffe c3f00000001e0002 43ffffffffe1fffe Wrong 2527569 +c1b00800ffffffff c076927c86fdafbf bf80001effffffff 42369dc72e68f605 42369dc72e68f505 Wrong 2547709 +7fe0000000000000 8010000000000001 bff0000000000001 c004000000000001 c008000000000002 Wrong 2549723 +403000000000080e bfdfffffffffffff c05dfff800000000 c00fff8000002036 c05ffff800000102 Wrong 255777 +7fe0000000000001 3fdffffffffffffe 3cafffffffffffff 7fc0000000000000 7fd0000000000000 Wrong 2592017 +3fb00000000ffffe 3fe0000000000001 413001ffdfffffff 413001ffefffffff 413001ffe7ffffff Wrong 2594031 +412007fffeffffff bfffffffffffffff 4012000040000000 c13007fdbefff7fe c13007fb7effeffe Wrong 261819 +3fc0000003f7fffe 2c00ff7fffffffff bcbffffffffe7fff 3cb0000000018001 bcbffffffffe7fff Wrong 263833 +c22000000001ffe0 176fffeffffff7fe 490ffffffff7ffff c900000000080001 490ffffffff7ffff Wrong 2644381 +ffd0007fffffffff 0010000000000001 43bff293676fa42f c3b00d6c98905bd1 43bff293676fa42f Wrong 2654451 +43412867894a0dc5 c3f94739873de8c1 3fcbffdfffffffff c74b1b82c2ed1472 c74b1b82c2ed1473 Wrong 2680633 +b7f001000000003e bfdffffffffffffe b7f00000004001ff 371ffff7ffc7bffe b7dffe0001000782 Wrong 2696745 +c01fc000ffffffff bfeff0001fffffff 406bffeffffffffe 406dfaf211f4000e 406cfd7108fa0006 Wrong 2698759 +42cf0007fffffffe bfffffffffffffff 43fffb7fffffffff 43fffb707ffbffff 43fffb783ffdffff Wrong 2702787 +c34fffffff7fbffe 37f0000000401000 40affffe0000007f c0a00001ffffff81 40affffe0000007f Wrong 2716885 +7feffffffffffffe 001fffffffffffff c340000000000000 c34ffffffffffff8 c33ffffffffffff8 Wrong 2724941 +c060003fffff7ffe 3ca0000000000001 c02000fffefffffe c02000ffff00000e c02000ffff000006 Wrong 2726955 +37e000000001ffff 434001000007ffff 38100007ffe00000 3b300100000a0020 3b300100000a0022 Wrong 2753137 +c03ffffffffffbef c00fffffffffffff c07ffffe02000000 c05ffffc04000412 c077fffe02000104 Wrong 2775291 +bca0001008000000 41c0000000000fdf 3feac3e63849250d 3feac3e5f848e4ed 3feac3e6184904fd Wrong 2777305 +3f0ff7ffffffc000 c34fffffffffffff 3feeffffffff7fff c26ff7ffffffb07f c26ff7ffffffa0ff Wrong 2781333 +bff9babb71f7f8b0 b80fffffdfffffee bb7000000000003e bb7000000000003d bb7000000000003e Wrong 2789389 +bfc3fc9335d22f67 0010000000000001 41cfffc000ffffff c1c0003fff000001 41cfffc000ffffff Wrong 2793417 +3f1fffffe0000004 426cedd14ca226b4 41e00007ffff7fff 41e1cee512fac556 41e0e776897d22aa Wrong 2795431 +c08ffffffffe001e 3ff0000000000000 c070220000000000 c092043fffff000f c094087fffff000f Wrong 2805501 +bfe200000000fffe 41fd6e4653630b63 480ffff008000000 c800000ff8000000 480ffff008000000 Wrong 281959 +4060000000080ffe 801ffffffffffffe 47fffc000fffffff c7f003fff0000001 47fffc000fffffff Wrong 2829669 +c34ffdffffff7fff 360fffffffffffbe 3f5ffffefffffffc bf50000100000004 3f5ffffefffffffc Wrong 2837725 +c3368331494c07f2 bfffffffffffffff 41d0000007ffffff 43468331594c07f9 43468331694c0801 Wrong 2841753 +405001ffffffffbf c010000000000001 bfe01ffffffffffb c0700607ffffffc0 c0700a0fffffffc0 Wrong 2847795 +c3407ffffffffffa 3fefffffffff007f c1cef00000000000 c34080000f777c3b c34080001eef7c3b Wrong 2861893 +b056edfafd7aecd8 3fe0000000000000 46fff80002000000 c6f007fffe000000 46fff80002000000 Wrong 2871963 +c34ffc00ffffffff bef38655f21f4b0d 412ff8000000003f 425383e7c313b6b4 425383e9c293b6b4 Wrong 2873977 +c07ffe0001ffffff 4000000000000000 4210080000007ffe 421007ffe0027ffc 421007fff0017ffd Wrong 2878005 +a4c1cb8f4c4a2248 3f6dfffdffffffff 43cffffffffff001 c3c0000000000fff 43cffffffffff001 Wrong 288001 +bfdfffe00fffffff 3fccf2165e6eea40 3ff0000023fffffe 3ffc61c0f4a5cd1e 3fec61c118a5cd1c Wrong 2880019 +40eaff598ceffab8 401ffffffffffffe e20ffc0000007ffe 620003ffffff8002 e20ffc0000007ffe Wrong 2884047 +be094ae83f023cb1 bcafffffffffffff c02fe000001fffff 40201fffffe00001 c02fe000001fffff Wrong 2902173 +c3ce8c81ad84b066 3e30fffffeffffff 480ffe0004000000 c80001fffc000000 480ffe0004000000 Wrong 2910229 +bfdeffffffff8000 c000000000000001 3fccc2e7f3c48eec 3ff14c2e7f3c08f0 3ff3185cfe7851de Wrong 2914257 +401618d4abc2ecba 3fe97989d3f9c41b 3deffffffffbffef 40119753370a7449 40119753370c7449 Wrong 2916271 +c7eff7fffdffffff 3fe0000000000000 45bffffff7fffe00 c7dff7fffdfbffff c7dff7fffdf7ffff Wrong 292029 +bfdce145472b2459 c1dffc3ffffffffe c3fffbfffffeffff c3fffbfffff7c886 c3fffbfffffb6443 Wrong 2934397 +431ff800000000ff 3fd0000000000000 407fffffbfffff7f 42fff800000010ff 42fff800000020ff Wrong 2938425 +3fc0dc6ed2eafe1a 9d30004000000080 402fffff7ffc0000 c020000080040000 402fffff7ffc0000 Wrong 294043 +34f746586aadaf16 3feffffffffffffe c9bffffffffbfeff 49b0000000040101 c9bffffffffbfeff Wrong 2944467 +bff00000107fffff c052f75c56a2dd94 bfd0005fffffffff 4052ef5c3a31f4cc 4052e75c0a31f4cc Wrong 2946481 +bda01000000000ff 400ffffffffffffe 3fcffe3fffffffff 3fcffe3fffdfdfff 3fcffe3fffefefff Wrong 2950509 +c02ff80000000002 119215fb360e73ac 114000200000000e 91d20d75af40f010 91d20975a740f010 Wrong 2958565 +0010000000000000 3ff0000000000001 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong 296057 +8010000007f7ffff ffdc0ffffffffffe 3fefc00000003ffe 4002000006fd03fe 4005f80006fd0bfe Wrong 2964607 +4022e75b40b8c691 c010000000000001 bfd2ffed1d2049e5 c042fa5b2dd5e6dc c0430d5b1af30726 Wrong 2986761 +7fd03fffffbfffff 0000000000000000 3fffffff00003ffe 3ff81fff7fe01ffe 3fffffff00003ffe Wrong 2998845 +3fefff7ffffeffff 41e0001003ffffff c074811e0051b61d 41dfff9fde7ca3fb 41dfff9fb57a67fb Wrong 300085 +c047e499ddfa806a 3fdffffffffffffe b7fe0fffffffffff c037e499ddfa8068 c037e499ddfa8069 Wrong 3010929 +3fbffffefffff800 3ffffffffffffffe c340fffffffffdff 434f000000000201 c340fffffffffdff Wrong 3016971 +a440000003e00000 bf9748f93642bbe3 b7f4721d96c17b0b 37fb8de2693e84f5 b7f4721d96c17b0b Wrong 3018985 +0000000000000000 7fefffffffffffff 3cafffffffffffff 3fffffffffffffff 3cafffffffffffff Wrong 30209 +bfdfffffb0000000 401ffffffffffffe 4000000800003fff c007fffbafffdffe bfffffef5fff7ffe Wrong 304113 +bfa01fffffffffe0 bca0000000000001 c0204d08eea95a99 402fb2f71156a567 c0204d08eea95a99 Wrong 3041139 +3d2ffffbfffffffe 434e000000000003 bff0000040ffffff 408dfbfc3fefc001 408df7fc3fdf8001 Wrong 3049195 +3fffffffff7f8000 c000000000000001 c0b0000800fffffe c0b0080800ffdfde c0b0040800ffefee Wrong 3053223 +c12fc00001000000 c1e00002000003fe ffdfffffbff7ffff 7fd0000040080001 ffdfffffbff7ffff Wrong 3055237 +c1f03ffff7ffffff 41d0000000bfffff c090000001007fff c3d03ffff8c2fffe c3d03ffff8c2ffff Wrong 3061279 +8000000000000000 3ca0000000000001 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 3075377 +3fbffffffdfff7fe 3feffffffffee000 bfcffffff801ffff 3e17f35ffc004801 bfbffffff2052800 Wrong 3079405 +0010000000000000 7fe0000000000000 c340000000000000 c34ffffffffffffe c33ffffffffffffe Wrong 308141 +8000000000000000 4000000000000000 4340000000000000 c340000000000000 4340000000000000 Wrong 3087461 +c21103fffffffffe 400fffffffffffff c3e0200ffffffffe c3e020100440fffe c3e0201002207ffe Wrong 3089475 +bfb00207fffffffe c1f80bd9803691dc c3f000200000007e c3f0001ffffcfea1 c3f0001ffffe7f90 Wrong 3091489 +8000000000000000 7feffffffffffffe bcafffffffffffff bffffffffffffffe bcafffffffffffff Wrong 3099545 +8000000000000000 bcafffffffffffff c340000000000000 4340000000000000 c340000000000000 Wrong 3111629 +406ffe0000fffffe bfd0000000000001 400f499c83e9329a c04f03b31ce0b66b c04e096638c16cd6 Wrong 3113643 +c05fffffffdeffff bff0000000000001 c01000000007dfff 405f7fffffdec101 405effffffde8201 Wrong 3119685 +400040000007ffff bfa738fe57513611 c0200000000081ff c0205e5789436a5c c0202f2bc4a1f62e Wrong 3121699 +47e00010007fffff 40266ebea38fe729 c1f0001001fffffe 48166ed5130200ac 48166ed5130200ad Wrong 3139825 +bf1fffffffffefbe 4060001fff7ffffe bfb9717e7198ca76 bf6718e7158c6647 bfbd71867178c86d Wrong 3157951 +43100200003fffff b7e000000dfffffe 47ef5361de548d5b c7e0ac9e21ab72a5 47ef5361de548d5b Wrong 3163993 +7a2e9622e5ca04a5 21f6a376abef6748 bfefff80000007ff 5c35a3762db52e1a 5c35a3762db52e1b Wrong 3176077 +3f4ffffffffffe06 3fe121d0404af4cc 403ef7a477cb376d 403ef7e8ff0c3899 403ef7c6bb6bb803 Wrong 3182119 +c100007fffffffbf b3fffffffffffffe 36cfffc00000000e 36cfffc00400200e 36cfffc00200100e Wrong 3188161 +bfbffffffffb7fff 40afffffef000000 3fd000000000fe00 c07ffdffeefb7fdf c07ffbffeefb7fc0 Wrong 3194203 +0010000000000000 bca0000000000000 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 320225 +c09000003fffbfff bcafffffffffffff c02ffffffffe01ff c02ffffffffe00ff c02ffffffffe017f Wrong 322239 +c090003ffffffffb 3fefffffffffffff 41d00000003ffe00 41dffffe0037fe00 41cffffe0077fc00 Wrong 3222399 +c0200000000017ff c3e07feffffffffe 41637ffffffffffe 44107ff0000019f5 44107ff000001b2d Wrong 3230455 +380531927f4eef39 2ec0003ffffffc00 bfc7ffffffefffff 3fc8000000100001 bfc7ffffffefffff Wrong 3248581 +c010000000000ffa bfd0000000000000 3f60000000200002 3ff00400000017fa 3ff0080000001ffa Wrong 3252609 +c03000000003efff 400fbffffffbffff 704fffe7ffffffff f040001800000001 704fffe7ffffffff Wrong 3254623 +3fd00000ffffff80 bff0000000000000 bf6000000020ffff bfd0100100002080 bfd0200100004180 Wrong 3258651 +3fcffffffff7ff7f bff4691aa0d59fcd 40600007ffe00000 406feb9ee53f2f7b 405feba6e51f2f7b Wrong 3260665 +c050000100003fff 001fffffffffffff 47efffc001fffffe c7e0003ffe000002 47efffc001fffffe Wrong 3282819 +7560000001fffffe 3fc1e915aabc5c49 f5dfc0000fffffff f5dfb70b85298340 f5dfbb85ca94c19f Wrong 3284833 +401ffffe07fffffe 4010000000000001 c1f7e00000000000 c1f7dffffc00003f c1f7dffffe000020 Wrong 3300945 +40100003fffffefe 402ffffff7f7ffff ceab55d2faad3c08 4ea4aa2d0552c3f8 ceab55d2faad3c08 Wrong 3309001 +0010000000000000 bffffffffffffffe 4340000000000000 c340000000000000 4340000000000000 Wrong 332309 +bf9ff7ffffffffff 41e828069d05f676 401b3add2f8a8e68 c19821fc8dc14660 c19821fc8023d7c8 Wrong 3327127 +3fc000000000bfff c01ffffffffffffe bfefff9000000000 bff7ffe40000bffe bfffffc80000bffe Wrong 3337197 +beef802000000000 c000000000000001 4000000000dfffff 4000001f80ffffff 4000000fc0efffff Wrong 334323 +c1c0000003ffffff 3cafffffffffffff 3ca0000000002fff be80000003dffffe be80000003bffffe Wrong 3355323 +bdfffff8000000fe ba37ef95f9e7fcb2 ba2fc000007fffff ba2fbfffffc0837f ba2fc000002041bf Wrong 336337 +8010000000000000 3ffffffffffffffe 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 3365393 +b891000000000006 40000000003ff800 380ffffffffeffdf b8a0fc000043f7a6 b8a0f8000043f7c6 Wrong 3375463 +8010000000000000 7fefffffffffffff 4340000000000000 434ffffffffffffc 433ffffffffffffc Wrong 3377477 +8010000000000000 bca0000000000001 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong 3389561 +c1dc00ffffffffff bfd0000000000000 bf8fffe000001000 41bc00fffffe0001 41bc00fffffc0003 Wrong 3391575 +ffd0008800000000 802b2144a835a75b 428000000000020f 4280000000003853 4280000000001d31 Wrong 3393589 +3f80001ffffefffe bfeffffffffffffe 41dfc10000000000 41dfc0fffffefffe 41dfc0ffffff7fff Wrong 3397617 +8010000000000000 c000000000000000 c340000000000000 4340000000000000 c340000000000000 Wrong 3401645 +bfe7da39e756fab8 c340000000000001 41d87200e15761ba 4337da3a183afc7c 4337da3a491efe3f Wrong 340365 +ce17bb7913b68ebe c34ffffffffffffe ffdffdffffffbfff 7fd0020000004001 ffdffdffffffbfff Wrong 3409701 +c00ffffc7fffffff 3fd7ffffdfffffff bca000400000000e bff7fffd4000037e bff7fffd4000037f Wrong 3411715 +3fbfffffefbfffff 3f600001ff7ffffe bfc000fffffffffe bfcff0fffe089fff bfbff1fffe089ffd Wrong 3417757 +3fbff7fffffffffd 47f0203ffffffffe c7fffffffe00fffe c7d7f1e40401fffe c7fdfc790000fffe Wrong 3423799 +8010000000000001 3caffffffffffffe 4340000000000000 c340000000000000 4340000000000000 Wrong 3425813 +41efffffffff807f 3fd0000000000001 c01feffffffff7ff 41cffffffe008081 41cffffffc018081 Wrong 3427827 +4248c62fe782eace c1effe0000004000 41dfff7ffffffffe c448c4a38484842c c448c4a38484642d Wrong 3435883 +bdcfe00ffffffffe bfdffffffffffffe bfc000000200000f bfc0000001e01fff bfc0000001f01007 Wrong 3464079 +41100008000ffffe bffffffffffffffe 3fb1baac953356d1 c1200007ee555368 c1200007dc9aa6d3 Wrong 3470121 +3dffff0000001fff 406ff08000000000 c04000000807ffff c0400000060907f7 c0400000070883fb Wrong 3472135 +bf4ff8000003ffff 400fc000000001ff bfd1000000040000 bfd17ee040040fe8 bfd13f70200407f4 Wrong 348421 +bf5fffbffffdfffe 3ca0000000000001 3f1ffffffe0003ff 3f1ffffffe0003df 3f1ffffffe0003ef Wrong 3494289 +403fffffff801000 3fe0000000000001 bff0803fffffffff 402ef7fbff801002 402deff7ff801002 Wrong 3500331 +5e78a4f96abc9de7 4000000000000001 47f8c8e01d92ead7 5e88a4f96abc9de8 5e88a4f96abc9de9 Wrong 3506373 +c0d0080000000007 4011f8543ddec32b c1e712df030dcd92 c1e71327084f6d89 c1e7130305ae9d8d Wrong 3508387 +801fffffffffffff 401fffffffffffff 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 3510401 +801fffffffffffff 7fe0000000000001 bff0000000000001 c012000000000000 c014000000000001 Wrong 3516443 +41f0000000002000 bcaffffffffffffe bfc1f235f0a8f509 bfc1f245f0a8f509 bfc1f23df0a8f509 Wrong 3530541 +c3c0000010000003 c343ff7fffffffff 0b7fffffffffffff 4713ff8013ff8002 4713ff8013ff8003 Wrong 3532555 +801fffffffffffff bfe0000000000000 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong 3534569 +403fffffffe0007f 816ffffffffffffe 41cfffffe003ffff c1c000001ffc0001 41cfffffe003ffff Wrong 3544639 +801fffffffffffff c01ffffffffffffe c340000000000000 4340000000000000 c340000000000000 Wrong 3546653 +434fffff7ff7ffff c34fffffffffffff 7fefffffdffffff7 ffe0000020000009 7fefffffdffffff7 Wrong 3548667 +c02217a020fc8a2d 3fa000020000001e 3fcfffbffffeffff bfc42f64c7e19cdd bfa0be131f887378 Wrong 3550681 +0010000000000001 3ca0000000000001 c340000000000000 4340000000000000 c340000000000000 Wrong 356477 +c00bc65690157317 c030000000002001 402d9eb7730c175f 404f7a2d7e772d91 40519702366c583f Wrong 3568807 +801ffffffffffffe 3fefffffffffffff 4340000000000000 c340000000000000 4340000000000000 Wrong 3570821 +3abfffffffff0400 400ffffffaffffff 37efe0000000ffff 3adffffffaff041f 3adffffffaff043f Wrong 3580891 +801ffffffffffffe 8010000000000000 c340000000000000 4340000000000000 c340000000000000 Wrong 3594989 +bff00000000000ef 37e70c9a6b785725 47fefffffffffff6 c7f100000000000a 47fefffffffffff6 Wrong 3611101 +bca0000000000000 3fdfffffffffffff 3ff0000000000001 3ff0000000000000 3ff0000000000001 Wrong 3637283 +bf3fe0003ffffffe 3ff0000000000000 bd83fffffffffffe bf3fe000413ffffe bf3fe000427ffffe Wrong 364533 +76c453fc3a9fc346 47d00fc000000000 7fdeca60d8a5decb 7fdeca65f2a59885 7fdeca6365a5bba8 Wrong 3677563 +bca0000000000000 bffffffffffffffe bcafffffffffffff 3c9ffffffffffffd b960000000000000 Wrong 3679577 +bca0000000000000 c01ffffffffffffe 3ff0000000000001 3ff0000000000009 3ff0000000000005 Wrong 3685619 +bed470c16ca5a9a9 c340000000000001 3fd0020000000008 422470c16ca5e9b2 422470c16ca629ba Wrong 3687633 +bca0000000000001 3cafffffffffffff 3cafffffffffffff bca0000000000003 3caffffffffffffe Wrong 3703745 +38f986d8ef088441 400ffffffffffffe b806d62a6adf932d 391986d3397de988 391986cd83f34ed0 Wrong 370575 +be6dffffffffff7e c0a555407160bc9b 3ffeb19129135086 3ffeb2d127d9f531 3ffeb2312876a2dc Wrong 3707773 +bca0000000000001 3fe0000000000001 bff0000000000001 bff0000000000002 bff0000000000001 Wrong 3709787 +3f7ffffffffff7fc c1e1ffffffffffde c03fffff80000400 c1720000fffff75c c1720001fffff35c Wrong 3713815 +bca0000000000001 4000000000000001 4340000000000000 c340000000000000 4340000000000000 Wrong 3715829 +bec0008000003ffe 434ffffffffffffe 3fb14dec1eb3ba6a c220008000002eaf c220008000001d61 Wrong 3723885 +bca0000000000001 bcaffffffffffffe c340000000000000 4340000000000000 c340000000000000 Wrong 3739997 +c250000000001fff 8722f954fdae09db c7fffffffe3fffff 47f0000001c00001 c7fffffffe3fffff Wrong 3744025 +bca0000000000001 c00ffffffffffffe 3cafffffffffffff 3cc4000000000000 3cc8000000000000 Wrong 3752081 +b80fffdffffbffff c010000000000001 bfcfffffffffeff7 3fc0000000001009 bfcfffffffffeff7 Wrong 3754095 +bca0000000000001 c34fffffffffffff bff0000000000001 3ff8000000000000 3ff0000000000000 Wrong 3758123 +3d50fffffffffbff 434ffffffffffffe c13ff000007fffff c13fce0000800007 c13fdf0000800003 Wrong 376617 +bcafffffffffffff 3fd0000000000001 bcafffffffffffff bca8000000000000 bcb4000000000000 Wrong 3776249 +43f001ffffefffff 3fe0000000000000 c7f1fbffffffffff 47fe040000000001 c7f1fbffffffffff Wrong 3778263 +bcafffffffffffff 3ff0000000000001 3ff0000000000001 bff0000000000001 3ff0000000000000 Wrong 3782291 +c3407ffffeffffff bfb9a56ed8cc7a8b c26080000000003f 430a708a4df88770 430a6e7a4df88770 Wrong 3786319 +c2bf048ed04e91d1 402000000ffffdff 4cf04000000007ff ccffbffffffff801 4cf04000000007ff Wrong 3792361 +bfc0000000800008 43d0001000000002 c3cffffbffff8000 c3c40002001fc022 c3d20000000fc011 Wrong 3804445 +c1f00080007ffffe 3fc000000000003b 3fcff80000000fff c1c0008000700439 c1c0008000600839 Wrong 3816529 +bcafffffffffffff c01fffffffffffff bcafffffffffffff 3cddfffffffffffe 3cdbfffffffffffe Wrong 3824585 +ffe00000001fff00 8010000000000000 3fb9ffffffffffff 40006800001fff00 4000d000001fff00 Wrong 38265 +bcaffffffffffffe 3fe0000000000001 3cafffffffffffff b94ffffffffffffc 3c9ffffffffffffe Wrong 3848753 +400a345eeb63ab2b 3feffffffffffffe 3fc00001ffffbfff 400ab45efb63a929 400b345f0b63a729 Wrong 3850767 +bffa3a6cef49b307 c9603ffdfffffffe c47fffff803fffff 496aa3535bb93be6 496aa3535bb93be7 Wrong 3852781 +bcaffffffffffffe 4000000000000000 bff0000000000001 bff0000000000005 bff0000000000003 Wrong 3854795 +bfcbba3f322084be b7f48a14e108cb87 ffdfffffff000001 7fd0000000ffffff ffdfffffff000001 Wrong 3858823 +bcaffffffffffffe 4340000000000000 4340000000000000 c340000000000002 433ffffffffffffe Wrong 3860837 +3fa0000003ffff7e 434fffffffffffff c3d7fffffffffffc c3d7feffffffbffc c3d7ff7fffffdffc Wrong 3862851 +3fef869027739b45 41c1000400000000 bfdfffff6fffffff 41c0bf8085a76f6c 41c0bf8085876f6c Wrong 3864865 +bcaffffffffffffe bfefffffffffffff c340000000000000 4340000000000000 c340000000000000 Wrong 3885005 +40000fefffffffff 801fffffffffffff 4d3fffffffc00080 cd300000003fff80 4d3fffffffc00080 Wrong 388701 +bcaffffffffffffe c34fffffffffffff 3cafffffffffffff 400ffffffffffffd 400ffffffffffffe Wrong 3897089 +e4c25c774d9f6f1b 401fc00000ffffff 3c3000000007efff e4f237be5f9713f6 e4f237be5f9713f7 Wrong 3907159 +bfd0000000000000 0010000000000001 4340000000000000 c340000000000000 4340000000000000 Wrong 3909173 +bdf0000000020002 409fffffefff7fff c020000000008000 c020000020007ff0 c020000010007ff8 Wrong 3919243 +bfd0000000000000 3ff0000000000000 bcafffffffffffff bfd0000000000002 bfd0000000000004 Wrong 3921257 +bfd0000000000000 4010000000000000 3ff0000000000001 bfdffffffffffffe 3cb0000000000000 Wrong 3927299 +c1effffe0000007e 401fffffffffffff c3c73160da37c1be c3c73160e237c13e c3c73160de37c17e Wrong 3929313 +bfd0000000000000 434ffffffffffffe c340000000000000 c33fffffffffffff c348000000000000 Wrong 3933341 +c01ff7fffffffffe 43d0001ffffff000 7fdffffffbfffeff ffd0000004000101 7fdffffffbfffeff Wrong 3949453 +bfd0000000000000 bfdfffffffffffff bff0000000000001 bfd8000000000002 bfec000000000002 Wrong 3951467 +bccb12e85bca0cfe bfe0000000000001 3f0fffff7fffefff 3f0fffff8001a12e 3f0fffff8000c896 Wrong 3953481 +41900007fffffffe c000000000000000 41ce00007fffffff 41b5fffc80000000 41c9fffe80000000 Wrong 3959523 +c1c007ffffffff7f c7effffffffc1fff 47ffffffff800001 49c00800007e0e86 49c0080000fe0e86 Wrong 396757 +3feffffffff80040 43d00000017fffff 40803fe000000000 43d00000017c001f 43d00000017c0020 Wrong 3973621 +380fefffffff8000 3caffffffffffffe b7ff00000003ffff 37f0fffffffc0009 b7ff00000003fffb Wrong 3983691 +bfef000fffffffff 43ed53d0520eac50 c1f9b9e740692e8a c3ec6940798019db c3ec69407999d3c2 Wrong 3985705 +bfd0000000000001 4000000000000000 3cafffffffffffff bfe0000000000000 bfdffffffffffffe Wrong 3993761 +bfd0000000000001 401ffffffffffffe bff0000000000001 c004000000000000 c008000000000000 Wrong 3999803 +297dffe000000000 434fffffffffffff b9afd73d50e72c73 39a028c2af18d38d b9afd73d50e72c73 Wrong 4001817 +bfd0000000000001 7feffffffffffffe 4340000000000000 ffc0000000000000 ffd0000000000000 Wrong 4005845 +402c000000000400 cbb0000000000000 7fdfffffffff7fee ffd0000000008012 7fdfffffffff7fee Wrong 4015915 +bfd0000000000001 bcafffffffffffff bcafffffffffffff bc8ffffffffffffd bca7ffffffffffff Wrong 4017929 +b81fffe00000001e c010000bfffffffe c053557d26b59cb1 405caa82d94a634f c053557d26b59cb1 Wrong 4021957 +bfd0000000000001 bfefffffffffffff 3ff0000000000001 3fe8000000000001 3ff4000000000001 Wrong 4023971 +b7f9e772425b7128 bfaffdc000000000 380ffffffffbfffd 38019e59ffc12c68 381067967fef4b19 Wrong 402799 +bfd0000000000001 c000000000000001 c340000000000000 4340000000000000 c33fffffffffffff Wrong 4030013 +c56ffffffeff8000 c34e2f7d229264d7 d7ebffffffffeffe 57e4000000001002 d7ebffffffffeffe Wrong 4052167 +bfdfffffffffffff 3fd0000000000000 4340000000000000 c340000000000000 4340000000000000 Wrong 4054181 +c1c2485c59a21ee6 3fdfffffffffffff 43e0008000001000 43e0007ffffb7de9 43e0007ffffdc6f4 Wrong 4056195 +c7e000000000002f c010000000000001 e8cfffffff00007f 68c0000000ffff81 e8cfffffff00007f Wrong 406827 +bfb000000001fffb c13e89be71ac5f37 43e0000000000203 43e000000000027d 43e0000000000240 Wrong 4070293 +3cc56618ec6d04ec c02ffffffff00000 404003ffffe00000 404003ffffdffffd 404003ffffdfffff Wrong 4082377 +bfdfffffffffffff bfdfffffffffffff 3cafffffffffffff 3fd0000000000001 3fd0000000000003 Wrong 4090433 +3f3e007ffffffffe bfe0000000000000 3ff0000000001f7f 3ffffe1ff8001f7f 3feffe1ff8003efe Wrong 4092447 +22e0000000003fbe bff9249e6c798660 3c8ffffcffffffff bc80000300000001 3c8ffffcffffffff Wrong 4094461 +bfdfffffffffffff bff0000000000001 bff0000000000001 bc90000000000001 bfe0000000000002 Wrong 4096475 +c0beffdfffffffff c000000000000000 bffdfffffffdfffe 40ceff6800000007 40cefef00000000f Wrong 4098489 +bfdfffffffffffff c010000000000001 4340000000000000 4340000000000002 4340000000000001 Wrong 4102517 +c070000000024000 c01ffffffffffffe c1e0000004003ffe c1effffe04003ffe c1dffffe08007ffc Wrong 4104531 +408ffff0000007ff 41d00000ffffffef dc70402000000000 5c7fbfe000000000 dc70402000000000 Wrong 4118629 +bfdffffffffffffe 3ca0000000000000 3ff0000000000001 3ff0000000000000 3ff0000000000001 Wrong 4120643 +be103fefffffffff 3cafffffffffffff 62ffff7fffbfffff e2f0008000400001 62ffff7fffbfffff Wrong 4122657 +3fc00000fffc0000 400fffffffffffff 423d5a6ff0405c99 423d5a6ff0415c99 423d5a6ff040dc99 Wrong 4134741 +bfdffffffb000000 4340000000000001 42b0007fffefffff c32fefff7b001002 c32fdffefb002002 Wrong 4140783 +43cfffffffefefff b9bffffefffff7ff 3fd066c1ac02aac5 3fd066c1abfeaac5 3fd066c1ac00aac5 Wrong 4148839 +001fffffc07fffff 8010000000000000 02be69a571e64868 82b1965a8e19b798 02be69a571e64868 Wrong 4152867 +bfdffffffffffffe bfe0000000000001 bcafffffffffffff 3fcffffffffffffc 3fcffffffffffff8 Wrong 4162937 +bfdffffffffffffe c000000000000001 3ff0000000000001 3ff8000000000000 4000000000000000 Wrong 4168979 +c0ffdffffffe0000 3f9fffff80000001 c34fffffff800000 c34fffffff800ff0 c34fffffff8007f8 Wrong 4173007 +bfdffffffffffffe c340000000000000 c340000000000000 bff0000000000000 c330000000000001 Wrong 4175021 +c080000000043fff 3e80000004007ffe c1c9224041a80188 c1c9224041a80588 c1c9224041a80388 Wrong 4185091 +bfe0000000000000 0010000000000000 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 4187105 +b3dfffffffeffe00 0000000000000000 401bdb831ce041e3 c014247ce31fbe1d 401bdb831ce041e3 Wrong 418911 +403fffffbdffffff 001fffffffffffff ddfffffffffffcff 5df0000000000301 ddfffffffffffcff Wrong 4189119 +bfe0000000000000 3caffffffffffffe bff0000000000001 bff0000000000002 bff0000000000001 Wrong 4193147 +bfe0000000000000 3feffffffffffffe 4340000000000000 c340000000000000 4340000000000000 Wrong 4199189 +bca003ffffff0000 400ac4372520559f 3fcbd9e12ac2c108 3fcbd9e12ac2c0ed 3fcbd9e12ac2c0fb Wrong 4203217 +4bb000040000003e 318ffffffffff7ff bfe0000000000017 bfeffffffffff017 bfdffffffffff02e Wrong 4209259 +bfe0000000000000 8010000000000001 c340000000000000 4340000000000000 c340000000000000 Wrong 4223357 +c03ffefffffffdff 40bc282748cfc06d bf2ffffefdfffffe c10c274607d5782a c10c274608157828 Wrong 4227385 +0000000000000000 bca0000000000001 4340000000000000 c340000000000000 4340000000000000 Wrong 42293 +bfe0000000000000 bff0000000000001 3cafffffffffffff 3fe0000000000002 3fe0000000000003 Wrong 4235441 +c3d0000007fffeff bffffffffffffffe 4343523e456566ff 43e0026a4fc8abab 43e004d497915858 Wrong 4237455 +bfe0000000000000 c010000000000000 bff0000000000001 3ff7ffffffffffff 3feffffffffffffe Wrong 4241483 +b7fef51e4b4dcbef c01ffffffffffffe bcaffffffffaffff 3ca0000000050001 bcaffffffffaffff Wrong 4243497 +b7efeffffffffff7 ffefffffffffffff ffdd4fe4b235ea5d 7fd2b01b4dca15a3 ffdd4fe4b235ea5d Wrong 4249539 +3ca000000007f000 43cdfffbfffffffe c80fffffefffffe0 4800000010000020 c80fffffefffffe0 Wrong 4263637 +bfe0000000000001 3fdffffffffffffe 3ff0000000000001 3fd0000000000002 3fe8000000000002 Wrong 4265651 +4070400000000100 4000000000000001 40300000001ff800 40808000000080e1 4080c000000100c1 Wrong 4273707 +398ffffffffbffc0 c0a783c6e834743b 381ffffffffef000 ba4783c6e82f8393 ba4783c6e82d8393 Wrong 4287805 +3fd007dffffffffe bfeffffffffffffe bfc5181d7bde39ef bfd54de75ef78e78 bfda93eebdef1cf4 Wrong 4303917 +bf5fe0000000001f c00ffffffffffffe c34feffc00000000 4340100400000000 c34feffc00000000 Wrong 4309959 +3ca0000007fc0000 c34fffffffffffff 42d20f3b307165cc 42d20f3b307164cc 42d20f3b3071654c Wrong 4316001 +bfe0000000000001 ffeffffffffffffe c340000000000000 7fd0000000000000 7fe0000000000000 Wrong 4320029 +c48010007fffffff 001fffffffffffff 7fdfffffffffc03f ffd0000000003fc1 7fdfffffffffc03f Wrong 4328085 +4120000010003fff bfb0000000028000 3ff0000001f7ffff c0dfffe020057c0e c0dfffc02005781e Wrong 4330099 +bfefffffffffffff 3caffffffffffffe 3cafffffffffffff bc9ffffffffffffb 396fffffffffffff Wrong 4332113 +41f0000007ffdfff c80ffc0000fffffe b81046efcde22968 ca0ffc0010fdc004 ca0ffc0010fdc005 Wrong 4336141 +bfefffffffffffff 3fefffffffffffff bff0000000000001 bff8000000000000 c000000000000000 Wrong 4338155 +bfefffffffffffff 400fffffffffffff 4340000000000000 c340000000000004 433ffffffffffffc Wrong 4344197 +bff0000000010040 801ffffffffffffe bcfdcb9919af4a76 3cf23466e650b58a bcfdcb9919af4a76 Wrong 4364337 +bfefffffffffffff bfd0000000000000 c340000000000000 4340000000000000 c340000000000000 Wrong 4368365 +40d000000000ffc0 3ffffffffffffffe bff8001fffffffff 40dfffcfffc1ff7e 40dfff9fff81ff7e Wrong 437037 +c14fffffffff7dff c01fffffffffffff ffeffffffbfffe00 7fe0000004000200 ffeffffffbfffe00 Wrong 4382463 +42a0400000ffffff 3fb0007feffffffe c09f800000000400 42604081f04207fc 42604081efc407fc Wrong 439051 +bfeffffffffffffe 3fdfffffffffffff bcafffffffffffff bfdfffffffffffff bfe0000000000000 Wrong 4404617 +001fffffffffffff 4010000000000000 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong 441065 +bfeffffffffffffe 3fffffffffffffff 3ff0000000000001 bff7fffffffffffc bfeffffffffffff8 Wrong 4410659 +c1ffffffffffffdf 4000000000000000 402dfffeffffffff c20fffffffc3ffe1 c20fffffff87ffe3 Wrong 4412673 +bfeffffffffffffe 4010000000000001 c340000000000000 c340000000000004 c340000000000002 Wrong 4416701 +40234ca759ebc6df 3fd0007ffffffffb c20b30390456082e c20b3039042f6daa c20b30390442baec Wrong 4420729 +43d0000000fe0000 bcaffffffffffffe c1d001fffffffdff c1d00201fffffe1e c1d00200fffffe0f Wrong 44307 +bfeffffffffffffe bca0000000000000 bff0000000000001 bff0000000000000 bff0000000000001 Wrong 4434827 +47e0000000000ffe bcaffffffffffffe 54764316901f286c d479bce96fe0d794 54764316901f286c Wrong 4436841 +4032fffffffffffe bfefffffffffffff 3fefffbfffffbfff c0328001000000fd c0320002000001fd Wrong 4442883 +3e7491c102f637fb c00fffffffffffff 401ffffe000007ff 401ffffdd6dc85f9 401ffffdeb6e46fc Wrong 4448925 +c7f0000000007eff ba5001f800000000 41cfffffffffffeb 425009f800007f0e 425011f800007f0f Wrong 4469065 +001fffffffffffff 7fe0000000000000 3ff0000000000001 4012000000000000 4014000000000000 Wrong 447107 +bff0000000000000 3fefffffffffffff 3cafffffffffffff bfeffffffffffffe bfeffffffffffffd Wrong 4477121 +41fffffffffff020 b81f807ffffffffe 401ffffffdfffc00 c010000002000400 401ffffffdfffc00 Wrong 4481149 +bff0000000000000 4000000000000001 bff0000000000001 c004000000000001 c008000000000002 Wrong 4483163 +40057f9ad8c03509 bfcfffff00007fff 3fefc0ffffffffff bfc67c68b30ed105 3fd482cba678977d Wrong 4487191 +bff0000000000000 4340000000000001 4340000000000000 c330000000000002 c000000000000000 Wrong 4489205 +87dffffffff81fff 434ffffffffffffe 3b57637b7c305fa0 bb589c8483cfa060 3b57637b7c305fa0 Wrong 4491219 +bff0000000000000 8010000000000000 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong 4501289 +bff0000000000000 bfd0000000000000 3ff0000000000001 3fe8000000000001 3ff4000000000001 Wrong 4507331 +3fb0000001dfffff bfdfffffffffffff 40ffffffffc10000 40fffffeffc0ffe2 40ffffff7fc0fff1 Wrong 4509345 +bff0000000000000 bfeffffffffffffe c340000000000000 4340000000000001 c33fffffffffffff Wrong 4513373 +bca3b1086bf83c68 bfffffffffffffff bffffff000ffffff 3ff0000fff000003 bffffff000fffffe Wrong 4515387 +40fffffbfc000000 43efffeffffffeff c3e0000088000000 44ffffe7fc01deff 44ffffe3fc01bcff Wrong 4517401 +3fb7fffffffffff6 40200003fffffc00 bf9000000fffffbe 3fe7c005ffbff9f7 3fe78005ff7ff9f8 Wrong 4529485 +baa0004000000003 3fcfeffffffffdfe 41dfefeffffffffe c1d0101000000002 41dfefeffffffffe Wrong 4535527 +bff0000000000001 001fffffffffffff 4340000000000000 c340000000000000 4340000000000000 Wrong 4537541 +c3fffffffffffb80 3fe0000000000000 c3efffffffff9ffe c3f7ffffffffe5c0 c3ffffffffffcdbf Wrong 4545597 +bff0000000000001 3ff0000000000001 bcafffffffffffff bff0000000000002 bff0000000000003 Wrong 4549625 +bff0000000000001 4010000000000001 3ff0000000000001 c00c000000000004 c008000000000004 Wrong 4555667 +bca926b08c93f8ce 401ffffffffffffe c01fff7fff7fffff c01fff7fff800002 c01fff7fff800001 Wrong 4557681 +c02001fffdffffff 3fe00000800fffff c02f5b9b276e56d7 c027aecdd2c72c62 c033ae4db33f2be7 Wrong 4559695 +c09000fffffbfffe 4020000fffffffee 3fd0803fffffffff c0c000ff80bbffe8 c0c000ef007bffe8 Wrong 457177 +410fffffffc07fff 3800000000009ffe c03ffffb00000000 4030000500000000 c03ffffb00000000 Wrong 4571779 +bff0000000000001 bca0000000000000 3cafffffffffffff 3cb0000000000000 3cb8000000000000 Wrong 4573793 +c3c86555ae0cf8fe bca59e810275f37d 3d7152cdf414b4ce 40807b56eba58a9a 40807b56eba58a9e Wrong 4577821 +bff0000000000001 bfdffffffffffffe bff0000000000001 bca0000000000001 bfe0000000000002 Wrong 4579835 +b7ffffffffff9fff 3fc3853bc130e493 b1500007fffffdfe b7d3853bc130aa02 b7d3853bc130aa03 Wrong 4583863 +bff0000000000001 bffffffffffffffe 4340000000000000 4340000000000002 4340000000000001 Wrong 4585877 +ba0ffffffffffffe c340000000000001 207ec15f8069f3d2 3d50000000000000 3d60000000000000 Wrong 4593933 +c06905febb773604 c022a0c0b2a5ae70 3fe47dd1c6d2de46 409d236fc2abcc2e 409d24b79fc8395c Wrong 4608031 +7fdfffffffffff3e 3fd1b85566f6674c c03ffffffffffc02 7fc1b85566f666e0 7fc1b85566f666e1 Wrong 4614073 +bfffffffffffffff 4340000000000000 bff0000000000001 c34fffffffffffff c350000000000000 Wrong 4628171 +38000000fffffffd b81ffff7fff7fffe 41e1dcadee9fbd6b c1ee235211604295 41e1dcadee9fbd6b Wrong 4632199 +402fffe000007fff 801fffffffffffff 401ffff07fffffff c010000f80000001 401ffff07fffffff Wrong 4642269 +c01fc00003ffffff de8fffefffff7fff f91ffffdfc000000 7910000204000000 f91ffffdfc000000 Wrong 4644283 +bfffffffffffffff bcaffffffffffffe bcafffffffffffff 3cb7fffffffffffd 3caffffffffffffb Wrong 4646297 +bffffffffe0003ff bfdfffffffffffff 40031ade702700a8 3fc8d6f379381538 400b1ade6fa701a8 Wrong 4648311 +001fffffffffffff bfdffffffffffffe 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 465233 +bfffffffffffffff bfeffffffffffffe 3ff0000000000001 4003ffffffffffff 4007ffffffffffff Wrong 4652339 +bfffffffffffffff c00fffffffffffff c340000000000000 c34ffffffffffff8 c33ffffffffffff8 Wrong 4658381 +37eff635fc591d37 0000000000000000 c03dffc000000000 4032004000000000 c03dffc000000000 Wrong 4672479 +40150f7b4d5e78b3 c130000fffbfffff 43f55ef6c9431743 43f55ef6c9430cbb 43f55ef6c94311ff Wrong 4674493 +4082298b4297e5d7 42f007fffffe0000 bcaffffffffc0001 438232a00836ec98 438232a00836ec99 Wrong 4680535 +bffffffffffffffe 3fd0000000000001 4340000000000000 c340000000000000 4340000000000000 Wrong 4682549 +3d9aac08f7e44873 2dc07fffff800000 c36fffffff800000 4360000000800000 c36fffffff800000 Wrong 469261 +802876727078cfd2 7fefffffffffffff c008e292c0aae569 c02b92c4c88e2c7e c02eaf1720a3892b Wrong 4702689 +3fbffffffe000100 bcafffffffffffff bf8ffffffffd7fff bf8ffffffffd801f bf8ffffffffd800f Wrong 4714773 +bffffffffffffffe bfdffffffffffffe 3cafffffffffffff 3feffffffffffffd 3feffffffffffffe Wrong 4718801 +bffffffffffffffe bfffffffffffffff bff0000000000001 400bfffffffffffd 4007fffffffffffd Wrong 4724843 +400ffffffffffd7f c000000000000001 c013fffffdffffff c023fffffffffec0 c029fffffefffec0 Wrong 4726857 +bffffffffffffffe c01fffffffffffff 4340000000000000 4340000000000010 4340000000000008 Wrong 4730885 +c000000000000000 3ca0000000000001 3ff0000000000001 3fffffffffffffff 3ff0000000000000 Wrong 4749011 +c000000000000000 3fe0000000000000 c340000000000000 c340000000000001 c340000000000000 Wrong 4755053 +436f8bb30527c3e1 c3dfff0000400000 c5e000000fffffef c75f8ab6b7ceb219 c75f8ab6c7ceb229 Wrong 4765123 +c000000000000000 4340000000000000 3cafffffffffffff c340000000000000 c350000000000000 Wrong 4767137 +403ffb0000000000 29bf3d5bec0e2d80 b7fffffffffdffff 37f0000000020001 b7fffffffffdffff Wrong 4771165 +001fffffffffffff c01fffffffffffff 4340000000000000 c340000000000000 4340000000000000 Wrong 477317 +3fe0000000000027 bfffffffffffff77 40600001ffffdfff 406fc001ffffdfff 405fc003ffffbffe Wrong 4777207 +7fe000001000003f 8010000000000001 c00040003fffffff c008200030000040 c010200028000020 Wrong 4781235 +001ffffe0000007f bfd0000000000001 3ca6780098c722b0 bca987ff6738dd50 3ca6780098c722b0 Wrong 4787277 +ba00000000047fff c340000000000000 c08020000000001f c08020000000001b c08020000000001d Wrong 479331 +c00636536d8ad40e bff0000000000001 400f97076662a920 401300eb905e1450 401ae6ad69f6be98 Wrong 4793319 +c000000000000000 c00fffffffffffff 3ff0000000000001 4021000000000000 4022000000000000 Wrong 4797347 +c00000000000801f bff000000ff7ffff c1fffffe00000001 c1fffffdffc00001 c1fffffdffe00001 Wrong 4801375 +c000000000000000 c340000000000001 c340000000000000 4348000000000002 4340000000000002 Wrong 4803389 +c000000000000001 0010000000000001 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 4815473 +c000000000000001 3fd0000000000000 bff0000000000001 bff0000000000001 bff8000000000002 Wrong 4821515 +3fc080001fffffff 3fdffffffffffffe 3e60000400000007 3fb0800060000ffe 3fb08000a0001ffe Wrong 4823529 +c000000000000001 3ff0000000000000 4340000000000000 434ffffffffffffe 433ffffffffffffe Wrong 4827557 +c000000000000001 434ffffffffffffe bcafffffffffffff c350000000000000 c360000000000000 Wrong 4839641 +c000000000000001 801fffffffffffff c340000000000000 4340000000000000 c340000000000000 Wrong 4851725 +c0e1ead1644c2360 bca0000000000001 c3dffffffffe7fff 43d0000000018001 c3dffffffffe7fff Wrong 4853739 +bea000002001ffff c1cef0dea2ce737b 400e000000000000 407f0edee0b40eda 407f2cdee0b40edb Wrong 4855753 +c000000000000001 bfffffffffffffff 3cafffffffffffff 4010000000000000 4010000000000001 Wrong 4863809 +3f30000020000000 c000000000000000 bfcfffffc001ffff bfc01fffc041ffff bfd007ffe0110000 Wrong 4865823 +c000000000000001 c010000000000001 bff0000000000001 401e000000000004 401c000000000004 Wrong 4869851 +c00fffffffffffff 3ca0000000000000 bcafffffffffffff bcc3ffffffffffff bcc7ffffffffffff Wrong 4887977 +c31feff7fffffffe 407f14dabf153af4 43c9f50da1a060a1 43a4e4d2b6c1c0b2 43c233bb7e80a07d Wrong 4892005 +c00fffffffffffff 3fe0000000000000 3ff0000000000001 bff7fffffffffffe bfeffffffffffffc Wrong 4894019 +bff080007fffffff 3fefffffffffffff 41f0002003ffffff 41f0002003defffe 41f0002003ef7fff Wrong 4896033 +c00fffffffffffff 3ffffffffffffffe c340000000000000 c340000000000008 c340000000000004 Wrong 4900061 +c00ffffffdffffee c028d9a8bea71866 ce2fffffffffffc6 4e2000000000003a ce2fffffffffffc6 Wrong 4904089 +3eb7fffffffffff0 434fffffffffffff 3fc01fffffffffef 421800000000406f 42180000000080ef Wrong 4908117 +434ffe0000000003 3f050506fa43403e c036d0c0e5df8b63 426503b6a9d22f00 426503b6a9d0c1f4 Wrong 4910131 +c020004000000040 8010000000000001 c1fffff000800000 41f0000fff800000 c1fffff000800000 Wrong 4920201 +40affffbfffffff6 c20000000003fffd c01ffdfffe000000 c2bffffc000803ef c2bffffc000807ef Wrong 4922215 +37effeffdfffffff bff0000000000000 b7efffd7ffffffff b7f7ff75efffffff b7ffff6befffffff Wrong 4932285 +4047c422625c8dfb 3ff000010003ffff 42e0000000000700 42e00000000012e2 42e0000000000cf1 Wrong 4940341 +c00fffffffffffff c340000000000001 3ff0000000000001 4360000000000000 4360000000000001 Wrong 4942355 +bfbfffffbffff7ff c34ffffffffffffe 40196d6b50f2a50c 431fffffbffff80a 431fffffbffff816 Wrong 4944369 +489fffefffffeffe b6efffffffbffffc 3fbffffffff7effe 3fa000080017f7f1 3fb800040007f3f7 Wrong 4946383 +bfefffffbfffffef 4000040ffffffffe 51d868ed5abec329 d1d79712a5413cd7 51d868ed5abec329 Wrong 4958467 +c00ffffffffffffe 3fd0000000000000 3cafffffffffffff bfeffffffffffffd bfeffffffffffffc Wrong 4960481 +c00ffffffffffffe 3feffffffffffffe bff0000000000001 c011fffffffffffe c013fffffffffffe Wrong 4966523 +c00ffffffffffffe 400ffffffffffffe 4340000000000000 434ffffffffffff0 433ffffffffffff0 Wrong 4972565 +4320037fffffffff 4010000000000001 41fdc4b3a046b212 434003807712ce81 43400380ee259d02 Wrong 4974579 +41d07fffff800000 c010ffffffbffffe bfd07fffffffffdf c1f187ffff380ffe c1f187ffff3a1ffe Wrong 4982635 +bfc003fffffff000 982fffffff7effff c7efffffbfffdfff 47e0000040002001 c7efffffbfffdfff Wrong 4994719 +c00ffffffffffffe bfd0000000000001 c340000000000000 4340000000000001 c33fffffffffffff Wrong 4996733 +bcce2e656dd76af6 c01ffffffffffffe 40582ea8ffab0667 40582ea8ffab0668 40582ea8ffab0667 Wrong 5010831 +001ffffffffffffe 3fe0000000000000 c340000000000000 4340000000000000 c340000000000000 Wrong 501485 +40000010007ffffe 3f6b3db4bb3d6728 3fd095716ec3b12b 3fd16f5fee9211ab 3fd10268aeaae16b Wrong 5018887 +c010000000000000 0000000000000000 4340000000000000 c340000000000000 4340000000000000 Wrong 5020901 +c010000000000000 3fdffffffffffffe bcafffffffffffff bffffffffffffffe bfffffffffffffff Wrong 5032985 +b8016e821e7114dc bfeffffffffffffe b7f000000001fff7 37fadd043ce129ba 37f2dd043ce029bf Wrong 50349 +3f4000100000003f 3feffffffffffffe 422ff00000007fff 422ff0000000807f 422ff0000000803f Wrong 503499 +c010000000000000 3ffffffffffffffe 3ff0000000000001 c01dfffffffffffe c01bfffffffffffe Wrong 5039027 +c010000000000000 401fffffffffffff c340000000000000 c340000000000020 c340000000000010 Wrong 5045069 +3f67c855ae00ce43 4340000000000001 43e6f149c1994369 43e6f14fb3aeaee9 43e6f14cbaa3f929 Wrong 5047083 +48700001fbfffffe bfcffffffc000400 c05bfffffffffbfe c8500001fa0001be c8500001fa0001bf Wrong 505513 +c018080000000000 8010000000000000 bfdfffff800001fe 3fd000007ffffe02 bfdfffff800001fe Wrong 5059167 +c010000000000000 bca0000000000001 bff0000000000001 bffffffffffffffd bfeffffffffffffe Wrong 5063195 +c010000000000000 bfe0000000000001 4340000000000000 4340000000000002 4340000000000001 Wrong 5069237 +403fffffffffffdb 423356b030815738 bf9080007fffffff 428356b030815711 428356b030815701 Wrong 5073265 +41a69ac8bdfdb461 c3d0083fffffffff 41d8313b8d51b193 c586a6708d7fab30 c586a6708d7fab31 Wrong 5079307 +c010000000000000 c340000000000000 bcafffffffffffff 4350000000000000 4360000000000000 Wrong 5081321 +c010000000000001 3feffffffffffffe 3cafffffffffffff c000000000000000 c00fffffffffffff Wrong 5105489 +c010000000000001 400fffffffffffff bff0000000000001 c030800000000000 c031000000000001 Wrong 5111531 +c010000000000001 434fffffffffffff 4340000000000000 c36e000000000001 c36c000000000001 Wrong 5117573 +c010000000000001 8010000000000001 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong 5129657 +c010000000000001 bfd0000000000001 3ff0000000000001 3ff8000000000002 4000000000000002 Wrong 5135699 +bc58a7f283b15aa6 bfdffffffffffffe c00ff7fffffffeff 4000080000000101 c00ff7fffffffeff Wrong 5137713 +213fffc000002000 bfc39f7f419eca3b 3e1ffdffffffeffe be10020000001002 3e1ffdffffffeffe Wrong 5139727 +c010000000000001 bff0000000000000 c340000000000000 c34ffffffffffffc c33ffffffffffffc Wrong 5141741 +37ea3353806450ba bffffffffffffffe b803fffffffff7ff b80719a9c032245c b8108cd4e019102e Wrong 5143755 +c1fff7fffffffe00 c01ffffffffffffe bf38000000000040 422ff7fffffffde6 422ff7fffffffdce Wrong 5149797 +c01fffffffffffff 001ffffffffffffe 4340000000000000 c340000000000000 4340000000000000 Wrong 5165909 +bcaffffdf7fffffe 366ffffffe1fffff b20f000000000007 b3300000eb10000e b3300002db10000e Wrong 5169937 +bfffffffff7f7ffe c003fffffffffff6 cea3caf6c0e272a7 4eac35093f1d8d59 cea3caf6c0e272a7 Wrong 5175979 +c01fffffffffffff 401fffffffffffff 3ff0000000000001 c04fbffffffffffe c04f7ffffffffffe Wrong 5184035 +001ffffffffffffe 7feffffffffffffe bff0000000000001 401dfffffffffffc 401bfffffffffffc Wrong 519611 +bf40000804000000 3ccfffff7ffefffe be9000000fffffff be90000010003fff be90000010001fff Wrong 5200147 +c01fffffffffffff bca0000000000001 3cafffffffffffff 3cd2000000000000 3cd4000000000000 Wrong 5202161 +423c64df6ca8aa39 bcaffffffffffffe 3ff1ae3ab5f11d36 3ff1ae01ec3243e4 3ff1ae1e5111b08d Wrong 5204175 +c01fffffffffffff bfe0000000000000 bff0000000000001 400bfffffffffffe 4007fffffffffffe Wrong 5208203 +c01fffffffffffff c000000000000000 4340000000000000 4340000000000010 4340000000000008 Wrong 5214245 +bfffffffff0007ff 0010000000000001 5dbffff00003ffff ddb0000ffffc0001 5dbffff00003ffff Wrong 5234385 +bf1fffffe0ffffff bfcffffffbffff00 bf9000001ffffc00 bf9ff00020117c00 bf8ff00040117800 Wrong 5236399 +47fe17f4025a7deb b7f000000fffffef 41c000400000001f 41c0003ffe1e80dd 41c0003fff0f407e Wrong 5242441 +bca000000003fffb 4010000000000000 3fddfffffffffe00 3fddfffffffffdf0 3fddfffffffffdf8 Wrong 5252511 +3ffefffeffffffff 38100002fffffffe b81effff7fffffff 380f000a1fff9ff7 36f53fff3ff08000 Wrong 5266609 +41cbffffffffefff 801ffffffffffffe 3b3ffffffffbffff bb30000000040001 3b3ffffffffbffff Wrong 5270637 +c01ffffffffffffe bfd0000000000000 bcafffffffffffff 3ffffffffffffffe 3ffffffffffffffd Wrong 5274665 +c1c07fffffffffff bfdffffffffffffe 42db2d4be861df6a 42db2d542861df6a 42db2d500861df6a Wrong 5276679 +41cdffffc0000000 bfbff87ffffffffe 41c000000080ffff 41a1038420fa7fff 41b881c210fe3ffe Wrong 5278693 +c01ffffffffffffe bff0000000000000 3ff0000000000001 4020ffffffffffff 4021ffffffffffff Wrong 5280707 +c01ffffffffffffe c00ffffffffffffe c340000000000000 c34fffffffffffe0 c33fffffffffffe0 Wrong 5286749 +002dfffeffffffff ffefffffffffffff 3ffffffffffffbfc c02bffff0000003e c029ffff0000007f Wrong 5294805 +4713ee08a1624b47 42ddfffe00000000 47f1ffffffffffee 4a02af26d8701c7c 4a02af26d8749c7c Wrong 529681 +c383f50a0cb6ed42 41eb3dd4a3b7b79c c189841022924e71 c580fd50335fe824 c580fd50335fe825 Wrong 5302861 +ab6fffffffebffff 3ca0000000000001 4027fff000000000 c028001000000000 4027fff000000000 Wrong 5306889 +c340000000000000 3fdfffffffffffff 4340000000000000 3fe0000000000000 4330000000000000 Wrong 5310917 +bcafffc0001ffffe 3fe0000000000000 bfc000400000000f bfc0004000000017 bfc0004000000013 Wrong 5312931 +c340000000000000 8000000000000000 c340000000000000 4340000000000000 c340000000000000 Wrong 5335085 +43f017fffffffffe bcaffffffffffffe c01effffffffefff c0b01bdffffffffb c0b01fbffffffff9 Wrong 5343141 +bf9b000000000000 37effffffefff7ff 3bdfff8000000fff bbd0007ffffff001 3bdfff8000000fff Wrong 5345155 +4128574d5c8f3538 bfefffffffffffff c3ebfd9ee3d633db c3ebfd9ee3d636e6 c3ebfd9ee3d63560 Wrong 5349183 +bfdff70000000000 361c00000000003f 400fffffbbffffff c000000044000001 400fffffbbffffff Wrong 5351197 +c340000000000000 bffffffffffffffe bff0000000000001 434ffffffffffffe 434ffffffffffffd Wrong 5353211 +3ed03feffffffffe bf1ffbfff7fffffe 3fd000000000037e 3fdffffffefc24fe 3fcffffffefc287c Wrong 535723 +c340000000000000 c01ffffffffffffe 4340000000000000 4370ffffffffffff 4371ffffffffffff Wrong 5359253 +c340000000000001 3cafffffffffffff 3ff0000000000001 bff8000000000000 bff0000000000000 Wrong 5377379 +3a1001f800000000 2cd2000000000007 bfbcea2c8d11faee 3fb315d372ee0512 bfbcea2c8d11faee Wrong 5381407 +c340000000000001 3fe0000000000001 c340000000000000 c340000000000001 c348000000000001 Wrong 5383421 +bff0589b0b9001f8 4010000000000000 43e0ffffffffc000 c3ef000000004000 43e0ffffffffc000 Wrong 5391477 +3fbf800000001000 bff0000000000001 c1dfffff7fff7fff c1dfffff800f3fff c1dfffff80075fff Wrong 539751 +c0a3e45119503fad 801fffffffffffff b7ffffc07fffffff 37f0003f80000001 b7ffffc07fffffff Wrong 5409603 +c02c219606615d02 40d0000001fdfffe bfb0002800000000 c10c219649e2ab8c c10c219689e34b8d Wrong 541765 +c340000000000001 bfeffffffffffffe bcafffffffffffff 4330000000000000 4340000000000000 Wrong 5419673 +bfaffd7ffffffffe bfffffffffffffff 402ffff400000000 40207fea00000000 40301ff780000000 Wrong 5421687 +43e03ffffffefffe a51ffffffd000000 41efffffff00ffff c1e0000000ff0001 41efffffff00ffff Wrong 5423701 +c34fffffffffffff 001fffffffffffff 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong 5443841 +c34fffffffffffff 3fd0000000000001 bff0000000000001 c330000000000001 c330000000000002 Wrong 5449883 +c34fffffffffffff 3ff0000000000001 4340000000000000 c348000000000001 c340000000000001 Wrong 5455925 +c0000000007ffff6 c010000000000000 c04fffffefffffff c037ffffefc00004 c04bffffefe00002 Wrong 545793 +92e00000007fffff 3ffffffffffffffe 4aaffffffc001fff caa0000003ffe001 4aaffffffc001fff Wrong 5457939 +c03000003ffdffff 4034000000000002 3fb0100000001000 c073ff7fcffd8000 c073feff4ffd8000 Wrong 5459953 +41dffffffffffefb bfeffc0000000040 41c07ffc00000000 c1dbdc00ffffff3b c1d7bc01ffffff3b Wrong 5465995 +4acfffffffe07fff 380111a0c92fbee3 bfc020eb7964e9df 42e111a0c91ef186 42e111a0c91ef184 Wrong 5472037 +c34fffffffffffff 801ffffffffffffe c340000000000000 4340000000000000 c340000000000000 Wrong 5480093 +c1effffffffc0003 bfefffffffffffff 41df7ffffffffbff 41f3effffffdff81 41f7dffffffdff01 Wrong 5488149 +bf5ffdfeffffffff c1c00000000007fe c068f8e52e02b635 412ffd3738d69fe4 412ffc6f71ad2fcf Wrong 5502247 +43c00000000c0000 3ba03fffffffeffe c19e0000000001fe c19dfffffff7e1fe c19dfffffffbf1fe Wrong 5508289 +b80686567adb6535 3fd0000000000000 402ffffffdfe0000 c020000002020000 402ffffffdfe0000 Wrong 5518359 +c00595ebd72b467c 43cf77fffffffffe c1e9531cb30bc1e8 c3e53a2eace5781d c3e53a2eacf221ac Wrong 5520373 +c07ffbffffffefff 3feffffffffffffe 43deffffff7ffffe c3d1000000800003 43deffffff7ffffe Wrong 5524401 +c34ffffffffffffe 4000000000000000 c340000000000000 c361ffffffffffff c363ffffffffffff Wrong 5528429 +c01ffff000001ffe 419fffbfffffffff 4020088000000000 c1cfffaffe1f0ffd c1cfffaffc1dfffd Wrong 5532457 +401fffbffffffffc c0000000000100ff 3fdb0c7f1aa6dcb7 c02f938e03976683 c02f275c072ccb10 Wrong 553849 +c34ffffffffffffe bcaffffffffffffe 4340000000000000 4340000000000004 4340000000000002 Wrong 5552597 +3ff221640e87bbad bfd0000000000001 c1d70a764cfa4319 c1d70a764d1e85e1 c1d70a764d0c647d Wrong 5554611 +3ffffffffffff780 bff0000000000001 400cfefb818713c9 bfc80823f3c71dc8 3ff9fdf7030e3010 Wrong 5560653 +37efffbffbfffffe c010000000000001 426fffcfffffffff c260003000000001 426fffcfffffffff Wrong 5566695 +c3c7979fc93cf795 c01ffffdffefffff c72fffdfffffbfff 4720002000004007 c72fffdfffffbffc Wrong 5568709 +bf76a55146618ff8 c2c000001fffbffe 3fe000bffffffffe 4246a55173abf7ee 4246a55173ac17f0 Wrong 5574751 +c1e0000000100010 0000000000000000 3f9ffdffdfffffff bf90020020000001 3f9ffdffdfffffff Wrong 5578779 +b051e706ce9d287d 3ca0000000000000 401ffff7ffffc000 c010000800004000 401ffff7ffffc000 Wrong 5584821 +095fffefffffeffe 3fdffffffffffffe b85664dbd796f697 38599b2428690969 b85664dbd796f697 Wrong 5590863 +40d4374fa828b57a 3ffffffffffffffe b08008000000000f 40e4374fa828b578 40e4374fa828b579 Wrong 5596905 +3ca00000005fffff 7fefffffffffffff 7fe0043fffffffff 7fe0044000000001 7fe0044000000000 Wrong 5608989 +be10000000080010 41e00000003ffbff 3ea954e801d58acc bfffffff9b3c5816 bfffffff35e8b80f Wrong 5611003 +ffe0000000000000 801ffffffffffffe 3ff0000000000001 4011ffffffffffff 4013ffffffffffff Wrong 5619059 +00d10000fffffffe bfe0000000000001 400ff801ffffffff c00007fe00000001 400ff801ffffffff Wrong 5627115 +3f8fffdffffff7ff bfdfffe0000ffffe bfc00000002007ff bfc1fffc0023077e bfc0fffe002187be Wrong 5629129 +c4708007ffffffff b7fffffc00004000 bffffffffffffff4 3ff000000000000c bffffffffffffff4 Wrong 5641213 +c0ce6b6deff071a3 3feffffffffffffe 3f9ff00000fffffe c0ce6b6bf0f07191 c0ce6b69f1f07181 Wrong 5663367 +43dfffffffff7bff 400fffffffffffff c9e8f802949944eb 49e707fd6b66bb15 c9e8f802949944eb Wrong 5669409 +bfcff8000003ffff c0c00000007fbfff bff0000001000007 409ff6000103201d 409ff4000103001d Wrong 5671423 +be90e49a299e9782 3f5000000fc00000 401ffffffc000004 401ffffffbf78db7 401ffffffbfbc6dd Wrong 5683507 +c0c01f0000000000 3ff0001fff7fffff be12dd4b694fb5d8 c0c01f203d7f092d c0c01f203d7f0a5b Wrong 5695591 +bca0000007fefffe c1f1000003ffffff 3fe000007ffffbff 3fe000029ffffd8f 3fe000018ffffcc7 Wrong 5713717 +409ff7fffffff7ff bf836ac78348eb47 bfc2000007ffffff c03377ecd1701431 c03389ecd1781431 Wrong 571975 +ffefffffffffffff 0010000000000000 c340000000000000 c340000000000004 c340000000000002 Wrong 5721773 +3fdfffff80007fff 3fdffffffffffffe 402001ffffffffe0 402101fffc0003e0 402081fffe0001e0 Wrong 5729829 +3eb17b46105c029e 356ffff80007ffff bfcfffffe0001ffe 3fc000001fffe002 bfcfffffe0001ffe Wrong 5731843 +43f008000000003e 3fffffffffffffff c3dc8b92c412fd96 43fc7e8da77da0c8 43f8ed1b4efb4115 Wrong 5735871 +7fd4100000000000 bf2ffffe03fffffe 9e4f275405eb089b ff140ffec181fffe ff140ffec181ffff Wrong 5743927 +40013fad9f4e14d4 8027ffffffff0000 3fcffff800003ffe bfc00007ffffc002 3fcffff800003ffe Wrong 5774137 +3fd0000401ffffff c07fffe000007fff 3fafc000001fffff c05ffdec03f879fd c05ffbf003f877fd Wrong 5786221 +ffeffffffffffffe 0000000000000000 bff0000000000001 c003ffffffffffff bff0000000000001 Wrong 5788235 +c398d85aca9eff71 400fffffffffffff 41e5fab80ef2d73e c3b8d85aca471490 c3b8d85ac9ef29b0 Wrong 5808375 +b80fffffff7f7fff 8010000000000001 bf9fffffc00000ff 3f9000003fffff01 bf9fffffc00000ff Wrong 5826501 +bf1fffff8003ffff bfd0000000000000 c220800004000000 c220800003fffff8 c220800003fffffc Wrong 5832543 +ffeffffffffffffe bfe0000000000001 bff0000000000001 7fd0000000000000 7fe0000000000000 Wrong 5836571 +3812031359e6b20b c00ffffffffffffe b7f02000000003ff b832841359e6b22a b833051359e6b24a Wrong 5844627 +c1cfffffff7ffffe bfaf0e5ff2ac719c 41f89242d54a35b2 41f90e7c5512f692 41f8d05f952e9622 Wrong 5858725 +3ca0000000000000 434ffffffffffffe bcafffffffffffff 3ffffffffffffffe 3ffffffffffffffd Wrong 586073 +b81fffdff8000000 001fffffffffffff 406ffffffff9fffe c060000000060002 406ffffffff9fffe Wrong 5862753 +bfffffffffbfffbe 3ff0400003fffffe 417dd4e89ed4c2a5 417dd4e85dd4c296 417dd4e87e54c29d Wrong 5864767 +37e037ad784678e1 3fdfffffffffffff b7e000000000103f 376bd6bc233450bf b7cf90a50f734f3b Wrong 5868795 +c2700007fffffe00 415fffffe0000003 c34fffffffff7dff c3e00407effff5f1 c3e00807effff5e1 Wrong 5870809 +c01000001fffc000 c1e00000fffe0000 cf67ffe000000000 4f68002000000000 cf67ffe000000000 Wrong 5876851 +b8100000000000f6 4010000000000001 400ffdfeffffffff c000020100000001 400ffdfeffffffff Wrong 5880879 +3d80001000000800 43cffffe0000007f ffdd733b37e3b984 7fd28cc4c81c467c ffdd733b37e3b984 Wrong 5882893 +c0800000080007fe bca0000000000000 c0dfffffffe001fe 40d00000001ffe02 c0dfffffffe001fe Wrong 5899005 +279fffbfffdfffff c1f00007e0000000 47f5d4bebaf82ac1 c7fa2b414507d53f 47f5d4bebaf82ac1 Wrong 5907061 +bfcc03a8225fe071 ffeffffffffffffe ffe0000420000000 ff9fe300ed00fc86 ffd1fe342ed00fc8 Wrong 5923173 +b07eb39219723c6c bca0000000080002 b7fef7a6994454c9 37f1085966bbab37 b7fef7a6994454c9 Wrong 5925187 +bf6000002007ffff b818ec6a605f44e1 c3effffbffff8000 43e0000400008000 c3effffbffff8000 Wrong 5931229 +c050000003fff000 3cafffffffffffff 402ffffffffffdf7 402ffffffffffde7 402ffffffffffdef Wrong 5935257 +3eb9c788bafd1c8d c3cfbfffefffffff 4011ffffffffff7f c29993f99ca354f6 c29993f99ca34bf6 Wrong 5937271 +c0300000bfffffff 3fe0000000000001 401fffffe0400000 c01000018fe00000 bed9fc0000000001 Wrong 5941299 +bf90348f17f835b5 380ffffffffc001e 3fefff7dffffffff bfe0008200000001 3fefff7dffffffff Wrong 5949355 +dd32c11cf81b2b12 40002b8c7d146fad c021abbfd858aa44 dd42f428a25015a0 dd42f428a25015a1 Wrong 5955397 +c1d45d281aa37a03 3c80dfffffffffff 3fe080000000fffe 3fe07fffd50c7f66 3fe07fffea86bfb2 Wrong 596143 +41c0000000800080 40f0002fffffffff 43fa043fa875191b 43fa0443a881193b 43fa0441a87b192b Wrong 5961439 +43301fffffffffff bd2ffffffefdffff c0594b450d492733 c0734968a12722e5 c07672d142d047cb Wrong 5967481 +3fe0188bb8c96308 bfd0000000000000 bfc0000007ffff7f bfc8188bbcc962c8 bfd00c45e064b144 Wrong 5971509 +bfdffe0001fffffe 31f8000000200000 37ead068bebdb0d3 b7e52f9741424f2d 37ead068bebdb0d3 Wrong 5997691 +c03bffffffffbffe 001fffffffffffff 37f5669d69074178 b7fa996296f8be88 37f5669d69074178 Wrong 6001719 +41cfffffffffdfee d6b0004000000002 bfffff7fffffffff d890003fffffeff8 d890003fffffeff9 Wrong 6003733 +4000007fffffdfff 3fd0000000000001 4010100000010000 400410200000f800 401210100000fc00 Wrong 6007761 +3ff00000100003ff 404ffe00000003fe c30b1272065fd0c9 c30b1272065fccc9 c30b1272065fcec9 Wrong 6015817 +0000000000000000 001ffffffffffffe bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong 6041 +0020000000800100 bfe0000000000001 3f0fffff80fffffe bf0000007f000002 3f0fffff80fffffe Wrong 606213 +3ca0000000000000 bfffffffffffffff 3cafffffffffffff bc9fffffffffffff 0000000000000000 Wrong 610241 +bfd0000120000000 c000000000000000 3fc00003ff7fffff 3fe200019ff00000 3fe400021fe00000 Wrong 612255 +3ca0000000000000 c010000000000001 bff0000000000001 bff0000000000005 bff0000000000003 Wrong 616283 +3caf8000001fffff c340000000000000 3fdfffffdffeffff bffb800004201fff bff7800008203fff Wrong 618297 +be10000800000fff c34fffffffffffff ffd9db5021932540 7fd624afde6cdac0 ffd9db5021932540 Wrong 62433 +c01000007fffffde 3811953d5a433174 3e7ffdffff7fffff be70020000800001 3e7ffdffff7fffff Wrong 626353 +3fb0ffffffffffff 407000000fffffbf c0f00000000800fe c0fffde00005e0fe c0effde0000de1fc Wrong 632395 +3ca0000000000001 3ca0000000000000 bcafffffffffffff 3ca0000000000002 bcaffffffffffffe Wrong 634409 +c050000003dfffff bd6000000004000f 3fef7fffffffffde 3fef80000007ffde 3fef80000003ffde Wrong 638437 +3ca0000000000001 3fe0000000000000 3ff0000000000001 3ff0000000000002 3ff0000000000001 Wrong 640451 +3ff00101ffffffff 3fefffffffffffff c3ffffff00007ffe 43f00000ffff8002 c3ffffff00007ffe Wrong 642465 +40154b404b0501a2 380000000003fffe bfeffefffdffffff 3fe0010002000001 bfeffefffdffffff Wrong 644479 +3ca0000000000001 3ffffffffffffffe c340000000000000 4340000000000000 c340000000000000 Wrong 646493 +001eff8000000000 3801ad261b713620 beefffefff000000 3ee0001001000000 beefffefff000000 Wrong 650521 +c5b00000000ffffd 434fffffffffffff 47ddffffffffdfff c90ffffe201ffff9 c90ffffc401ffff9 Wrong 654549 +c7ffd288f3eb4dc5 480fffffffe00001 705e000000000000 f052000000000000 705e000000000000 Wrong 656563 +3ca0000000000001 7feffffffffffffe 3cafffffffffffff 7c90000000000000 7ca0000000000000 Wrong 658577 +ffe0000000038000 3c100007ffffffff 3feffe0003fffffe fc00000800038000 fc00000800038001 Wrong 662605 +0000000000000000 ffeffffffffffffe c340000000000000 c340000000000002 c340000000000000 Wrong 66461 +bfb83950c7648672 8010000000000001 fedffffc003fffff 7ed00003ffc00001 fedffffc003fffff Wrong 666633 +3ca0000000000001 bcafffffffffffff 4340000000000000 c340000000000000 4340000000000000 Wrong 670661 +3ca0000000000001 c000000000000001 bcafffffffffffff bcb8000000000002 bcc0000000000001 Wrong 682745 +3ca0000000000001 c340000000000001 3ff0000000000001 bfe0000000000003 bcb0000000000001 Wrong 688787 +3fb0000001000004 8010007efffffffe 3fbffffbffffe000 bfb0000400002000 3fbffffbffffe000 Wrong 692815 +40afffffffbeffff c1f5bb80746eb9e1 7fd7fffffbfffffe ffd8000004000002 7fd7fffffbfffffe Wrong 704899 +3cafffffffffffff 3fd0000000000000 3cafffffffffffff 3ca7ffffffffffff 3cb3ffffffffffff Wrong 706913 +c3e02000000fffff 3fdfffffffffffff c0cfffff00008000 c3d0200000100006 c3d020000010000e Wrong 708927 +3b1001fffff7ffff c3ec47dbdb9fc9e2 c19f80000000001f c19f800000001c6a c19f800000000e45 Wrong 710941 +3cafffffffffffff 3feffffffffffffe bff0000000000001 3ff0000000000001 bff0000000000000 Wrong 712955 +c1dfffffefffdfff 4010000000000001 43e0004001000000 43e0004000800000 43e0004000c00000 Wrong 721011 +3f0fffffebfffffe 7fd0000000404000 7fd0000010200000 7fd00080101fb202 7fd00040101fd901 Wrong 729067 +38c000fffffffff6 bca0000000000000 37e76291995d8252 37e76291995d424e 37e76291995d6250 Wrong 739137 +37ffc3cd8026eda0 bfe0000000000000 beab43550afc66d5 bea0000000000000 beab43550afc66d5 Wrong 745179 +3caf0000007fffff 43c3ba241e9c39cf 43efeffdffffffff 43efeffe00000000 43efeffdffffffff Wrong 747193 +bfaffffdfffffeff c000000000000000 3f4000080000001f 3fc007ff03ffff80 3fc00fff07ffff80 Wrong 751221 +3cafffffffffffff c010000000000001 3cafffffffffffff bccc000000000001 bcc8000000000001 Wrong 755249 +3fd000000fbfffff c01ffffffffffffe 3fe00000fffffefe bffbffffdf80003c bff7ffff9f80007d Wrong 757263 +bfd000080000000f b7e1fbffffffffff b800200000003ffe b7ebc0fdc0807ff8 b7fe007ee0407ffa Wrong 771361 +3caffffffffffffe 3fdffffffffffffe bcafffffffffffff b967ffffffffffff bca0000000000001 Wrong 779417 +0020000020010000 3fefffffffffffff c1dffffff0100000 41d000000ff00000 c1dffffff0100000 Wrong 781431 +3caffffffffffffe 3ffffffffffffffe 3ff0000000000001 3ff0000000000005 3ff0000000000003 Wrong 785459 +3caffffffffffffe 401fffffffffffff c340000000000000 4340000000000000 c340000000000000 Wrong 791501 +b4b6e07873102932 434ff87fffffffff 47e34d80c103eaa3 c7ecb27f3efc155d 47e34d80c103eaa3 Wrong 795529 +405000ffffff7ffe 8010000000000000 3fbfe00100000000 bfb01fff00000000 3fbfe00100000000 Wrong 805599 +43e04001fffffffe f10581b664845094 7fe6e21da5190931 ffe91de25ae6f6cf 7fe6e21da5190931 Wrong 807613 +3caffffffffffffe bfe0000000000001 4340000000000000 c340000000000000 4340000000000000 Wrong 815669 +3caffffffffffffe c340000000000000 bcafffffffffffff bffffffffffffffe bfffffffffffffff Wrong 827753 +3ffb8acd8e55074b c34ffffffffffffe 41c3d05e9bb88a09 c35b8acd8960efa2 c35b8acd846cd7fb Wrong 829767 +3fd0000000000000 3feffffffffffffe 3cafffffffffffff 3fd0000000000001 3fd0000000000003 Wrong 851921 +f4d0700000000000 4061ae8809f49782 c3effffff7ffff7f f5422a4dc23a47a6 f5422a4dc23a47a7 Wrong 855949 +3fd0000000000000 400fffffffffffff bff0000000000001 3fdffffffffffffc bcb8000000000000 Wrong 857963 +3fd0000000000000 434fffffffffffff 4340000000000000 4330000000000000 4348000000000000 Wrong 864005 +4e2c074bc1e14068 41f007ffffdfffff ffeffff000003fff 7fe0000fffffc001 ffeffff000003fff Wrong 868033 +c03ffdfff7fffffe 8000000000000000 c3ffe01000000000 43f01ff000000000 c3ffe01000000000 Wrong 872061 +bec0001fffffdffe bca0000000000000 c7ecd2b1e4c50852 47e32d4e1b3af7ae c7ecd2b1e4c50852 Wrong 878103 +4030001000000040 41efffffffffffff 42e0000000003ffa 42e0040004003ffa 42e0020002003ffa Wrong 880117 +3fd0000000000000 bfd0000000000001 3ff0000000000001 3fdc000000000002 3fee000000000002 Wrong 882131 +4020001000000003 bfdffffffffffffe bfe007ffffffffbe c011008ffffffffe c012010ffffffffa Wrong 884145 +c02fffffffff7fff bffffffffffffffe bf6ffefffffffffc 403fff8003ff7ffd 403fff0007ff7ffd Wrong 890187 +3fd0000000000000 ffe0000000000000 3cafffffffffffff ffb0000000000000 ffc0000000000000 Wrong 900257 +bfc00000fffffe00 30dffe0000000007 3fdffff00000fffe bfd0000fffff0002 3fdffff00000fffe Wrong 916369 +3fd0000000000001 3fffffffffffffff bcafffffffffffff 3fdfffffffffffff 3fdffffffffffffd Wrong 924425 +3810000040040000 4000000000000001 c7efffffffdefffe 47e0000000210002 c7efffffffdefffe Wrong 926439 +3fd0000000000001 401fffffffffffff 3ff0000000000001 4004000000000000 4008000000000001 Wrong 930467 +3feffff77fffffff bfc0003fffffffbe 40200000fffbffff 402f7fff21fc8801 401f800021f88800 Wrong 94657 +3fd0000000000001 bca0000000000001 3cafffffffffffff 3c97fffffffffffe 3cabfffffffffffe Wrong 948593 +3fd0000000000001 bfe0000000000000 bff0000000000001 bfe4000000000001 bff2000000000001 Wrong 954635 +401ffdfffff00000 bfeffffffffffffe c3400d15caf2c5ca c3400d15caf2c5d2 c3400d15caf2c5ce Wrong 956649 +3fd0000000000001 c000000000000000 4340000000000000 c340000000000000 433fffffffffffff Wrong 960677 +c3cffffffffbffbf c34fffffffffffff 43d0ed5944b60c56 472ffffffffbffbe 472ffffffffbffbf Wrong 968733 +3fd0000000000001 ffeffffffffffffe bcafffffffffffff ffc0000000000000 ffd0000000000000 Wrong 972761 +3c300000fffff7ff c2bfff0000000004 bfcbfb075ca1326a bfcbfd074cc13169 bfcbfc0754b131ea Wrong 976789 +3fdfffffffffffff 3cafffffffffffff c340000000000000 4340000000000000 c340000000000000 Wrong 984845 +c0f0e9718d9cdce9 3fd0000000000001 c01ffffffffffefd c0d0ea718d9cdcea c0d0eb718d9cdcea Wrong 986859 +3fdfffffffffffff 400fffffffffffff 3cafffffffffffff 3ffffffffffffffe 3fffffffffffffff Wrong 996929 +bffffc03ffffffff 4010000000000000 c23fdf0000000000 c23fdf00000ffe02 c23fdf000007ff01 Wrong 998943 +00114508bde544e1 3caffffffffffffe 800010000003fffe 8000000000000000 800010000003fffd Wrong w=-zero zdenorm unflw 2310057 +8010000000803fff 3ff0000000000001 000fffe07fffffff 8000000000000000 8000001f80804001 Wrong w=-zero zdenorm unflw 5246469 +b7fffff80000001f 001ffffffffffffe 800fffffffff07ff 8000000000000000 800fffffffff07ff Wrong w=-zero zdenorm unflw 5723787 +0000000000000001 c010000000000000 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong xdenorm 126881 +000454b2b3078d3e 3fdffffffffffffe c1c3ffffffdfffff 41cc000000200001 c1c3ffffffdfffff Wrong xdenorm 1476261 +000fffffffffffff 3fdfffffffffffff bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong xdenorm 151049 +000fffffffffffff 4010000000000001 c340000000000000 4340000000000000 c340000000000000 Wrong xdenorm 163133 +800f00ffffffffff 801ffffffffffffe bf4ddfffffffffff 3f42200000000001 bf4ddfffffffffff Wrong xdenorm 1784403 +000fffffffffffff bfe0000000000000 4340000000000000 c340000000000000 4340000000000000 Wrong xdenorm 187301 +000ffffffffff07f 41e7fffffdfffffe c3dffffffff77fff 43d0000000088001 c3dffffffff77fff Wrong xdenorm 1967677 +000fffffffffffff ffeffffffffffffe 3ff0000000000001 bffbfffffffffffc c007fffffffffffc Wrong xdenorm 205427 +000ffffffffffffe c34ffffffffffffe 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong xdenorm 271889 +8000000000000001 c010000000000001 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong xdenorm 3196217 +8000000000000001 ffe0000000000001 3ff0000000000001 3fd0000000000005 3ff0000000000003 Wrong xdenorm 3202259 +800fffffffffffff 3fe0000000000000 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong xdenorm 3220385 +800fffffffffffff 401ffffffffffffe 4340000000000000 c340000000000000 4340000000000000 Wrong xdenorm 3232469 +800fffffffffffff bfe0000000000001 c340000000000000 4340000000000000 c340000000000000 Wrong xdenorm 3256637 +800ffffffffffffe 0010000000000000 4340000000000000 c340000000000000 4340000000000000 Wrong xdenorm 3280805 +800ffffffffffffe ffe0000000000000 bcafffffffffffff 3feffffffffffffc 3ffffffffffffffb Wrong xdenorm 3341225 +000001000000007f c001fffffffff7ff 00bffffffffffff7 00bffffedffffff6 00bfffff6ffffff7 Wrong xdenorm 4698661 +00000004000007fe ffeffffffffffffe c030000003fffeff c0100002040002fe c0300001040000fe Wrong xdenorm 5016873 +00000000000003bf bff0000000000000 0ebffffefffffefe 8eb0000100000102 0ebffffefffffefe Wrong xdenorm 5838585 +000fffffffffffff 8000000000000001 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong xdenorm ydenorm 175217 +000ffffffffffffe 000fffffffffffff c340000000000000 4340000000000000 c340000000000000 Wrong xdenorm ydenorm 211469 +800fffffffffffff 800fffffffffffff bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong xdenorm ydenorm 3244553 +800ffffffdffffff bfcffe00003ffffe 800ffff01ffffffe 7ff0000000000000 800c00302077f7ff Wrong xdenorm zdenorm w=+inf 2475205 +3fe0000000000000 000fffffffffffff bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong ydenorm 1117769 +3ff0000000000000 800ffffffffffffe 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong ydenorm 1431953 +40278f9eb19e2877 800c3f9986c3abce 380ffffff8080000 b800000007f80000 380ffffff8080000 Wrong ydenorm 1460149 +380fffff7dfffffe 8000000000000001 3757eb54c3bc586f b75814ab3c43a791 3757eb54c3bc586f Wrong ydenorm 1500429 +4000000000000001 000ffffffffffffe bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong ydenorm 1746137 +c3d02003fffffffe 000fffffffffffff 415fffffeffe0000 c150000010020000 415fffffeffe0000 Wrong ydenorm 1814613 +cbe2b464d5fb92a3 800ffffffffffffe c6dffffffffffffe 46d0000000000002 c6dffffffffffffe Wrong ydenorm 1850865 +c02fffffbfffffef 8003fffffffff800 f00ffffffdfc0000 7000000002040000 f00ffffffdfc0000 Wrong ydenorm 1858921 +bfcff800000000ff 000fffffffffffff 3fc7fefffffffffe bfc8010000000002 3fc7fefffffffffe Wrong ydenorm 2013 +4100000800020000 800fffffffffffff 5c807ffffffeffff dc8f800000010001 5c807ffffffeffff Wrong ydenorm 2128797 +7fe3795af4a2b560 000ffffffffffffe 0020008000200000 3ff3795af4a2b55e 4003795af4a2b55e Wrong ydenorm 2304015 +c3faf80eb5114084 0003d852e11515f0 3d9fffefffffe000 bd90001000002000 3d9fffefffffe000 Wrong ydenorm 2463121 +7fe0000000000001 8000000000000001 bcafffffffffffff bcb4000000000001 bcc8000000000001 Wrong ydenorm 2616185 +7fefffffffffffff 000ffffffffffffe 4340000000000000 4340000000000004 4340000000000002 Wrong ydenorm 2652437 +c010077ffffffffe 800fffffffffffff c06ffe000000000e 406001fffffffff2 c06ffe000000000e Wrong ydenorm 2896131 +400f58f62ff4033a 800fffffffffffff 401fdffffffffdff c010200000000201 401fdffffffffdff Wrong ydenorm 3035097 +bfbf0000000000fe 8000000000000001 e17fffffffff8007 6170000000007ff9 e17fffffffff8007 Wrong ydenorm 3174063 +c7fffffbfffffff7 8000000000000001 c00ffeffffff7fff 4000010000008001 c00ffeffffff7fff Wrong ydenorm 3313029 +801ffffffffffffe 000ffffffffffffe 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong ydenorm 3558737 +bcaffffffffffffe 800ffffffffffffe bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong ydenorm 3872921 +c62020000000007f 800fffffffffffff bfdfffffffffffff 3fd0000000000001 bfdfffffffffffff Wrong ydenorm 3941397 +bf2ff00000000003 000ffffffffffffe 8022000000ffffff 802200ff80ffffff 8022007fc0ffffff Wrong ydenorm 4116615 +bfd23fffffffffff 000fffffffffffff 401ffffdffffffff c010000200000001 401ffffdffffffff Wrong ydenorm 4255581 +4f70000000040001 800fffffffffffff 1fcffffe00ffffff 9fc00001ff000001 1fcffffe00ffffff Wrong ydenorm 455163 +9f90040000001fff 8000ffe4b843faad b80ff7fffffe0000 3800080000020000 b80ff7fffffe0000 Wrong ydenorm 4813459 +c7ffff0000001fff 000ffffffffffffe 401b56e379b8ab6f c014a91c86475491 401b56e379b8ab6f Wrong ydenorm 4883949 +001ffffffffffffe 0000000000000001 bcafffffffffffff 3ca0000000000001 bcafffffffffffff Wrong ydenorm 489401 +001ffffffffffffe 800ffffffffffffe 4340000000000000 c340000000000000 4340000000000000 Wrong ydenorm 525653 +bfc75f2e65f71048 0000000000000001 400ffffffffffdfe c000000000000202 400ffffffffffdfe Wrong ydenorm 5300847 +257e2d1c6ce4bd4e 800ffffffffffffe 43d3ec126aa24cbc c3dc13ed955db344 43d3ec126aa24cbc Wrong ydenorm 5337099 +c09000003fffc000 800fffffffffffff c2bffffffefffdfe 42b0000001000202 c2bffffffefffdfe Wrong ydenorm 5476065 +ffe0000000000001 800ffffffffffffe 3cafffffffffffff 3feffffffffffffe 3fffffffffffffff Wrong ydenorm 5685521 +3fadcdbdd2c3f87e 8000000000000001 402fffffffe00007 c0200000001ffff9 402fffffffe00007 Wrong ydenorm 5753997 +3fb8cfdf5b77451d 000fffffffffffff c03fefeffffffffe 4030101000000002 c03fefeffffffffe Wrong ydenorm 5929215 +c1c0008007ffffff 8000000000000001 c6b4f3502e84a07b 46bb0cafd17b5f85 c6b4f3502e84a07b Wrong ydenorm 594129 +3caffffffffffffe 800fffffffffffff 3cafffffffffffff bca0000000000001 3cafffffffffffff Wrong ydenorm 803585 +3fd0000000000000 000ffffffffffffe c340000000000000 4340000000000000 c340000000000000 Wrong ydenorm 839837 +3fd34fb8606858f1 8000000000000001 0010000000f80000 fff0000000000000 0010000000f80000 Wrong ydenorm w=-inf 2267763 +c34fdffffffbffff 0000000000000001 00000007fbffffff 801fdffe00fbffff 802fdffc01fc0000 Wrong ydenorm zdenorm 4533513 +bfbfffff007fffff 000fffffffffffff 000bffffffc00000 fff0000000000000 000a00000fb80000 Wrong ydenorm zdenorm w=-inf 1675647 +401000ffffffffff 4ba80119d03cc382 800fe0000000001e 4bc80299e1d9c74c 4bc80299e1d9c74d Wrong zdenorm 5085349 +8020007ffdffffff 9beffff7fff7fffe 000ffffffff7fffe 0000000000000000 000ffffffff7fffe Wrong zdenorm unflw 475303 diff --git a/wally-pipelined/src/fpu/FMA/tbgen/tb b/wally-pipelined/src/fpu/FMA/tbgen/tb index 996bd4d4..fbc8c3ff 100755 Binary files a/wally-pipelined/src/fpu/FMA/tbgen/tb and b/wally-pipelined/src/fpu/FMA/tbgen/tb differ diff --git a/wally-pipelined/src/fpu/FMA/tbgen/tb.c b/wally-pipelined/src/fpu/FMA/tbgen/tb.c index defe8901..26625432 100644 --- a/wally-pipelined/src/fpu/FMA/tbgen/tb.c +++ b/wally-pipelined/src/fpu/FMA/tbgen/tb.c @@ -26,11 +26,12 @@ void main() { char ans[81]; char flags[3]; int rn,rz,rm,rp; - long stop = 6128601; + long stop = 6015817; int debug = 1; //my_string = (char *) malloc (nbytes + 1); //bytes_read = getline (&my_string, &nbytes, stdin); + for(n=0; n < 2013; n++) {//613 for 10000 if(getline(&ln,&nbytes,fp) < 0 || feof(fp)) break; if(k == stop && debug == 1) break; @@ -53,7 +54,7 @@ void main() { fprintf(fq," z = 64'h%s;\n",z); fprintf(fq," ans = 64'h%s;\n", ans); // fprintf(fq," flags = 5'h%s;\n", flags); - + { //rn=1; rz=0; rm=0; rp=0; diff --git a/wally-pipelined/src/fpu/FMA/tbgen/tb.v b/wally-pipelined/src/fpu/FMA/tbgen/tb.v index b1887dbf..2762ffe8 100644 --- a/wally-pipelined/src/fpu/FMA/tbgen/tb.v +++ b/wally-pipelined/src/fpu/FMA/tbgen/tb.v @@ -140427,2638 +140427,6 @@ initial if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); $fwrite(fp,"6015817\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'h400FFFFFFFFFFFFF; - z = 64'h7FFFFFFFFFFFFFFE; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6017831\n"); - end - x = 64'h3006575FFA1D85B9; - y = 64'h4010000000000001; - z = 64'hBFEE0000000FFFFF; - ans = 64'hBFEE0000000FFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6019845\n"); - end - x = 64'hD560913EC64375B2; - y = 64'h3D607E0000000000; - z = 64'h381D4C5B808321C8; - ans = 64'hD2D113B6949CC8F1; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6021859\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'h434FFFFFFFFFFFFF; - z = 64'h3CAFFFFFFFFFFFFF; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6023873\n"); - end - x = 64'h403FFFFFFFFFC3FE; - y = 64'h7FE0000000000000; - z = 64'hC0200FFFFFFF7FFF; - ans = 64'h7FF0000000000000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6025887\n"); - end - x = 64'hC070080FFFFFFFFF; - y = 64'hB8A0000002000080; - z = 64'h7FF82DBA502B3839; - ans = 64'h7FF82DBA502B3839; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6027901\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'h7FF0000000000001; - z = 64'hBFF0000000000001; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6029915\n"); - end - x = 64'h3CA0000800004000; - y = 64'h8000000000000000; - z = 64'hBF9FFFF1FFFFFFFF; - ans = 64'hBF9FFFF1FFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6031929\n"); - end - x = 64'h38FFFFFFFFFDC000; - y = 64'h41E00001FFFFFFBE; - z = 64'hD52000000000801E; - ans = 64'hD52000000000801E; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6033943\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'h8010000000000001; - z = 64'h4340000000000000; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6035957\n"); - end - x = 64'h4010001FFFFFFFDF; - y = 64'h801FFFFFFFFFFFFE; - z = 64'hBFB0000001400000; - ans = 64'hBFB0000001400000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6037971\n"); - end - x = 64'hBFB9B0D01A1EF3DF; - y = 64'h800D29B35E6B84D3; - z = 64'hFFEFFFF77FFFFFFF; - ans = 64'hFFEFFFF77FFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6039985\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'hBFD0000000000000; - z = 64'hFFFFFFFFFFFFFFFE; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6041999\n"); - end - x = 64'h402FFFFF80000001; - y = 64'hBFDFFFFFFFFFFFFE; - z = 64'hC03FFFFFFFFF0000; - ans = 64'hC043FFFFEFFF8000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6044013\n"); - end - x = 64'h163C00007FFFFFFF; - y = 64'hBE00000500000000; - z = 64'h3FD0008000FFFFFF; - ans = 64'h3FD0008000FFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6046027\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'hBFF0000000000000; - z = 64'hBCAFFFFFFFFFFFFF; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6048041\n"); - end - x = 64'hBCA000000FFFFF7F; - y = 64'hBFFFFFFFFFFFFFFE; - z = 64'h4F7DFFFFFF800000; - ans = 64'h4F7DFFFFFF800000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6050055\n"); - end - x = 64'h8F9B54FF9BC5939D; - y = 64'hBB9FFFEFBFFFFFFF; - z = 64'h002FFFFFFFFE003F; - ans = 64'h0B4B54F1BA9BC682; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6052069\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'hC010000000000000; - z = 64'h3FF0000000000001; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6054083\n"); - end - x = 64'hFFD1E1144D4A4CD4; - y = 64'hC01FFFFFFFFFFFFF; - z = 64'h80200000000800FF; - ans = 64'h7FF0000000000000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6056097\n"); - end - x = 64'hC1F69B9D2D0F9BBF; - y = 64'h400B5D4B36FADBE1; - z = 64'hC1C0007FFFFFFFFB; - ans = 64'hC213D53A026056B2; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6058111\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'hC34FFFFFFFFFFFFE; - z = 64'hC340000000000000; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6060125\n"); - end - x = 64'hC15FFFFFBFFFFEFF; - y = 64'hFFEFFFFFFFFFFFFF; - z = 64'hB7EFFF7FFFFEFFFE; - ans = 64'h7FF0000000000000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6062139\n"); - end - x = 64'h7FD0000210000000; - y = 64'h3FB0000000FFFF80; - z = 64'h381FFFFFFFFF9FFE; - ans = 64'h7F90000210FFFFA1; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6064153\n"); - end - x = 64'hFFFFFFFFFFFFFFFF; - y = 64'hFFFFFFFFFFFFFFFE; - z = 64'h7FFFFFFFFFFFFFFE; - ans = 64'hFFFFFFFFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6066167\n"); - end - x = 64'hDF359A6296089E41; - y = 64'h000FFFFFFFFFFFFF; - z = 64'h3FC0000000002040; - ans = 64'h3FC0000000002040; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6068181\n"); - end - x = 64'h80000000005FFFFE; - y = 64'hBFCFE07FFFFFFFFE; - z = 64'h43E006FFFFFFFFFF; - ans = 64'h43E006FFFFFFFFFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6070195\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'h001FFFFFFFFFFFFE; - z = 64'h3CAFFFFFFFFFFFFF; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6072209\n"); - end - x = 64'hBCAFE0000000FFFF; - y = 64'h3CA0000000000001; - z = 64'hB4CFFFF7FFFBFFFF; - ans = 64'hB95FE00000010001; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6074223\n"); - end - x = 64'hBFB003FFFFFFBFFF; - y = 64'h4D1E03FFFFFFFFFE; - z = 64'hC6600FFFBFFFFFFF; - ans = 64'hCCDE0B80FFFF87EC; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6076237\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'h3FDFFFFFFFFFFFFF; - z = 64'hBFF0000000000001; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6078251\n"); - end - x = 64'hBF5007FFFFFFFC00; - y = 64'h3FE0000000000001; - z = 64'hBFB38FF7C65863E1; - ans = 64'hBFB3B007C65863D9; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6080265\n"); - end - x = 64'hB93FFFFFFFFFFE01; - y = 64'h3E1FFFFBEFFFFFFF; - z = 64'h400FBFFFFFFFC000; - ans = 64'h400FBFFFFFFFC000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6082279\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'h3FFFFFFFFFFFFFFF; - z = 64'h4340000000000000; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6084293\n"); - end - x = 64'h4F50000FFFFFF7FF; - y = 64'h4000000000000000; - z = 64'h400FFFFFF8020000; - ans = 64'h4F60000FFFFFF7FF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6086307\n"); - end - x = 64'hC00000007FFFFFFF; - y = 64'h380000000083FFFE; - z = 64'h41EFFF7FFFF7FFFE; - ans = 64'h41EFFF7FFFF7FFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6088321\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'h4010000000000001; - z = 64'hFFFFFFFFFFFFFFFE; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6090335\n"); - end - x = 64'h43D000000008FFFF; - y = 64'h4340000000000000; - z = 64'h43D4197DC6387237; - ans = 64'h4720000000090000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6092349\n"); - end - x = 64'h57C0000000083FFE; - y = 64'hBFB00FFFDFFFFFFF; - z = 64'hC004862AC35E2530; - ans = 64'hD7800FFFE008483D; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6094363\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'h7FE0000000000001; - z = 64'hBCAFFFFFFFFFFFFF; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6096377\n"); - end - x = 64'hBFE0000080FFFFFF; - y = 64'h7FF0000000000000; - z = 64'h56EFEFFFFFFFFF00; - ans = 64'hFFF0000000000000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6098391\n"); - end - x = 64'hBF650C6E8C6C58E9; - y = 64'h403000000000007B; - z = 64'hBCB010003FFFFFFF; - ans = 64'hBFA50C6E8C6C59AB; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6100405\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'h8000000000000001; - z = 64'h3FF0000000000001; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6102419\n"); - end - x = 64'hC1E0400007FFFFFF; - y = 64'h800FFFFFFFFFFFFE; - z = 64'hBFC242ECB9B591F6; - ans = 64'hBFC242ECB9B591F6; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6104433\n"); - end - x = 64'h3FDACC860B03EBFD; - y = 64'h37F1000000000020; - z = 64'h3ED4E23C48598653; - ans = 64'h3ED4E23C48598653; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6106447\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'hBCA0000000000000; - z = 64'hC340000000000000; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6108461\n"); - end - x = 64'hC030000FBFFFFFFE; - y = 64'hBCAFFFFFFFFFFFFE; - z = 64'h3FE07FFFFFFFBFFF; - ans = 64'h3FE07FFFFFFFC01F; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6110475\n"); - end - x = 64'hE4A61C37264327A3; - y = 64'hB80003FFFFFFFFFF; - z = 64'h5DBFDFFFFFFFFFFB; - ans = 64'h5DBFE01621BE3408; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6112489\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'hBFE0000000000000; - z = 64'h7FFFFFFFFFFFFFFE; - ans = 64'h7FFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6114503\n"); - end - x = 64'h4180000800000FFF; - y = 64'hBFEFFFFFFFFFFFFE; - z = 64'hBFF0000020003FFF; - ans = 64'hC18000080800100E; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6116517\n"); - end - x = 64'hC3E32B3DE3BF21A9; - y = 64'h7FE002000003FFFF; - z = 64'h482FBFFFFFFBFFFF; - ans = 64'hFFF0000000000000; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6118531\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'hC000000000000000; - z = 64'h3CAFFFFFFFFFFFFF; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6120545\n"); - end - x = 64'hC06F7FFFFF7FFFFF; - y = 64'hC00FFFFFFFFFFFFF; - z = 64'hBFF100000FFFFFFE; - ans = 64'h408F777FFF77FFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6122559\n"); - end - x = 64'hB81001FEFFFFFFFF; - y = 64'h800B7B70556EE1BD; - z = 64'hB9F0400000001FFF; - ans = 64'hB9F0400000001FFF; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6124573\n"); - end - x = 64'hFFFFFFFFFFFFFFFE; - y = 64'hC01FFFFFFFFFFFFE; - z = 64'hBFF0000000000001; - ans = 64'hFFFFFFFFFFFFFFFE; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6126587\n"); - end - x = 64'hC34000000002000E; - y = 64'hC34FFFFFFFFFFFFF; - z = 64'h37E0020000200000; - ans = 64'h46A000000002000D; - rn = 1; - rz = 0; - rm = 0; - rp = 0; - earlyres = 64'b0; - earlyressel = 0; - bypsel= 2'b0; - bypplus1 = 0; - byppostnorm = 0; -#10 - // IEEE 754-2008 section 6.3 states: "When ether an input or result is NaN, this - // standard does not interpret the sign of a NaN." - wnan = &w[62:52] && |w[51:0]; - xnan = &x[62:52] && |x[51:0]; - ynan = &y[62:52] && |y[51:0]; - znan = &z[62:52] && |z[51:0]; - ansnan = &ans[62:52] && |ans[51:0]; - xnorm = ~(|x[62:52]) && |x[51:0] ? {x[50:0], 1'b0} : x; - ynorm = ~(|y[62:52]) && |y[51:0] ? {y[50:0], 1'b0} : y; - s = ({54'b1,xnorm} + (bypsel && bypplus1)) * {54'b1,ynorm}; - if((!wnan && (w != ans)) || (wnan && ansnan && ~(((xnan && (w[62:0] == {x[62:52],1'b1,x[50:0]})) || (ynan && (w[62:0] == {y[62:52],1'b1,y[50:0]})) || (znan && (w[62:0] == {z[62:52],1'b1,z[50:0]})) || (w[62:0] == ans[62:0])) ))) begin - $fwrite(fp, "%h %h %h %h %h Wrong ",x,y, z, w, ans); - if(w == 64'h8000000000000000) $fwrite(fp, "w=-zero "); - if(~(|x[62:52]) && |x[51:0]) $fwrite(fp, "xdenorm "); - if(~(|y[62:52]) && |y[51:0]) $fwrite(fp, "ydenorm "); - if(~(|z[62:52]) && |z[51:0]) $fwrite(fp, "zdenorm "); - if(invalid != 0) $fwrite(fp, "invld "); - if(overflow != 0) $fwrite(fp, "ovrflw "); - if(underflow != 0) $fwrite(fp, "unflw "); - if(w == 64'hFFF0000000000000) $fwrite(fp, "w=-inf "); - if(w == 64'h7FF0000000000000) $fwrite(fp, "w=+inf "); - if(w > 64'h7FF0000000000000 && w < 64'h7FF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w > 64'hFFF8000000000000 && w < 64'hFFF8000000000000 ) $fwrite(fp, "w=sigNaN "); - if(w >= 64'h7FF8000000000000 && w <= 64'h7FFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(w >= 64'hFFF8000000000000 && w <= 64'hFFFfffffffffffff ) $fwrite(fp, "w=qutNaN "); - if(ans == 64'hFFF0000000000000) $fwrite(fp, "ans=-inf "); - if(ans == 64'h7FF0000000000000) $fwrite(fp, "ans=+inf "); - if(ans > 64'h7FF0000000000000 && ans < 64'h7FF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans > 64'hFFF8000000000000 && ans < 64'hFFF8000000000000 ) $fwrite(fp, "ans=sigNaN "); - if(ans >= 64'h7FF8000000000000 && ans <= 64'h7FFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - if(ans >= 64'hFFF8000000000000 && ans <= 64'hFFFfffffffffffff ) $fwrite(fp, "ans=qutNaN "); - $fwrite(fp,"6128601\n"); end $stop; end diff --git a/wally-pipelined/src/uncore/plic.sv b/wally-pipelined/src/uncore/plic.sv new file mode 100644 index 00000000..878f2e92 --- /dev/null +++ b/wally-pipelined/src/uncore/plic.sv @@ -0,0 +1,323 @@ +/////////////////////////////////////////// +// plic.sv +// +// Written: bbracker@hmc.edu 18 January 2021 +// Modified: +// +// Purpose: Platform-Level Interrupt Controller +// See FU540-C000-Manual-v1p0 for specifications +// *** we might want to add support for FE310-G002-Manual-v19p05 version +// +// A component of the Wally configurable RISC-V project. +// +// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, +// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software +// is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +/////////////////////////////////////////// + +`include "wally-config.vh" + +module plic ( + input logic HCLK, HRESETn, + input logic HSELPLIC, + input logic [27:0] HADDR, + input logic HWRITE, + input logic [`XLEN-1:0] HWDATA, + output logic [`XLEN-1:0] HREADPLIC, + output logic HRESPPLIC, HREADYPLIC); + + logic memread, memwrite; + parameter numSrc = 53; + logic [2:0] intPriority [numSrc:1]; + logic [2:0] intThreshold; + logic [numSrc:1] intPending, intEn; + logic [31:0] intClaim; + logic [27:0] entry; + + // AHB I/O + assign memread = HSELPLIC & ~HWRITE; + assign memwrite = HSELPLIC & HWRITE; + assign HRESPPLIC = 0; // OK + assign HREADYPLIC = 1'b1; // will need to be modified if PLIC ever needs more than 1 cycle to do something + + // word aligned reads + generate + if (`XLEN==64) + assign #2 entry = {HADDR[15:3], 3'b000}; + else + assign #2 entry = {HADDR[15:2], 2'b00}; + endgenerate + + // register access + generate + if (`XLEN==64) begin + always @(posedge HCLK) begin + // reading + case(entry) + // priority assignments + 28'hc000004: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[1]}; + 28'hc000008: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[2]}; + 28'hc00000c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[3]}; + 28'hc000010: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[4]}; + 28'hc000014: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[5]}; + 28'hc000018: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[6]}; + 28'hc00001c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[7]}; + 28'hc000020: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[8]}; + 28'hc000024: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[9]}; + 28'hc000028: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[10]}; + 28'hc00002c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[11]}; + 28'hc000030: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[12]}; + 28'hc000034: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[13]}; + 28'hc000038: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[14]}; + 28'hc00003c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[15]}; + 28'hc000040: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[16]}; + 28'hc000044: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[17]}; + 28'hc000048: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[18]}; + 28'hc00004c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[19]}; + 28'hc000050: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[20]}; + 28'hc000054: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[21]}; + 28'hc000058: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[22]}; + 28'hc00005c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[23]}; + 28'hc000060: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[24]}; + 28'hc000064: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[25]}; + 28'hc000068: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[26]}; + 28'hc00006c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[27]}; + 28'hc000070: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[28]}; + 28'hc000074: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[29]}; + 28'hc000078: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[30]}; + 28'hc00007c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[31]}; + 28'hc000080: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[32]}; + 28'hc000084: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[33]}; + 28'hc000088: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[34]}; + 28'hc00008c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[35]}; + 28'hc000090: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[36]}; + 28'hc000094: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[37]}; + 28'hc000098: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[38]}; + 28'hc00009c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[39]}; + 28'hc0000a0: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[40]}; + 28'hc0000a4: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[41]}; + 28'hc0000a8: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[42]}; + 28'hc0000ac: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[43]}; + 28'hc0000b0: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[44]}; + 28'hc0000b4: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[45]}; + 28'hc0000b8: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[46]}; + 28'hc0000bc: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[47]}; + 28'hc0000c0: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[48]}; + 28'hc0000c4: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[49]}; + 28'hc0000c8: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[50]}; + 28'hc0000cc: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[51]}; + 28'hc0000d0: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[52]}; + 28'hc0000d4: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[53]}; + // hart 0 configurations + 28'hc001000: HREADPLIC <= {{(`XLEN-32){1'b0}},intPending[31:1],1'b0}; + 28'hc001004: HREADPLIC <= {{(`XLEN-22){1'b0}},intPending[53:32]}; + 28'hc002000: HREADPLIC <= {{(`XLEN-32){1'b0}},intEn[31:1],1'b0}; + 28'hc002004: HREADPLIC <= {{(`XLEN-22){1'b0}},intEn[53:32]}; + 28'hc200000: HREADPLIC <= {{(`XLEN-3){1'b0}},intThreshold[2:0]}; + 28'hc200004: HREADPLIC <= {{(`XLEN-32){1'b0}},intClaim[31:0]}; + default: HREADPLIC <= 0; + endcase + // writing + case(entry) + // priority assignments + 28'hc000004: if (memwrite) intPriority[1] <= HWDATA[2:0]; + 28'hc000008: if (memwrite) intPriority[2] <= HWDATA[2:0]; + 28'hc00000c: if (memwrite) intPriority[3] <= HWDATA[2:0]; + 28'hc000010: if (memwrite) intPriority[4] <= HWDATA[2:0]; + 28'hc000014: if (memwrite) intPriority[5] <= HWDATA[2:0]; + 28'hc000018: if (memwrite) intPriority[6] <= HWDATA[2:0]; + 28'hc00001c: if (memwrite) intPriority[7] <= HWDATA[2:0]; + 28'hc000020: if (memwrite) intPriority[8] <= HWDATA[2:0]; + 28'hc000024: if (memwrite) intPriority[9] <= HWDATA[2:0]; + 28'hc000028: if (memwrite) intPriority[10] <= HWDATA[2:0]; + 28'hc00002c: if (memwrite) intPriority[11] <= HWDATA[2:0]; + 28'hc000030: if (memwrite) intPriority[12] <= HWDATA[2:0]; + 28'hc000034: if (memwrite) intPriority[13] <= HWDATA[2:0]; + 28'hc000038: if (memwrite) intPriority[14] <= HWDATA[2:0]; + 28'hc00003c: if (memwrite) intPriority[15] <= HWDATA[2:0]; + 28'hc000040: if (memwrite) intPriority[16] <= HWDATA[2:0]; + 28'hc000044: if (memwrite) intPriority[17] <= HWDATA[2:0]; + 28'hc000048: if (memwrite) intPriority[18] <= HWDATA[2:0]; + 28'hc00004c: if (memwrite) intPriority[19] <= HWDATA[2:0]; + 28'hc000050: if (memwrite) intPriority[20] <= HWDATA[2:0]; + 28'hc000054: if (memwrite) intPriority[21] <= HWDATA[2:0]; + 28'hc000058: if (memwrite) intPriority[22] <= HWDATA[2:0]; + 28'hc00005c: if (memwrite) intPriority[23] <= HWDATA[2:0]; + 28'hc000060: if (memwrite) intPriority[24] <= HWDATA[2:0]; + 28'hc000064: if (memwrite) intPriority[25] <= HWDATA[2:0]; + 28'hc000068: if (memwrite) intPriority[26] <= HWDATA[2:0]; + 28'hc00006c: if (memwrite) intPriority[27] <= HWDATA[2:0]; + 28'hc000070: if (memwrite) intPriority[28] <= HWDATA[2:0]; + 28'hc000074: if (memwrite) intPriority[29] <= HWDATA[2:0]; + 28'hc000078: if (memwrite) intPriority[30] <= HWDATA[2:0]; + 28'hc00007c: if (memwrite) intPriority[31] <= HWDATA[2:0]; + 28'hc000080: if (memwrite) intPriority[32] <= HWDATA[2:0]; + 28'hc000084: if (memwrite) intPriority[33] <= HWDATA[2:0]; + 28'hc000088: if (memwrite) intPriority[34] <= HWDATA[2:0]; + 28'hc00008c: if (memwrite) intPriority[35] <= HWDATA[2:0]; + 28'hc000090: if (memwrite) intPriority[36] <= HWDATA[2:0]; + 28'hc000094: if (memwrite) intPriority[37] <= HWDATA[2:0]; + 28'hc000098: if (memwrite) intPriority[38] <= HWDATA[2:0]; + 28'hc00009c: if (memwrite) intPriority[39] <= HWDATA[2:0]; + 28'hc0000a0: if (memwrite) intPriority[40] <= HWDATA[2:0]; + 28'hc0000a4: if (memwrite) intPriority[41] <= HWDATA[2:0]; + 28'hc0000a8: if (memwrite) intPriority[42] <= HWDATA[2:0]; + 28'hc0000ac: if (memwrite) intPriority[43] <= HWDATA[2:0]; + 28'hc0000b0: if (memwrite) intPriority[44] <= HWDATA[2:0]; + 28'hc0000b4: if (memwrite) intPriority[45] <= HWDATA[2:0]; + 28'hc0000b8: if (memwrite) intPriority[46] <= HWDATA[2:0]; + 28'hc0000bc: if (memwrite) intPriority[47] <= HWDATA[2:0]; + 28'hc0000c0: if (memwrite) intPriority[48] <= HWDATA[2:0]; + 28'hc0000c4: if (memwrite) intPriority[49] <= HWDATA[2:0]; + 28'hc0000c8: if (memwrite) intPriority[50] <= HWDATA[2:0]; + 28'hc0000cc: if (memwrite) intPriority[51] <= HWDATA[2:0]; + 28'hc0000d0: if (memwrite) intPriority[52] <= HWDATA[2:0]; + 28'hc0000d4: if (memwrite) intPriority[53] <= HWDATA[2:0]; + // hart 0 configurations + 28'hc002000: if (memwrite) intEn[31:1] <= HWDATA[31:1]; + 28'hc002004: if (memwrite) intEn[53:32] <= HWDATA[22:0]; + endcase + end + end else begin // 32-bit + always @(posedge HCLK) begin + // reading + case(entry) + // priority assignments + 28'hc000004: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[1]}; + 28'hc000008: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[2]}; + 28'hc00000c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[3]}; + 28'hc000010: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[4]}; + 28'hc000014: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[5]}; + 28'hc000018: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[6]}; + 28'hc00001c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[7]}; + 28'hc000020: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[8]}; + 28'hc000024: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[9]}; + 28'hc000028: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[10]}; + 28'hc00002c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[11]}; + 28'hc000030: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[12]}; + 28'hc000034: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[13]}; + 28'hc000038: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[14]}; + 28'hc00003c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[15]}; + 28'hc000040: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[16]}; + 28'hc000044: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[17]}; + 28'hc000048: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[18]}; + 28'hc00004c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[19]}; + 28'hc000050: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[20]}; + 28'hc000054: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[21]}; + 28'hc000058: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[22]}; + 28'hc00005c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[23]}; + 28'hc000060: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[24]}; + 28'hc000064: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[25]}; + 28'hc000068: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[26]}; + 28'hc00006c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[27]}; + 28'hc000070: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[28]}; + 28'hc000074: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[29]}; + 28'hc000078: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[30]}; + 28'hc00007c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[31]}; + 28'hc000080: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[32]}; + 28'hc000084: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[33]}; + 28'hc000088: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[34]}; + 28'hc00008c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[35]}; + 28'hc000090: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[36]}; + 28'hc000094: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[37]}; + 28'hc000098: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[38]}; + 28'hc00009c: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[39]}; + 28'hc0000a0: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[40]}; + 28'hc0000a4: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[41]}; + 28'hc0000a8: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[42]}; + 28'hc0000ac: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[43]}; + 28'hc0000b0: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[44]}; + 28'hc0000b4: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[45]}; + 28'hc0000b8: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[46]}; + 28'hc0000bc: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[47]}; + 28'hc0000c0: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[48]}; + 28'hc0000c4: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[49]}; + 28'hc0000c8: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[50]}; + 28'hc0000cc: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[51]}; + 28'hc0000d0: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[52]}; + 28'hc0000d4: HREADPLIC <= {{(`XLEN-3){1'b0}},intPriority[53]}; + // hart 0 configurations + 28'hc001000: HREADPLIC <= {{(`XLEN-32){1'b0}},intPending[31:1],1'b0}; + 28'hc001004: HREADPLIC <= {{(`XLEN-22){1'b0}},intPending[53:32]}; + 28'hc002000: HREADPLIC <= {{(`XLEN-32){1'b0}},intEn[31:1],1'b0}; + 28'hc002004: HREADPLIC <= {{(`XLEN-22){1'b0}},intEn[53:32]}; + 28'hc200000: HREADPLIC <= {{(`XLEN-3){1'b0}},intThreshold[2:0]}; + 28'hc200004: HREADPLIC <= {{(`XLEN-32){1'b0}},intClaim[31:0]}; + default: HREADPLIC <= 0; + endcase + // writing + case(entry) + // priority assignments + 28'hc000004: if (memwrite) intPriority[1] <= HWDATA[2:0]; + 28'hc000008: if (memwrite) intPriority[2] <= HWDATA[2:0]; + 28'hc00000c: if (memwrite) intPriority[3] <= HWDATA[2:0]; + 28'hc000010: if (memwrite) intPriority[4] <= HWDATA[2:0]; + 28'hc000014: if (memwrite) intPriority[5] <= HWDATA[2:0]; + 28'hc000018: if (memwrite) intPriority[6] <= HWDATA[2:0]; + 28'hc00001c: if (memwrite) intPriority[7] <= HWDATA[2:0]; + 28'hc000020: if (memwrite) intPriority[8] <= HWDATA[2:0]; + 28'hc000024: if (memwrite) intPriority[9] <= HWDATA[2:0]; + 28'hc000028: if (memwrite) intPriority[10] <= HWDATA[2:0]; + 28'hc00002c: if (memwrite) intPriority[11] <= HWDATA[2:0]; + 28'hc000030: if (memwrite) intPriority[12] <= HWDATA[2:0]; + 28'hc000034: if (memwrite) intPriority[13] <= HWDATA[2:0]; + 28'hc000038: if (memwrite) intPriority[14] <= HWDATA[2:0]; + 28'hc00003c: if (memwrite) intPriority[15] <= HWDATA[2:0]; + 28'hc000040: if (memwrite) intPriority[16] <= HWDATA[2:0]; + 28'hc000044: if (memwrite) intPriority[17] <= HWDATA[2:0]; + 28'hc000048: if (memwrite) intPriority[18] <= HWDATA[2:0]; + 28'hc00004c: if (memwrite) intPriority[19] <= HWDATA[2:0]; + 28'hc000050: if (memwrite) intPriority[20] <= HWDATA[2:0]; + 28'hc000054: if (memwrite) intPriority[21] <= HWDATA[2:0]; + 28'hc000058: if (memwrite) intPriority[22] <= HWDATA[2:0]; + 28'hc00005c: if (memwrite) intPriority[23] <= HWDATA[2:0]; + 28'hc000060: if (memwrite) intPriority[24] <= HWDATA[2:0]; + 28'hc000064: if (memwrite) intPriority[25] <= HWDATA[2:0]; + 28'hc000068: if (memwrite) intPriority[26] <= HWDATA[2:0]; + 28'hc00006c: if (memwrite) intPriority[27] <= HWDATA[2:0]; + 28'hc000070: if (memwrite) intPriority[28] <= HWDATA[2:0]; + 28'hc000074: if (memwrite) intPriority[29] <= HWDATA[2:0]; + 28'hc000078: if (memwrite) intPriority[30] <= HWDATA[2:0]; + 28'hc00007c: if (memwrite) intPriority[31] <= HWDATA[2:0]; + 28'hc000080: if (memwrite) intPriority[32] <= HWDATA[2:0]; + 28'hc000084: if (memwrite) intPriority[33] <= HWDATA[2:0]; + 28'hc000088: if (memwrite) intPriority[34] <= HWDATA[2:0]; + 28'hc00008c: if (memwrite) intPriority[35] <= HWDATA[2:0]; + 28'hc000090: if (memwrite) intPriority[36] <= HWDATA[2:0]; + 28'hc000094: if (memwrite) intPriority[37] <= HWDATA[2:0]; + 28'hc000098: if (memwrite) intPriority[38] <= HWDATA[2:0]; + 28'hc00009c: if (memwrite) intPriority[39] <= HWDATA[2:0]; + 28'hc0000a0: if (memwrite) intPriority[40] <= HWDATA[2:0]; + 28'hc0000a4: if (memwrite) intPriority[41] <= HWDATA[2:0]; + 28'hc0000a8: if (memwrite) intPriority[42] <= HWDATA[2:0]; + 28'hc0000ac: if (memwrite) intPriority[43] <= HWDATA[2:0]; + 28'hc0000b0: if (memwrite) intPriority[44] <= HWDATA[2:0]; + 28'hc0000b4: if (memwrite) intPriority[45] <= HWDATA[2:0]; + 28'hc0000b8: if (memwrite) intPriority[46] <= HWDATA[2:0]; + 28'hc0000bc: if (memwrite) intPriority[47] <= HWDATA[2:0]; + 28'hc0000c0: if (memwrite) intPriority[48] <= HWDATA[2:0]; + 28'hc0000c4: if (memwrite) intPriority[49] <= HWDATA[2:0]; + 28'hc0000c8: if (memwrite) intPriority[50] <= HWDATA[2:0]; + 28'hc0000cc: if (memwrite) intPriority[51] <= HWDATA[2:0]; + 28'hc0000d0: if (memwrite) intPriority[52] <= HWDATA[2:0]; + 28'hc0000d4: if (memwrite) intPriority[53] <= HWDATA[2:0]; + // hart 0 configurations + 28'hc002000: if (memwrite) intEn[31:1] <= HWDATA[31:1]; + 28'hc002004: if (memwrite) intEn[53:32] <= HWDATA[22:0]; + endcase + end + end + endgenerate + +endmodule + diff --git a/wally-pipelined/src/uncore/uncore.sv b/wally-pipelined/src/uncore/uncore.sv index 6bda1d5e..4a432c73 100644 --- a/wally-pipelined/src/uncore/uncore.sv +++ b/wally-pipelined/src/uncore/uncore.sv @@ -58,12 +58,12 @@ module uncore ( ); logic [`XLEN-1:0] HWDATA; - logic [`XLEN-1:0] HREADTim, HREADCLINT, HREADGPIO, HREADUART; + logic [`XLEN-1:0] HREADTim, HREADCLINT, HREADPLIC, HREADGPIO, HREADUART; - logic HSELTim, HSELCLINT, HSELGPIO, PreHSELUART, HSELUART; - logic HSELTimD, HSELCLINTD, HSELGPIOD, HSELUARTD; - logic HRESPTim, HRESPCLINT, HRESPGPIO, HRESPUART; - logic HREADYTim, HREADYCLINT, HREADYGPIO, HREADYUART; + logic HSELTim, HSELCLINT, HSELPLIC, HSELGPIO, PreHSELUART, HSELUART; + logic HSELTimD, HSELCLINTD, HSELPLICD, HSELGPIOD, HSELUARTD; + logic HRESPTim, HRESPCLINT, HRESPPLIC, HRESPGPIO, HRESPUART; + logic HREADYTim, HREADYCLINT, HREADYPLIC, HREADYGPIO, HREADYUART; logic [`XLEN-1:0] HREADBootTim; logic HSELBootTim, HSELBootTimD, HRESPBootTim, HREADYBootTim; logic [1:0] MemRWboottim; @@ -74,6 +74,7 @@ module uncore ( adrdec timdec(HADDR, `TIMBASE, `TIMRANGE, HSELTim); adrdec boottimdec(HADDR, `BOOTTIMBASE, `BOOTTIMRANGE, HSELBootTim); adrdec clintdec(HADDR, `CLINTBASE, `CLINTRANGE, HSELCLINT); + adrdec plicdec(HADDR, `PLICBASE, `PLICRANGE, HSELPLIC); adrdec gpiodec(HADDR, `GPIOBASE, `GPIORANGE, HSELGPIO); adrdec uartdec(HADDR, `UARTBASE, `UARTRANGE, PreHSELUART); assign HSELUART = PreHSELUART && (HSIZE == 3'b000); // only byte writes to UART are supported @@ -87,6 +88,7 @@ module uncore ( // memory-mapped I/O peripherals clint clint(.HADDR(HADDR[15:0]), .*); + plic plic(.HADDR(HADDR[27:0]), .*); gpio gpio(.HADDR(HADDR[7:0]), .*); // *** may want to add GPIO interrupts uart uart(.HADDR(HADDR[2:0]), .TXRDYb(), .RXRDYb(), .INTR(UARTIntr), .SIN(UARTSin), .SOUT(UARTSout), .DSRb(1'b1), .DCDb(1'b1), .CTSb(1'b0), .RIb(1'b1), @@ -94,21 +96,33 @@ module uncore ( // mux could also include external memory // AHB Read Multiplexer - assign HRDATA = ({`XLEN{HSELTimD}} & HREADTim) | ({`XLEN{HSELCLINTD}} & HREADCLINT) | - ({`XLEN{HSELGPIOD}} & HREADGPIO) | ({`XLEN{HSELBootTimD}} & HREADBootTim) | - ({`XLEN{HSELUARTD}} & HREADUART); - assign HRESP = HSELTimD & HRESPTim | HSELCLINTD & HRESPCLINT | HSELGPIOD & HRESPGPIO | - HSELBootTimD & HRESPBootTim | HSELUARTD & HRESPUART; - assign HREADY = HSELTimD & HREADYTim | HSELCLINTD & HREADYCLINT | HSELGPIOD & HREADYGPIO | - HSELBootTimD & HREADYBootTim | HSELUARTD & HREADYUART; + assign HRDATA = ({`XLEN{HSELTimD}} & HREADTim) | + ({`XLEN{HSELCLINTD}} & HREADCLINT) | + ({`XLEN{HSELPLICD}} & HREADPLIC) | + ({`XLEN{HSELGPIOD}} & HREADGPIO) | + ({`XLEN{HSELBootTimD}} & HREADBootTim) | + ({`XLEN{HSELUARTD}} & HREADUART); + assign HRESP = HSELTimD & HRESPTim | + HSELCLINTD & HRESPCLINT | + HSELPLICD & HRESPPLIC | + HSELGPIOD & HRESPGPIO | + HSELBootTimD & HRESPBootTim | + HSELUARTD & HRESPUART; + assign HREADY = HSELTimD & HREADYTim | + HSELCLINTD & HREADYCLINT | + HSELPLICD & HREADYPLIC | + HSELGPIOD & HREADYGPIO | + HSELBootTimD & HREADYBootTim | + HSELUARTD & HREADYUART; // Faults - assign DataAccessFaultM = ~(HSELTimD | HSELCLINTD | HSELGPIOD | HSELBootTimD | HSELUARTD); + assign DataAccessFaultM = ~(HSELTimD | HSELCLINTD | HSELPLICD | HSELGPIOD | HSELBootTimD | HSELUARTD); // Address Decoder Delay (figure 4-2 in spec) flopr #(1) hseltimreg(HCLK, ~HRESETn, HSELTim, HSELTimD); flopr #(1) hselclintreg(HCLK, ~HRESETn, HSELCLINT, HSELCLINTD); + flopr #(1) hselplicreg(HCLK, ~HRESETn, HSELPLIC, HSELPLICD); flopr #(1) hselgpioreg(HCLK, ~HRESETn, HSELGPIO, HSELGPIOD); flopr #(1) hseluartreg(HCLK, ~HRESETn, HSELUART, HSELUARTD); flopr #(1) hselboottimreg(HCLK, ~HRESETn, HSELBootTim, HSELBootTimD);