【发布时间】:2015-09-17 12:36:12
【问题描述】:
所以,AVX 有一个来自immintrin.h 的函数,它应该允许将两个__m128i 值的串联存储到一个__m256i 值中。功能是
__m256i _mm256_set_m128i (__m128i hi, __m128i lo)
但是,当我使用它时,就像这样:
__m256i as[2]; __m128i s[4]; as[0] = _mm256_setr_m128i(s[0], s[1]);
我得到一个编译错误:
error: incompatible types when assigning to type ‘__m256i’ from type ‘int’
我真的不明白为什么会这样。非常感谢任何帮助!
【问题讨论】:
-
你确定这个函数在那个头文件中吗?当我尝试使用
#include <immintrin.h>之后的函数时,我收到警告消息“_mm256_set_m128i的隐式声明”。在 C 中,隐式声明意味着编译器假定函数将返回int,这也将解释编译器错误。