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 |