ibfe (sm5 - asm)

Dato un intervallo di bit in un numero, spostare i bit nell'LSB e firmare estendere l'MSB dell'intervallo.

ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle]
Elemento Descrizione
Dest
[in] Indirizzo dei risultati dell'operazione.
src0
[in] Larghezza del campo di bit.
src1
[in] Offset del campo di bit.
src2
[in] Valore da spostare.

Commenti

I bit LSB 5 di src0 forniscono la larghezza del campo di bit (0-31).

I bit LSB 5 di src1 forniscono l'offset del campo di bit (0-31).

Nell'esempio seguente viene illustrato come usare questa istruzione.

        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
                }

Utilizzare questa istruzione per decomprimere interi o flag con segno.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertice Scafo Dominio Geometria Pixel Calcolo
X X X X X X

Modello minimo shader

Questa istruzione è supportata nei modelli di shader seguenti:

Modello di shader Supportato
Modello shader 5
Modello shader 4.1 no
Modello shader 4 no
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Assembly modello shader 5 (DirectX HLSL)