Skip to content

Commit 6932f3f

Browse files
committed
remove overrides to actually check the precision
1 parent b9234d8 commit 6932f3f

File tree

1 file changed

+7
-21
lines changed

1 file changed

+7
-21
lines changed

libm-test/src/precision.rs

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,13 @@ pub fn default_ulp(ctx: &CheckCtx) -> u32 {
8585

8686
// These have a separate implementation on i586
8787
if cfg!(x86_no_sse) {
88-
match ctx.base_name {
89-
Bn::Exp => ulp = 1,
90-
Bn::Exp2 => ulp = 1,
91-
Bn::Exp10 => ulp = 1,
88+
match ctx.fn_ident {
89+
Id::Exp => ulp = 1,
90+
Id::Exp2 => ulp = 1,
91+
Id::Exp10 => ulp = 1,
92+
Id::Expf => ulp = 0,
93+
Id::Exp2f => ulp = 0,
94+
Id::Exp10f => ulp = 0,
9295
_ => (),
9396
}
9497
}
@@ -226,15 +229,6 @@ impl MaybeOverride<(f32,)> for SpecialCase {
226229
return XFAIL("expm1 representable numbers");
227230
}
228231

229-
if cfg!(x86_no_sse)
230-
&& ctx.base_name == BaseName::Exp2
231-
&& !expected.is_infinite()
232-
&& actual.is_infinite()
233-
{
234-
// We return infinity when there is a representable value. Test input: 127.97238
235-
return XFAIL("586 exp2 representable numbers");
236-
}
237-
238232
if ctx.base_name == BaseName::Sinh && input.0.abs() > 80.0 && actual.is_nan() {
239233
// we return some NaN that should be real values or infinite
240234
if ctx.basis == CheckBasis::Musl {
@@ -286,14 +280,6 @@ impl MaybeOverride<(f64,)> for SpecialCase {
286280
return XFAIL("i586 rint rounding mode");
287281
}
288282

289-
if cfg!(x86_no_sse)
290-
&& (ctx.fn_ident == Identifier::Exp10 || ctx.fn_ident == Identifier::Exp2)
291-
{
292-
// FIXME: i586 has very imprecise results with ULP > u32::MAX for these
293-
// operations so we can't reasonably provide a limit.
294-
return XFAIL_NOCHECK;
295-
}
296-
297283
if ctx.base_name == BaseName::J0 && input.0 < -1e300 {
298284
// Errors get huge close to -inf
299285
return XFAIL_NOCHECK;

0 commit comments

Comments
 (0)