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);