HarmonyOS 编译问题?

在C函数中调用如下函数

#include <arm_neon.h>
void cacleNumber()
{
  float a  = 86.0625;
  float b  = 1.05555558;
  float c = 75.8142395;

  float value = a * b - c;

  float32x4_t nA =  vmovq_n_f32(a);
  float32x4_t nB =  vmovq_n_f32(b);
  float32x4_t nC =  vmovq_n_f32(c);

  float32x4_t nValue = vsubq_f32(vmulq_f32(nA, nB), nC);
  float totalValue[4];
  vst1q_f32(totalValue, nValue);
}

会发现使用C编译后计算的结果和使用neon计算的结果是不相同的?

C计算的结果是:15.0295124

neon的计算结果是:15.0295105

希望能尽快给一个结论?

阅读 501
1 个回答

添加编译选项add\_compile\_options(-ffp-contract=off)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进