ATF_CHECK_EQ
ATF_CHECK_EQ(EXIT_SUCCESS, WEXITSTATUS(status));
ATF_CHECK_EQ(creall(result), ldexpl(14 * 0x1p-4, exp / 2));
ATF_CHECK_EQ(cimagl(result), ldexpl(9 * 0x1p-4, exp / 2));
ATF_CHECK_EQ(creall(result), ldexpl(5 * 0x1p-3, exp / 2));
ATF_CHECK_EQ(cimagl(result), ldexpl(6 * 0x1p-3, exp / 2));
ATF_CHECK_EQ(creall(result), ldexpl(15 * 0x1p-4, exp / 2));
ATF_CHECK_EQ(cimagl(result), 0);
ATF_CHECK_EQ(exp2f(i), ldexpf(1.0, i));
ATF_CHECK_EQ(exp2(i), ldexp(1.0, i));
ATF_CHECK_EQ(exp2l(i), ldexpl(1.0, i));
ATF_CHECK_EQ(SIGFPE, sig);
ATF_CHECK_EQ(0, memcmp(&env, FE_DFL_ENV, sizeof(env)));
ATF_CHECK_EQ(0, fetestexcept(std_except_sets[i]));
ATF_CHECK_EQ(excepts, fetestexcept(excepts));
ATF_CHECK_EQ(0, fetestexcept(FE_ALL_EXCEPT));
ATF_CHECK_EQ(excepts, fetestexcept(excepts));
ATF_CHECK_EQ(excepts, (fetestexcept(ALL_STD_EXCEPT) | FE_INEXACT));
ATF_CHECK_EQ(excepts, fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, feclearexcept(excepts));
ATF_CHECK_EQ(0, fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, fegetexceptflag(&flag, excepts));
ATF_CHECK_EQ(0, fesetexceptflag(&flag, excepts));
ATF_CHECK_EQ((ALL_STD_EXCEPT ^ excepts), fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, fegetexceptflag(&flag, FE_ALL_EXCEPT));
ATF_CHECK_EQ(0, fesetexceptflag(&flag, excepts));
ATF_CHECK_EQ(0, fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, fesetexceptflag(&flag, ALL_STD_EXCEPT ^ excepts));
ATF_CHECK_EQ((ALL_STD_EXCEPT ^ excepts), fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, fetestexcept(FE_ALL_EXCEPT));
ATF_CHECK_EQ(0, feraiseexcept(excepts));
ATF_CHECK_EQ(excepts, (fetestexcept(ALL_STD_EXCEPT) | FE_INEXACT));
ATF_CHECK_EQ(excepts, fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, feraiseexcept(FE_INVALID | FE_DIVBYZERO));
ATF_CHECK_EQ((FE_INVALID | FE_DIVBYZERO), fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, feraiseexcept(FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT));
ATF_CHECK_EQ(ALL_STD_EXCEPT, fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(FE_TONEAREST, fegetround());
ATF_CHECK_EQ(FE_TONEAREST, getround());
ATF_CHECK_EQ(1, FLT_ROUNDS);
ATF_CHECK_EQ(0, fesetround(FE_DOWNWARD));
ATF_CHECK_EQ(FE_DOWNWARD, fegetround());
ATF_CHECK_EQ(FE_DOWNWARD, getround());
ATF_CHECK_EQ(3, FLT_ROUNDS);
ATF_CHECK_EQ(0, fesetround(FE_UPWARD));
ATF_CHECK_EQ(FE_UPWARD, getround());
ATF_CHECK_EQ(FE_UPWARD, fegetround());
ATF_CHECK_EQ(2, FLT_ROUNDS);
ATF_CHECK_EQ(0, fesetround(FE_TOWARDZERO));
ATF_CHECK_EQ(FE_TOWARDZERO, getround());
ATF_CHECK_EQ(FE_TOWARDZERO, fegetround());
ATF_CHECK_EQ(0, FLT_ROUNDS);
ATF_CHECK_EQ(0, fesetround(FE_TONEAREST));
ATF_CHECK_EQ(FE_TONEAREST, getround());
ATF_CHECK_EQ(1, FLT_ROUNDS);
ATF_CHECK_EQ(0, fetestexcept(FE_ALL_EXCEPT));
ATF_CHECK_EQ(FE_TONEAREST, fegetround());
ATF_CHECK_EQ(0, fegetenv(&env1));
ATF_CHECK_EQ(0, feclearexcept(FE_INEXACT));
ATF_CHECK_EQ(0, fegetenv(&env2));
ATF_CHECK_EQ(0, fesetenv(&env1));
ATF_CHECK_EQ(0, fetestexcept(FE_ALL_EXCEPT));
ATF_CHECK_EQ(FE_TONEAREST, fegetround());
ATF_CHECK_EQ(0, fesetenv(&env2));
ATF_CHECK_EQ(excepts, (fetestexcept(FE_ALL_EXCEPT) & ALL_STD_EXCEPT));
ATF_CHECK_EQ(FE_DOWNWARD, fegetround());
ATF_CHECK_EQ(0, fesetenv(&env1));
ATF_CHECK_EQ(0, fetestexcept(FE_ALL_EXCEPT));
ATF_CHECK_EQ(FE_TONEAREST, fegetround());
ATF_CHECK_EQ(0, (feenableexcept(FE_INVALID|FE_OVERFLOW) & ALL_STD_EXCEPT));
ATF_CHECK_EQ((FE_INVALID | FE_OVERFLOW), (feenableexcept(FE_UNDERFLOW) & ALL_STD_EXCEPT));
ATF_CHECK_EQ((FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW), (fedisableexcept(FE_OVERFLOW) & ALL_STD_EXCEPT));
ATF_CHECK_EQ((FE_INVALID | FE_UNDERFLOW), (fegetexcept() & ALL_STD_EXCEPT));
ATF_CHECK_EQ((FE_INVALID | FE_UNDERFLOW), (fedisableexcept(FE_ALL_EXCEPT) & ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, (fegetexcept() & ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, (fegetexcept() & ALL_STD_EXCEPT));
ATF_CHECK_EQ(except, fegetexcept());
ATF_CHECK_EQ(0, feraiseexcept(raise));
ATF_CHECK_EQ(raise, fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, sigaction(SIGFPE, &act, NULL));
ATF_CHECK_EQ(0, WEXITSTATUS(status));
ATF_CHECK_EQ(0, fetestexcept(FE_ALL_EXCEPT));
ATF_CHECK_EQ(0, fesetround(FE_DOWNWARD));
ATF_CHECK_EQ(0, feholdexcept(&env));
ATF_CHECK_EQ(0, fetestexcept(FE_ALL_EXCEPT));
ATF_CHECK_EQ(0, fesetround(FE_UPWARD));
ATF_CHECK_EQ(0, sigaction(SIGFPE, &act, NULL));
ATF_CHECK_EQ(0, feupdateenv(&env));
ATF_CHECK_EQ(FE_DOWNWARD, fegetround());
ATF_CHECK_EQ((except | raise), fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, pass);
ATF_CHECK_EQ(0, WEXITSTATUS(status));
ATF_CHECK_EQ(0, fetestexcept(FE_ALL_EXCEPT));
ATF_CHECK_EQ(FP_ILOGB0, ilogb(0));
ATF_CHECK_EQ(FP_ILOGBNAN, ilogb(NAN));
ATF_CHECK_EQ(INT_MAX, ilogb(INFINITY));
ATF_CHECK_EQ('\0', *end);
ATF_CHECK_EQ(FP_ILOGB0, ilogbf(0));
ATF_CHECK_EQ(FP_ILOGBNAN, ilogbf(NAN));
ATF_CHECK_EQ(INT_MAX, ilogbf(INFINITY));
ATF_CHECK_EQ('\0', *end);
ATF_CHECK_EQ(FP_ILOGB0, ilogbl(0));
ATF_CHECK_EQ(FP_ILOGBNAN, ilogbl(NAN));
ATF_CHECK_EQ(INT_MAX, ilogbl(INFINITY));
ATF_CHECK_EQ('\0', *end);
ATF_CHECK_EQ(i, log2f(ldexpf(1.0, i)));
ATF_CHECK_EQ(i, log2(ldexp(1.0, i)));
ATF_CHECK_EQ(i, log2l(ldexpl(1.0, i)));
ATF_CHECK_EQ(0, feclearexcept(FE_ALL_EXCEPT)); \