firstbit (sm5 - asm)

从 LSB 或 MSB 查找数字中设置的第一个位。

firstbit{_hi|_lo|_shi} dest[.mask], src0[.swizzle]
说明
dest
[in] src0 中设置的第一个位的整数位置,从 firstbit_lo 的 LSB 开始,对于firstbit_hi从 MSB 开始。
src0
[in]输入整数。

备注

此操作返回从 LSB 开始的 32 位输入中设置的第一个位的整数位置(对于 firstbit_lo)或 MSB(对于firstbit_hi)。 例如,0x00000001 上的firstbit_lo返回 0。 0x10000000 上的firstbit_hi返回 3。

如果数字为负数,则为带符号) 的 firstbit_shi (从 MSB 返回前 0;否则,它将从 MSB 返回前 1 个。

如果找不到匹配项,则指令的所有变体在 32 位寄存器) 返回 ~0 (0xffffffff。

使用此指令快速枚举位域中的设置位,或查找数字中 2 的最大幂。

此指令适用于以下着色器阶段:

顶点 外壳 Geometry 像素 计算
X X X X X X

Mimimum 着色器模型

以下着色器模型中支持此指令:

着色器模型 支持
着色器模型 5
着色器模型 4.1
着色器模型 4
着色器模型 3 (DirectX HLSL)
着色器模型 2 (DirectX HLSL)
着色器模型 1 (DirectX HLSL)

着色器模型 5 程序集 (DirectX HLSL)