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 |