> Using compiler option -march=native create code that is not compliant with > floating point standards for multiplication.
See the documentation of -ffp-contract=STYLE in the manual: '-ffp-contract=STYLE' '-ffp-contract=off' disables floating-point expression contraction. '-ffp-contract=fast' enables floating-point expression contraction such as forming of fused multiply-add operations if the target has native support for them. '-ffp-contract=on' enables floating-point expression contraction if allowed by the language standard. This is implemented for C and C++, where it enables contraction within one expression, but not across different statements. The default is '-ffp-contract=off' for C in a standards compliant mode ('-std=c11' or similar), '-ffp-contract=fast' otherwise. -- Eric Botcazou