FP_CONTRACT OFF
this is more a reminder than a real issue. In some places where we have expressions like a*b+c, with -march=native the compiler might use a FMA. But if we don't want a FMA to be used, even with -march=native, in principle we could set FP_CONTRACT to OFF. However this is currently ignored by gcc. We could also try -std=c17 or -ffp-contract=off.
References:
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37845
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=20785
- Handbook of FLoating-Point Arithmetic, section 6.2.3.2 (program contract2fma.c on https://www.vinc17.net/research/fptest.html).