次の方法で共有


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

シェーダー モデル 5 アセンブリ (DirectX HLSL)