組み込み関数を使用して、Xeon Phi で条件付き計算を行っています。double 値を使用する必要があるため、__mmask8 が必要です。いくつかの比較関数を使用する限り問題はありませんが、それらのマスクを変更したい場合、型の競合が発生します。ドキュメントには、単精度に使用される__mmask16を変更するための関数がたくさんありますが、倍精度に使用できる関数は 1 つもありません。
私は次のようなことをしたい:
int tmp = 0;
for(i = 0; i < 8; i++) {
tmp = index[i];
tmp = tmp << 1;
}
__mmask8 something = _mm512_int2mask(tmp);
ドキュメントは、__mmask16 に対してのみ指定された関数を提供します。ドキュメントのVector Mask Intrinsic の章にあるすべての操作関数についても同様です。
それらの機能も使えますか?
「__mmask16 のすべてのビットを使用する」のような規則はありますか?
前もって感謝します