bfi (sm5 - asm)
给定数字 LSB 的位范围,请将该位数置于另一个数字中的任何偏移量。
bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle] |
---|
项 | 说明 |
---|---|
dest |
[in]结果的地址。 |
src0 |
[in]要从 src2 获取的位字段宽度。 |
src1 |
[in]用于替换 src3 中的位位的位字段偏移量。 |
src2 |
[in]位取自的数字。 |
src3 |
[in]要替换的位的数字。 |
注解
LSB 5 位 src0 提供从 src2 获取的位字段宽度 (0-31) 。
src1 的 LSB 5 位提供位字段偏移量 (0-31) ,以开始替换从 src3 读取的数字中的位。
Given width, offset:
bitmask = (((1 << width)-1) << offset) & 0xffffffff
dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)
此指令用于打包整数或标志。
此说明适用于以下着色器阶段:
顶点 | 外壳 | 域 | Geometry | 像素 | 计算 |
---|---|---|---|---|---|
X | X | X | X | X | X |
最小着色器模型
以下着色器模型中支持此指令:
着色器模型 | 支持 |
---|---|
着色器模型 5 | 是 |
着色器模型 4.1 | 否 |
着色器模型 4 | 否 |
着色器模型 3 (DirectX HLSL) | 否 |
着色器模型 2 (DirectX HLSL) | 否 |
着色器模型 1 (DirectX HLSL) | 否 |