SSE2的一些常用指令集介绍
来源:互联网 发布:linux anaconda怎么用 编辑:程序博客网 时间:2024/05/18 03:21
开门见山,前段时间学习OpenCV的FAST算法,中间有很多SSE2的指令集,深受其惑。下面我把学习过程中学到的一些指令集介绍给大家,希望能对大家有所帮助!
__m128i被称为128bits的整数,对其进行赋值时,可以调用__m128i_mm_set1_epi8或者__m128i_mm_set1_epi816等,前者就是把128bits设置为16个8bits的整数值,后一个例子就是把128bits设置成8个16bits的整数值。
_mm_loadu_si128表示:Loads 128-bit value;即加载128位值。
_mm_max_epu8 (a,b)表示:比较a和b中对应的无符号的8bits的整数,取其较大值,重复这个过程16次。即:r0=max(a0,b0),...,r15=max(a15,b15)
_mm_min_epi8(a,b)表示:大体意思同上,不同的是这次比较的是有符号的8bits的整数。
_mm_setzero_si128表示:将128bits的值都赋值为0.
_mm_subs_epu8(a,b)表示:a和b中对应的8bits数相减,r0= UnsignedSaturate(a0-b0),...,r15= UnsignedSaturate(a15 - b15)
_mm_adds_epi8(a,b)表示:a和b中对应的8bits数相加,r0=SingedSaturate(a0+b0),...,r15=SingedSaturate(a15+b15).
_mm_unpackhi_epi64(a,b)表示:a和b的高64位交错,低64位舍去。
_mm_srli_si128(a,imm)表示:将a进行逻辑右移imm位,高位填充0。
_mm_cvtsi128_si32(a)表示:将a的低32位赋值给一个32bits的整数,返回值为r=a0;
_mm_xor_si128(a,b)表示:将a和b进行按位异或,即r=a^b。
_mm_or_si128(a,b)表示:将a和b进行或运算,即r=a|b。
_mm_and_si128(a,b)表示:将a和b进行与运算,即r=a&b。
_mm_cmpgt_epi8(a,b)表示:分别比较a的每个8bits整数是否大于b的对应位置的8bits整数,若大于,则返回0xffff,否则返回0x0。
即r0=(a0>b0)?0xff:0x0 r1=(a1>b1)?0xff:0x0...r15=(a15>b15)?0xff:0x0
- SSE2的一些常用指令集介绍
- 原媒体SSE2的指令优化集
- sse2指令集
- SSE2指令集
- SSE2指令集
- SSE2指令--使用SSE2的整型指令:逻辑操作指令
- SSE2 指令
- SSE2指令 __m128i类型的解析
- SSE2指令--使用SSE2的整型指令:算数操作指令-1
- SSE2指令--使用SSE2的整型指令:算数操作指令-2
- SSE2指令--使用SSE2的整型指令:算数操作指令-3
- SSE2指令集系列之二----整数运算相关指令
- SSE2指令集系列之一----浮点运算指令
- x86平台读取cpu支持sse2指令集的代码,以及原子操作的代码
- linux 的一些常用指令
- Mysql 一些常用的指令
- 常用的一些Linux指令
- 常用的一些GIT指令
- strStr
- WEKA使用教程(经典教程转载)
- strcop(),strcmp(),strcat(),strstr(),strchr()实现
- Android应用签名
- 很像动态规划的贪心
- SSE2的一些常用指令集介绍
- HDFS源码分析心跳汇报之数据结构初始化
- AWK分割的用法
- 简单实用Python程序
- Linux之tar 压缩解压 加密解密
- Android SDK Samples,学习Android的好方法
- JSP标准标签
- 大型网站架构之路
- POJ 1077-Eight(BFS+优先队列)