From: Szabolcs Nagy Date: Wed, 13 Mar 2024 21:05:24 +0000 (+0000) Subject: math: add fma(x,y,z) test cases for z=0 and x*y rounds to -0 X-Git-Url: http://nsz.repo.hu/git/?p=libc-test;a=commitdiff_plain;h=00762a9bd3b94beeb87e7e45b299d4a7b2a953ba math: add fma(x,y,z) test cases for z=0 and x*y rounds to -0 --- diff --git a/src/math/special/fma.h b/src/math/special/fma.h index 5a3db10..d63f816 100644 --- a/src/math/special/fma.h +++ b/src/math/special/fma.h @@ -847,3 +847,11 @@ T(RZ, -0x1p-1000, 0x1.000001p-74, 0x1p-1022, //T(RU, -0x1p-1000, 0x1p-200, 0x1p-1022, 0x1p-1022, 0x1p-26, INEXACT) T(RD, -0x1p-1000, 0x1p-200, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) T(RZ, -0x1p-1000, 0x1p-200, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1000, 0x1p-100, 0x0p+0, -0x0p+0, 0x1p-26, INEXACT|UNDERFLOW) +T(RN, -0x1p-1000, 0x1p-100, -0x0p+0, -0x0p+0, 0x1p-26, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1000, 0x1p-100, 0x0p+0, -0x0p+0, 0x1p-26, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1000, 0x1p-100, -0x0p+0, -0x0p+0, 0x1p-26, INEXACT|UNDERFLOW) +T(RD, -0x1p-1000, 0x1p-100, 0x0p+0, -0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1000, 0x1p-100, -0x0p+0, -0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1000, 0x1p-100, 0x0p+0, -0x0p+0, 0x1p-26, INEXACT|UNDERFLOW) +T(RU, -0x1p-1000, 0x1p-100, -0x0p+0, -0x0p+0, 0x1p-26, INEXACT|UNDERFLOW) diff --git a/src/math/special/fmaf.h b/src/math/special/fmaf.h index ef9957a..fdbb6d9 100644 --- a/src/math/special/fmaf.h +++ b/src/math/special/fmaf.h @@ -66,3 +66,11 @@ T(RN, 0x1.000004p+0, 0x1.fffffep+0, 0x1.000002p-45, 0x1.000004p+1, T(RN, 0x1.000004p+0, -0x1.fffffep+0, -0x1.fffffep-46, -0x1.000002p+1, 0x1p-1, INEXACT) T(RN, 0x1.000004p+0, -0x1.fffffep+0, -0x1p-45, -0x1.000004p+1, -0x1p-1, INEXACT) T(RN, 0x1.000004p+0, -0x1.fffffep+0, -0x1.000002p-45, -0x1.000004p+1, -0x1p-1, INEXACT) +T(RN, -0x1p-100, 0x1p-100, 0x0p+0, -0x0p+0, 0x1p-51, INEXACT|UNDERFLOW) +T(RN, -0x1p-100, 0x1p-100, -0x0p+0, -0x0p+0, 0x1p-51, INEXACT|UNDERFLOW) +T(RZ, -0x1p-100, 0x1p-100, 0x0p+0, -0x0p+0, 0x1p-51, INEXACT|UNDERFLOW) +T(RZ, -0x1p-100, 0x1p-100, -0x0p+0, -0x0p+0, 0x1p-51, INEXACT|UNDERFLOW) +T(RD, -0x1p-100, 0x1p-100, 0x0p+0, -0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-100, 0x1p-100, -0x0p+0, -0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-100, 0x1p-100, 0x0p+0, -0x0p+0, 0x1p-51, INEXACT|UNDERFLOW) +T(RU, -0x1p-100, 0x1p-100, -0x0p+0, -0x0p+0, 0x1p-51, INEXACT|UNDERFLOW) diff --git a/src/math/special/fmal.h b/src/math/special/fmal.h index 1f60313..161b791 100644 --- a/src/math/special/fmal.h +++ b/src/math/special/fmal.h @@ -47,3 +47,11 @@ T(RN, -0x1p-10000L, 0x1.0000000000001p-6445L, T(RU, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffffcp-16383L, 0x1p-52, INEXACT|UNDERFLOW) T(RD, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffff8p-16383L, -0x1p+0, INEXACT|UNDERFLOW) T(RZ, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffff8p-16383L, -0x1p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-10000L, 0x1p-6500L, 0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW) +T(RN, -0x1p-10000L, 0x1p-6500L, -0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW) +T(RZ, -0x1p-10000L, 0x1p-6500L, 0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW) +T(RZ, -0x1p-10000L, 0x1p-6500L, -0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW) +T(RD, -0x1p-10000L, 0x1p-6500L, 0x0p+0L, -0x1p-16445L, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-10000L, 0x1p-6500L, -0x0p+0L, -0x1p-16445L, -0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-10000L, 0x1p-6500L, 0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW) +T(RU, -0x1p-10000L, 0x1p-6500L, -0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW)