This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/4 v3] [SH/SH4]: Add support fedisableexcept, feenableexcept, fegetexcept and feupdateenv


Hi Nobuhiro!

On Thu, 05 Apr 2012 12:09:12 +0900 (JST), Kaz Kojima <kkojima@rr.iij4u.or.jp> wrote:
> I've just applied your patches:
> 
> http://sourceware.org/ml/libc-alpha/2012-04/msg00162.html
> http://sourceware.org/ml/libc-alpha/2012-04/msg00165.html
> http://sourceware.org/ml/libc-alpha/2012-04/msg00164.html
> http://sourceware.org/ml/libc-alpha/2012-04/msg00163.html
> 
> Thank you for patches and your patience!

With these patches applied, while there is also some improvement visible
in the test results, I'm seeing a lot more failures in the math/*
testsuites than without them.  I just re-confirmed this in the current
source tree with the patches reverted.  As I have no knowledge about math
exception handling but you evidently do -- would it be possible for you
to review that situation?

For example, diff of current source tree vs. current source tree with
these four patches reverted:

math/test-fenv.out:

     Test: Initially all exceptions should be cleared
       Pass: Exception "DIVBYZERO" is not set
       Pass: Exception "INVALID" is not set
       Pass: Exception "INEXACT" is not set
       Pass: Exception "UNDERFLOW" is not set
       Pass: Exception "OVERFLOW" is not set
     Test: Rounding direction should be initalized to nearest
       Pass: Rounding mode is TONEAREST.
     Test: feclearexcept (FE_ALL_EXCEPT) clears all exceptions
       Pass: Exception "DIVBYZERO" is not set
       Pass: Exception "INVALID" is not set
       Pass: Exception "INEXACT" is not set
       Pass: Exception "UNDERFLOW" is not set
       Pass: Exception "OVERFLOW" is not set
     Test: feraiseexcept (FE_ALL_EXCEPT) raises all exceptions
    -  Fail: Exception "DIVBYZERO" is not set
    -  Fail: Exception "INVALID" is not set
    -  Fail: Exception "INEXACT" is not set
    -  Fail: Exception "UNDERFLOW" is not set
    -  Fail: Exception "OVERFLOW" is not set
    +  Pass: Exception "DIVBYZERO" is set
    +  Pass: Exception "INVALID" is set
    +  Pass: Exception "INEXACT" is set
    +  Pass: Exception "UNDERFLOW" is set
    +  Pass: Exception "OVERFLOW" is set
     Test: Set/Clear FE_DIVBYZERO: set flag, with rest not set
    -  Fail: Exception "DIVBYZERO" is not set
    +  Pass: Exception "DIVBYZERO" is set
       Pass: Exception "INVALID" is not set
       Pass: Exception "INEXACT" is not set
       Pass: Exception "UNDERFLOW" is not set
       Pass: Exception "OVERFLOW" is not set
     Test: Set/Clear FE_DIVBYZERO: clear flag, rest also unset
       Pass: Exception "DIVBYZERO" is not set
       Pass: Exception "INVALID" is not set
       Pass: Exception "INEXACT" is not set
       Pass: Exception "UNDERFLOW" is not set
       Pass: Exception "OVERFLOW" is not set
     Test: Set/Clear FE_DIVBYZERO: set flag, with rest set
    -  Fail: Exception "DIVBYZERO" is not set
    -  Fail: Exception "INVALID" is not set
    -  Fail: Exception "INEXACT" is not set
    -  Fail: Exception "UNDERFLOW" is not set
    -  Fail: Exception "OVERFLOW" is not set
    +  Pass: Exception "DIVBYZERO" is set
    +  Pass: Exception "INVALID" is set
    +  Pass: Exception "INEXACT" is set
    +  Pass: Exception "UNDERFLOW" is set
    +  Pass: Exception "OVERFLOW" is set
    [...]
     Test: feholdexcept_tests FE_INEXACT test
       Pass: Exception "DIVBYZERO" is not set
       Pass: Exception "INVALID" is not set
    -  Fail: Exception "INEXACT" is not set
    +  Pass: Exception "INEXACT" is set
       Pass: Exception "UNDERFLOW" is not set
       Pass: Exception "OVERFLOW" is not set
    +feupdateenv failed: 1
    +feupdateenv didn't restore rounding mode: 0
     Test: feholdexcept_tests FE_INEXACT|FE_INVALID test
       Pass: Exception "DIVBYZERO" is not set
    -  Pass: Exception "INVALID" is set
    -  Fail: Exception "INEXACT" is not set
    +  Fail: Exception "INVALID" is not set
    +  Pass: Exception "INEXACT" is set
       Pass: Exception "UNDERFLOW" is not set
       Pass: Exception "OVERFLOW" is not set
     
    -61 errors occurred.
    +14 errors occurred.

math/bug-nextafter.out:

     nextafterf+ did not overflow
     nextafterf- did not overflow
     nextafterf+ did not underflow
     nextafterf- did not underflow
     nextafterf+ did not underflow
     nextafterf+ did not underflow
     nextafterf- did not underflow
     nextafterf- did not underflow
    -nextafter+ failed
    -nextafter+ did not overflow
    -nextafter failed
    -nextafter- did not overflow
    -nextafter+ did not underflow
    -nextafter- did not underflow

math/bug-nexttoward.out:

     nexttowardf+ did not overflow
     nexttowardf- did not overflow
     nexttowardf+ did not underflow
     nexttowardf- did not underflow
     nexttowardf+ did not underflow
     nexttowardf+ did not underflow
     nexttowardf- did not underflow
     nexttowardf- did not underflow
    -nexttoward+ failed
    -nexttoward+ did not overflow
    -nexttoward- failed
    -nexttoward- did not overflow
    -nexttoward+ did not underflow
    -nexttoward- did not underflow

math/test-float.out:

    -testing float (without inline functions)
    -Failure: acos (inf) == NaN plus invalid exception: Exception "Invalid operation" not set
    -Failure: acos (-inf) == NaN plus invalid exception: Exception "Invalid operation" not set
    -Failure: acos (1.125) == NaN plus invalid exception: Exception "Invalid operation" not set
    -Failure: acos (-1.125) == NaN plus invalid exception: Exception "Invalid operation" not set
    [...]
    -Test suite completed:
    -  3832 test cases plus 3388 tests for exception flags executed.
    -  520 errors occurred.

Similar for math/test-double.out, math/test-ifloat.out, and
math/test-idouble.out -- though a lot of these may be due to deficient
ULP information, which is another topic that I (or someone else, of
course) should have a look at (and that I have no experience with).


GrÃÃe,
 Thomas

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]