-fp-model选项是一组用来控制浮点数计算精度的选项,各个选项描述如下:
默认值,等同于不开任何fp-model选项,对其他选项无任何影响。
等同于打开-ffast-math,会开启各种损精度的优化,如交换结合律、强度折减等
关闭所有损害精度的优化,保证浮点结果的正确性。包括关闭交换结合律、强度折减、向零舍入、fma指令生成等优化。
开启浮点计算异常机制,编译器在此做的主要工作是考虑浮点异常的存在,阻碍不考虑浮点异常的优化。鲲鹏芯片暂时不支持浮点异常中断功能。
等同于打开以上-fp-model=precise -fp-model=except
根据浮点计算精度的需求加入相应的选项即可。
由于此选项是在gcc的基础上开发的,所以遵循gcc开源原有选项优先级行为不去干扰的原则。因此-fp-model的选项优先级为:
-fp-model=precise/strict/normal/fast/except = -ffast-math > -Ofast/-O3