Partager via


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

Shader Model 5 Assembly (DirectX HLSL)