bfi (sm5 - asm)
Étant donné une plage de bits à partir de la LSB d’un nombre, placez ce nombre de bits dans un autre nombre à n’importe quel décalage.
bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle] |
---|
Élément | Description |
---|---|
Dest |
[in] Adresse des résultats. |
src0 |
[in] Largeur du champ de bits à prendre à partir de src2. |
src1 |
[in] Décalage du champ de bits pour le remplacement des bits dans src3. |
src2 |
[in] Nombre de bits extraits. |
src3 |
[in] Nombre par bits à remplacer. |
Notes
Les 5 bits LSB de src0 fournissent la largeur du champ de bits (0-31) à prendre à partir de src2.
Les 5 bits LSB de src1 fournissent le décalage du champ de bits (0-31) pour commencer à remplacer les bits dans le nombre lu à partir de src3.
Given width, offset:
bitmask = (((1 << width)-1) << offset) & 0xffffffff
dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)
Cette instruction est utilisée pour l’empaquetage d’entiers ou d’indicateurs.
Cette instruction s’applique aux étapes suivantes du nuanceur :
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 | Pris en charge |
---|---|
Modèle de nuanceur 5 | Oui |
Modèle de nuanceur 4.1 | non |
Modèle de nuanceur 4 | non |
Modèle de nuanceur 3 (DirectX HLSL) | non |
Shader Model 2 (DirectX HLSL) | non |
Modèle de nuanceur 1 (DirectX HLSL) | non |