使用clang-3.5.0(但不是gcc-4.9.2,也不是intel编译器)我收到消息:
use of undeclared identifier '_mm_cvtsi64x_si128'; did you mean '_mm_cvtsi64_si128'
这是我在intel intrisics guide中记录的固有内容,而且有问题的代码确实包含了内部指南中所要求的内容:
#include "emmintrin.h"
我想知道这个错误是否是由于没有传递正确的-mcpu =标志,但我尝试了-mcpu = nahelem,这对于这个sse2指令应该足够了。不知道clang是否支持这种内在函数,如果是,那么需要使用哪些编译标志来使用它?
答案 0 :(得分:3)
在intel的emmintrin.h中看起来有几个替代内在名称:
#define _mm_load_pd1 _mm_load1_pd
#define _mm_set_pd1 _mm_set1_pd
#define _mm_store_pd1 _mm_store1_pd
#define _mm_cvtsi64x_si128 _mm_cvtsi64_si128
#define _mm_cvtsi128_si64x _mm_cvtsi128_si64
看起来clang的emmintrin.h没有任何这些替代名称,但我可以调整我们的代码以使用非替代名称(我们的代码使用最后两个备用名称)上面的名字。)