SSE系列内置函数中的shuffle函数

本文详细介绍了SSE系列内置函数中与shuffle相关的宏和函数,包括_ mm_shuffle_pd, _mm_shuffle_ps以及_mm_shuffle_epi16。通过分析,展示了如何使用这些函数来构造和操作数据。特别地,文章探讨了_mm_shuffle_epi8的实现可能性,并提供了一段利用_mm_shuffle_epi8实现特定功能的代码示例。" 104544388,9151031,"SpringBoot整合JDBC, Mybatis, JPA实战指南
摘要由CSDN通过智能技术生成

SSE 系列内置函数中的 shuffle 函数

邮箱: quarrying@qq.com
博客: http://www.cnblogs.com/quarryman/
发布时间: 2017年04月18日
版权声明: 自由分享, 保持署名-非商业用途-非衍生, 知识共享3.0协议。
水平有限, 欢迎大家批评指正!

这份博文总结了 SSE 系列内置函数中与 shuffle 有关的宏和函数。分析验证了 _mm_shuffle_epi16 存在的可能性,并利用 _mm_shuffle_epi8 实现了该函数。

下面是 SSE 系列内置函数中与 shuffle 有关的 intrinsic 函数:

// Integer shuffle, SSE
extern __m64 _mm_shuffle_pi16(__m64 _A, int _Imm);

// SP FP shuffle, SSE
extern __m128 _mm_shuffle_ps(__m128 _A, __m128 _B, unsigned int _Imm);

// DP FP shuffle, SSE2
extern __m128d _mm_shuffle_pd(__m128d _A, __m128d _B, int _Imm);

// Integer shuffle, SSE2
extern __m128i _mm_shuffle_epi32(__m128i _A, int _Imm);
extern __m128i _mm_shufflehi_epi16(__m128i _A, int _Imm);
extern __m128i _mm_shufflelo_epi16(__m128i _A, int _Imm);

// Integer shuffle, SSSE3
extern __m128i _mm_shuffle_epi8 (__m128i a, __m128i b);
extern __m64 _mm_shuffle_pi8 (__m64 a, __m64 b);

1. _mm_shuffle_pd_MM_SHUFFLE2

可以使用 _MM_SHUFFLE2 来构造 _mm_shuffle_pd 中的参数 _Imm, _MM_SHUFFLE2SSE2 中定义的一个宏, 定义如下

#define _MM_SHUFFLE2(x,y) (((x)<<1) | (y))

因为 __m128d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值