> ## Name

> bitfieldInsert - returns an extracted range of bits from a bitfield.

> ## Synopsis

>     int  bitfieldInsert(int  a, int b, int c, int d)
>     int2 bitfieldInsert(int2 a, int b, int c, int d)
>     int3 bitfieldInsert(int3 a, int b, int c, int d)
>     int4 bitfieldInsert(int4 a, int b, int c, int d)

>     uint  bitfieldInsert(uint  a, uint b, int c, int d)
>     uint2 bitfieldInsert(uint2 a, uint b, int c, int d)
>     uint3 bitfieldInsert(uint3 a, uint b, int c, int d)
>     uint4 bitfieldInsert(uint4 a, uint b, int c, int d)

> ## Parameters

> a
>   Bitfield to insert bits into.
> b
>   Bit pattern to insert.
> c
>   Bit offset number.
> d
>   Number of bits to insert.

> ## Description

> Returns the result of inserting bits B at offset C of length D in the bitfield A.

> ## Reference Implementation

> bitfieldInsert for an int bitfield can be implemented like this:

>     int bitfieldInsert(int a, int b, int c, int d)
>     {
>       uint mask = ~(0xffffffff << d) << c;
>       mask ~= mask;
>       a &= mask;
>       return a | (b << c);
>     }

> ## Profile Support

> bitfieldInsert is supported in gp5 profiles.

> ## See Also

>       http://www.opengl.org/registry/specs/ARB/gpu_shader5.txt

> bitfieldExtract, bitfieldReverse, bitCount, findLSB and findMSB