ibfe (sm5 - asm)
给定数字中的位范围,将这些位移动到 LSB 并签名扩展该范围的 MSB。
ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle] |
---|
项 | 说明 |
---|---|
dest |
[in]操作结果的地址。 |
src0 |
[in]位域宽度。 |
src1 |
[in]位域偏移量。 |
src2 |
[in]要移动的值。 |
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
}
使用此指令解压缩带符号整数或标志。
此指令适用于以下着色器阶段:
顶点 | 外壳 | 域 | Geometry | 像素 | 计算 |
---|---|---|---|---|---|
X | x | x | x | x | x |
以下着色器模型中支持此指令:
着色器模型 | 支持 |
---|---|
着色器模型 5 | 是 |
着色器模型 4.1 | 否 |
着色器模型 4 | 否 |
着色器模型 3 (DirectX HLSL) | 否 |
着色器模型 2 (DirectX HLSL) | 否 |
着色器模型 1 (DirectX HLSL) | 否 |