bfi(sm5 - asm)

숫자의 LSB에서 비트 범위가 주어지면 임의의 오프셋에서 다른 숫자의 비트 수를 배치합니다.

bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle]
항목 설명
dest
[in] 결과의 주소입니다.
src0
[in] src2에서 가져올 비트 필드 너비입니다.
src1
[in] src3의 비트를 바꾸기 위한 비트 필드 오프셋입니다.
src2
[in] 비트를 가져온 숫자입니다.
src3
[in] 바꿀 비트가 있는 숫자입니다.

설명

src0의 LSB 5비트는 src2에서 가져올 비트 필드 너비(0-31)를 제공합니다.

src1의 LSB 5비트는 비트 필드 오프셋(0-31)을 제공하여 src3에서 읽은 숫자의 비트 바꾸기를 시작합니다.

Given width, offset:
                bitmask = (((1 << width)-1) << offset) & 0xffffffff
                dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)

이 명령은 정수 또는 플래그를 압축하는 데 사용됩니다.

이 명령은 다음 셰이더 단계에 적용됩니다.

꼭짓점 Hull 도메인 기하 도형 픽셀 컴퓨팅
X X X X X X

최소 셰이더 모델

이 명령은 다음 셰이더 모델에서 지원됩니다.

셰이더 모델 지원 여부
셰이더 모델 5
셰이더 모델 4.1 아니요
셰이더 모델 4 아니요
셰이더 모델 3(DirectX HLSL) 아니요
셰이더 모델 2(DirectX HLSL) 아니요
셰이더 모델 1(DirectX HLSL) 아니요

셰이더 모델 5 어셈블리(DirectX HLSL)