fmaf test case that's hard to round in nearest rounding mode
[libc-test] / src / math / special / fmaf.h
index af5ac49..e034279 100644 (file)
@@ -35,3 +35,21 @@ T(RN,             inf,          0x0p+0,             nan,             nan,
 T(RN,          0x0p+0,             inf,             nan,             nan,          0x0p+0, INVALID)
 T(RN,            -inf,          0x0p+0,             nan,             nan,          0x0p+0, INVALID)
 T(RN,          0x0p+0,            -inf,             nan,             nan,          0x0p+0, INVALID)
+T(RN,        0x1p-120,        0x1p-120,        0x1p-149,        0x1p-149,        -0x1p-91, INEXACT|UNDERFLOW)
+T(RN,          0x1p+0,          0x1p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RD,          0x1p+0,          0x1p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RD,          0x1p+0,         -0x1p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RD,         -0x1p+0,         -0x1p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RD,        0x1p-120,        0x1p-120,        0x1p-149,        0x1p-149,        -0x1p-91, INEXACT|UNDERFLOW)
+T(RU,        0x1p-120,        0x1p-120,        0x1p-149,        0x1p-148,          0x1p+0, INEXACT|UNDERFLOW)
+T(RZ,        0x1p-120,        0x1p-120,        0x1p-149,        0x1p-149,        -0x1p-91, INEXACT|UNDERFLOW)
+T(RN,       -0x1p-100,     0x1.001p-49,        0x1p-126, 0x1.fffffcp-127,         0x1p-12, INEXACT|UNDERFLOW)
+T(RU,       -0x1p-100,     0x1.001p-49,        0x1p-126, 0x1.fffffcp-127,         0x1p-12, INEXACT|UNDERFLOW)
+T(RD,       -0x1p-100,     0x1.001p-49,        0x1p-126, 0x1.fffff8p-127,     -0x1.ffep-1, INEXACT|UNDERFLOW)
+T(RZ,       -0x1p-100,     0x1.001p-49,        0x1p-126, 0x1.fffff8p-127,     -0x1.ffep-1, INEXACT|UNDERFLOW)
+T(RN, -0x1.26524ep-54, -0x1.cb7868p+11,  0x1.d10f5ep-29,  0x1.d1179ep-29,         -0x1p-1, INEXACT)
+T(RU, -0x1.26524ep-54, -0x1.cb7868p+11,  0x1.d10f5ep-29,   0x1.d117ap-29,          0x1p-1, INEXACT)
+T(RD, -0x1.26524ep-54, -0x1.cb7868p+11,  0x1.d10f5ep-29,  0x1.d1179ep-29,         -0x1p-1, INEXACT)
+T(RZ, -0x1.26524ep-54, -0x1.cb7868p+11,  0x1.d10f5ep-29,  0x1.d1179ep-29,         -0x1p-1, INEXACT)