32位比较比64位比较快吗?

32位的比较比64位的比较快吗?

我在看这个文件http://www.netlib.org/fdlibm/s_cos.c

他们有这段代码

    /* |x| ~< pi/4 */
    ix &= 0x7fffffff;
    if(ix <= 0x3fe921fb) return __kernel_cos(x,z);

我理解第一行,它计算x的绝对值。但为什么比较如此复杂?通过比较前 32 位而不是全部 64 位,性能是否有任何改进?我能写吗

long unsigned int ix = *(long unsigned int * (&x));
ix &= 0x7fffffffffffffff;
if (ix < 3fe921fb54442d18) 
/* What comes next */

并期望在 64 位机器上获得相同的速度性能?虽然我同意这会消耗更多内存。

0x3fe921fb54442d18 是 pi/2。

以上是32位比较比64位比较快吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>