gpt4 book ai didi

c++ - 编译器是否内联调用 std::frexp?

转载 作者:行者123 更新时间:2023-11-27 22:37:36 25 4
gpt4 key购买 nike

编译器资源管理器显示程序在循环中调用 frexp

这是否意味着编译器没有内嵌 frexp 的代码?

代码是用g++ -Ofast -march=native编译的

Code at compiler explorer

测试(C++):

#include <Eigen/Eigen>
using namespace Eigen;
void log2_extract_mantissa(ArrayXXf& x) {
// rip mantissa out of floats and store the result as int in-place.
std::int32_t* int_data = reinterpret_cast<std::int32_t*>(x.data());
for(Index i = 0; i < x.size(); ++i) {
std::frexp(x.data()[i], int_data + i);
}
}

程序集:

...
.L3:
vmovss xmm0, DWORD PTR [rax+rbx*4]
lea rdi, [r12+rbx*4]
call frexpf
mov rax, QWORD PTR [rbp+16]
inc rbx
imul rax, QWORD PTR [rbp+8]
cmp rbx, rax
jl .L7
...

最佳答案

不,它没有。

call frexpf 是对 frexpf 的函数调用。

关于c++ - 编译器是否内联调用 std::frexp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52261641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com