firstbit (sm5 - asm)

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

firstbit{_hi|_lo|_shi} dest[.mask], src0[.swizzle]
Item Description
dest
[in] src0 中第一个位集的整数位置,从 lSB 开始为 firstbit_lo,MSB 表示firstbit_hi。
src0
[in]输入整数。

注解

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

如果数字为负数,则firstbit_shi(s 表示已签名)从 MSB 返回前 0 个;否则,它将从 MSB 返回前 1 个。

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

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

此说明适用于以下着色器阶段:

顶点 船体 域名 Geometry 像素 计算
X X X X X X

最小着色器模型

以下着色器模型中支持此说明:

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

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