ibfe (sm5 - asm)

Verschieben Sie bei einem Bereich von Bits in einer Zahl diese Bits auf den LSB, und erweitern Sie das 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 stellen die Bitfeldbreite (0-31) bereit.

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

Im folgenden Beispiel wird die Verwendung dieser Anweisung veranschaulicht.

        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 Shaderstufen:

Scheitelpunkt Rumpf Domain Geometrie Pixel Compute
X X X X X X

Shader-Mindestmodell

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

Shadermodell 5-Assembly (DirectX HLSL)