1*f3087befSAndrew Turner; log1p.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=log1p op1=7ff80000.00000001 result=7ff80000.00000001 errno=0 7*f3087befSAndrew Turnerfunc=log1p op1=fff80000.00000001 result=7ff80000.00000001 errno=0 8*f3087befSAndrew Turnerfunc=log1p op1=7ff00000.00000001 result=7ff80000.00000001 errno=0 status=i 9*f3087befSAndrew Turnerfunc=log1p op1=fff00000.00000001 result=7ff80000.00000001 errno=0 status=i 10*f3087befSAndrew Turnerfunc=log1p op1=fff02000.00000000 result=7ff80000.00000001 errno=0 status=i 11*f3087befSAndrew Turnerfunc=log1p op1=7ff00000.00000000 result=7ff00000.00000000 errno=0 12*f3087befSAndrew Turner; Cases 6, 9 , 10, 11, 12 fail with certain versions of GLIBC and not others. 13*f3087befSAndrew Turner; The main reason seems to be the handling of errno and exceptions. 14*f3087befSAndrew Turner 15*f3087befSAndrew Turnerfunc=log1p op1=00000000.00000000 result=00000000.00000000 errno=0 16*f3087befSAndrew Turnerfunc=log1p op1=80000000.00000000 result=80000000.00000000 errno=0 17*f3087befSAndrew Turner 18*f3087befSAndrew Turner; No exception is raised with certain versions of glibc. Functions 19*f3087befSAndrew Turner; approximated by x near zero may not generate/implement flops and 20*f3087befSAndrew Turner; thus may not raise exceptions. 21*f3087befSAndrew Turnerfunc=log1p op1=00000000.00000001 result=00000000.00000001 errno=0 maybestatus=ux 22*f3087befSAndrew Turnerfunc=log1p op1=80000000.00000001 result=80000000.00000001 errno=0 maybestatus=ux 23