【发布时间】:2012-05-25 10:21:58
【问题描述】:
我想针对缺少浮点单元的 ARM 设备优化我的 C++ 代码。我的大部分函数都使用浮点数,我正在考虑将它们更改为定点。
对于 ARM 设备是否有真正的好处,或者编译器是否足够聪明,可以自己做到这一点?
例如,这在 ARM 设备上会更有效吗
//unsigned char const* input
unsigned int a, b;
a= *input++ << 12;
b= *input++ << 12;
a*=1024; //0.25 shifted 12 bits
b*=1024; //0.25 shifted 12 bits
*output++ = (a+b) >> 24;
比做
float a,b;
a= *input++;
b= *input++;
a=a/4;
b=a/4;
*output++ = a+b;
【问题讨论】:
-
GCC 据称有 fixed point arithmetic 作为扩展名。
标签: c++ optimization arm fixed-point