tmu*_*sch 5 c++ sse compiler-errors intrinsics sse2
我正在尝试将 log2 应用于 __m128 变量。像这样:
#include <immintrin.h>
int main (void) {
__m128 two_v = {2.0, 2.0, 2.0, 2.0};
__m128 log2_v = _mm_log2_ps(two_v); // log_2 := log(2)
return 0;
}
Run Code Online (Sandbox Code Playgroud)
尝试编译它会返回此错误:
error: initializing '__m128' with an expression of
incompatible type 'int'
__m128 log2_v = _mm_log2_ps(two_v); // log_2 := log(2)
^ ~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
我该如何修复它?
您查看的 immintrin.h 和用于编译的 immintrin.h 是不同的。您可能正在研究特定于 Intel 的标头(例如 /opt/intel/include/immintrin.h),而您的编译器使用默认的 immintrin.h
正如正确所说,extern __m128 _mm_log2_ps(__m128 v1)
是SVML 例程,所以我看到的第一个解决方案是使用Intel Compiler。对于非商业开发,它对 Linux 是免费的。
虽然您可以在使用不同编译器进行编译期间将自定义 immintrin.h 文件的包含路径指定为第一个参数,但我认为您会遇到太多错误 - 只是因为这个标头是英特尔特定的。
归档时间: |
|
查看次数: |
571 次 |
最近记录: |