6 ms·
Examples on Compiler Explorer: By default, GCC generates FMA instructions on Haswell and later: https://godbolt.org/z/GKb7G4nW9 https://godbolt.org/z/GKb7G4nW
by thxg 4y ago
Examples on Compiler Explorer:
By default, GCC generates FMA instructions on Haswell and later:
https://godbolt.org/z/GKb7G4nW9 https://godbolt.org/z/GKb7G4nW9
but it does not with -std=c99 on the command line:
https://godbolt.org/z/KTnqcT6aW https://godbolt.org/z/KTnqcT6aW
Similarly on 32-bit x86, floating-point uses x87 by default, and some intermediate calculations are in 80-bit arithmetic:
https://godbolt.org/z/4q31oEe14 https://godbolt.org/z/4q31oEe14
With -std=c99 instead, we can see additional load/stores, which round down results to 64 bits:
https://godbolt.org/z/qdf4hceca https://godbolt.org/z/qdf4hceca