次の方法で共有


bfi (sm5 - asm)

数値の LSB からのビット範囲を指定した場合は、そのビット数を任意のオフセットの別の数に配置します。

bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle]
Item 説明
Dest
[入力]結果のアドレス。
src0
[入力] src2 から取得するビットフィールドの幅。
src1
[入力] src3 のビットを置換するためのビットフィールド オフセット。
src2
[入力]ビットの取得元の数値。
src3
[入力]置き換えられるビットを含む数値。

解説

src0 の LSB 5 ビットは、src2 から取得するビットフィールド幅 (0 から 31) を提供します。

src1 の LSB 5 ビットは、 src3 から読み取られた数値のビットの置換を開始するビットフィールド オフセット (0 から 31) を提供します。

Given width, offset:
                bitmask = (((1 << width)-1) << offset) & 0xffffffff
                dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)

この命令は、整数またはフラグをパッキングするために使用されます。

この命令は、次のシェーダー ステージに適用されます。

Vertex Hull Domain ジオメトリ ピクセル Compute
X X X X X X

最小シェーダー モデル

この命令は、次のシェーダー モデルでサポートされています。

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1 no
シェーダー モデル 4 no
シェーダー モデル 3 (DirectX HLSL) no
シェーダー モデル 2 (DirectX HLSL) no
シェーダー モデル 1 (DirectX HLSL) no

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