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 | sì |
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 |