SIMD copysign broken with VSX and GCC 9.4
Summary
Recent main
fails SIMD unit tests on a Power9 host.
[ FAILED ] 5 tests, listed below:
[ FAILED ] SimdMathTest.copysign
[ FAILED ] SimdMathTest.asin
[ FAILED ] SimdMathTest.acos
[ FAILED ] SimdMathTest.asinSingleAccuracy
[ FAILED ] SimdMathTest.acosSingleAccuracy
ListedForcesTests and some regression tests fail, but that's likely just a consequence of broken SIMD.
Full log: power9-simd.log
Exact steps to reproduce
On dev-power9
, module load cmake/3.23.1
, cmake ../.. -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=RelWithAssert
:-) GROMACS - gmx, 2023-dev-20221117-68ac0a8644 (-:
Executable: /tmp/gromacs/build/gcc-9/./bin/gmx
Data prefix: /tmp/gromacs (source tree)
Working dir: /tmp/gromacs/build/gcc-9
Command line:
gmx -version
GROMACS version: 2023-dev-20221117-68ac0a8644
GIT SHA1 hash: 68ac0a86442adf876d85c4e33667436f39b040e2
Precision: mixed
Memory model: 64 bit
MPI library: thread_mpi
OpenMP support: enabled (GMX_OPENMP_MAX_THREADS = 128)
GPU support: disabled
SIMD instructions: IBM_VSX
CPU FFT library: fftw-3.3.8
GPU FFT library: none
Multi-GPU FFT: none
TNG support: enabled
Hwloc support: disabled
Tracing support: disabled
C compiler: /usr/bin/gcc GNU 9.4.0
C compiler flags: -fexcess-precision=fast -funroll-all-loops -mcpu=power9 -mtune=power9 -mvsx -pthread -Wall -Wno-unused -Wunused-value -Wunused-parameter -Wextra -Wno-sign-compare -Wpointer-arith -Wundef -Werror=stringop-truncation -Wno-missing-field-initializers -O3
C++ compiler: /usr/bin/g++ GNU 9.4.0
C++ compiler flags: -fexcess-precision=fast -funroll-all-loops -mcpu=power9 -mtune=power9 -mvsx -pthread -Wall -Wextra -Wpointer-arith -Wmissing-declarations -Wundef -Wstringop-truncation -Wno-missing-field-initializers -Wno-cast-function-type-strict -fopenmp -O3