ibfe (sm5 - asm)
数値のビット範囲が指定されている場合は、それらのビットを LSB にシフトし、符号によって範囲の MSB が拡張されます。
ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle] |
---|
Item | 説明 |
---|---|
Dest |
[入力]操作の結果のアドレス。 |
src0 |
[入力]ビットフィールドの幅。 |
src1 |
[入力]ビットフィールド オフセット。 |
src2 |
[入力]シフトする値。 |
注釈
src0 の LSB 5 ビットは、ビットフィールド幅 (0 から 31) を提供します。
src1 の LSB 5 ビットは、ビットフィールド オフセット (0 から 31) を提供します。
次の例は、この命令の使用方法を示しています。
Given width, offset:
if( width == 0 )
{
dest = 0
}
else if( width + offset < 32 )
{
shl dest, src2, 32-(width+offset)
ishr dest, dest, 32-width
}
else
{
ishr dest, src2, offset
}
この命令を使用して、符号付き整数またはフラグをアンパックします。
この命令は、次のシェーダー ステージに適用されます。
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 |