clang支持_mm_cvtsi64x_si128

时间:2014-11-15 00:04:51

标签: clang

使用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是否支持这种内在函数,如果是,那么需要使用哪些编译标志来使用它?

1 个答案:

答案 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没有任何这些替代名称,但我可以调整我们的代码以使用非替代名称(我们的代码使用最后两个备用名称)上面的名字。)