1*f3087befSAndrew Turner; expm1f.tst 2*f3087befSAndrew Turner; 3*f3087befSAndrew Turner; Copyright (c) 2009-2024, Arm Limited. 4*f3087befSAndrew Turner; SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception 5*f3087befSAndrew Turner 6*f3087befSAndrew Turnerfunc=expm1f op1=7fc00001 result=7fc00001 errno=0 7*f3087befSAndrew Turnerfunc=expm1f op1=ffc00001 result=7fc00001 errno=0 8*f3087befSAndrew Turnerfunc=expm1f op1=7f800001 result=7fc00001 errno=0 status=i 9*f3087befSAndrew Turnerfunc=expm1f op1=ff800001 result=7fc00001 errno=0 status=i 10*f3087befSAndrew Turnerfunc=expm1f op1=7f800000 result=7f800000 errno=0 11*f3087befSAndrew Turnerfunc=expm1f op1=7f7fffff result=7f800000 errno=ERANGE status=ox 12*f3087befSAndrew Turnerfunc=expm1f op1=ff800000 result=bf800000 errno=0 13*f3087befSAndrew Turnerfunc=expm1f op1=ff7fffff result=bf800000 errno=0 14*f3087befSAndrew Turnerfunc=expm1f op1=00000000 result=00000000 errno=0 15*f3087befSAndrew Turnerfunc=expm1f op1=80000000 result=80000000 errno=0 16*f3087befSAndrew Turner 17*f3087befSAndrew Turner; No exception is raised with certain versions of glibc. Functions 18*f3087befSAndrew Turner; approximated by x near zero may not generate/implement flops and 19*f3087befSAndrew Turner; thus may not raise exceptions. 20*f3087befSAndrew Turner 21*f3087befSAndrew Turnerfunc=expm1f op1=00000001 result=00000001 errno=0 maybestatus=ux 22*f3087befSAndrew Turnerfunc=expm1f op1=80000001 result=80000001 errno=0 maybestatus=ux 23*f3087befSAndrew Turner 24*f3087befSAndrew Turnerfunc=expm1f op1=42b145c0 result=7f6ac2dd.9b8 errno=0 25*f3087befSAndrew Turner 26*f3087befSAndrew Turner; Check both sides of the over/underflow thresholds in the code. 27*f3087befSAndrew Turnerfunc=expm1f op1=c2000000 result=bf7fffff.fff error=0 28*f3087befSAndrew Turnerfunc=expm1f op1=c2000001 result=bf7fffff.fff error=0 29*f3087befSAndrew Turnerfunc=expm1f op1=43000000 result=7f800000 error=overflow 30*f3087befSAndrew Turnerfunc=expm1f op1=43000001 result=7f800000 error=overflow 31*f3087befSAndrew Turnerfunc=expm1f op1=c2a80000 result=bf800000.000 error=0 32*f3087befSAndrew Turnerfunc=expm1f op1=c2a80001 result=bf800000.000 error=0 33*f3087befSAndrew Turner 34*f3087befSAndrew Turner; Check values for which exp goes denormal. expm1f should not report 35*f3087befSAndrew Turner; spurious overflow. 36*f3087befSAndrew Turnerfunc=expm1f op1=c2b00f34 result=bf800000.000 error=0 37*f3087befSAndrew Turnerfunc=expm1f op1=c2ce8ed0 result=bf800000.000 error=0 38*f3087befSAndrew Turnerfunc=expm1f op1=c2dc6bba result=bf800000.000 error=0 39*f3087befSAndrew Turner 40*f3087befSAndrew Turner; Regression tests for significance loss when the two components of 41*f3087befSAndrew Turner; the result have opposite sign but similar magnitude 42*f3087befSAndrew Turnerfunc=expm1f op1=be8516c1 result=be6a652b.0dc error=0 43*f3087befSAndrew Turnerfunc=expm1f op1=be851714 result=be6a65ab.0e5 error=0 44*f3087befSAndrew Turnerfunc=expm1f op1=be851cc7 result=be6a6e75.111 error=0 45*f3087befSAndrew Turnerfunc=expm1f op1=be851d1a result=be6a6ef5.102 error=0 46*f3087befSAndrew Turnerfunc=expm1f op1=be851d6d result=be6a6f75.0f2 error=0 47*f3087befSAndrew Turnerfunc=expm1f op1=be852065 result=be6a7409.0e4 error=0 48*f3087befSAndrew Turnerfunc=expm1f op1=be8520b8 result=be6a7489.0c7 error=0 49*f3087befSAndrew Turnerfunc=expm1f op1=be85210b result=be6a7509.0a8 error=0 50*f3087befSAndrew Turnerfunc=expm1f op1=be855401 result=be6ac39b.0d5 error=0 51*f3087befSAndrew Turnerfunc=expm1f op1=be933307 result=be7fdbf0.d8d error=0 52*f3087befSAndrew Turnerfunc=expm1f op1=be92ed6b result=be7f737a.d81 error=0 53*f3087befSAndrew Turnerfunc=expm1f op1=be933b90 result=be7fe8be.d76 error=0 54*f3087befSAndrew Turnerfunc=expm1f op1=3eb11364 result=3ed38deb.0c0 error=0 55*f3087befSAndrew Turnerfunc=expm1f op1=3f28e830 result=3f6f344b.0da error=0 56*f3087befSAndrew Turnerfunc=expm1f op1=3eb1578f result=3ed3ee47.13b error=0 57*f3087befSAndrew Turnerfunc=expm1f op1=3f50176a result=3fa08e36.fea error=0 58