IBM Power8 dt_arith error

Hi All,

I'm compiling HDF5.1.8.17 on an IBM power8 machine. The configure command is:
'CC="mpicc" CXX="mpiCC" FC="mpifort" F90="mpif90" F77="mpif77" CFLAGS="-O0" CXXFLAGS=" -DMPICH_IGNORE_CXX_SEEK" F90FLAGS=" " FFLAGS=" " ./configure --prefix=/prod/acs/prod/IRIS/POWER8/xl-13.1.3/serial/external/hdf5/1.8.17 --with-zlib --disable-shared --enable-fortran --enable-parallel --enable-linux-lfs --enable-production --enable-static'

Summary from the configure output:
SUMMARY OF THE HDF5 CONFIGURATION

···

=================================

General Information:
-------------------
              HDF5 Version: 1.8.17
             Configured on: Thu Aug 4 09:18:16 BST 2016
             Configured by: usid@machine.awe.co.uk
          Configure mode: production
               Host system: powerpc64le-unknown-linux-gnu
           Uname information: Linux machine.awe.co.uk 3.10.0-327.el7.ppc64le #1 SMP Thu Oct 29 17:31:13 EDT 2015 ppc64le ppc64le ppc64le GNU/Linux
                  Byte sex: little-endian
                 Libraries: static
          Installation point: /prod/acs/prod/IRIS/POWER8/xl-13.1.3/serial/external/hdf5/1.8.17

Compiling Options:
------------------
               Compilation Mode: production
                     C Compiler: /prod/acs/openmpi/xl/1.10.2/bin/mpicc ( IBM XL C/C++ 13.01.0003.0000)
                         CFLAGS: -O0
                      H5_CFLAGS: -qlanglvl=stdc99 -qflag=w:w
                      AM_CFLAGS:
                       CPPFLAGS:
                    H5_CPPFLAGS: -D_GNU_SOURCE -D_POSIX_C_SOURCE=200112L -DNDEBUG -UH5_DEBUG_API
                    AM_CPPFLAGS:
               Shared C Library: no
               Static C Library: yes
  Statically Linked Executables: no
                        LDFLAGS:
                     H5_LDFLAGS:
                     AM_LDFLAGS:
          Extra libraries: -lz -ldl -lm
                  Archiver: ar
                Ranlib: ranlib
          Debugged Packages:
               API Tracing: no

Languages:
----------
                        Fortran: yes
               Fortran Compiler: /prod/acs/openmpi/xl/1.10.2/bin/mpifort ( IBM XL Fortran 15.01.0003.0000)
          Fortran 2003 Compiler:
                  Fortran Flags:
               H5 Fortran Flags:
               AM Fortran Flags:
         Shared Fortran Library: no
         Static Fortran Library: yes

                            C++: no

Features:
---------
                  Parallel HDF5: yes
             High Level library: yes
                   Threadsafety: no
            Default API Mapping: v18
With Deprecated Public Symbols: yes
         I/O filters (external): deflate(zlib)
                            MPE:
                     Direct VFD: no
                        dmalloc: no
Clear file buffers before write: yes
           Using memory checker: no
         Function Stack Tracing: no
      Strict File Format Checks: no
   Optimization Instrumentation: no

I copied the file ibm-flags to a file called "powerpc64le-unknown-linux-gnu" in the config directory.

For the following optimisation settings:
CFLAGS=""
CFLAGS="-O0"
CFLAGS="=-O0 -qarch=auto"

I'm getting a failure in the dt_arith check:

====================================================================================================
Testing hard unsigned short -> long double conversions PASSED
Testing hard int -> long double conversions PASSED
Testing hard unsigned int -> long double conversions PASSED
Testing hard long -> long double conversions *FAILED*
    elmt 107:
        src = 00 3f ff ff ff ff ff ff 18014398509481983
        dst = 00 00 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481984.000000
        ans = bf f0 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481983.000000
    elmt 109:
        src = 00 7f ff ff ff ff ff ff 36028797018963967
        dst = 00 00 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963968.000000
        ans = bf f0 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963967.000000
    elmt 111:
        src = 00 ff ff ff ff ff ff ff 72057594037927935
        dst = 00 00 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927936.000000
        ans = bf f0 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927935.000000
    elmt 113:
        src = 01 ff ff ff ff ff ff ff 144115188075855871
        dst = 00 00 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855872.000000
        ans = bf f0 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855871.000000
    elmt 115:
        src = 03 ff ff ff ff ff ff ff 288230376151711743
        dst = 00 00 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711744.000000
        ans = bf f0 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711743.000000
    elmt 117:
        src = 07 ff ff ff ff ff ff ff 576460752303423487
        dst = 00 00 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423488.000000
        ans = bf f0 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423487.000000
    elmt 119:
        src = 0f ff ff ff ff ff ff ff 1152921504606846975
        dst = 00 00 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846976.000000
        ans = bf f0 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846975.000000
    elmt 121:
        src = 1f ff ff ff ff ff ff ff 2305843009213693951
        dst = 00 00 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693952.000000
        ans = bf f0 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693951.000000
    elmt 123:
        src = 3f ff ff ff ff ff ff ff 4611686018427387903
        dst = 00 00 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387904.000000
        ans = bf f0 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387903.000000
    elmt 125:
        src = 7f ff ff ff ff ff ff ff 9223372036854775807
        dst = 00 00 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775808.000000
        ans = bf f0 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775807.000000
Testing hard unsigned long -> long double conversions *FAILED*
    elmt 107:
        src = 00 3f ff ff ff ff ff ff 18014398509481983
        dst = 00 00 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481984.000000
        ans = bf f0 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481983.000000
    elmt 109:
        src = 00 7f ff ff ff ff ff ff 36028797018963967
        dst = 00 00 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963968.000000
        ans = bf f0 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963967.000000
    elmt 111:
        src = 00 ff ff ff ff ff ff ff 72057594037927935
        dst = 00 00 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927936.000000
        ans = bf f0 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927935.000000
    elmt 113:
        src = 01 ff ff ff ff ff ff ff 144115188075855871
        dst = 00 00 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855872.000000
        ans = bf f0 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855871.000000
    elmt 115:
        src = 03 ff ff ff ff ff ff ff 288230376151711743
        dst = 00 00 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711744.000000
        ans = bf f0 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711743.000000
    elmt 117:
        src = 07 ff ff ff ff ff ff ff 576460752303423487
        dst = 00 00 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423488.000000
        ans = bf f0 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423487.000000
    elmt 119:
        src = 0f ff ff ff ff ff ff ff 1152921504606846975
        dst = 00 00 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846976.000000
        ans = bf f0 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846975.000000
    elmt 121:
        src = 1f ff ff ff ff ff ff ff 2305843009213693951
        dst = 00 00 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693952.000000
        ans = bf f0 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693951.000000
    elmt 123:
        src = 3f ff ff ff ff ff ff ff 4611686018427387903
        dst = 00 00 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387904.000000
        ans = bf f0 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387903.000000
    elmt 125:
        src = 7f ff ff ff ff ff ff ff 9223372036854775807
        dst = 00 00 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775808.000000
        ans = bf f0 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775807.000000
    elmt 127:
        src = ff ff ff ff ff ff ff ff 18446744073709551615
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = bf f0 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551615.000000
    elmt 128:
        src = ff ff ff ff ff ff ff ff 18446744073709551615
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = bf f0 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551615.000000
    elmt 129:
        src = ff ff ff ff ff ff ff fe 18446744073709551614
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551614.000000
    elmt 130:
        src = ff ff ff ff ff ff ff fc 18446744073709551612
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 10 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551612.000000
    elmt 131:
        src = ff ff ff ff ff ff ff f8 18446744073709551608
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 20 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551608.000000
    elmt 132:
        src = ff ff ff ff ff ff ff f0 18446744073709551600
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 30 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551600.000000
    elmt 133:
        src = ff ff ff ff ff ff ff e0 18446744073709551584
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 40 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551584.000000
    elmt 134:
        src = ff ff ff ff ff ff ff c0 18446744073709551552
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 50 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551552.000000
    elmt 135:
        src = ff ff ff ff ff ff ff 80 18446744073709551488
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 60 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551488.000000
    elmt 136:
        src = ff ff ff ff ff ff ff 00 18446744073709551360
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 70 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551360.000000
    elmt 137:
        src = ff ff ff ff ff ff fe 00 18446744073709551104
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 80 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551104.000000
    elmt 138:
        src = ff ff ff ff ff ff fc 00 18446744073709550592
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 90 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709550592.000000
Testing hard normalized float -> signed char conversions PASSED
Testing hard normalized double -> signed char conversions PASSED
Testing hard normalized float -> unsigned char conversions PASSED

For the following optimisation settings CFLGAS="-O2" and above, I get a similar error to above, except for it crashing after the first FAILED test:

Testing hard unsigned short -> long double conversions PASSED
Testing hard int -> long double conversions PASSED
Testing hard unsigned int -> long double conversions PASSED
Testing hard long -> long double conversions *FAILED*
    elmt 107:
        src = 00 3f ff ff ff ff ff ff 18014398509481983
        dst = 00 00 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481984.000000
        ans = bf f0 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481983.000000
    elmt 109:
        src = 00 7f ff ff ff ff ff ff 36028797018963967
        dst = 00 00 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963968.000000
        ans = bf f0 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963967.000000
    elmt 111:
        src = 00 ff ff ff ff ff ff ff 72057594037927935
        dst = 00 00 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927936.000000
        ans = bf f0 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927935.000000
    elmt 113:
        src = 01 ff ff ff ff ff ff ff 144115188075855871
        dst = 00 00 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855872.000000
        ans = bf f0 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855871.000000
    elmt 115:
        src = 03 ff ff ff ff ff ff ff 288230376151711743
        dst = 00 00 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711744.000000
        ans = bf f0 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711743.000000
    elmt 117:
        src = 07 ff ff ff ff ff ff ff 576460752303423487
        dst = 00 00 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423488.000000
        ans = bf f0 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423487.000000
    elmt 119:
        src = 0f ff ff ff ff ff ff ff 1152921504606846975
        dst = 00 00 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846976.000000
        ans = bf f0 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846975.000000
    elmt 121:
        src = 1f ff ff ff ff ff ff ff 2305843009213693951
        dst = 00 00 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693952.000000
        ans = bf f0 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693951.000000
    elmt 123:
        src = 3f ff ff ff ff ff ff ff 4611686018427387903
        dst = 00 00 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387904.000000
        ans = bf f0 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387903.000000
    elmt 125:
        src = 7f ff ff ff ff ff ff ff 9223372036854775807
        dst = 00 00 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775808.000000
        ans = bf f0 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775807.000000
Testing hard unsigned long -> long double conversions 0.07user 0.02system 0:009elapsed 98%CPU
(0avgtext+0avgdata 9984maxresident)k
0inputs+512outputs (0major+4007minor)pagefaults 0swaps
Make[4]: *** [dt_arith.chkexe_] Error 1

Testing dtypes
etc
etc.

Has anyone got any suggestions for a solution?

Kind regards,

Chris Nelson.

The information in this email and in any attachment(s) is
commercial in confidence. If you are not the named addressee(s)
or
if you receive this email in error then any distribution, copying or
use of this communication or the information in it is strictly
prohibited. Please notify us immediately by email at
admin.internet(at)awe.co.uk, and then delete this message from
your computer. While attachments are virus checked, AWE plc
does not accept any liability in respect of any virus which is not
detected.

AWE Plc
Registered in England and Wales
Registration No 02763902
AWE, Aldermaston, Reading, RG7 4PR

That test performs all kinds of undefined behaviour, you can see it fail everyday here:
<https://cdash.hdfgroup.org/testSummary.php?project=2&name=H5TEST-dt_arith&date=2016-08-08>

It's been discussed on-list in the past. It seems no one cares to fix it.

Cheers,

···

On Mon, 8 Aug 2016 15:11:27 +0000, Chris.Nelson@awe.co.uk said:

I'm getting a failure in the dt_arith check:

--
____________________________________________________________
Sean McBride, B. Eng sean@rogue-research.com
Rogue Research www.rogue-research.com
Mac Software Developer Montréal, Québec, Canada

Hi Chris,

There is a known issue with the 'long long conversion' test. It fails on several platforms. Run make check with the -i (dash eye) option to ignore errors and redirect the output to a file.
If you look at the output file and that is the only test that fails, then your installation should be okay.

-Barbara
help@hdfgroup.org

···

From: Hdf-forum [mailto:hdf-forum-bounces@lists.hdfgroup.org] On Behalf Of Chris.Nelson@awe.co.uk
Sent: Monday, August 08, 2016 10:11 AM
To: hdf-forum@lists.hdfgroup.org
Subject: [Hdf-forum] IBM Power8 dt_arith error

Hi All,

I'm compiling HDF5.1.8.17 on an IBM power8 machine. The configure command is:
'CC="mpicc" CXX="mpiCC" FC="mpifort" F90="mpif90" F77="mpif77" CFLAGS="-O0" CXXFLAGS=" -DMPICH_IGNORE_CXX_SEEK" F90FLAGS=" " FFLAGS=" " ./configure --prefix=/prod/acs/prod/IRIS/POWER8/xl-13.1.3/serial/external/hdf5/1.8.17 --with-zlib --disable-shared --enable-fortran --enable-parallel --enable-linux-lfs --enable-production --enable-static'

Summary from the configure output:
SUMMARY OF THE HDF5 CONFIGURATION
         =================================

General Information:
-------------------
              HDF5 Version: 1.8.17
             Configured on: Thu Aug 4 09:18:16 BST 2016
             Configured by: usid@machine.awe.co.uk<mailto:usid@machine.awe.co.uk>
          Configure mode: production
               Host system: powerpc64le-unknown-linux-gnu
           Uname information: Linux machine.awe.co.uk 3.10.0-327.el7.ppc64le #1 SMP Thu Oct 29 17:31:13 EDT 2015 ppc64le ppc64le ppc64le GNU/Linux
                  Byte sex: little-endian
                 Libraries: static
          Installation point: /prod/acs/prod/IRIS/POWER8/xl-13.1.3/serial/external/hdf5/1.8.17

Compiling Options:
------------------
               Compilation Mode: production
                     C Compiler: /prod/acs/openmpi/xl/1.10.2/bin/mpicc ( IBM XL C/C++ 13.01.0003.0000)
                         CFLAGS: -O0
                      H5_CFLAGS: -qlanglvl=stdc99 -qflag=w:w
                      AM_CFLAGS:
                       CPPFLAGS:
                    H5_CPPFLAGS: -D_GNU_SOURCE -D_POSIX_C_SOURCE=200112L -DNDEBUG -UH5_DEBUG_API
                    AM_CPPFLAGS:
               Shared C Library: no
               Static C Library: yes
  Statically Linked Executables: no
                        LDFLAGS:
                     H5_LDFLAGS:
                     AM_LDFLAGS:
          Extra libraries: -lz -ldl -lm
                  Archiver: ar
                Ranlib: ranlib
          Debugged Packages:
               API Tracing: no

Languages:
----------
                        Fortran: yes
               Fortran Compiler: /prod/acs/openmpi/xl/1.10.2/bin/mpifort ( IBM XL Fortran 15.01.0003.0000)
          Fortran 2003 Compiler:
                  Fortran Flags:
               H5 Fortran Flags:
               AM Fortran Flags:
         Shared Fortran Library: no
         Static Fortran Library: yes

                            C++: no

Features:
---------
                  Parallel HDF5: yes
             High Level library: yes
                   Threadsafety: no
            Default API Mapping: v18
With Deprecated Public Symbols: yes
         I/O filters (external): deflate(zlib)
                            MPE:
                     Direct VFD: no
                        dmalloc: no
Clear file buffers before write: yes
           Using memory checker: no
         Function Stack Tracing: no
      Strict File Format Checks: no
   Optimization Instrumentation: no

I copied the file ibm-flags to a file called "powerpc64le-unknown-linux-gnu" in the config directory.

For the following optimisation settings:
CFLAGS=""
CFLAGS="-O0"
CFLAGS="=-O0 -qarch=auto"

I'm getting a failure in the dt_arith check:

====================================================================================================
Testing hard unsigned short -> long double conversions PASSED
Testing hard int -> long double conversions PASSED
Testing hard unsigned int -> long double conversions PASSED
Testing hard long -> long double conversions *FAILED*
    elmt 107:
        src = 00 3f ff ff ff ff ff ff 18014398509481983
        dst = 00 00 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481984.000000
        ans = bf f0 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481983.000000
    elmt 109:
        src = 00 7f ff ff ff ff ff ff 36028797018963967
        dst = 00 00 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963968.000000
        ans = bf f0 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963967.000000
    elmt 111:
        src = 00 ff ff ff ff ff ff ff 72057594037927935
        dst = 00 00 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927936.000000
        ans = bf f0 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927935.000000
    elmt 113:
        src = 01 ff ff ff ff ff ff ff 144115188075855871
        dst = 00 00 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855872.000000
        ans = bf f0 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855871.000000
    elmt 115:
        src = 03 ff ff ff ff ff ff ff 288230376151711743
        dst = 00 00 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711744.000000
        ans = bf f0 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711743.000000
    elmt 117:
        src = 07 ff ff ff ff ff ff ff 576460752303423487
        dst = 00 00 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423488.000000
        ans = bf f0 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423487.000000
    elmt 119:
        src = 0f ff ff ff ff ff ff ff 1152921504606846975
        dst = 00 00 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846976.000000
        ans = bf f0 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846975.000000
    elmt 121:
        src = 1f ff ff ff ff ff ff ff 2305843009213693951
        dst = 00 00 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693952.000000
        ans = bf f0 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693951.000000
    elmt 123:
        src = 3f ff ff ff ff ff ff ff 4611686018427387903
        dst = 00 00 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387904.000000
        ans = bf f0 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387903.000000
    elmt 125:
        src = 7f ff ff ff ff ff ff ff 9223372036854775807
        dst = 00 00 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775808.000000
        ans = bf f0 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775807.000000
Testing hard unsigned long -> long double conversions *FAILED*
    elmt 107:
        src = 00 3f ff ff ff ff ff ff 18014398509481983
        dst = 00 00 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481984.000000
        ans = bf f0 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481983.000000
    elmt 109:
        src = 00 7f ff ff ff ff ff ff 36028797018963967
        dst = 00 00 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963968.000000
        ans = bf f0 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963967.000000
    elmt 111:
        src = 00 ff ff ff ff ff ff ff 72057594037927935
        dst = 00 00 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927936.000000
        ans = bf f0 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927935.000000
    elmt 113:
        src = 01 ff ff ff ff ff ff ff 144115188075855871
        dst = 00 00 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855872.000000
        ans = bf f0 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855871.000000
    elmt 115:
        src = 03 ff ff ff ff ff ff ff 288230376151711743
        dst = 00 00 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711744.000000
        ans = bf f0 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711743.000000
    elmt 117:
        src = 07 ff ff ff ff ff ff ff 576460752303423487
        dst = 00 00 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423488.000000
        ans = bf f0 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423487.000000
    elmt 119:
        src = 0f ff ff ff ff ff ff ff 1152921504606846975
        dst = 00 00 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846976.000000
        ans = bf f0 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846975.000000
    elmt 121:
        src = 1f ff ff ff ff ff ff ff 2305843009213693951
        dst = 00 00 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693952.000000
        ans = bf f0 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693951.000000
    elmt 123:
        src = 3f ff ff ff ff ff ff ff 4611686018427387903
        dst = 00 00 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387904.000000
        ans = bf f0 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387903.000000
    elmt 125:
        src = 7f ff ff ff ff ff ff ff 9223372036854775807
        dst = 00 00 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775808.000000
        ans = bf f0 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775807.000000
    elmt 127:
        src = ff ff ff ff ff ff ff ff 18446744073709551615
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = bf f0 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551615.000000
    elmt 128:
        src = ff ff ff ff ff ff ff ff 18446744073709551615
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = bf f0 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551615.000000
    elmt 129:
        src = ff ff ff ff ff ff ff fe 18446744073709551614
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551614.000000
    elmt 130:
        src = ff ff ff ff ff ff ff fc 18446744073709551612
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 10 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551612.000000
    elmt 131:
        src = ff ff ff ff ff ff ff f8 18446744073709551608
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 20 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551608.000000
    elmt 132:
        src = ff ff ff ff ff ff ff f0 18446744073709551600
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 30 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551600.000000
    elmt 133:
        src = ff ff ff ff ff ff ff e0 18446744073709551584
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 40 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551584.000000
    elmt 134:
        src = ff ff ff ff ff ff ff c0 18446744073709551552
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 50 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551552.000000
    elmt 135:
        src = ff ff ff ff ff ff ff 80 18446744073709551488
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 60 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551488.000000
    elmt 136:
        src = ff ff ff ff ff ff ff 00 18446744073709551360
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 70 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551360.000000
    elmt 137:
        src = ff ff ff ff ff ff fe 00 18446744073709551104
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 80 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551104.000000
    elmt 138:
        src = ff ff ff ff ff ff fc 00 18446744073709550592
        dst = 00 00 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709551616.000000
        ans = c0 90 00 00 00 00 00 00 43 f0 00 00 00 00 00 00 18446744073709550592.000000
Testing hard normalized float -> signed char conversions PASSED
Testing hard normalized double -> signed char conversions PASSED
Testing hard normalized float -> unsigned char conversions PASSED

For the following optimisation settings CFLGAS="-O2" and above, I get a similar error to above, except for it crashing after the first FAILED test:

Testing hard unsigned short -> long double conversions PASSED
Testing hard int -> long double conversions PASSED
Testing hard unsigned int -> long double conversions PASSED
Testing hard long -> long double conversions *FAILED*
    elmt 107:
        src = 00 3f ff ff ff ff ff ff 18014398509481983
        dst = 00 00 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481984.000000
        ans = bf f0 00 00 00 00 00 00 43 50 00 00 00 00 00 00 18014398509481983.000000
    elmt 109:
        src = 00 7f ff ff ff ff ff ff 36028797018963967
        dst = 00 00 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963968.000000
        ans = bf f0 00 00 00 00 00 00 43 60 00 00 00 00 00 00 36028797018963967.000000
    elmt 111:
        src = 00 ff ff ff ff ff ff ff 72057594037927935
        dst = 00 00 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927936.000000
        ans = bf f0 00 00 00 00 00 00 43 70 00 00 00 00 00 00 72057594037927935.000000
    elmt 113:
        src = 01 ff ff ff ff ff ff ff 144115188075855871
        dst = 00 00 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855872.000000
        ans = bf f0 00 00 00 00 00 00 43 80 00 00 00 00 00 00 144115188075855871.000000
    elmt 115:
        src = 03 ff ff ff ff ff ff ff 288230376151711743
        dst = 00 00 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711744.000000
        ans = bf f0 00 00 00 00 00 00 43 90 00 00 00 00 00 00 288230376151711743.000000
    elmt 117:
        src = 07 ff ff ff ff ff ff ff 576460752303423487
        dst = 00 00 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423488.000000
        ans = bf f0 00 00 00 00 00 00 43 a0 00 00 00 00 00 00 576460752303423487.000000
    elmt 119:
        src = 0f ff ff ff ff ff ff ff 1152921504606846975
        dst = 00 00 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846976.000000
        ans = bf f0 00 00 00 00 00 00 43 b0 00 00 00 00 00 00 1152921504606846975.000000
    elmt 121:
        src = 1f ff ff ff ff ff ff ff 2305843009213693951
        dst = 00 00 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693952.000000
        ans = bf f0 00 00 00 00 00 00 43 c0 00 00 00 00 00 00 2305843009213693951.000000
    elmt 123:
        src = 3f ff ff ff ff ff ff ff 4611686018427387903
        dst = 00 00 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387904.000000
        ans = bf f0 00 00 00 00 00 00 43 d0 00 00 00 00 00 00 4611686018427387903.000000
    elmt 125:
        src = 7f ff ff ff ff ff ff ff 9223372036854775807
        dst = 00 00 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775808.000000
        ans = bf f0 00 00 00 00 00 00 43 e0 00 00 00 00 00 00 9223372036854775807.000000
Testing hard unsigned long -> long double conversions 0.07user 0.02system 0:009elapsed 98%CPU
(0avgtext+0avgdata 9984maxresident)k
0inputs+512outputs (0major+4007minor)pagefaults 0swaps
Make[4]: *** [dt_arith.chkexe_] Error 1

Testing dtypes
etc
etc.

Has anyone got any suggestions for a solution?

Kind regards,

Chris Nelson.

The information in this email and in any attachment(s) is commercial in confidence. If you are not the named addressee(s) or if you receive this email in error then any distribution, copying or use of this communication or the information in it is strictly prohibited. Please notify us immediately by email at admin.internet(at)awe.co.uk, and then delete this message from your computer. While attachments are virus checked, AWE plc does not accept any liability in respect of any virus which is not detected. AWE Plc Registered in England and Wales Registration No 02763902 AWE, Aldermaston, Reading, RG7 4PR