ibfe (sm5 - asm)
Compte tenu d’une plage de bits dans un nombre, déplacez ces bits vers le LSB et signez étendre le MSB de la plage.
ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle] |
---|
Élément | Description |
---|---|
Dest |
[in] Adresse des résultats de l’opération. |
src0 |
[in] Largeur du champ de bits. |
src1 |
[in] Décalage du champ de bits. |
src2 |
[in] Valeur à déplacer. |
Notes
Le LSB 5 bits de src0 fournit la largeur du champ de bits (0-31).
Les 5 bits LSB de src1 fournissent le décalage de champ de bits (0-31).
L’exemple suivant montre comment utiliser cette instruction.
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
}
Utilisez cette instruction pour décompresser des entiers signés ou des indicateurs.
Cette instruction s’applique aux étapes de nuanceur suivantes :
Sommet | Coque | Domain | Géométrie | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Modèle de nuanceur minimal
Cette instruction est prise en charge dans les modèles de nuanceur suivants :
Modèle de nuanceur | Prise en charge |
---|---|
Modèle de nuanceur 5 | Oui |
Modèle de nuanceur 4.1 | non |
Modèle de nuanceur 4 | non |
Nuanceur modèle 3 (DirectX HLSL) | non |
Nuanceur modèle 2 (DirectX HLSL) | non |
Nuanceur Modèle 1 (DirectX HLSL) | non |