嗨,我有一些优化问题。
我试图编译GCC的测试之一,内建函数:glibC和bioniC之间的差异
#include <stdio.h>
#ifdef HAVE_C99_RUNTIME
double test1 (double x)
{
return __builtin_pow (x, 1/3);
}
double test2 (double x)
{
return __builtin_pow (x, 4./3.);
}
double test3a (double x)
{
return __builtin_pow (x, 5./3.);
}
double test3b (double x)
{
return __builtin_pow (x, -5./3.);
}
double test4 (double x)
{
return __builtin_pow (x, 7./3.);
}
#endif
我试图与未来2种方法来进行编译:
1路:
gcc -mglibc -O -ffast-math -std=c99 -fno-ident -S -o builtins-58.s
而在输出汇编文件中的所有call pow
改为call cbrt
- 其预计的
2路:
gcc -mbionic -O -ffast-math -std=c99 -fno-ident -S -o builtins-58.s
随着使用-mbionic
代替-mglibc
我得到的输出与call pow
是否有人知道如何optmimization
为builtin
功能Bionic
你的问题是什么? –
@AmigableClarkKant为什么优化glibc和仿生的内建函数是不同的? – Arseniy
函数是否返回相同的值? –