如何在 SSE 中使用 imm8
How to use imm8 in SSE?
我有一个__m128i
寄存器,里面装满了32位整数。我想从寄存器中提取第 4 个元素。
例如如果
int extract;
__m128i register = _mm_set_epi32(3,2,1,0);
那么我希望"提取"的值为 3。
似乎_mm_extract_epi32((应该做这项工作。但是,它有一个 imm8 参数。
图像:英特尔网站上的说明
我只是不明白imm8
是如何工作的(或者在这种情况下会起作用(。有人可以详细说明如何使用imm8作为参数吗?
imm8
需要是一个文字常量,即在编译时已知的数字。另请注意,register
是一个保留字。例如
#include <smmintrin.h> // SSE 4.1
__m128i v = _mm_set_epi32(3, 2, 1, 0); // initialise v to 4 x 32 bit int values
int extract = _mm_extract_epi32(v, 3); // extract element 3
相关文章:
- C++ SSE 内部函数:将结果存储在变量中
- Constexpr and SSE intrinsics
- 如何使用SSE将__m128i注册乘以浮点因子?
- 使用SSE内部函数复制少量数据时出现问题
- 可以在 macOS 上启用的最低支持的 SSE 标志是什么?
- SSE 标志应该如何与现代 CMake 一起添加?
- 快速 SSE 射线 - 4 三角形交叉点
- 使用 SSE 以最快的速度缩小 8 位灰度图像
- 如何用SSE优化矩阵3乘3乘法与点?
- 使用双精度运算的快速 SSE 低精度指数
- 手动矢量化/SSE 用于 C++ 中的复杂问题
- 单精度矩阵运算的特征性能 AVX 与 SSE 没有区别?
- 编写 std::copysign 的可移植 SSE/AVX 版本
- SSE 内联汇编和可能的 g++ 优化错误
- SSE 整数 2^n 的 2 次方,对于没有 AVX2 的 32 位整数
- 带有SSE的有条件陈述
- SSE和iostream:浮点类型的错误输出
- 使用 SSE/AVX 获取存储在__m256d中的值的总和
- 如何使用 sse 将无符号字符转换为无符号短字符
- 如何在 SSE 中使用 imm8