次の表は、Fvec クラスの論理演算子と一般的な構文を列挙したものです。F32vec1 クラスの論理演算子は下位 32 ビットだけを使用します。
ビット単位演算 | 演算子 | 一般的な構文 |
---|---|---|
AND | & &= |
R = A & B; R &= A; |
OR | | |= |
R = A | B; R |= A; |
XOR | ^ ^= |
R = A ^ B; R ^= A; |
andnot | andnot | R = andnot(A); |
次の表は、論理演算子の標準的な構文と、対応する組込み関数を示したものです。F32vec1 クラスには対応するスカラ組込み関数がなく、パックドベクトル組込み関数の下位 32 ビットにアクセスする点に注意してください。
操作 | 戻り値 | 構文の使用例 | 組込み関数 |
---|---|---|---|
AND | 4 float | F32vec4 & = F32vec4 A & F32vec4 B; F32vec4 & &= F32vec4 A; |
_mm_and_ps |
2 double | F64vec2 R = F64vec2 A & F32vec2 B; F64vec2 R &= F64vec2 A; |
_mm_and_pd | |
1 float | F32vec1 R = F32vec1 A & F32vec1 B; F32vec1 R &= F32vec1 A; |
_mm_and_ps | |
OR | 4 float | F32vec4 R = F32vec4 A | F32vec4 B; F32vec4 R |= F32vec4 A; |
_mm_or_ps |
2 double | F64vec2 R = F64vec2 A | F32vec2 B; F64vec2 R |= F64vec2 A; |
_mm_or_pd | |
1 float | F32vec1 R = F32vec1 A | F32vec1 B; F32vec1 R |= F32vec1 A; |
_mm_or_ps | |
XOR | 4 float | F32vec4 R = F32vec4 A ^ F32vec4 B; F32vec4 R ^= F32vec4 A; |
_mm_xor_ps |
2 double | F64vec2 R = F64vec2 A ^ F364vec2 B; F64vec2 R ^= F64vec2 A; |
_mm_xor_pd | |
1 float | F32vec1 R = F32vec1 A ^ F32vec1 B; F32vec1 R ^= F32vec1 A; |
_mm_xor_ps | |
ANDNOT | 2 double | F64vec2 R = andnot(F64vec2 A, F64vec2 B); |
_mm_andnot_pd |