Export (0) Print
Expand All
Expand Minimize

ibfe (sm5 - asm)

Given a range of bits in a number, shift those bits to the LSB and sign extend the MSB of the range.

ibfe dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle]

 

ItemDescription

dest

[in] The address of the results of the operation.

src0

[in] The bitfield width.

src1

[in] The bitfield offset.

src2

[in] The value to shift.

 

Remarks

The LSB 5 bits of src0 provide the bitfield width (0-31).

The LSB 5 bits of src1 provide the bitfield offset (0-31).

The following example shows how to use this 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
                }

Use this instruction to unpack signed integers or flags.

This instruction applies to the following shader stages:

VertexHullDomainGeometryPixelCompute
XX X XXX

 

Minimum Shader Model

This instruction is supported in the following shader models:

Shader ModelSupported
Shader Model 5 yes
Shader Model 4.1 no
Shader Model 4 no
Shader Model 3 (DirectX HLSL) no
Shader Model 2 (DirectX HLSL) no
Shader Model 1 (DirectX HLSL) no

 

 

 

Community Additions

ADD
Show:
© 2014 Microsoft