The OpenD Programming Language

inteli.bmi2intrin

Members

Functions

_bzhi_u32
uint _bzhi_u32(uint a, uint index)

Copy all bits from unsigned 32-bit integer a to dst, and reset (set to 0) the high bits in dst starting at index.

_bzhi_u64
ulong _bzhi_u64(ulong a, uint index)

Copy all bits from unsigned 64-bit integer a to dst, and reset (set to 0) the high bits in dst starting at index.

_mulx_u32
uint _mulx_u32(uint a, uint b, uint* hi)

Multiply unsigned 32-bit integers a and b, store the low 32-bits of the result in dst, and store the high 32-bits in hi. This does not read or write arithmetic flags. Note: the implementation _does_ set arithmetic flags, unlike the instruction semantics say. But, those particular semantics don't exist at the level of intrinsics.

_mulx_u64
ulong _mulx_u64(ulong a, ulong b, ulong* hi)

Multiply unsigned 64-bit integers a and b, store the low 64-bits of the result in dst, and store the high 64-bits in hi. This does not read or write arithmetic flags. Note: the implementation _does_ set arithmetic flags, unlike the instruction semantics say. But, those particular semantics don't exist at the level of intrinsics.

_pdep_u32
uint _pdep_u32(uint a, uint mask)

Deposit contiguous low bits from unsigned 32-bit integer a to dst at the corresponding bit locations specified by mask; all other bits in dst are set to zero.

_pdep_u64
ulong _pdep_u64(ulong a, ulong mask)

Deposit contiguous low bits from unsigned 64-bit integer a to dst at the corresponding bit locations specified by mask; all other bits in dst are set to zero.

_pext_u32
uint _pext_u32(uint a, uint mask)

Extract bits from unsigned 32-bit integer a at the corresponding bit locations specified by mask to contiguous low bits in dst; the remaining upper bits in dst are set to zero.

_pext_u64
ulong _pext_u64(ulong a, ulong mask)

Extract bits from unsigned 64-bit integer a at the corresponding bit locations specified by mask to contiguous low bits in dst; the remaining upper bits in dst are set to zero.

Meta