C++中使用SIMD的方法

一、参考资料

博客:https://blog.csdn.net/Mahfaeraak/article/details/88687252

1.SIMD(MMX/SSE/AVX)变量命名规范心得

2.SIMD指令集发展历程表(MMX、SSE、AVX等)

3.Intrinsics头文件与SIMD指令集、Visual Studio版本对应表

4.如何用gcc去编译SIMD代码

4.SSE指令集学习

5.SSE指令集相关

6.SSE4.1指令集系列之一

7.C/C++指令集介绍以及优化(主要针对SSE优化)

8.Inter指令集查询:https://software.intel.com/sites/landingpage/IntrinsicsGuide

9.An Introduction to GCC Compiler Intrinsics in Vector Processing

10.Compiler Intrinsics

11.Header files for x86 SIMD intrinsics

12.https://github.com/Technologicat/cython-sse-example

13.IntelSSE指令集整理(百度文库)

二、常用指令集

1.extern __m128i _mm_alignr_epi8 (__m128i a, __m128i b, int n);

操作:

t1[255:128] = a;
t1[127:0] = b;
t1[255:0] = t1[255:0] >> (8 * n); // unsigned shift
r[127:0] = t1[127:0];

三、头文件

下面的头文件是按照intel指令集的诞生时间进行排序:

// MMX
#include "mmintrin.h"

// SSE
#include "xmmintrin.h"

// SSE2
#include "emmintrin.h"

// SSE3
#include "pmmintrin.h"

// SSSE3
#include "tmmintrin.h"

// SSE4.1
#include "smmintrin.h"

// SSE4.2
#include "nmmintrin.h"

// AVX、AVX2、FMA、AVX-512、KNC、SVML等
#include "immintrin.h"

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值