SSE内置函数支持的逻辑运算及其数据类型如表1-2所示。不但支持与、或和异或,还支持移位,但是不直接支持非,这是个奇怪的地方(但可以通过andnot实现)。
表1-2 SSE逻辑指令
以si128为例,展示andnot操作的定义如下:
__m128i _mm_andnot_si128(__m128i a, __m128i b); r = (~a) & b;
如果b的位模式为全1,那么andnot就实现了not运算。