Компиляция cos.c
void func() {
double a = __builtin_cos(3.0);
}
с использованием
clang -S -emit-llvm -c cos.c
У меня есть
define dso_local void @func() {
%1 = alloca double, align 8
%2 = call double @cos(double 3.000000e+00)
store double %2, double* %1, align 8
ret void
}
declare dso_local double @cos(double)
Но я хочу получить встроенные функции llvm @llvm.fcos.f64
для cos
вместо @cos
, то есть сгенерированный код должен быть таким
...
%2 = call double @llvm.fcos.f64(double 3.000000e+00)
...
}
declare double @llvm.cos.f64(double)
Как я могу заставить clang
сделать это?Может быть, я должен использовать другую функцию вместо __builtin_cos
?