c++ - SIMD:翻转四个压缩整数的符号

标签 c++ simd

假设我有四个压缩整数。

__m128i val = _mm_set_epi32(42,64,123,456);

翻转 val 中四个整数的符号(乘以 -1)的最快方法是什么?

最佳答案

您可以从一组 {0,0,0,0} 中减去您的实际值 [这可能是最快的],您可以与 {-1,-1,-1, -1}“全部”,然后添加 {1,1,1,1}。或者你可以乘以-1。

关于c++ - SIMD:翻转四个压缩整数的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14586651/

相关文章:

image-processing - 二进制图像上的快速像素计数 - ARM neon 内在函数 - iOS Dev

x86 - QWORD 将连续的 7 位洗牌到字节对齐与 SIMD SSE...AVX

c++ - 在 uint64_t 位掩码中高效加载/计算/打包 64 个双重比较结果

c++ - 编译 boost C++ 库 1.54 时出错

c++ - 链接 vs 2012 c++ GDAL

c++ - std::tuple 获取除最后一个元素之外的所有内容

c++ - 如何将信号连接到一个类的所有实例的插槽

c - 如何从 AVX 内在函数中获得用于计算基本统计数据的性能提升?

c++ - SSE/AVX 寄存器的非零字节索引

c++ - 哪个是用于编程竞赛的优秀 C++ BigInteger 类?