小编bun*_*un9的帖子

为什么 clang 使 Quake 快速反平方根代码比 GCC 快 10 倍?(带有 *(long*)float 型双关语)

我正在尝试对快速反平方根进行基准测试。完整代码在这里:

#include <benchmark/benchmark.h>
#include <math.h>

float number = 30942;
    
static void BM_FastInverseSqrRoot(benchmark::State &state) {
    for (auto _ : state) {
        // from wikipedia:
        long i;
        float x2, y;
        const float threehalfs = 1.5F;

        x2 = number * 0.5F;
        y  = number;
        i  = * ( long * ) &y;
        i  = 0x5f3759df - ( i >> 1 );
        y  = * ( float * ) &i;
        y  = y * ( threehalfs - ( x2 * y * …
Run Code Online (Sandbox Code Playgroud)

c++ assembly gcc x86-64 clang

4
推荐指数
1
解决办法
782
查看次数

标签 统计

assembly ×1

c++ ×1

clang ×1

gcc ×1

x86-64 ×1