- 并行编程方法与优化实践
- 刘文志
- 223字
- 2025-02-21 21:55:47
1.1.3 比较
SSE内置函数支持的比较操作及其数据类型如表1-3所示。不但有测试向量中元素是否为全0或全1的指令,还有几乎所有可能的比较测试指令。
表1-3 SSE判断指令
比较指令返回的结果是掩码,即如果比较成立的话,则对应位置的值为1,否则为0。
下面给出通用的cmp指令定义,其他的cmp*指令的语义都可归为cmp的某种特殊情况。
__m128 _mm_cmp_ps(__m128 a, __m128 b, const int mask) r[0] = (a[0] op b[0]) ? oxffffffff:0; r[1] = (a[1] op b[1]) ? oxffffffff:0; r[2] = (a[2] op b[2]) ? oxffffffff:0; r[3] = (a[3] op b[3]) ? oxffffffff:0;
其中mask的数值表示了执行的具体比较操作(op),可查阅Intel指令集手册,本节就不详细列出了。