#include <immintrin.h>int main (voID) { __m128 two_v = {2.0,2.0,2.0}; __m128 log2_v = _mm_log2_ps(two_v); // log_2 := log(2) return 0;}
尝试编译它会返回此错误:
error: initializing '__m128' with an Expression of incompatible type 'int' __m128 log2_v = _mm_log2_ps(two_v); // log_2 := log(2) ^ ~~~~~~~~~~~~~~~~~~
我该如何解决?
解决方法 您查看的immintrin.h和用于编译的immintrin.h是不同的.可能,您正在研究特定于Intel的标头(在/opt/intel/include/immintrin.h之类的地方),而您的编译器使用默认的immintrin.h
正如所说,extern __m128 _mm_log2_ps(__ m128 v1)是SVML routine,所以
我看到的第一个解决方案是使用Intel Compiler.对于非商业开发,它可以免费用于linux.
虽然您可以使用不同的编译器在编译期间将自定义immintrin.h文件的包含路径指定为第一个参数,但我认为您会得到太多错误 – 只是因为此标头是特定于Intel的.
总结以上是内存溢出为你收集整理的c – C:x86 Intel内在函数使用_mm_log2_ps() – >错误:不兼容类型’int’?全部内容,希望文章能够帮你解决c – C:x86 Intel内在函数使用_mm_log2_ps() – >错误:不兼容类型’int’?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)