logo资料库

SIMD指令集大全.doc

第1页 / 共112页
第2页 / 共112页
第3页 / 共112页
第4页 / 共112页
第5页 / 共112页
第6页 / 共112页
第7页 / 共112页
第8页 / 共112页
资料共112页,剩余部分请下载后查看
1、
2、
3、
4、
5、
5、
SSE Intrinsics 各函数介绍 目录 1、SSE Intrinsics 各函数介绍............................................................................................................1 2、SSE2 Intrinsics 各函数介绍................................................................................................... 16 3、SSE3 和 SSSE3 Intrinsics 各函数介绍..................................................................................36 4、SSE4.1 和 SSE4.2 Intrinsics 各函数介绍............................................................................. 43 5、MMX Intrinsics 各函数介绍..................................................................................................58 5、AVX Intrinsics 各函数介绍.........................................................................................................66 6、Intrinsic 函数使用 ....................................................................................................................100 1、SSE Intrinsics 各函数介绍 2014-08-06 16:35 296 人阅读 评论(0) 收藏 举报 分类: CPU Instrunction Set(8) 原文地址:http://blog.csdn.net/fengbingchun/article/details/19293081 SIMD 相关头文件包括: [cpp] view plain copy 1. //#include //MMX 2. //#include //SSE(also include ivec.h) 3. //#include //SSE2(also include fvec.h) 4. 5. 6. #include //MMX 7. #include //SSE(include mmintrin.h) 8. #include //SSE2(include xmmintrin.h)
9. #include //SSE3(include emmintrin.h) 10. #include //SSSE3(include pmmintrin.h) 11. #include //SSE4.1(include tmmintrin.h) 12. #include //SSE4.2(include smmintrin.h) 13. #include //AES(include nmmintrin.h) 14. #include //AVX(include wmmintrin.h) 15. #include //(include immintrin.h) mmintrin.h 为 MMX 头文件,其中__m64 的定义为: [cpp] view plain copy 1. typedef union __declspec(intrin_type) _CRT_ALIGN(8) __m64 2. { 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. } __m64; unsigned __int64 float __int8 __int16 __int32 __int64 unsigned __int8 unsigned __int16 unsigned __int32 m64_u64; m64_f32[2]; m64_i8[8]; m64_i16[4]; m64_i32[2]; m64_i64; m64_u8[8]; m64_u16[4]; m64_u32[2]; xmmintrin.h 为 SSE 头文件,此头文件里包含 MMX 头文件,其中__m128 的定义为: [cpp] view plain copy 1. typedef union __declspec(intrin_type) _CRT_ALIGN(16) __m128 { 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. } __m128; float unsigned __int64 __int8 __int16 __int32 __int64 unsigned __int8 unsigned __int16 unsigned __int32 m128_f32[4]; m128_u64[2]; m128_i8[16]; m128_i16[8]; m128_i32[4]; m128_i64[2]; m128_u8[16]; m128_u16[8]; m128_u32[4];
xmmintrin.h 文件中各函数的介绍: [cpp] view plain copy 1. /*----------Floating Point Intrinsics Using Streaming SIMD Extensions------- -----*/ 2. //Arithmetic Operations(Floating Point ):add、sub、mul、div、sqrt、rcp、min、 max 3. //---------------------说明:_ps 结尾的指令表示对 4 个单精度浮点数同时进行运算, 4. //_ss 结尾的指令表示仅对 4 个单精度浮点数最低位的浮点数进行运算 --------------------- 5. //返回一个__m128 的寄存器,仅将寄存器_A 和寄存器_B 最低对应位置的 32bit 单精度浮点数相 加, 6. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 7. //则返回寄存器为 r=(_A0+_B0, _A1, _A2, _A3) 8. extern __m128 _mm_add_ss(__m128 _A, __m128 _B); 9. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数相加, 10. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 11. //则返回寄存器 r0=_A0+_B0, r1=_A1+_B1, r2=_A2+_B2, r3=_A3+_B3 12. extern __m128 _mm_add_ps(__m128 _A, __m128 _B); 13. //返回一个__m128 的寄存器,仅将寄存器_A 和寄存器_B 最低对应位置的 32bit 单精度浮点数相 减, 14. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 15. //则返回寄存器为 r=(_A0-_B0, _A1, _A2, _A3) 16. extern __m128 _mm_sub_ss(__m128 _A, __m128 _B); 17. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数相减, 18. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 19. //则返回寄存器 r0=_A0-_B0, r1=_A1-_B1, r2=_A2-_B2, r3=_A3-_B3 20. extern __m128 _mm_sub_ps(__m128 _A, __m128 _B); 21. //返回一个__m128 的寄存器,仅将寄存器_A 和寄存器_B 最低对应位置的 32bit 单精度浮点数相 乘, 22. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 23. //则返回寄存器为 r=(_A0*_B0, _A1, _A2, _A3) 24. extern __m128 _mm_mul_ss(__m128 _A, __m128 _B); 25. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数相乘, 26. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 27. //则返回寄存器 r0=_A0*_B0, r1=_A1*_B1, r2=_A2*_B2, r3=_A3*_B3 28. extern __m128 _mm_mul_ps(__m128 _A, __m128 _B); 29. //返回一个__m128 的寄存器,仅将寄存器_A 和寄存器_B 最低对应位置的 32bit 单精度浮点数相 除, 30. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 31. //则返回寄存器为 r=(_A0/_B0, _A1, _A2, _A3) 32. extern __m128 _mm_div_ss(__m128 _A, __m128 _B);
33. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数相除, 34. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 35. //则返回寄存器 r0=_A0/_B0, r1=_A1/_B1, r2=_A2/_B2, r3=_A3/_B3 36. extern __m128 _mm_div_ps(__m128 _A, __m128 _B); 37. //返回一个__m128 的寄存器,仅将寄存器_A 最低对应位置的 32bit 单精度浮点数开平方, 38. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3) 39. //则返回寄存器为 r=(sqrt(_A0), _A1, _A2, _A3) 40. extern __m128 _mm_sqrt_ss(__m128 _A); 41. //返回一个__m128 的寄存器,将寄存器_A 中 4 个 32bit 单精度浮点数开平方, 42. //例如_A=(_A0,_A1,_A2,_A3),则返回寄存器为 43. //r=(sqrt(_A0), sqrt(_A1), sqrt(_A2), sqrt(_A3)) 44. extern __m128 _mm_sqrt_ps(__m128 _A); 45. //返回一个__m128 的寄存器,仅将寄存器_A 最低对应位置的 32bit 单精度浮点数取倒数, 46. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3) 47. //则返回寄存器为 r=(recip(_A0), _A1, _A2, _A3) 48. extern __m128 _mm_rcp_ss(__m128 _A); 49. //返回一个__m128 的寄存器,将寄存器_A 中 4 个 32bit 单精度浮点数取倒数, 50. //例如_A=(_A0,_A1,_A2,_A3),则返回寄存器为 51. //r=(recip(_A0), recip(_A1), recip(_A2), recip(_A3)) 52. extern __m128 _mm_rcp_ps(__m128 _A); 53. //返回一个__m128 的寄存器,仅将寄存器_A 最低对应位置的 32bit 单精度浮点数取平方根的倒 数, 54. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3) 55. //则返回寄存器为 r=(recip(sqrt(_A0)), _A1, _A2, _A3) 56. extern __m128 _mm_rsqrt_ss(__m128 _A); 57. //返回一个__m128 的寄存器,将寄存器_A 中 4 个 32bit 单精度浮点数取平方根的倒数, 58. //例如_A=(_A0,_A1,_A2,_A3),则返回寄存器为 59. //r=(recip(sqrt(_A0)), recip(sqrt(_A1)), recip(sqrt(_A2)), recip(sqrt(_A3))) 60. extern __m128 _mm_rsqrt_ps(__m128 _A); 61. //返回一个__m128 的寄存器,仅将寄存器_A 和寄存器_B 最低对应位置的 32bit 单精度浮点数取 最小值, 62. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 63. //则返回寄存器为 r=(min(_A0,_B0), _A1, _A2, _A3) 64. extern __m128 _mm_min_ss(__m128 _A, __m128 _B); 65. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数取最小值, 66. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 67. //则返回寄存器 r0=min(_A0,_B0), r1=min(_A1,_B1), r2=min(_A2,_B2), r3=min(_A3,_B3) 68. extern __m128 _mm_min_ps(__m128 _A, __m128 _B); 69. //返回一个__m128 的寄存器,仅将寄存器_A 和寄存器_B 最低对应位置的 32bit 单精度浮点数取 最大值, 70. //其余位置取寄存器_A 中的数据,例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 71. //则返回寄存器为 r=(max(_A0,_B0), _A1, _A2, _A3)
72. extern __m128 _mm_max_ss(__m128 _A, __m128 _B); 73. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数取最大值, 74. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 75. //则返回寄存器 r0=max(_A0,_B0), r1=max(_A1,_B1), r2=max(_A2,_B2), r3=max(_A3,_B3) 76. extern __m128 _mm_max_ps(__m128 _A, __m128 _B); 77. 78. //Logical Operations(SSE):and、andnot、or、xor 79. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数分别进行按位 与运算, 80. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 81. //则返回寄存器 r0=_A0 & _B0, r1=_A1 & _B1, r2=_A2 & _B2, r3=_A3 & _B3 82. extern __m128 _mm_and_ps(__m128 _A, __m128 _B); 83. //返回一个__m128 的寄存器,将寄存器_A 对应位置的 32bit 单精度浮点数的非和寄存器_B 对应 位置的 32bit 84. //单精度浮点数分别进行按位与运算,例如 _A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 85. //则返回寄存器 r0=~_A0 & _B0, r1=~_A1 & _B1, r2=~_A2 & _B2, r3=~_A3 & _B3 86. extern __m128 _mm_andnot_ps(__m128 _A, __m128 _B); 87. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数分别进行按位 或运算, 88. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 89. //则返回寄存器 r0=_A0 | _B0, r1=_A1 | _B1, r2=_A2 | _B2, r3=_A3 | _B3 90. extern __m128 _mm_or_ps(__m128 _A, __m128 _B); 91. //返回一个__m128 的寄存器,将寄存器_A 和_B 的对应位置的 32bit 单精度浮点数分别进行按位 异或运算, 92. //例如_A=(_A0,_A1,_A2,_A3), _B=(_B0,_B1,_B2,_B3), 93. //则返回寄存器 r0=_A0 ^ _B0, r1=_A1 ^ _B1, r2=_A2 ^ _B2, r3=_A3 ^ _B3 94. extern __m128 _mm_xor_ps(__m128 _A, __m128 _B); 95. 96. //Comparison Intrinsics(SSE):==、<、<=、>、>=、!=、不小于、不小于等于、不大于、不 大于等于 97. //返回一个__m128 的寄存器,Compares for equality, 98. //r0=(_A0 == _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 99. extern __m128 _mm_cmpeq_ss(__m128 _A, __m128 _B); 100. //返回一个__m128 的寄存器,Compares for equality, 101. //r0=(_A0 == _B0) ? 0xffffffff : 0x0, r1=(_A1 == _B1) ? 0xffffffff : 0x0, 102. //r2=(_A2 == _B2) ? 0xffffffff : 0x0, r3=(_A3 == _B3) ? 0xffffffff : 0x0 103. extern __m128 _mm_cmpeq_ps(__m128 _A, __m128 _B); 104. //返回一个__m128 的寄存器,Compares for less than, 105. //r0=(_A0 < _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 106. extern __m128 _mm_cmplt_ss(__m128 _A, __m128 _B); 107. //返回一个__m128 的寄存器,Compares for less than,
108. //r0=(_A0 < _B0) ? 0xffffffff : 0x0, r1=(_A1 < _B1) ? 0xffffffff : 0x0, 109. //r2=(_A2 < _B2) ? 0xffffffff : 0x0, r3=(_A3 < _B3) ? 0xffffffff : 0x0 110. extern __m128 _mm_cmplt_ps(__m128 _A, __m128 _B); 111. //返回一个__m128 的寄存器,Compares for less than or equal, 112. //r0=(_A0 <= _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 113. extern __m128 _mm_cmple_ss(__m128 _A, __m128 _B); 114. //返回一个__m128 的寄存器,Compares for less than or equal, 115. //r0=(_A0 <= _B0) ? 0xffffffff : 0x0, r1=(_A1 <= _B1) ? 0xffffffff : 0x0, 116. //r2=(_A2 <= _B2) ? 0xffffffff : 0x0, r3=(_A3 <= _B3) ? 0xffffffff : 0x0 117. extern __m128 _mm_cmple_ps(__m128 _A, __m128 _B); 118. //返回一个__m128 的寄存器,Compares for greater than, 119. //r0=(_A0 > _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 120. extern __m128 _mm_cmpgt_ss(__m128 _A, __m128 _B); 121. //返回一个__m128 的寄存器,Compares for greater than, 122. //r0=(_A0 > _B0) ? 0xffffffff : 0x0, r1=(_A1 > _B1) ? 0xffffffff : 0x0, 123. //r2=(_A2 > _B2) ? 0xffffffff : 0x0, r3=(_A3 > _B3) ? 0xffffffff : 0x0 124. extern __m128 _mm_cmpgt_ps(__m128 _A, __m128 _B); 125. //返回一个__m128 的寄存器,Compares for greater than or equal, 126. //r0=(_A0 >= _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 127. extern __m128 _mm_cmpge_ss(__m128 _A, __m128 _B); 128. //返回一个__m128 的寄存器,Compares for greater than or equal, 129. //r0=(_A0 >= _B0) ? 0xffffffff : 0x0, r1=(_A1 >= _B1) ? 0xffffffff : 0x0, 130. //r2=(_A2 >= _B2) ? 0xffffffff : 0x0, r3=(_A3 >= _B3) ? 0xffffffff : 0x0 131. extern __m128 _mm_cmpge_ps(__m128 _A, __m128 _B); 132. //返回一个__m128 的寄存器,Compares for inequality, 133. //r0=(_A0 != _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 134. extern __m128 _mm_cmpneq_ss(__m128 _A, __m128 _B); 135. //返回一个__m128 的寄存器,Compares for inequality, 136. //r0=(_A0 != _B0) ? 0xffffffff : 0x0, r1=(_A1 != _B1) ? 0xffffffff : 0x0, 137. //r2=(_A2 != _B2) ? 0xffffffff : 0x0, r3=(_A3 != _B3) ? 0xffffffff : 0x0 138. extern __m128 _mm_cmpneq_ps(__m128 _A, __m128 _B); 139. //返回一个__m128 的寄存器,Compares for not less than, 140. //r0= !(_A0 < _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 141. extern __m128 _mm_cmpnlt_ss(__m128 _A, __m128 _B); 142. //返回一个__m128 的寄存器,Compares for not less than, 143. //r0=!(_A0 < _B0) ? 0xffffffff : 0x0, r1=!(_A1 < _B1) ? 0xffffffff : 0x0, 144. //r2=!(_A2 < _B2) ? 0xffffffff : 0x0, r3=!(_A3 < _B3) ? 0xffffffff : 0x0 145. extern __m128 _mm_cmpnlt_ps(__m128 _A, __m128 _B); 146. //返回一个__m128 的寄存器,Compares for not less than or equal 147. //r0= !(_A0 <= _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3
148. extern __m128 _mm_cmpnle_ss(__m128 _A, __m128 _B); 149. //返回一个__m128 的寄存器,Compares for not less than or equal 150. //r0=!(_A0 <= _B0) ? 0xffffffff : 0x0, r1=!(_A1 <= _B1) ? 0xffffffff : 0x0, 151. //r2=!(_A2 <= _B2) ? 0xffffffff : 0x0, r3=!(_A3 <= _B3) ? 0xffffffff : 0x0 152. extern __m128 _mm_cmpnle_ps(__m128 _A, __m128 _B); 153. //返回一个__m128 的寄存器,Compares for not greater than, 154. //r0=!(_A0 > _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 155. extern __m128 _mm_cmpngt_ss(__m128 _A, __m128 _B); 156. //返回一个__m128 的寄存器,Compares for not greater than, 157. //r0=!(_A0 > _B0) ? 0xffffffff : 0x0, r1=!(_A1 > _B1) ? 0xffffffff : 0x0, 158. //r2=!(_A2 > _B2) ? 0xffffffff : 0x0, r3=!(_A3 > _B3) ? 0xffffffff : 0x0 159. extern __m128 _mm_cmpngt_ps(__m128 _A, __m128 _B); 160. //返回一个__m128 的寄存器,Compares for not greater than or equal, 161. //r0=!(_A0 >= _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 162. extern __m128 _mm_cmpnge_ss(__m128 _A, __m128 _B); 163. //返回一个__m128 的寄存器,Compares for not greater than or equal, 164. //r0=!(_A0 >= _B0) ? 0xffffffff : 0x0, r1=!(_A1 >= _B1) ? 0xffffffff : 0x0, 165. //r2=!(_A2 >= _B2) ? 0xffffffff : 0x0, r3=!(_A3 >= _B3) ? 0xffffffff : 0x0 166. extern __m128 _mm_cmpnge_ps(__m128 _A, __m128 _B); 167. //返回一个__m128 的寄存器,Compares for ordered, 168. //r0=(_A0 ord? _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 169. extern __m128 _mm_cmpord_ss(__m128 _A, __m128 _B); 170. //返回一个__m128 的寄存器,Compares for ordered, 171. //r0=(_A0 ord? _B0) ? 0xffffffff : 0x0, r1=(_A1 ord? _B1) ? 0xffffffff : 0x 0, 172. //r2=(_A2 ord? _B2) ? 0xffffffff : 0x0, r3=(_A3 ord? _B3) ? 0xffffffff : 0x 0 173. extern __m128 _mm_cmpord_ps(__m128 _A, __m128 _B); 174. //返回一个__m128 的寄存器,Compares for unordered, 175. //r0=(_A0 unord? _B0) ? 0xffffffff : 0x0, r1=_A1, r2=_A2, r3=_A3 176. extern __m128 _mm_cmpunord_ss(__m128 _A, __m128 _B); 177. //返回一个__m128 的寄存器,Compares for unordered, 178. //r0=(_A0 unord? _B0) ? 0xffffffff : 0x0, r1=(_A1 unord? _B1) ? 0xffffffff : 0x0, 179. //r2=(_A2 unord? _B2) ? 0xffffffff : 0x0, r3=(_A3 unord? _B3) ? 0xffffffff : 0x0 180. extern __m128 _mm_cmpunord_ps(__m128 _A, __m128 _B); 181. //返回一个 0 或 1 的整数, Compares the lower single-precision, floating-point value of
182. //a and b for a equal to b,If a and b are equal, 1 is returned. Otherwise, 183. //0 is returned. If a or b is a NaN, 1 is returned 184. //r=(_A0 == _B0) ? 0x1 : 0x0 185. extern int _mm_comieq_ss(__m128 _A, __m128 _B); 186. //返回一个 0 或 1 的整数,If a is less than b, 1 is returned. Otherwise, 187. //0 is returned. If a or b is a NaN, 1 is returned, 188. //r=(_A0 < _B0) ? 0x1 : 0x0 189. extern int _mm_comilt_ss(__m128 _A, __m128 _B); 190. //返回一个 0 或 1 的整数,If a is less than or equal to b, 1 is returned. 191. //Otherwise, 0 is returned. If a or b is a NaN, 1 is returned, 192. //r=(_A0 <= _B0) ? 0x1 : 0x0 193. extern int _mm_comile_ss(__m128 _A, __m128 _B); 194. //返回一个 0 或 1 的整数,If a is greater than b, 1 is returned. 195. //Otherwise, 0 is returned. If a or b is a NaN, 1 is returned, 196. //r=(_A0 > _B0) ? 0x1 : 0x0 197. extern int _mm_comigt_ss(__m128 _A, __m128 _B); 198. //返回一个 0 或 1 的整数,If a is greater than or equal to b, 1 is returned. 199. //Otherwise, 0 is returned. If a or b is a NaN, 1 is returned, 200. //r=(_A0 >= _B0) ? 0x1 : 0x0 201. extern int _mm_comige_ss(__m128 _A, __m128 _B); 202. //返回一个 0 或 1 的整数,If a and b are not equal, 1 is returned. 203. //Otherwise, 0 is returned. If a or b is a NaN, 1 is returned, 204. //r=(_A0 != _B0) ? 0x1 : 0x0 205. extern int _mm_comineq_ss(__m128 _A, __m128 _B); 206. //返回一个 0 或 1 的整数,If a and b are equal, 1 is returned. 207. //Otherwise, 0 is returned. If a or b is a NaN, 1 is returned, 208. //r=(_A0 == _B0) ? 0x1 : 0x0 209. extern int _mm_ucomieq_ss(__m128 _A, __m128 _B); 210. //返回一个 0 或 1 的整数,If a is less than b , 1 is returned. 211. //Otherwise, 0 is returned. If a or b is a NaN, 1 is returned, 212. //r=(_A0 < _B0) ? 0x1 : 0x0 213. extern int _mm_ucomilt_ss(__m128 _A, __m128 _B); 214. //返回一个 0 或 1 的整数,If a is less than or equal to b, 1 is returned. 215. //Otherwise, 0 is returned. If a or b is a NaN, 1 is returned, 216. //r=(_A0 <= _B0) ? 0x1 : 0x0 217. extern int _mm_ucomile_ss(__m128 _A, __m128 _B); 218. //返回一个 0 或 1 的整数,If a is greater than b, 1 is returned. 219. //Otherwise, 0 is returned. If a or b is a NaN, 1 is returned, 220. //r=(_A0 > _B0) ? 0x1 : 0x0 221. extern int _mm_ucomigt_ss(__m128 _A, __m128 _B); 222. //返回一个 0 或 1 的整数,If a is greater than or equal to b, 1 is returned. 223. //Otherwise, 0 is returned,r=(_A0 >= _B0) ? 0x1 : 0x0 224. extern int _mm_ucomige_ss(__m128 _A, __m128 _B);
分享到:
收藏