Freigeben über


ibfe (sm5 - asm)

Wenn Sie einen Bereich von Bits in einer Zahl verwenden, verschieben Sie diese Bits in den LSB, und erweitern Sie den MSB des Bereichs.

ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle]
Element BESCHREIBUNG
Dest
[in] Die Adresse der Ergebnisse des Vorgangs.
src0
[in] Die Bitfeldbreite.
src1
[in] Der Bitfeldoffset.
src2
[in] Der zu verschiebende Wert.

Bemerkungen

Die LSB 5 Bits von src0 geben die Bitfeldbreite (0-31) an.

Die LSB 5 Bits von src1 stellen den Bitfeldoffset (0-31) bereit.

Im folgenden Beispiel wird gezeigt, wie Sie diese Anweisung verwenden.

        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
                }

Verwenden Sie diese Anweisung, um ganze Zahlen oder Flags mit Vorzeichen zu entpacken.

Diese Anweisung gilt für die folgenden Shaderphasen:

Scheitelpunkt Hull Domain Geometrie Pixel Compute
X X X X X X

Minimales Shadermodell

Diese Anweisung wird in den folgenden Shadermodellen unterstützt:

Shadermodell Unterstützt
Shadermodell 5 ja
Shadermodell 4.1 Nein
Shadermodell 4 Nein
Shadermodell 3 (DirectX HLSL) Nein
Shadermodell 2 (DirectX HLSL) Nein
Shadermodell 1 (DirectX HLSL) Nein

Assembly des Shadermodells 5 (DirectX HLSL)