インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス

論理演算の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。

#include <immintrin.h>


変数 定義
src

書き込みマスクの結果に応じて使用されるソース要素

k

セレクターとして使用される書き込みマスク

a

1 つ目のソースベクトルの要素

b

2 つ目のソースベクトルの要素

c

3 つ目のソースベクトルの要素

imm

比較プレディケート。次のいずれかの値を使用できます。

  • _MM_CMPINT_EQ - 等しい
  • _MM_CMPINT_LT - より小さい
  • _MM_CMPINT_LE - 以下
  • _MM_CMPINT_NE - 等しくない
  • _MM_CMPINT_NLT - より小さくない
  • _MM_CMPINT_GE - 以上
  • _MM_CMPINT_NLE - 以下でない
  • _MM_CMPINT_GT - より大きい


_mm_mask_andnot_pd

__m128d _mm_mask_andnot_pd(__m128d src, __mmask8 k, __m128d a, __m128d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandnpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_andnot_pd

__m128d _mm_maskz_andnot_pd(__mmask8 k, __m128d a, __m128d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandnpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_andnot_pd

__m256d _mm256_mask_andnot_pd(__m256d src, __mmask8 k, __m256d a, __m256d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandnpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_andnot_pd

__m256d _mm256_maskz_andnot_pd(__mmask8 k, __m256d a, __m256d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandnpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_andnot_pd

__m512d _mm512_andnot_pd(__m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vandnpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、結果を返します。



_mm512_mask_andnot_pd

__m512d _mm512_mask_andnot_pd(__m512d src, __mmask8 k, __m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vandnpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_andnot_pd

__m512d _mm512_maskz_andnot_pd(__mmask8 k, __m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vandnpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_andnot_ps

__m128 _mm_mask_andnot_ps(__m128 src, __mmask8 k, __m128 a, __m128 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandnps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_andnot_ps

__m128 _mm_maskz_andnot_ps(__mmask8 k, __m128 a, __m128 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandnps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_andnot_ps

__m256 _mm256_mask_andnot_ps(__m256 src, __mmask8 k, __m256 a, __m256 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandnps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_andnot_ps

__m256 _mm256_maskz_andnot_ps(__mmask8 k, __m256 a, __m256 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandnps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_andnot_ps

__m512 _mm512_andnot_ps(__m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vandnps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、結果を返します。



_mm512_mask_andnot_ps

__m512 _mm512_mask_andnot_ps(__m512 src, __mmask16 k, __m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vandnps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_andnot_ps

__m512 _mm512_maskz_andnot_ps(__mmask16 k, __m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vandnps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_and_pd

__m128d _mm_mask_and_pd(__m128d src, __mmask8 k, __m128d a, __m128d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_and_pd

__m128d _mm_maskz_and_pd(__mmask8 k, __m128d a, __m128d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_and_pd

__m256d _mm256_mask_and_pd(__m256d src, __mmask8 k, __m256d a, __m256d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_and_pd

__m256d _mm256_maskz_and_pd(__mmask8 k, __m256d a, __m256d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_and_pd

__m512d _mm512_and_pd(__m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vandpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、結果を返します。



_mm512_mask_and_pd

__m512d _mm512_mask_and_pd(__m512d src, __mmask8 k, __m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vandpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_and_pd

__m512d _mm512_maskz_and_pd(__mmask8 k, __m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vandpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_and_ps

__m128 _mm_mask_and_ps(__m128 src, __mmask8 k, __m128 a, __m128 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_and_ps

__m128 _mm_maskz_and_ps(__mmask8 k, __m128 a, __m128 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_and_ps

__m256 _mm256_mask_and_ps(__m256 src, __mmask8 k, __m256 a, __m256 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_and_ps

__m256 _mm256_maskz_and_ps(__mmask8 k, __m256 a, __m256 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vandps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_and_ps

__m512 _mm512_and_ps(__m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vandps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、結果を返します。



_mm512_mask_and_ps

__m512 _mm512_mask_and_ps(__m512 src, __mmask16 k, __m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vandps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_and_ps

__m512 _mm512_maskz_and_ps(__mmask16 k, __m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vandps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_or_pd

__m128d _mm_mask_or_pd(__m128d src, __mmask8 k, __m128d a, __m128d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_or_pd

__m128d _mm_maskz_or_pd(__mmask8 k, __m128d a, __m128d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_or_pd

__m256d _mm256_mask_or_pd(__m256d src, __mmask8 k, __m256d a, __m256d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_or_pd

__m256d _mm256_maskz_or_pd(__mmask8 k, __m256d a, __m256d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_mask_or_pd

__m512d _mm512_mask_or_pd(__m512d src, __mmask8 k, __m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_or_pd

__m512d _mm512_maskz_or_pd(__mmask8 k, __m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_or_pd

__m512d _mm512_or_pd(__m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、結果を返します。



_mm_mask_or_ps

__m128 _mm_mask_or_ps(__m128 src, __mmask8 k, __m128 a, __m128 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_or_ps

__m128 _mm_maskz_or_ps(__mmask8 k, __m128 a, __m128 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_or_ps

__m256 _mm256_mask_or_ps(__m256 src, __mmask8 k, __m256 a, __m256 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_or_ps

__m256 _mm256_maskz_or_ps(__mmask8 k, __m256 a, __m256 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_mask_or_ps

__m512 _mm512_mask_or_ps(__m512 src, __mmask16 k, __m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_or_ps

__m512 _mm512_maskz_or_ps(__mmask16 k, __m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_or_ps

__m512 _mm512_or_ps(__m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の OR (論理和) を計算し、結果を返します。



_mm_mask_xor_pd

__m128d _mm_mask_xor_pd(__m128d src, __mmask8 k, __m128d a, __m128d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vxorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_xor_pd

__m128d _mm_maskz_xor_pd(__mmask8 k, __m128d a, __m128d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vxorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_xor_pd

__m256d _mm256_mask_xor_pd(__m256d src, __mmask8 k, __m256d a, __m256d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vxorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_xor_pd

__m256d _mm256_maskz_xor_pd(__mmask8 k, __m256d a, __m256d b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vxorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_mask_xor_pd

__m512d _mm512_mask_xor_pd(__m512d src, __mmask8 k, __m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vxorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_xor_pd

__m512d _mm512_maskz_xor_pd(__mmask8 k, __m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vxorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_xor_pd

__m512d _mm512_xor_pd(__m512d a, __m512d b)

CPUID フラグ: AVX512DQ

命令: vxorpd

ab のパックド倍精度 (64 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、結果を返します。



_mm_mask_xor_ps

__m128 _mm_mask_xor_ps(__m128 src, __mmask8 k, __m128 a, __m128 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vxorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_xor_ps

__m128 _mm_maskz_xor_ps(__mmask8 k, __m128 a, __m128 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vxorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_xor_ps

__m256 _mm256_mask_xor_ps(__m256 src, __mmask8 k, __m256 a, __m256 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vxorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_xor_ps

__m256 _mm256_maskz_xor_ps(__mmask8 k, __m256 a, __m256 b)

CPUID フラグ: AVX512DQ、AVX512VL

命令: vxorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_mask_xor_ps

__m512 _mm512_mask_xor_ps(__m512 src, __mmask16 k, __m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vxorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_xor_ps

__m512 _mm512_maskz_xor_ps(__mmask16 k, __m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vxorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_xor_ps

__m512 _mm512_xor_ps(__m512 a, __m512 b)

CPUID フラグ: AVX512DQ

命令: vxorps

ab のパックド単精度 (32 ビット) 浮動小数点要素のビット単位の XOR (排他的論理和) を計算し、結果を返します。



_mm_mask_and_epi32

__m128i _mm_mask_and_epi32(__m128i src, __mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandd

ab のパックド 32 ビット整数のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_and_epi32

__m128i _mm_maskz_and_epi32(__mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandd

ab のパックド 32 ビット整数のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_and_epi32

__m256i _mm256_mask_and_epi32(__m256i src, __mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandd

ab のパックド 32 ビット整数のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_and_epi32

__m256i _mm256_maskz_and_epi32(__mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandd

ab のパックド 32 ビット整数のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_andnot_epi32

__m128i _mm_mask_andnot_epi32(__m128i src, __mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandnd

ab のパックド 32 ビット整数のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_andnot_epi32

__m128i _mm_maskz_andnot_epi32(__mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandnd

ab のパックド 32 ビット整数のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_andnot_epi32

__m256i _mm256_mask_andnot_epi32(__m256i src, __mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandnd

ab のパックド 32 ビット整数のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_andnot_epi32

__m256i _mm256_maskz_andnot_epi32(__mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandnd

ab のパックド 32 ビット整数のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_andnot_epi64

__m128i _mm_mask_andnot_epi64(__m128i src, __mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandnq

ab のパックド 64 ビット整数のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_andnot_epi64

__m128i _mm_maskz_andnot_epi64(__mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandnq

ab のパックド 64 ビット整数のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_andnot_epi64

__m256i _mm256_mask_andnot_epi64(__m256i src, __mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandnq

ab のパックド 64 ビット整数のビット単位の AND NOT (否定論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_andnot_epi64

__m256i _mm256_maskz_andnot_epi64(__mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandnq

ab のパックド 64 ビット整数のビット単位の AND NOT (否定論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_and_epi64

__m128i _mm_mask_and_epi64(__m128i src, __mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandq

ab のパックド 64 ビット整数のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_and_epi64

__m128i _mm_maskz_and_epi64(__mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandq

ab のパックド 64 ビット整数のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_and_epi64

__m256i _mm256_mask_and_epi64(__m256i src, __mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandq

ab のパックド 64 ビット整数のビット単位の AND (論理積) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_and_epi64

__m256i _mm256_maskz_and_epi64(__mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpandq

ab のパックド 64 ビット整数のビット単位の AND (論理積) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_or_epi32

__m128i _mm_mask_or_epi32(__m128i src, __mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpord

ab のパックド 32 ビット整数のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_or_epi32

__m128i _mm_maskz_or_epi32(__mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpord

ab のパックド 32 ビット整数のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_or_epi32

__m256i _mm256_mask_or_epi32(__m256i src, __mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpord

ab のパックド 32 ビット整数のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_or_epi32

__m256i _mm256_maskz_or_epi32(__mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpord

ab のパックド 32 ビット整数のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_or_epi64

__m128i _mm_mask_or_epi64(__m128i src, __mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vporq

ab のパックド 64 ビット整数のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_or_epi64

__m128i _mm_maskz_or_epi64(__mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vporq

ab のパックド 64 ビット整数のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_or_epi64

__m256i _mm256_mask_or_epi64(__m256i src, __mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vporq

ab のパックド 64 ビット整数のビット単位の OR (論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_or_epi64

__m256i _mm256_maskz_or_epi64(__mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vporq

ab のパックド 64 ビット整数のビット単位の OR (論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_ternarylogic_epi32

__m128i _mm_mask_ternarylogic_epi32(__m128i src, __mmask8 k, __m128i a, __m128i b, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogd

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 32 ビット整数の各ビットごとに、srcab の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を、書き込みマスク k を使用して戻り値の対応するビットに 32 ビット単位で書き込みます (マスクの対応するビットが設定されていない場合は src の 32 ビット要素がコピーされます)。



_mm_maskz_ternarylogic_epi32

__m128i _mm_maskz_ternarylogic_epi32(__mmask8 k, __m128i a, __m128i b, __m128i c, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogd

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 32 ビット整数の各ビットごとに、abc の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を、ゼロマスク k を使用して戻り値の対応するビットに 32 ビット単位で書き込みます (マスクの対応するビットが設定されていない場合は 32 ビット要素が 0 に設定されます)。



_mm_ternarylogic_epi32

__m128i _mm_ternarylogic_epi32(__m128i a, __m128i b, __m128i c, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogd

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 32 ビット整数の各ビットごとに、abc の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を戻り値の対応するビットに書き込みます。



_mm256_mask_ternarylogic_epi32

__m256i _mm256_mask_ternarylogic_epi32(__m256i src, __mmask8 k, __m256i a, __m256i b, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogd

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 32 ビット整数の各ビットごとに、srcab の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を、書き込みマスク k を使用して戻り値の対応するビットに 32 ビット単位で書き込みます (マスクの対応するビットが設定されていない場合は src の 32 ビット要素がコピーされます)。



_mm256_maskz_ternarylogic_epi32

__m256i _mm256_maskz_ternarylogic_epi32(__mmask8 k, __m256i a, __m256i b, __m256i c, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogd

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 32 ビット整数の各ビットごとに、abc の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を、ゼロマスク k を使用して戻り値の対応するビットに 32 ビット単位で書き込みます (マスクの対応するビットが設定されていない場合は 32 ビット要素が 0 に設定されます)。



_mm256_ternarylogic_epi32

__m256i _mm256_ternarylogic_epi32(__m256i a, __m256i b, __m256i c, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogd

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 32 ビット整数の各ビットごとに、abc の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を戻り値の対応するビットに書き込みます。



_mm_mask_ternarylogic_epi64

__m128i _mm_mask_ternarylogic_epi64(__m128i src, __mmask8 k, __m128i a, __m128i b, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogq

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 64 ビット整数の各ビットごとに、srcab の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を、書き込みマスク k を使用して戻り値の対応するビットに 64 ビット単位で書き込みます (マスクの対応するビットが設定されていない場合は src の 64 ビット要素がコピーされます)。



_mm_maskz_ternarylogic_epi64

__m128i _mm_maskz_ternarylogic_epi64(__mmask8 k, __m128i a, __m128i b, __m128i c, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogq

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 64 ビット整数の各ビットごとに、abc の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を、ゼロマスク k を使用して戻り値の対応するビットに 64 ビット単位で書き込みます (マスクの対応するビットが設定されていない場合は 64 ビット要素が 0 に設定されます)。



_mm_ternarylogic_epi64

__m128i _mm_ternarylogic_epi64(__m128i a, __m128i b, __m128i c, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogq

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 64 ビット整数の各ビットごとに、abc の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を戻り値の対応するビットに書き込みます。



_mm256_mask_ternarylogic_epi64

__m256i _mm256_mask_ternarylogic_epi64(__m256i src, __mmask8 k, __m256i a, __m256i b, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogq

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 64 ビット整数の各ビットごとに、srcab の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を、書き込みマスク k を使用して戻り値の対応するビットに 64 ビット単位で書き込みます (マスクの対応するビットが設定されていない場合は src の 64 ビット要素がコピーされます)。



_mm256_maskz_ternarylogic_epi64

__m256i _mm256_maskz_ternarylogic_epi64(__mmask8 k, __m256i a, __m256i b, __m256i c, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogq

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 64 ビット整数の各ビットごとに、abc の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を、ゼロマスク k を使用して戻り値の対応するビットに 64 ビット単位で書き込みます (マスクの対応するビットが設定されていない場合は 64 ビット要素が 0 に設定されます)。



_mm256_ternarylogic_epi64

__m256i _mm256_ternarylogic_epi64(__m256i a, __m256i b, __m256i c, int imm8)

CPUID フラグ: AVX512F、AVX512VL

命令: vpternlogq

ビット単位の 3 値論理により、imm8 の値によって指定されたオペランドが 3 つのバイナリー関数を実装します。各パックド 64 ビット整数の各ビットごとに、abc の対応するビットから imm8 への 3 ビットのインデックスを形成し、インデックスで指定された imm8 のビット位置にある値を戻り値の対応するビットに書き込みます。



_mm_mask_xor_epi32

__m128i _mm_mask_xor_epi32(__m128i src, __mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpxord

ab のパックド 32 ビット整数のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_xor_epi32

__m128i _mm_maskz_xor_epi32(__mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpxord

ab のパックド 32 ビット整数のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_xor_epi32

__m256i _mm256_mask_xor_epi32(__m256i src, __mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpxord

ab のパックド 32 ビット整数のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_xor_epi32

__m256i _mm256_maskz_xor_epi32(__mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpxord

ab のパックド 32 ビット整数のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_xor_epi64

__m128i _mm_mask_xor_epi64(__m128i src, __mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpxorq

ab のパックド 64 ビット整数のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_xor_epi64

__m128i _mm_maskz_xor_epi64(__mmask8 k, __m128i a, __m128i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpxorq

ab のパックド 64 ビット整数のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_xor_epi64

__m256i _mm256_mask_xor_epi64(__m256i src, __mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpxorq

ab のパックド 64 ビット整数のビット単位の XOR (排他的論理和) を計算し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_xor_epi64

__m256i _mm256_maskz_xor_epi64(__mmask8 k, __m256i a, __m256i b)

CPUID フラグ: AVX512F、AVX512VL

命令: vpxorq

ab のパックド 64 ビット整数のビット単位の XOR (排他的論理和) を計算し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。