On Wed, Mar 26, 2014 at 12:25:53PM -0700, Paul Goyette wrote: > Some time in the last two weeks, we've had a few new test cases failing > in my amd64 test-bed. > > Tests that used to pass, but currently failing > > lib/csu/t_crt0/initfini3 > atf/atf-c/macros_test/detect_unused_tests > atf/atf-c++/macros_test/detect_unused_tests > > Tests that currently fail, but don't seem to exist in older builds > > lib/libm/t_exp/exp2_powers > lib/libm/t_exp/exp2_values
Those are some more extensive tests for exp2(). The exp2_powers tests are failing to generate an 'overflow' result. They work for me on a real system - so it might be a qemu issue? Maybe qemu is using the x87 fpu (with 80 bit precision) to emulate the 64bit (and 32bit) SSE2 double (and float) maths - so the large mutiplies used to generate overflow fail. Actually, I wonder, have you rebuilt qemu since jeorg changed the default x87 precision to 80bits? That might be the difference between your tests and gson's tests (which only show some minor errors for exp2f(7.7) and exp2f(8.8). The exp2_values tests is showing up something odd in FP maths. I've not changes the exp2f() code, but I'm seeing different errors in my own testing (native on amd64) from earlier tests. However it might just be that the allowed error is too small. I've a local version of exp2() that uses the x87 'f2xm1' and 'fscale' instructions on both i386 and amd64. I do need to do a clock-count comparison for 'f2xm1', but I expect it to be faster than the table lookup and 5th degree polynomial. Intel claim these functions are monatonic, I bet the polynomial version isn't. David -- David Laight: da...@l8s.co.uk