c++ - SSE 错误 - 使用 m128i_i32 定义 __m128i 变量的字段

标签 c++ sse

以这种方式定义一个 __m128i 变量时:

__m128i a;
a.m128i_i32[0] = 65000;

我收到以下错误:

error: request for member ‘m128i_i32’ in ‘a’, which is of non-class type ‘__m128i {aka __vector(2) long long int}’ a.m128i_i32[0] = 65000;

我已经包含了以下头文件:

#include <x86intrin.h>
#include <emmintrin.h>
#include <smmintrin.h>

最佳答案

m128i_i32 是特定于 MSVC 的。而且您正在使用 GCC 或 Clang 进行编译(根据您的错误消息判断)。请改用 _mm_setr_epi32

__m128i a = _mm_setr_epi32(0, 1, 2, 3);

关于c++ - SSE 错误 - 使用 m128i_i32 定义 __m128i 变量的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47882091/

相关文章:

java - 像Java一样在类内部定义C++方法

c++ - 在 sdl 中使用不同的 alpha 值进行绘图

c++ - kcachegrind 显示我的 memcpy 未对齐

c - 快速将第二个字节复制到新的存储区

c++ - 如果它们是 16 字节对齐的,是否可以将 float 直接转换为 __m128?

c++ - SSE2 双倍乘法比标准乘法慢

c++ - C++11初始化变量时{}和=的区别

c++ - 为什么 MinGW 将 Win API 函数定义为宏?

c++ - 我可以在所有 MSVC >= 2013 上安全地使用哪些 SFINAE 技巧?

c++ - SSE2 : Double precision log function