This issue is to inform maintainers that the quad-precision scalar dispatcher qdispscalar.c compiles FMA-optimized code paths unconditionally on x86-64, which can cause SIGILL (illegal instruction) crashes on CPUs that don't support FMA instructions (x86-64-v2 / Sandy Bridge era processors). We noticed this issue in version 3.9 but it still persists in current in-development source.
Configure.cmake builds PRECFMA_SCALAR with avx and fma flags on x86
|
set(CLANG_FLAGS_ENABLE_PURECFMA_SCALAR "-mavx2;-mfma") |
Configure.cmake unconditionally enables PURECFMA_SCALAR for all arch
|
set(COMPILER_SUPPORTS_PURECFMA_SCALAR True) |
This issue is to inform maintainers that the quad-precision scalar dispatcher
qdispscalar.ccompiles FMA-optimized code paths unconditionally on x86-64, which can cause SIGILL (illegal instruction) crashes on CPUs that don't support FMA instructions (x86-64-v2 / Sandy Bridge era processors). We noticed this issue in version 3.9 but it still persists in current in-development source.Configure.cmakebuilds PRECFMA_SCALAR with avx and fma flags on x86sleef/Configure.cmake
Line 192 in 7623d6c
Configure.cmakeunconditionally enables PURECFMA_SCALAR for all archsleef/Configure.cmake
Line 360 in 7623d6c