math: add fma(x,y,z) test cases for z=0 and x*y rounds to -0
[libc-test.git] / src / math / special / fmal.h
blob161b79192cf3f39694d45643fd1df61438e29df2
1 T(RN, 0x0p+0L, 0x0p+0L, 0x0p+0L, 0x0p+0L, 0x0p+0, 0)
2 T(RN, -0x0p+0L, -0x0p+0L, -0x0p+0L, 0x0p+0L, 0x0p+0, 0)
3 T(RN, -0x0p+0L, -0x0p+0L, 0x0p+0L, 0x0p+0L, 0x0p+0, 0)
4 T(RN, -0x0p+0L, 0x0p+0L, -0x0p+0L, -0x0p+0L, 0x0p+0, 0)
5 T(RN, 0x0p+0L, -0x0p+0L, -0x0p+0L, -0x0p+0L, 0x0p+0, 0)
6 T(RN, -0x0p+0L, 0x0p+0L, 0x0p+0L, 0x0p+0L, 0x0p+0, 0)
7 T(RN, 0x0p+0L, -0x0p+0L, 0x0p+0L, 0x0p+0L, 0x0p+0, 0)
8 T(RN, 0x0p+0L, 0x0p+0L, -0x0p+0L, 0x0p+0L, 0x0p+0, 0)
9 T(RN, 0x0p+0L, 0x0p+0L, nan, nan, 0x0p+0, 0)
10 T(RN, 0x0p+0L, nan, 0x0p+0L, nan, 0x0p+0, 0)
11 T(RN, nan, 0x0p+0L, 0x0p+0L, nan, 0x0p+0, 0)
12 T(RN, 0x0p+0L, 0x0p+0L, inf, inf, 0x0p+0, 0)
13 T(RN, 0x0p+0L, inf, 0x0p+0L, nan, 0x0p+0, INVALID)
14 T(RN, inf, 0x0p+0L, 0x0p+0L, nan, 0x0p+0, INVALID)
15 T(RN, 0x0p+0L, 0x0p+0L, -inf, -inf, 0x0p+0, 0)
16 T(RN, 0x0p+0L, -inf, 0x0p+0L, nan, 0x0p+0, INVALID)
17 T(RN, -inf, 0x0p+0L, 0x0p+0L, nan, 0x0p+0, INVALID)
18 T(RN, 0x1p+0L, inf, inf, inf, 0x0p+0, 0)
19 T(RN, 0x1p+0L, inf, -inf, nan, 0x0p+0, INVALID)
20 T(RN, 0x1p+0L, -inf, -inf, -inf, 0x0p+0, 0)
21 T(RN, 0x1p+0L, -inf, inf, nan, 0x0p+0, INVALID)
22 T(RN, -0x1p+0L, inf, inf, nan, 0x0p+0, INVALID)
23 T(RN, -0x1p+0L, inf, -inf, -inf, 0x0p+0, 0)
24 T(RN, -0x1p+0L, -inf, -inf, nan, 0x0p+0, INVALID)
25 T(RN, -0x1p+0L, -inf, inf, inf, 0x0p+0, 0)
26 T(RN, 0x1p+0L, 0x1p+0L, inf, inf, 0x0p+0, 0)
27 T(RN, 0x1p+0L, 0x1p+0L, -inf, -inf, 0x0p+0, 0)
28 T(RN, inf, -inf, 0x1p+0L, -inf, 0x0p+0, 0)
29 T(RN, -inf, -inf, 0x1p+0L, inf, 0x0p+0, 0)
30 T(RN, inf, inf, nan, nan, 0x0p+0, 0)
31 T(RN, inf, nan, inf, nan, 0x0p+0, 0)
32 T(RN, nan, inf, inf, nan, 0x0p+0, 0)
33 // TODO: invalid is optional
34 T(RN, inf, 0x0p+0L, nan, nan, 0x0p+0, INVALID)
35 T(RN, 0x0p+0L, inf, nan, nan, 0x0p+0, INVALID)
36 T(RN, -inf, 0x0p+0L, nan, nan, 0x0p+0, INVALID)
37 T(RN, 0x0p+0L, -inf, nan, nan, 0x0p+0, INVALID)
38 T(RN, 0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, 0x1.0000000001p-16400L, -0x1p-35, INEXACT|UNDERFLOW)
39 T(RN, -0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, -0x1.0000000003p-16400L, 0x1p-35, INEXACT|UNDERFLOW)
40 T(RD, 0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, 0x1.0000000001p-16400L, -0x1p-35, INEXACT|UNDERFLOW)
41 T(RD, -0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, -0x1.000000000308p-16400L, -0x1p+0, INEXACT|UNDERFLOW)
42 T(RU, 0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, 0x1.000000000108p-16400L, 0x1p+0, INEXACT|UNDERFLOW)
43 T(RU, -0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, -0x1.0000000003p-16400L, 0x1p-35, INEXACT|UNDERFLOW)
44 T(RZ, 0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, 0x1.0000000001p-16400L, -0x1p-35, INEXACT|UNDERFLOW)
45 T(RZ, -0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, -0x1.0000000003p-16400L, 0x1p-35, INEXACT|UNDERFLOW)
46 T(RN, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffffcp-16383L, 0x1p-52, INEXACT|UNDERFLOW)
47 T(RU, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffffcp-16383L, 0x1p-52, INEXACT|UNDERFLOW)
48 T(RD, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffff8p-16383L, -0x1p+0, INEXACT|UNDERFLOW)
49 T(RZ, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffff8p-16383L, -0x1p+0, INEXACT|UNDERFLOW)
50 T(RN, -0x1p-10000L, 0x1p-6500L, 0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW)
51 T(RN, -0x1p-10000L, 0x1p-6500L, -0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW)
52 T(RZ, -0x1p-10000L, 0x1p-6500L, 0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW)
53 T(RZ, -0x1p-10000L, 0x1p-6500L, -0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW)
54 T(RD, -0x1p-10000L, 0x1p-6500L, 0x0p+0L, -0x1p-16445L, -0x1p+0, INEXACT|UNDERFLOW)
55 T(RD, -0x1p-10000L, 0x1p-6500L, -0x0p+0L, -0x1p-16445L, -0x1p+0, INEXACT|UNDERFLOW)
56 T(RU, -0x1p-10000L, 0x1p-6500L, 0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW)
57 T(RU, -0x1p-10000L, 0x1p-6500L, -0x0p+0L, -0x0p+0L, 0x1p-55, INEXACT|UNDERFLOW)