firstbit (sm5 - asm)
LSB または MSB から、数値で設定された最初のビットを検索します。
firstbit{_hi|_lo|_shi} dest[.mask], src0[.swizzle] |
---|
Item | 説明 |
---|---|
Dest |
[入力]firstbit_loの場合は LSB から、firstbit_hiの場合は MSB から、 src0 で設定された最初のビットの整数位置。 |
src0 |
[入力]入力整数。 |
解説
この操作は、firstbit_loの場合は LSB から、firstbit_hiの場合は MSB から始まる 32 ビット入力の最初のビット セットの整数位置を返します。 たとえば、0x00000001 のfirstbit_loは 0 を返します。 0x10000000のfirstbit_hiは 3 を返します。
firstbit_shi (符号付き) は、数値が負の場合に MSB から最初の 0 を返します。それ以外の場合は、MSB から最初の 1 を返します。
一致するものが見つからない場合、命令のすべてのバリアントは ~0 (32 ビット レジスタで0xffffffff) を返します。
この命令を使用して、ビットフィールド内のセット ビットをすばやく列挙するか、数値で最大の 2 の累乗を見つけます。
この命令は、次のシェーダー ステージに適用されます。
Vertex | Hull | Domain | ジオメトリ | ピクセル | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Mimimum シェーダー モデル
この命令は、次のシェーダー モデルでサポートされています。
シェーダー モデル | サポートされています |
---|---|
シェーダー モデル 5 | はい |
シェーダー モデル 4.1 | no |
シェーダー モデル 4 | no |
シェーダー モデル 3 (DirectX HLSL) | no |
シェーダー モデル 2 (DirectX HLSL) | no |
シェーダー モデル 1 (DirectX HLSL) | no |