Compartilhar via


ibfe (sm5 - asm)

Dado um intervalo de bits em um número, mova esses bits para o LSB e assine estender o MSB do intervalo.

ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle]
Item Descrição
Dest
[in] O endereço dos resultados da operação.
src0
[in] A largura do campo de bits.
src1
[in] O deslocamento de campo de bits.
src2
[in] O valor a ser deslocado.

Comentários

Os 5 bits LSB de src0 fornecem a largura do campo de bits (0-31).

Os 5 bits LSB de src1 fornecem o deslocamento de campo de bits (0-31).

O exemplo a seguir mostra como usar esta instrução.

        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
                }

Use esta instrução para desempacotar inteiros ou sinalizadores com sinal.

Esta instrução se aplica aos seguintes estágios de sombreador:

Vértice Casco Domínio Geometry Pixel Computação
X X X X X X

Modelo de sombreador mínimo

Esta instrução tem suporte nos seguintes modelos de sombreador:

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 não
Modelo de sombreador 4 não
Modelo de Sombreador 3 (DirectX HLSL) não
Modelo de Sombreador 2 (DirectX HLSL) não
Modelo de Sombreador 1 (DirectX HLSL) não

Assembly do Modelo de Sombreador 5 (DirectX HLSL)