diff options
author | John Hauser <jhauser@eecs.berkeley.edu> | 2018-01-26 12:52:36 -0800 |
---|---|---|
committer | John Hauser <jhauser@eecs.berkeley.edu> | 2018-01-26 12:52:36 -0800 |
commit | 06b20075dd3c1a5d0dd007a93643282832221612 (patch) | |
tree | 5ccf80c275685bccd4f0b4de41c66cf7dbbf34b4 /source | |
parent | 0d2862cdb35361d47548020b97dc60b58d53d048 (diff) | |
download | berkeley-testfloat-3-06b20075dd3c1a5d0dd007a93643282832221612.zip berkeley-testfloat-3-06b20075dd3c1a5d0dd007a93643282832221612.tar.gz berkeley-testfloat-3-06b20075dd3c1a5d0dd007a93643282832221612.tar.bz2 |
Release 3e. See "doc/TestFloat-history.html".
Diffstat (limited to 'source')
176 files changed, 569 insertions, 886 deletions
diff --git a/source/fail.c b/source/fail.c index 1850c7f..f68e941 100644 --- a/source/fail.c +++ b/source/fail.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/fail.h b/source/fail.h index 73b29bc..e981473 100644 --- a/source/fail.h +++ b/source/fail.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/functionInfos.c b/source/functionInfos.c index b9eeec5..8e40106 100644 --- a/source/functionInfos.c +++ b/source/functionInfos.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/functions.h b/source/functions.h index 2b405eb..ee66bbd 100644 --- a/source/functions.h +++ b/source/functions.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/functions_common.c b/source/functions_common.c index 6b89bc3..71bcde3 100644 --- a/source/functions_common.c +++ b/source/functions_common.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases.h b/source/genCases.h index 8639b9a..e710091 100644 --- a/source/genCases.h +++ b/source/genCases.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_common.c b/source/genCases_common.c index 81ce006..b358b49 100644 --- a/source/genCases_common.c +++ b/source/genCases_common.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_extF80.c b/source/genCases_extF80.c index 0cd2330..0e0109d 100644 --- a/source/genCases_extF80.c +++ b/source/genCases_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_f128.c b/source/genCases_f128.c index eed5e09..839da22 100644 --- a/source/genCases_f128.c +++ b/source/genCases_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_f16.c b/source/genCases_f16.c index 8f46df0..ea4c025 100644 --- a/source/genCases_f16.c +++ b/source/genCases_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_f32.c b/source/genCases_f32.c index 289f449..3da3a29 100644 --- a/source/genCases_f32.c +++ b/source/genCases_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_f64.c b/source/genCases_f64.c index a9d25a3..5229e89 100644 --- a/source/genCases_f64.c +++ b/source/genCases_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_i32.c b/source/genCases_i32.c index 261c2a1..94c4db0 100644 --- a/source/genCases_i32.c +++ b/source/genCases_i32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_i64.c b/source/genCases_i64.c index f13d510..10f0716 100644 --- a/source/genCases_i64.c +++ b/source/genCases_i64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_ui32.c b/source/genCases_ui32.c index a0c9aa8..bc89782 100644 --- a/source/genCases_ui32.c +++ b/source/genCases_ui32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_ui64.c b/source/genCases_ui64.c index 7404ea4..915df78 100644 --- a/source/genCases_ui64.c +++ b/source/genCases_ui64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genCases_writeTestsTotal.c b/source/genCases_writeTestsTotal.c index 8ae044a..8ad6f91 100644 --- a/source/genCases_writeTestsTotal.c +++ b/source/genCases_writeTestsTotal.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genLoops.c b/source/genLoops.c index 11914b5..913391a 100644 --- a/source/genLoops.c +++ b/source/genLoops.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/genLoops.h b/source/genLoops.h index 63d9ad8..2ca88c7 100644 --- a/source/genLoops.h +++ b/source/genLoops.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/random.c b/source/random.c index 04b746d..715c8cc 100644 --- a/source/random.c +++ b/source/random.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/random.h b/source/random.h index b3dd355..08c8cd2 100644 --- a/source/random.h +++ b/source/random.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/readHex.c b/source/readHex.c index ba1514a..0e1b50c 100644 --- a/source/readHex.c +++ b/source/readHex.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/readHex.h b/source/readHex.h index aff2060..ff32381 100644 --- a/source/readHex.h +++ b/source/readHex.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/slowfloat.c b/source/slowfloat.c index 629811c..4e84656 100644 --- a/source/slowfloat.c +++ b/source/slowfloat.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. @@ -94,7 +94,7 @@ void if ( roundBits < UINT64_C( 0x100000000000 ) ) goto noIncrement; if ( (roundBits == UINT64_C( 0x100000000000 )) - && ! (sigX64 & UINT64_C( 0x200000000000 )) + && !(sigX64 & UINT64_C( 0x200000000000 )) ) { goto noIncrement; } @@ -102,7 +102,7 @@ void case softfloat_round_minMag: goto noIncrement; case softfloat_round_min: - if ( ! xPtr->sign ) goto noIncrement; + if ( !xPtr->sign ) goto noIncrement; break; case softfloat_round_max: if ( xPtr->sign ) goto noIncrement; @@ -147,7 +147,7 @@ void if ( roundBits < 0x80000000 ) goto noIncrement; if ( (roundBits == 0x80000000) - && ! (sigX64 & UINT64_C( 0x100000000 )) + && !(sigX64 & UINT64_C( 0x100000000 )) ) { goto noIncrement; } @@ -155,7 +155,7 @@ void case softfloat_round_minMag: goto noIncrement; case softfloat_round_min: - if ( ! xPtr->sign ) goto noIncrement; + if ( !xPtr->sign ) goto noIncrement; break; case softfloat_round_max: if ( xPtr->sign ) goto noIncrement; @@ -198,12 +198,12 @@ void switch ( roundingMode ) { case softfloat_round_near_even: if ( roundBits < 4 ) goto noIncrement; - if ( (roundBits == 4) && ! (sigX64 & 8) ) goto noIncrement; + if ( (roundBits == 4) && !(sigX64 & 8) ) goto noIncrement; break; case softfloat_round_minMag: goto noIncrement; case softfloat_round_min: - if ( ! xPtr->sign ) goto noIncrement; + if ( !xPtr->sign ) goto noIncrement; break; case softfloat_round_max: if ( xPtr->sign ) goto noIncrement; @@ -247,7 +247,7 @@ void if ( roundBits < UINT64_C( 0x0080000000000000 ) ) goto noIncrement; if ( (roundBits == UINT64_C( 0x0080000000000000 )) - && ! (sigX0 & UINT64_C( 0x0100000000000000 )) + && !(sigX0 & UINT64_C( 0x0100000000000000 )) ) { goto noIncrement; } @@ -255,7 +255,7 @@ void case softfloat_round_minMag: goto noIncrement; case softfloat_round_min: - if ( ! xPtr->sign ) goto noIncrement; + if ( !xPtr->sign ) goto noIncrement; break; case softfloat_round_max: if ( xPtr->sign ) goto noIncrement; @@ -270,7 +270,7 @@ void #endif } sigX0 += UINT64_C( 0x100000000000000 ); - sigX64 = xPtr->sig.v64 + ! sigX0; + sigX64 = xPtr->sig.v64 + !sigX0; if ( sigX64 == UINT64_C( 0x0100000000000000 ) ) { ++xPtr->exp; sigX64 = UINT64_C( 0x0080000000000000 ); @@ -300,12 +300,12 @@ void switch ( roundingMode ) { case softfloat_round_near_even: if ( roundBits < 0x40 ) goto noIncrement; - if ( (roundBits == 0x40) && ! (sigX0 & 0x80) ) goto noIncrement; + if ( (roundBits == 0x40) && !(sigX0 & 0x80) ) goto noIncrement; break; case softfloat_round_minMag: goto noIncrement; case softfloat_round_min: - if ( ! xPtr->sign ) goto noIncrement; + if ( !xPtr->sign ) goto noIncrement; break; case softfloat_round_max: if ( xPtr->sign ) goto noIncrement; @@ -320,7 +320,7 @@ void #endif } sigX0 += 0x80; - sigX64 = xPtr->sig.v64 + ! sigX0; + sigX64 = xPtr->sig.v64 + !sigX0; if ( sigX64 == UINT64_C( 0x0100000000000000 ) ) { ++xPtr->exp; sigX64 = UINT64_C( 0x0080000000000000 ); @@ -373,9 +373,6 @@ uint_fast32_t return (xPtr->isInf && xPtr->sign) ? 0 : 0xFFFFFFFF; } if ( xPtr->isZero ) return 0; - if ( roundingMode == softfloat_round_odd ) { - roundingMode = softfloat_round_minMag; - } savedExceptionFlags = slowfloat_exceptionFlags; x = *xPtr; shiftDist = 52 - x.exp; @@ -442,9 +439,6 @@ uint_fast64_t (xPtr->isInf && xPtr->sign) ? 0 : UINT64_C( 0xFFFFFFFFFFFFFFFF ); } if ( xPtr->isZero ) return 0; - if ( roundingMode == softfloat_round_odd ) { - roundingMode = softfloat_round_minMag; - } savedExceptionFlags = slowfloat_exceptionFlags; x = *xPtr; shiftDist = 112 - x.exp; @@ -512,9 +506,6 @@ int_fast32_t return (xPtr->isInf && xPtr->sign) ? -0x7FFFFFFF - 1 : 0x7FFFFFFF; } if ( xPtr->isZero ) return 0; - if ( roundingMode == softfloat_round_odd ) { - roundingMode = softfloat_round_minMag; - } savedExceptionFlags = slowfloat_exceptionFlags; x = *xPtr; shiftDist = 52 - x.exp; @@ -588,9 +579,6 @@ int_fast64_t : INT64_C( 0x7FFFFFFFFFFFFFFF ); } if ( xPtr->isZero ) return 0; - if ( roundingMode == softfloat_round_odd ) { - roundingMode = softfloat_round_minMag; - } savedExceptionFlags = slowfloat_exceptionFlags; x = *xPtr; shiftDist = 112 - x.exp; @@ -644,8 +632,8 @@ static void f16ToFloatX( float16_t a, struct floatX *xPtr ) } else { xPtr->isInf = true; } - } else if ( ! exp ) { - if ( ! sig64 ) { + } else if ( !exp ) { + if ( !sig64 ) { xPtr->isZero = true; } else { exp = 1 - 0xF; @@ -780,8 +768,8 @@ static void f32ToFloatX( float32_t a, struct floatX *xPtr ) } else { xPtr->isInf = true; } - } else if ( ! exp ) { - if ( ! sig64 ) { + } else if ( !exp ) { + if ( !sig64 ) { xPtr->isZero = true; } else { exp = 1 - 0x7F; @@ -915,8 +903,8 @@ static void f64ToFloatX( float64_t a, struct floatX *xPtr ) } else { xPtr->isInf = true; } - } else if ( ! exp ) { - if ( ! sig64 ) { + } else if ( !exp ) { + if ( !sig64 ) { xPtr->isZero = true; } else { exp = 1 - 0x3FF; @@ -1056,10 +1044,10 @@ static void extF80MToFloatX( const extFloat80_t *aPtr, struct floatX *xPtr ) xPtr->isInf = true; } } else { - if ( ! exp ) ++exp; + if ( !exp ) ++exp; exp -= 0x3FFF; - if ( ! (sig.v0 & UINT64_C( 0x8000000000000000 )) ) { - if ( ! sig.v0 ) { + if ( !(sig.v0 & UINT64_C( 0x8000000000000000 )) ) { + if ( !sig.v0 ) { xPtr->isZero = true; } else { do { @@ -1241,8 +1229,8 @@ static void f128MToFloatX( const float128_t *aPtr, struct floatX *xPtr ) } else { xPtr->isInf = true; } - } else if ( ! exp ) { - if ( ! sig.v64 && ! sig.v0 ) { + } else if ( !exp ) { + if ( !sig.v64 && !sig.v0 ) { xPtr->isZero = true; } else { exp = 1 - 0x3FFF; @@ -1378,16 +1366,13 @@ void struct uint128 sig; if ( xPtr->isNaN || xPtr->isInf ) return; - if ( roundingMode == softfloat_round_odd ) { - roundingMode = softfloat_round_minMag; - } exp = xPtr->exp; shiftDist = 112 - exp; if ( shiftDist <= 0 ) return; if ( 119 < shiftDist ) { xPtr->exp = 112; xPtr->sig.v64 = 0; - xPtr->sig.v0 = ! xPtr->isZero; + xPtr->sig.v0 = !xPtr->isZero; } else { sig = xPtr->sig; while ( 0 < shiftDist ) { @@ -1399,7 +1384,7 @@ void xPtr->sig = sig; } roundFloatXTo113( false, xPtr, roundingMode, exact ); - if ( ! xPtr->sig.v64 && ! xPtr->sig.v0 ) xPtr->isZero = true; + if ( !xPtr->sig.v64 && !xPtr->sig.v0 ) xPtr->isZero = true; } @@ -1466,7 +1451,7 @@ static void floatXAdd( struct floatX *xPtr, const struct floatX *yPtr ) xPtr->sig = add128( xPtr->sig, sigY ); } if ( xPtr->sig.v64 & UINT64_C( 0x8000000000000000 ) ) { - xPtr->sign = ! xPtr->sign; + xPtr->sign = !xPtr->sign; xPtr->sig = neg128( xPtr->sig ); } return; @@ -1488,7 +1473,7 @@ static void floatXMul( struct floatX *xPtr, const struct floatX *yPtr ) xPtr->sign = yPtr->sign; return; } - if ( yPtr->sign ) xPtr->sign = ! xPtr->sign; + if ( yPtr->sign ) xPtr->sign = !xPtr->sign; if ( xPtr->isInf ) { if ( yPtr->isZero ) floatXInvalid( xPtr ); return; @@ -1538,7 +1523,7 @@ static void floatXDiv( struct floatX *xPtr, const struct floatX *yPtr ) xPtr->sign = yPtr->sign; return; } - if ( yPtr->sign ) xPtr->sign = ! xPtr->sign; + if ( yPtr->sign ) xPtr->sign = !xPtr->sign; if ( xPtr->isInf ) { if ( yPtr->isInf ) floatXInvalid( xPtr ); return; @@ -1615,18 +1600,18 @@ static void floatXRem( struct floatX *xPtr, const struct floatX *yPtr ) savedSigX = xPtr->sig; xPtr->sig = neg128( add128( xPtr->sig, negSigY ) ); if ( lt128( xPtr->sig, savedSigX ) ) { - xPtr->sign = ! xPtr->sign; + xPtr->sign = !xPtr->sign; } else if ( lt128( savedSigX, xPtr->sig ) ) { goto restoreSavedSigX; } else { if ( lastQuotientBit ) { - xPtr->sign = ! xPtr->sign; + xPtr->sign = !xPtr->sign; } else { restoreSavedSigX: xPtr->sig = savedSigX; } } - if ( ! xPtr->sig.v64 && ! xPtr->sig.v0 ) xPtr->isZero = true; + if ( !xPtr->sig.v64 && !xPtr->sig.v0 ) xPtr->isZero = true; } @@ -1642,7 +1627,7 @@ static void floatXSqrt( struct floatX *xPtr ) return; } if ( xPtr->isInf ) return; - if ( ! (xPtr->exp & 1) ) xPtr->sig = shortShiftRightJam128( xPtr->sig, 1 ); + if ( !(xPtr->exp & 1) ) xPtr->sig = shortShiftRightJam128( xPtr->sig, 1 ); xPtr->exp >>= 1; sig.v64 = 0; sig.v0 = 0; @@ -1877,10 +1862,10 @@ static void floatX256ToF128M( const struct floatX256 *xPtr, float128_t *zPtr ) x.isInf = xPtr->isInf; x.isZero = xPtr->isZero; x.sign = xPtr->sign; - if ( ! (x.isNaN | x.isInf | x.isZero) ) { + if ( !(x.isNaN | x.isInf | x.isZero) ) { expZ = xPtr->exp; sig = xPtr->sig; - while ( ! sig.v192 ) { + while ( !sig.v192 ) { expZ -= 64; sig.v192 = sig.v128; sig.v128 = sig.v64; @@ -1977,7 +1962,7 @@ void floatX256Add( struct floatX256 *xPtr, const struct floatX256 *yPtr ) add256M( &xPtr->sig, &sigY ); } if ( xPtr->sig.v192 & UINT64_C( 0x8000000000000000 ) ) { - xPtr->sign = ! xPtr->sign; + xPtr->sign = !xPtr->sign; neg256M( &xPtr->sig ); } return; @@ -2000,7 +1985,7 @@ void floatX256Mul( struct floatX256 *xPtr, const struct floatX256 *yPtr ) xPtr->sign = yPtr->sign; return; } - if ( yPtr->sign ) xPtr->sign = ! xPtr->sign; + if ( yPtr->sign ) xPtr->sign = !xPtr->sign; if ( xPtr->isInf ) { if ( yPtr->isZero ) floatX256Invalid( xPtr ); return; @@ -2442,7 +2427,7 @@ float16_t slow_f16_sub( float16_t a, float16_t b ) f16ToFloatX( a, &x ); f16ToFloatX( b, &y ); - y.sign = ! y.sign; + y.sign = !y.sign; floatXAdd( &x, &y ); return floatXToF16( &x ); @@ -2732,7 +2717,7 @@ float32_t slow_f32_sub( float32_t a, float32_t b ) f32ToFloatX( a, &x ); f32ToFloatX( b, &y ); - y.sign = ! y.sign; + y.sign = !y.sign; floatXAdd( &x, &y ); return floatXToF32( &x ); @@ -3018,7 +3003,7 @@ float64_t slow_f64_sub( float64_t a, float64_t b ) f64ToFloatX( a, &x ); f64ToFloatX( b, &y ); - y.sign = ! y.sign; + y.sign = !y.sign; floatXAdd( &x, &y ); return floatXToF64( &x ); @@ -3322,7 +3307,7 @@ void extF80MToFloatX( aPtr, &x ); extF80MToFloatX( bPtr, &y ); - y.sign = ! y.sign; + y.sign = !y.sign; floatXAdd( &x, &y ); floatXToExtF80M( &x, zPtr ); @@ -3617,7 +3602,7 @@ void f128MToFloatX( aPtr, &x ); f128MToFloatX( bPtr, &y ); - y.sign = ! y.sign; + y.sign = !y.sign; floatXAdd( &x, &y ); floatXToF128M( &x, zPtr ); diff --git a/source/slowfloat.h b/source/slowfloat.h index e3ee4a4..b2240e7 100644 --- a/source/slowfloat.h +++ b/source/slowfloat.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/standardFunctionInfos.c b/source/standardFunctionInfos.c index 61e895a..2ccc001 100644 --- a/source/standardFunctionInfos.c +++ b/source/standardFunctionInfos.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/subj-C/subjfloat.c b/source/subj-C/subjfloat.c index 68a4ce7..f6526d1 100644 --- a/source/subj-C/subjfloat.c +++ b/source/subj-C/subjfloat.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/subjfloat.h b/source/subjfloat.h index 45196e8..aaf9776 100644 --- a/source/subjfloat.h +++ b/source/subjfloat.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/subjfloat_functions.c b/source/subjfloat_functions.c index 49ebc98..13b2896 100644 --- a/source/subjfloat_functions.c +++ b/source/subjfloat_functions.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/testLoops.h b/source/testLoops.h index e8fab9c..f9b88d7 100644 --- a/source/testLoops.h +++ b/source/testLoops.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/testLoops_common.c b/source/testLoops_common.c index f157165..ea6a53d 100644 --- a/source/testLoops_common.c +++ b/source/testLoops_common.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_extF80_z_f128.c b/source/test_a_extF80_z_f128.c index 4af07e2..d454095 100644 --- a/source/test_a_extF80_z_f128.c +++ b/source/test_a_extF80_z_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_extF80_z_f16.c b/source/test_a_extF80_z_f16.c index 4535014..a1e4f8c 100644 --- a/source/test_a_extF80_z_f16.c +++ b/source/test_a_extF80_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_extF80_z_f32.c b/source/test_a_extF80_z_f32.c index 6e13d0a..ff0e31a 100644 --- a/source/test_a_extF80_z_f32.c +++ b/source/test_a_extF80_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_extF80_z_f64.c b/source/test_a_extF80_z_f64.c index 229b8e1..b105228 100644 --- a/source/test_a_extF80_z_f64.c +++ b/source/test_a_extF80_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_extF80_z_i32_rx.c b/source/test_a_extF80_z_i32_rx.c index ba56986..fa9fe98 100644 --- a/source/test_a_extF80_z_i32_rx.c +++ b/source/test_a_extF80_z_i32_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -82,16 +82,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && extF80M_isSignalingNaN( &genCases_extF80_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! extF80M_isNaN( &genCases_extF80_a ) + || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_extF80_z_i32_x.c b/source/test_a_extF80_z_i32_x.c index 0472ec1..b3dc9c9 100644 --- a/source/test_a_extF80_z_i32_x.c +++ b/source/test_a_extF80_z_i32_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -81,16 +81,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && extF80M_isSignalingNaN( &genCases_extF80_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! extF80M_isNaN( &genCases_extF80_a ) + || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_extF80_z_i64_rx.c b/source/test_a_extF80_z_i64_rx.c index cf0e260..0d71159 100644 --- a/source/test_a_extF80_z_i64_rx.c +++ b/source/test_a_extF80_z_i64_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -82,16 +82,13 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && extF80M_isSignalingNaN( &genCases_extF80_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! extF80M_isNaN( &genCases_extF80_a ) + || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_extF80_z_i64_x.c b/source/test_a_extF80_z_i64_x.c index 8a62c07..bfa9a6a 100644 --- a/source/test_a_extF80_z_i64_x.c +++ b/source/test_a_extF80_z_i64_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -81,16 +81,13 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && extF80M_isSignalingNaN( &genCases_extF80_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! extF80M_isNaN( &genCases_extF80_a ) + || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_extF80_z_ui32_rx.c b/source/test_a_extF80_z_ui32_rx.c index 67ad4ba..9fa9cff 100644 --- a/source/test_a_extF80_z_ui32_rx.c +++ b/source/test_a_extF80_z_ui32_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -82,16 +82,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && extF80M_isSignalingNaN( &genCases_extF80_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_extF80_z_ui32_x.c b/source/test_a_extF80_z_ui32_x.c index 3db7369..df7d820 100644 --- a/source/test_a_extF80_z_ui32_x.c +++ b/source/test_a_extF80_z_ui32_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -81,16 +81,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && extF80M_isSignalingNaN( &genCases_extF80_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_extF80_z_ui64_rx.c b/source/test_a_extF80_z_ui64_rx.c index 8462722..3a768d7 100644 --- a/source/test_a_extF80_z_ui64_rx.c +++ b/source/test_a_extF80_z_ui64_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -82,16 +82,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && extF80M_isSignalingNaN( &genCases_extF80_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_extF80_z_ui64_x.c b/source/test_a_extF80_z_ui64_x.c index 283f4e6..48c5965 100644 --- a/source/test_a_extF80_z_ui64_x.c +++ b/source/test_a_extF80_z_ui64_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -81,16 +81,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && extF80M_isSignalingNaN( &genCases_extF80_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f128_z_extF80.c b/source/test_a_f128_z_extF80.c index d47351e..ec7dfbb 100644 --- a/source/test_a_f128_z_extF80.c +++ b/source/test_a_f128_z_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f128_z_f16.c b/source/test_a_f128_z_f16.c index ed7ebb1..1254078 100644 --- a/source/test_a_f128_z_f16.c +++ b/source/test_a_f128_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f128_z_f32.c b/source/test_a_f128_z_f32.c index 4bcafa5..24cae7d 100644 --- a/source/test_a_f128_z_f32.c +++ b/source/test_a_f128_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f128_z_f64.c b/source/test_a_f128_z_f64.c index 42967fb..bcd91bc 100644 --- a/source/test_a_f128_z_f64.c +++ b/source/test_a_f128_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f128_z_i32_rx.c b/source/test_a_f128_z_i32_rx.c index 488f4bc..9084833 100644 --- a/source/test_a_f128_z_i32_rx.c +++ b/source/test_a_f128_z_i32_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -82,16 +82,11 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && f128M_isSignalingNaN( &genCases_f128_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f128M_isNaN( &genCases_f128_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f128_z_i32_x.c b/source/test_a_f128_z_i32_x.c index cf9987e..5295176 100644 --- a/source/test_a_f128_z_i32_x.c +++ b/source/test_a_f128_z_i32_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -81,16 +81,11 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && f128M_isSignalingNaN( &genCases_f128_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f128M_isNaN( &genCases_f128_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f128_z_i64_rx.c b/source/test_a_f128_z_i64_rx.c index b16183f..e7da2f0 100644 --- a/source/test_a_f128_z_i64_rx.c +++ b/source/test_a_f128_z_i64_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -82,16 +82,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && f128M_isSignalingNaN( &genCases_f128_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f128M_isNaN( &genCases_f128_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f128_z_i64_x.c b/source/test_a_f128_z_i64_x.c index e80cdff..0597367 100644 --- a/source/test_a_f128_z_i64_x.c +++ b/source/test_a_f128_z_i64_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -81,16 +81,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && f128M_isSignalingNaN( &genCases_f128_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f128M_isNaN( &genCases_f128_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f128_z_ui32_rx.c b/source/test_a_f128_z_ui32_rx.c index 3edb180..31ede56 100644 --- a/source/test_a_f128_z_ui32_rx.c +++ b/source/test_a_f128_z_ui32_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -82,16 +82,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && f128M_isSignalingNaN( &genCases_f128_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f128_z_ui32_x.c b/source/test_a_f128_z_ui32_x.c index 00e2298..b5623e1 100644 --- a/source/test_a_f128_z_ui32_x.c +++ b/source/test_a_f128_z_ui32_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -81,16 +81,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && f128M_isSignalingNaN( &genCases_f128_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f128_z_ui64_rx.c b/source/test_a_f128_z_ui64_rx.c index 284c0ce..cd58c92 100644 --- a/source/test_a_f128_z_ui64_rx.c +++ b/source/test_a_f128_z_ui64_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -82,16 +82,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && f128M_isSignalingNaN( &genCases_f128_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f128_z_ui64_x.c b/source/test_a_f128_z_ui64_x.c index 0b58a89..9e103f8 100644 --- a/source/test_a_f128_z_ui64_x.c +++ b/source/test_a_f128_z_ui64_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -81,16 +81,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs - && f128M_isSignalingNaN( &genCases_f128_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f16_z_extF80.c b/source/test_a_f16_z_extF80.c index 62cac93..dc442af 100644 --- a/source/test_a_f16_z_extF80.c +++ b/source/test_a_f16_z_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f16_z_f128.c b/source/test_a_f16_z_f128.c index e71f092..49c1fe7 100644 --- a/source/test_a_f16_z_f128.c +++ b/source/test_a_f16_z_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f16_z_f32.c b/source/test_a_f16_z_f32.c index 8c1b0ba..097e9cc 100644 --- a/source/test_a_f16_z_f32.c +++ b/source/test_a_f16_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f16_z_f64.c b/source/test_a_f16_z_f64.c index eb4d842..349cc69 100644 --- a/source/test_a_f16_z_f64.c +++ b/source/test_a_f16_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f16_z_i32_rx.c b/source/test_a_f16_z_i32_rx.c index 6cde315..ecb5f69 100644 --- a/source/test_a_f16_z_i32_rx.c +++ b/source/test_a_f16_z_i32_rx.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -82,15 +82,11 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f16_isNaN( genCases_f16_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f16_z_i32_x.c b/source/test_a_f16_z_i32_x.c index 9ac3421..373eaf2 100644 --- a/source/test_a_f16_z_i32_x.c +++ b/source/test_a_f16_z_i32_x.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -81,15 +81,11 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f16_isNaN( genCases_f16_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f16_z_i64_rx.c b/source/test_a_f16_z_i64_rx.c index ac04f80..0ffdd63 100644 --- a/source/test_a_f16_z_i64_rx.c +++ b/source/test_a_f16_z_i64_rx.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -82,16 +82,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f16_isNaN( genCases_f16_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f16_z_i64_x.c b/source/test_a_f16_z_i64_x.c index 127eb5b..df73dd5 100644 --- a/source/test_a_f16_z_i64_x.c +++ b/source/test_a_f16_z_i64_x.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -81,16 +81,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f16_isNaN( genCases_f16_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f16_z_ui32_rx.c b/source/test_a_f16_z_ui32_rx.c index e86b1ed..434dd4c 100644 --- a/source/test_a_f16_z_ui32_rx.c +++ b/source/test_a_f16_z_ui32_rx.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -82,15 +82,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f16_z_ui32_x.c b/source/test_a_f16_z_ui32_x.c index 7d68ec6..392c3bd 100644 --- a/source/test_a_f16_z_ui32_x.c +++ b/source/test_a_f16_z_ui32_x.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -81,15 +81,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f16_z_ui64_rx.c b/source/test_a_f16_z_ui64_rx.c index 0f43eee..8b47c95 100644 --- a/source/test_a_f16_z_ui64_rx.c +++ b/source/test_a_f16_z_ui64_rx.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -82,15 +82,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f16_z_ui64_x.c b/source/test_a_f16_z_ui64_x.c index 0674575..e13ab5e 100644 --- a/source/test_a_f16_z_ui64_x.c +++ b/source/test_a_f16_z_ui64_x.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -81,15 +81,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f32_z_extF80.c b/source/test_a_f32_z_extF80.c index 972c764..f0473ff 100644 --- a/source/test_a_f32_z_extF80.c +++ b/source/test_a_f32_z_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f32_z_f128.c b/source/test_a_f32_z_f128.c index 68b6eee..956e292 100644 --- a/source/test_a_f32_z_f128.c +++ b/source/test_a_f32_z_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f32_z_f16.c b/source/test_a_f32_z_f16.c index 60982a7..3f9e4ab 100644 --- a/source/test_a_f32_z_f16.c +++ b/source/test_a_f32_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f32_z_f64.c b/source/test_a_f32_z_f64.c index e418664..c1d8c4d 100644 --- a/source/test_a_f32_z_f64.c +++ b/source/test_a_f32_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f32_z_i32_rx.c b/source/test_a_f32_z_i32_rx.c index 4329ffd..12d2053 100644 --- a/source/test_a_f32_z_i32_rx.c +++ b/source/test_a_f32_z_i32_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -80,15 +80,11 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f32_isNaN( genCases_f32_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f32_z_i32_x.c b/source/test_a_f32_z_i32_x.c index f1bc615..df920ae 100644 --- a/source/test_a_f32_z_i32_x.c +++ b/source/test_a_f32_z_i32_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -79,15 +79,11 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f32_isNaN( genCases_f32_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f32_z_i64_rx.c b/source/test_a_f32_z_i64_rx.c index de5b4e8..44efc79 100644 --- a/source/test_a_f32_z_i64_rx.c +++ b/source/test_a_f32_z_i64_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -80,16 +80,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f32_isNaN( genCases_f32_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f32_z_i64_x.c b/source/test_a_f32_z_i64_x.c index d45e5a3..a8dc17a 100644 --- a/source/test_a_f32_z_i64_x.c +++ b/source/test_a_f32_z_i64_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -79,16 +79,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f32_isNaN( genCases_f32_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f32_z_ui32_rx.c b/source/test_a_f32_z_ui32_rx.c index 533e5ac..62f865c 100644 --- a/source/test_a_f32_z_ui32_rx.c +++ b/source/test_a_f32_z_ui32_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -80,15 +80,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f32_z_ui32_x.c b/source/test_a_f32_z_ui32_x.c index 209efab..91589c4 100644 --- a/source/test_a_f32_z_ui32_x.c +++ b/source/test_a_f32_z_ui32_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -79,15 +79,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f32_z_ui64_rx.c b/source/test_a_f32_z_ui64_rx.c index d3376d5..021102d 100644 --- a/source/test_a_f32_z_ui64_rx.c +++ b/source/test_a_f32_z_ui64_rx.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -80,15 +80,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f32_z_ui64_x.c b/source/test_a_f32_z_ui64_x.c index f684c0f..2287ccb 100644 --- a/source/test_a_f32_z_ui64_x.c +++ b/source/test_a_f32_z_ui64_x.c @@ -1,12 +1,12 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. -All rights reserved. +Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of +California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -79,15 +79,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f64_z_extF80.c b/source/test_a_f64_z_extF80.c index 7a6a2b4..ce18476 100644 --- a/source/test_a_f64_z_extF80.c +++ b/source/test_a_f64_z_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f64_z_f128.c b/source/test_a_f64_z_f128.c index e4bacd5..3f36e9e 100644 --- a/source/test_a_f64_z_f128.c +++ b/source/test_a_f64_z_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f64_z_f16.c b/source/test_a_f64_z_f16.c index 7f975c0..63f6c15 100644 --- a/source/test_a_f64_z_f16.c +++ b/source/test_a_f64_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f64_z_f32.c b/source/test_a_f64_z_f32.c index 9a8a2e9..8fdad44 100644 --- a/source/test_a_f64_z_f32.c +++ b/source/test_a_f64_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_f64_z_i32_rx.c b/source/test_a_f64_z_i32_rx.c index 81b5e79..bd20ad9 100644 --- a/source/test_a_f64_z_i32_rx.c +++ b/source/test_a_f64_z_i32_rx.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -82,15 +82,11 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f64_isNaN( genCases_f64_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f64_z_i32_x.c b/source/test_a_f64_z_i32_x.c index 3e532b1..cf1ab50 100644 --- a/source/test_a_f64_z_i32_x.c +++ b/source/test_a_f64_z_i32_x.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -81,15 +81,11 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f64_isNaN( genCases_f64_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f64_z_i64_rx.c b/source/test_a_f64_z_i64_rx.c index 558209b..93dc6a0 100644 --- a/source/test_a_f64_z_i64_rx.c +++ b/source/test_a_f64_z_i64_rx.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -82,16 +82,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f64_isNaN( genCases_f64_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f64_z_i64_x.c b/source/test_a_f64_z_i64_x.c index 3c6e3b2..6b1eade 100644 --- a/source/test_a_f64_z_i64_x.c +++ b/source/test_a_f64_z_i64_x.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -81,16 +81,12 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f64_isNaN( genCases_f64_a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f64_z_ui32_rx.c b/source/test_a_f64_z_ui32_rx.c index 5b29c98..a797467 100644 --- a/source/test_a_f64_z_ui32_rx.c +++ b/source/test_a_f64_z_ui32_rx.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -82,15 +82,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f64_z_ui32_x.c b/source/test_a_f64_z_ui32_x.c index 4d6673b..40a6ee1 100644 --- a/source/test_a_f64_z_ui32_x.c +++ b/source/test_a_f64_z_ui32_x.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -81,15 +81,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f64_z_ui64_rx.c b/source/test_a_f64_z_ui64_rx.c index 8eec065..83068dd 100644 --- a/source/test_a_f64_z_ui64_rx.c +++ b/source/test_a_f64_z_ui64_rx.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -82,15 +82,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_f64_z_ui64_x.c b/source/test_a_f64_z_ui64_x.c index e959215..38e7d55 100644 --- a/source/test_a_f64_z_ui64_x.c +++ b/source/test_a_f64_z_ui64_x.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -81,15 +81,10 @@ void } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { if ( - ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a ) - ) { - trueFlags |= softfloat_flag_invalid; - } - if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/test_a_i32_z_extF80.c b/source/test_a_i32_z_extF80.c index c9965d1..506f9e6 100644 --- a/source/test_a_i32_z_extF80.c +++ b/source/test_a_i32_z_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i32_z_f128.c b/source/test_a_i32_z_f128.c index ae6555e..40e2f01 100644 --- a/source/test_a_i32_z_f128.c +++ b/source/test_a_i32_z_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i32_z_f16.c b/source/test_a_i32_z_f16.c index e9aedde..7c85d53 100644 --- a/source/test_a_i32_z_f16.c +++ b/source/test_a_i32_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i32_z_f32.c b/source/test_a_i32_z_f32.c index 2c68c3a..fa2f865 100644 --- a/source/test_a_i32_z_f32.c +++ b/source/test_a_i32_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i32_z_f64.c b/source/test_a_i32_z_f64.c index a8f312b..0dbad0b 100644 --- a/source/test_a_i32_z_f64.c +++ b/source/test_a_i32_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i64_z_extF80.c b/source/test_a_i64_z_extF80.c index 69d6b2b..d8dc8d5 100644 --- a/source/test_a_i64_z_extF80.c +++ b/source/test_a_i64_z_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i64_z_f128.c b/source/test_a_i64_z_f128.c index e82ca57..f44f520 100644 --- a/source/test_a_i64_z_f128.c +++ b/source/test_a_i64_z_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i64_z_f16.c b/source/test_a_i64_z_f16.c index ccb1a55..53551b3 100644 --- a/source/test_a_i64_z_f16.c +++ b/source/test_a_i64_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i64_z_f32.c b/source/test_a_i64_z_f32.c index a3f3456..19695c8 100644 --- a/source/test_a_i64_z_f32.c +++ b/source/test_a_i64_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_i64_z_f64.c b/source/test_a_i64_z_f64.c index ce68bf8..24c96c6 100644 --- a/source/test_a_i64_z_f64.c +++ b/source/test_a_i64_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui32_z_extF80.c b/source/test_a_ui32_z_extF80.c index 1524434..bdcb2bf 100644 --- a/source/test_a_ui32_z_extF80.c +++ b/source/test_a_ui32_z_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui32_z_f128.c b/source/test_a_ui32_z_f128.c index 583bf09..534cd9a 100644 --- a/source/test_a_ui32_z_f128.c +++ b/source/test_a_ui32_z_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui32_z_f16.c b/source/test_a_ui32_z_f16.c index a14bf73..6a4cc0e 100644 --- a/source/test_a_ui32_z_f16.c +++ b/source/test_a_ui32_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui32_z_f32.c b/source/test_a_ui32_z_f32.c index c1ab0a0..fde8848 100644 --- a/source/test_a_ui32_z_f32.c +++ b/source/test_a_ui32_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui32_z_f64.c b/source/test_a_ui32_z_f64.c index cb4d23d..b3f9d88 100644 --- a/source/test_a_ui32_z_f64.c +++ b/source/test_a_ui32_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui64_z_extF80.c b/source/test_a_ui64_z_extF80.c index f2a642e..325d500 100644 --- a/source/test_a_ui64_z_extF80.c +++ b/source/test_a_ui64_z_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui64_z_f128.c b/source/test_a_ui64_z_f128.c index aff5e8d..2a57c05 100644 --- a/source/test_a_ui64_z_f128.c +++ b/source/test_a_ui64_z_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui64_z_f16.c b/source/test_a_ui64_z_f16.c index d61d265..ce54c8f 100644 --- a/source/test_a_ui64_z_f16.c +++ b/source/test_a_ui64_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui64_z_f32.c b/source/test_a_ui64_z_f32.c index 3554013..4a6dda3 100644 --- a/source/test_a_ui64_z_f32.c +++ b/source/test_a_ui64_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_a_ui64_z_f64.c b/source/test_a_ui64_z_f64.c index bbe1e73..9fc9cd1 100644 --- a/source/test_a_ui64_z_f64.c +++ b/source/test_a_ui64_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_ab_extF80_z_bool.c b/source/test_ab_extF80_z_bool.c index 9b175b2..1a830bc 100644 --- a/source/test_ab_extF80_z_bool.c +++ b/source/test_ab_extF80_z_bool.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_ab_f128_z_bool.c b/source/test_ab_f128_z_bool.c index 4379801..b5ee911 100644 --- a/source/test_ab_f128_z_bool.c +++ b/source/test_ab_f128_z_bool.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_ab_f16_z_bool.c b/source/test_ab_f16_z_bool.c index 9262398..02be465 100644 --- a/source/test_ab_f16_z_bool.c +++ b/source/test_ab_f16_z_bool.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_ab_f32_z_bool.c b/source/test_ab_f32_z_bool.c index c03f94c..677892e 100644 --- a/source/test_ab_f32_z_bool.c +++ b/source/test_ab_f32_z_bool.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_ab_f64_z_bool.c b/source/test_ab_f64_z_bool.c index eb443ab..03b208d 100644 --- a/source/test_ab_f64_z_bool.c +++ b/source/test_ab_f64_z_bool.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abcz_f128.c b/source/test_abcz_f128.c index 07162dd..8e62446 100644 --- a/source/test_abcz_f128.c +++ b/source/test_abcz_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abcz_f16.c b/source/test_abcz_f16.c index 75516b6..7e455c7 100644 --- a/source/test_abcz_f16.c +++ b/source/test_abcz_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abcz_f32.c b/source/test_abcz_f32.c index bdfa3dc..c7b06c4 100644 --- a/source/test_abcz_f32.c +++ b/source/test_abcz_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abcz_f64.c b/source/test_abcz_f64.c index aaf08a4..c15f042 100644 --- a/source/test_abcz_f64.c +++ b/source/test_abcz_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abz_extF80.c b/source/test_abz_extF80.c index 84424d1..041e8b7 100644 --- a/source/test_abz_extF80.c +++ b/source/test_abz_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abz_f128.c b/source/test_abz_f128.c index c2fe961..44f4d79 100644 --- a/source/test_abz_f128.c +++ b/source/test_abz_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abz_f16.c b/source/test_abz_f16.c index b0d64cc..40cd246 100644 --- a/source/test_abz_f16.c +++ b/source/test_abz_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abz_f32.c b/source/test_abz_f32.c index d6b31fb..f31da82 100644 --- a/source/test_abz_f32.c +++ b/source/test_abz_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_abz_f64.c b/source/test_abz_f64.c index 14873cb..caded69 100644 --- a/source/test_abz_f64.c +++ b/source/test_abz_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_extF80.c b/source/test_az_extF80.c index 5ce33ed..c9e3ed1 100644 --- a/source/test_az_extF80.c +++ b/source/test_az_extF80.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_extF80_rx.c b/source/test_az_extF80_rx.c index aa4851e..dd25111 100644 --- a/source/test_az_extF80_rx.c +++ b/source/test_az_extF80_rx.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_f128.c b/source/test_az_f128.c index 7318b00..fe4358c 100644 --- a/source/test_az_f128.c +++ b/source/test_az_f128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_f128_rx.c b/source/test_az_f128_rx.c index a50f0bd..53583fa 100644 --- a/source/test_az_f128_rx.c +++ b/source/test_az_f128_rx.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_f16.c b/source/test_az_f16.c index dccc83f..a3c2b9a 100644 --- a/source/test_az_f16.c +++ b/source/test_az_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_f16_rx.c b/source/test_az_f16_rx.c index f03a5e0..2d1dd1e 100644 --- a/source/test_az_f16_rx.c +++ b/source/test_az_f16_rx.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_f32.c b/source/test_az_f32.c index 0bca98c..46d62e3 100644 --- a/source/test_az_f32.c +++ b/source/test_az_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_f32_rx.c b/source/test_az_f32_rx.c index 1f8a618..e3e9953 100644 --- a/source/test_az_f32_rx.c +++ b/source/test_az_f32_rx.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_f64.c b/source/test_az_f64.c index f364bb4..01f6760 100644 --- a/source/test_az_f64.c +++ b/source/test_az_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/test_az_f64_rx.c b/source/test_az_f64_rx.c index 4def7b0..d0c6644 100644 --- a/source/test_az_f64_rx.c +++ b/source/test_az_f64_rx.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/testfloat.c b/source/testfloat.c index 352d730..87a1016 100644 --- a/source/testfloat.c +++ b/source/testfloat.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -1440,6 +1440,7 @@ int main( int argc, char *argv[] ) const char *functionNamePtr; unsigned long ui; long i; + int functionMatchAttrib; /*------------------------------------------------------------------------ *------------------------------------------------------------------------*/ @@ -1478,7 +1479,9 @@ int main( int argc, char *argv[] ) " * -errors 20\n" " -errorstop --Exit after first function with any error.\n" " -forever --Test one function repeatedly (implies '-level 2').\n" -" -checkNaNs --Check for bitwise correctness of NaN results.\n" +" -checkNaNs --Check for specific NaN results.\n" +" -checkInvInts --Check for specific invalid integer results.\n" +" -checkAll --Same as both '-checkNaNs' and '-checkInvInts'.\n" #ifdef EXTFLOAT80 " -precision32 --For extF80, test only 32-bit rounding precision.\n" " -precision64 --For extF80, test only 64-bit rounding precision.\n" @@ -1579,6 +1582,16 @@ int main( int argc, char *argv[] ) ! strcmp( argPtr, "checkNaNs" ) || ! strcmp( argPtr, "checknans" ) ) { verCases_checkNaNs = true; + } else if ( + ! strcmp( argPtr, "checkInvInts" ) + || ! strcmp( argPtr, "checkinvints" ) + ) { + verCases_checkInvInts = true; + } else if ( + ! strcmp( argPtr, "checkAll" ) || ! strcmp( argPtr, "checkall" ) + ) { + verCases_checkNaNs = true; + verCases_checkInvInts = true; #ifdef EXTFLOAT80 } else if ( ! strcmp( argPtr, "precision32" ) ) { roundingPrecision = 32; @@ -1673,48 +1686,23 @@ int main( int argc, char *argv[] ) if ( testLoops_forever ) { fail( "Can test only one function with '-forever' option" ); } - if ( numOperands == 1 ) { - standardFunctionInfoPtr = standardFunctionInfos; - subjFunctionPtrPtr = subjfloat_functions; - while ( standardFunctionInfoPtr->namePtr ) { - subjFunctionPtr = *subjFunctionPtrPtr; - if ( - subjFunctionPtr - && ! (functionInfos - [standardFunctionInfoPtr->functionCode] - .attribs - & FUNC_ARG_BINARY) - ) { - testFunction( - standardFunctionInfoPtr, - roundingPrecision, - roundingCode - ); - } - ++standardFunctionInfoPtr; - ++subjFunctionPtrPtr; - } - } else { - standardFunctionInfoPtr = standardFunctionInfos; - subjFunctionPtrPtr = subjfloat_functions; - while ( standardFunctionInfoPtr->namePtr ) { - subjFunctionPtr = *subjFunctionPtrPtr; - if ( - subjFunctionPtr - && (functionInfos - [standardFunctionInfoPtr->functionCode] - .attribs - & FUNC_ARG_BINARY) - ) { - testFunction( - standardFunctionInfoPtr, - roundingPrecision, - roundingCode - ); - } - ++standardFunctionInfoPtr; - ++subjFunctionPtrPtr; + functionMatchAttrib = + (numOperands == 1) ? FUNC_ARG_UNARY : FUNC_ARG_BINARY; + standardFunctionInfoPtr = standardFunctionInfos; + subjFunctionPtrPtr = subjfloat_functions; + while ( standardFunctionInfoPtr->namePtr ) { + subjFunctionPtr = *subjFunctionPtrPtr; + if ( + subjFunctionPtr + && (functionInfos[standardFunctionInfoPtr->functionCode] + .attribs + & functionMatchAttrib) + ) { + testFunction( + standardFunctionInfoPtr, roundingPrecision, roundingCode ); } + ++standardFunctionInfoPtr; + ++subjFunctionPtrPtr; } } verCases_exitWithStatus(); diff --git a/source/testfloat_gen.c b/source/testfloat_gen.c index 458f97e..67882c1 100644 --- a/source/testfloat_gen.c +++ b/source/testfloat_gen.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/testfloat_ver.c b/source/testfloat_ver.c index 20cad96..e1e613c 100644 --- a/source/testfloat_ver.c +++ b/source/testfloat_ver.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -123,7 +123,9 @@ int main( int argc, char *argv[] ) " -help --Write this message and exit.\n" " -errors <num> --Stop after <num> errors.\n" " * -errors 20\n" -" -checkNaNs --Check for bitwise correctness of NaN results.\n" +" -checkNaNs --Check for specific NaN results.\n" +" -checkInvInts --Check for specific invalid integer results.\n" +" -checkAll --Same as both '-checkNaNs' and '-checkInvInts'.\n" #ifdef EXTFLOAT80 " -precision32 --For extF80, rounding precision is 32 bits.\n" " -precision64 --For extF80, rounding precision is 64 bits.\n" @@ -186,6 +188,16 @@ int main( int argc, char *argv[] ) ! strcmp( argPtr, "checkNaNs" ) || ! strcmp( argPtr, "checknans" ) ) { verCases_checkNaNs = true; + } else if ( + ! strcmp( argPtr, "checkInvInts" ) + || ! strcmp( argPtr, "checkinvints" ) + ) { + verCases_checkInvInts = true; + } else if ( + ! strcmp( argPtr, "checkAll" ) || ! strcmp( argPtr, "checkall" ) + ) { + verCases_checkNaNs = true; + verCases_checkInvInts = true; #ifdef EXTFLOAT80 } else if ( ! strcmp( argPtr, "precision32" ) ) { extF80_roundingPrecision = 32; diff --git a/source/testsoftfloat.c b/source/testsoftfloat.c index 70016d7..e60defe 100644 --- a/source/testsoftfloat.c +++ b/source/testsoftfloat.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. @@ -895,6 +895,7 @@ int main( int argc, char *argv[] ) const char *argPtr; unsigned long ui; long i; + int functionMatchAttrib; /*------------------------------------------------------------------------ *------------------------------------------------------------------------*/ @@ -1100,35 +1101,19 @@ int main( int argc, char *argv[] ) if ( testLoops_forever ) { fail( "Can test only one function with '-forever' option" ); } - if ( numOperands == 1 ) { - for ( - functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode - ) { - if ( functionInfos[functionCode].attribs & FUNC_ARG_UNARY ) { - testFunction( - functionCode, - roundingPrecision, - roundingCode, - tininessCode, - exactCode - ); - } - } - } else { - for ( - functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode - ) { - if ( - functionInfos[functionCode].attribs & FUNC_ARG_BINARY - ) { - testFunction( - functionCode, - roundingPrecision, - roundingCode, - tininessCode, - exactCode - ); - } + functionMatchAttrib = + (numOperands == 1) ? FUNC_ARG_UNARY : FUNC_ARG_BINARY; + for ( + functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode + ) { + if ( functionInfos[functionCode].attribs & functionMatchAttrib ) { + testFunction( + functionCode, + roundingPrecision, + roundingCode, + tininessCode, + exactCode + ); } } } diff --git a/source/timesoftfloat.c b/source/timesoftfloat.c index eb313af..72337c9 100644 --- a/source/timesoftfloat.c +++ b/source/timesoftfloat.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/uint128.c b/source/uint128.c index 5ae0c52..0dcbdfe 100644 --- a/source/uint128.c +++ b/source/uint128.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/uint128.h b/source/uint128.h index 3d97a72..387c4be 100644 --- a/source/uint128.h +++ b/source/uint128.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/uint128_inline.c b/source/uint128_inline.c index 0741e97..ab12c1e 100644 --- a/source/uint128_inline.c +++ b/source/uint128_inline.c @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/verCases.h b/source/verCases.h index 0176fee..27ed1c9 100644 --- a/source/verCases.h +++ b/source/verCases.h @@ -1,11 +1,11 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -50,7 +50,7 @@ extern uint_fast8_t verCases_roundingPrecision; extern int verCases_roundingCode; extern int verCases_tininessCode; extern bool verCases_usesExact, verCases_exact; -extern bool verCases_checkNaNs; +extern bool verCases_checkNaNs, verCases_checkInvInts; extern uint_fast32_t verCases_maxErrorCount; extern bool verCases_errorStop; diff --git a/source/verCases_common.c b/source/verCases_common.c index e4945f4..f1e3385 100644 --- a/source/verCases_common.c +++ b/source/verCases_common.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of +Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -50,6 +50,7 @@ int verCases_tininessCode = 0; bool verCases_usesExact = false; bool verCases_exact; bool verCases_checkNaNs = false; +bool verCases_checkInvInts = false; uint_fast32_t verCases_maxErrorCount = 0; bool verCases_errorStop = false; diff --git a/source/verCases_inline.c b/source/verCases_inline.c index a32df59..8e2171e 100644 --- a/source/verCases_inline.c +++ b/source/verCases_inline.c @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/verCases_writeFunctionName.c b/source/verCases_writeFunctionName.c index dcac6b2..b8a09ae 100644 --- a/source/verCases_writeFunctionName.c +++ b/source/verCases_writeFunctionName.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/verLoops.c b/source/verLoops.c index a45b0df..0173595 100644 --- a/source/verLoops.c +++ b/source/verLoops.c @@ -1,11 +1,11 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -1193,14 +1193,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -1244,14 +1241,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -1295,14 +1289,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f16_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -1346,15 +1338,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f16_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -1395,14 +1385,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -1443,14 +1430,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -1491,14 +1475,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f16_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -1539,15 +1521,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f16_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2040,14 +2020,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2091,14 +2068,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2142,14 +2116,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f32_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2193,15 +2165,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f32_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2242,14 +2212,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2290,14 +2257,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2338,14 +2302,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f32_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2386,15 +2348,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f32_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2891,14 +2851,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2942,14 +2899,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -2993,14 +2947,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f64_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3044,15 +2996,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f64_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3093,14 +3043,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3141,14 +3088,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3189,14 +3133,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f64_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3237,15 +3179,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f64_isNaN( a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3740,14 +3680,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3791,14 +3728,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3842,14 +3776,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! extF80M_isNaN( &a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3893,15 +3825,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! extF80M_isNaN( &a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3942,14 +3872,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -3990,14 +3917,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4038,14 +3962,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! extF80M_isNaN( &a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4086,15 +4008,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! extF80M_isNaN( &a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4548,14 +4468,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4599,14 +4516,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4650,14 +4564,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f128M_isNaN( &a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4701,15 +4613,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f128M_isNaN( &a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4750,14 +4660,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0xFFFFFFFF) - || (subjZ != 0xFFFFFFFF) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0xFFFFFFFF) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4798,14 +4705,11 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) - || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0)) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4846,14 +4750,12 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != 0x7FFFFFFF) - || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1) + && (! f128M_isNaN( &a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); @@ -4894,15 +4796,13 @@ void count = 10000; } if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) { - if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) { - trueFlags |= softfloat_flag_invalid; - } if ( - (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) - && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)) + verCases_checkInvInts || (trueFlags != softfloat_flag_invalid) || (subjFlags != softfloat_flag_invalid) + || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF )) + && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1) + && (! f128M_isNaN( &a ) || (subjZ != 0))) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); diff --git a/source/verLoops.h b/source/verLoops.h index 45ccb77..5115e91 100644 --- a/source/verLoops.h +++ b/source/verLoops.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase.h b/source/writeCase.h index 294295d..d1054c8 100644 --- a/source/writeCase.h +++ b/source/writeCase.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_a_extF80M.c b/source/writeCase_a_extF80M.c index 97e8e78..b960f0d 100644 --- a/source/writeCase_a_extF80M.c +++ b/source/writeCase_a_extF80M.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_a_f128M.c b/source/writeCase_a_f128M.c index 4eadb09..630f000 100644 --- a/source/writeCase_a_f128M.c +++ b/source/writeCase_a_f128M.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_a_f16.c b/source/writeCase_a_f16.c index 782c6a4..f404b45 100644 --- a/source/writeCase_a_f16.c +++ b/source/writeCase_a_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_a_f32.c b/source/writeCase_a_f32.c index 8afb94d..edaaae2 100644 --- a/source/writeCase_a_f32.c +++ b/source/writeCase_a_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_a_f64.c b/source/writeCase_a_f64.c index 909ee8c..b5e0ec6 100644 --- a/source/writeCase_a_f64.c +++ b/source/writeCase_a_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_a_ui32.c b/source/writeCase_a_ui32.c index 5824623..5d96e04 100644 --- a/source/writeCase_a_ui32.c +++ b/source/writeCase_a_ui32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_a_ui64.c b/source/writeCase_a_ui64.c index 9867fe7..5666721 100644 --- a/source/writeCase_a_ui64.c +++ b/source/writeCase_a_ui64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_ab_extF80M.c b/source/writeCase_ab_extF80M.c index d735a10..e66e679 100644 --- a/source/writeCase_ab_extF80M.c +++ b/source/writeCase_ab_extF80M.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_ab_f128M.c b/source/writeCase_ab_f128M.c index f720af7..8ff0dee 100644 --- a/source/writeCase_ab_f128M.c +++ b/source/writeCase_ab_f128M.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_ab_f16.c b/source/writeCase_ab_f16.c index b1d0355..6c86e93 100644 --- a/source/writeCase_ab_f16.c +++ b/source/writeCase_ab_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_ab_f32.c b/source/writeCase_ab_f32.c index f84a2fc..1218dfb 100644 --- a/source/writeCase_ab_f32.c +++ b/source/writeCase_ab_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_ab_f64.c b/source/writeCase_ab_f64.c index c08bc26..251f009 100644 --- a/source/writeCase_ab_f64.c +++ b/source/writeCase_ab_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_abc_f128M.c b/source/writeCase_abc_f128M.c index 77dc6b5..c969744 100644 --- a/source/writeCase_abc_f128M.c +++ b/source/writeCase_abc_f128M.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_abc_f16.c b/source/writeCase_abc_f16.c index 784bd77..17acf2a 100644 --- a/source/writeCase_abc_f16.c +++ b/source/writeCase_abc_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_abc_f32.c b/source/writeCase_abc_f32.c index 4da829f..09a46a3 100644 --- a/source/writeCase_abc_f32.c +++ b/source/writeCase_abc_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_abc_f64.c b/source/writeCase_abc_f64.c index 5b276cc..1f0a4ae 100644 --- a/source/writeCase_abc_f64.c +++ b/source/writeCase_abc_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_z_bool.c b/source/writeCase_z_bool.c index 27995f2..aca956b 100644 --- a/source/writeCase_z_bool.c +++ b/source/writeCase_z_bool.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_z_extF80M.c b/source/writeCase_z_extF80M.c index 4f49a9c..8c0f3f0 100644 --- a/source/writeCase_z_extF80M.c +++ b/source/writeCase_z_extF80M.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_z_f128M.c b/source/writeCase_z_f128M.c index 02a7edf..ec574bb 100644 --- a/source/writeCase_z_f128M.c +++ b/source/writeCase_z_f128M.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_z_f16.c b/source/writeCase_z_f16.c index 756c6c8..f8a11ee 100644 --- a/source/writeCase_z_f16.c +++ b/source/writeCase_z_f16.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_z_f32.c b/source/writeCase_z_f32.c index 1c31061..b1593b7 100644 --- a/source/writeCase_z_f32.c +++ b/source/writeCase_z_f32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_z_f64.c b/source/writeCase_z_f64.c index 58c2990..97f2bf5 100644 --- a/source/writeCase_z_f64.c +++ b/source/writeCase_z_f64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_z_ui32.c b/source/writeCase_z_ui32.c index 8431005..ed07ffc 100644 --- a/source/writeCase_z_ui32.c +++ b/source/writeCase_z_ui32.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeCase_z_ui64.c b/source/writeCase_z_ui64.c index a4756e8..f20cb18 100644 --- a/source/writeCase_z_ui64.c +++ b/source/writeCase_z_ui64.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeHex.c b/source/writeHex.c index f0e28b7..442bbb9 100644 --- a/source/writeHex.c +++ b/source/writeHex.c @@ -1,7 +1,7 @@ /*============================================================================ -This C source file is part of TestFloat, Release 3d, a package of programs for +This C source file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. diff --git a/source/writeHex.h b/source/writeHex.h index d520952..951a26f 100644 --- a/source/writeHex.h +++ b/source/writeHex.h @@ -1,7 +1,7 @@ /*============================================================================ -This C header file is part of TestFloat, Release 3d, a package of programs for +This C header file is part of TestFloat, Release 3e, a package of programs for testing the correctness of floating-point arithmetic complying with the IEEE Standard for Floating-Point, by John R. Hauser. |