論理演算子

下の「Fvec論理演算子の戻り値の対応表」は、Fvecクラスの論理演算子とその一般的な構文とを列挙したものです。F32vec1クラスの論理演算子のときは下位32ビットだけを使用します。

Fvec論理演算子の戻り値の対応表

ビット単位演算 演算子 一般的な構文

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ビットにアクセスするのに注意してください。

Fvecクラスの論理演算

操作 戻り値 構文の使用例 組込み関数

AND

floatが4個

F32vec4 & = F32vec4 A & F32vec4 B;
F32vec4 & &= F32vec4 A;

_mm_and_ps

 

doubleが2個

F64vec2 R = F64vec2 A & F32vec2 B;
F64vec2 R &= F64vec2 A;

_mm_and_pd

 

floatが1個

F32vec1 R = F32vec1 A & F32vec1 B;
F32vec1 R &= F32vec1 A;

_mm_and_ps

OR

floatが4個

F32vec4 R = F32vec4 A | F32vec4 B;
F32vec4 R |= F32vec4 A;

_mm_or_ps

 

doubleが2個

F64vec2 R = F64vec2 A | F32vec2 B;
F64vec2 R |= F64vec2 A;

_mm_or_pd

 

floatが1個

F32vec1 R = F32vec1 A | F32vec1 B;
F32vec1 R |= F32vec1 A;

_mm_or_ps

XOR

floatが4個

F32vec4 R = F32vec4 A ^ F32vec4 B;
F32vec4 R ^= F32vec4 A;

_mm_xor_ps

 

doubleが2個

F64vec2 R = F64vec2 A ^ F364vec2 B;
F64vec2 R ^= F64vec2 A;

_mm_xor_pd

 

floatが1個

F32vec1 R = F32vec1 A ^ F32vec1 B;
F32vec1 R ^= F32vec1 A;

_mm_xor_ps

ANDNOT

doubleが2個

F64vec2 R = andnot(F64vec2 A,
F64vec2 B);

_mm_andnot_pd