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

Blu*_*lue 2 c++ sse

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

__m128i a;
a.m128i_i32[0] = 65000;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误:请求'a'中的成员'm128i_i32',它是非类类型'__m128i {aka __vector(2) long long int}' a.m128i_i32[0] = 65000;

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

#include <x86intrin.h>
#include <emmintrin.h>
#include <smmintrin.h>
Run Code Online (Sandbox Code Playgroud)

iva*_*ult 5

m128i_i32是 MSVC 特定的。并且您正在使用 GCC 或 Clang 进行编译(根据您的错误消息判断)。使用_mm_setr_epi32来代替。

__m128i a = _mm_setr_epi32(0, 1, 2, 3);
Run Code Online (Sandbox Code Playgroud)