clang  6.0.0svn
Macros | Functions
bmiintrin.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _tzcnt_u16(a)   (__tzcnt_u16((a)))
 
#define _andn_u32(a, b)   (__andn_u32((a), (b)))
 
#define _blsi_u32(a)   (__blsi_u32((a)))
 
#define _blsmsk_u32(a)   (__blsmsk_u32((a)))
 
#define _blsr_u32(a)   (__blsr_u32((a)))
 
#define _tzcnt_u32(a)   (__tzcnt_u32((a)))
 
#define __DEFAULT_FN_ATTRS   __attribute__((__always_inline__, __nodebug__, __target__("bmi")))
 
#define __RELAXED_FN_ATTRS   __attribute__((__always_inline__, __nodebug__))
 

Functions

static __inline__ unsigned short __RELAXED_FN_ATTRS __tzcnt_u16 (unsigned short __X)
 Counts the number of trailing zero bits in the operand. More...
 
static __inline__ unsigned int __DEFAULT_FN_ATTRS __andn_u32 (unsigned int __X, unsigned int __Y)
 Performs a bitwise AND of the second operand with the one's complement of the first operand. More...
 
static __inline__ unsigned int __DEFAULT_FN_ATTRS __bextr_u32 (unsigned int __X, unsigned int __Y)
 Extracts the specified bits from the first operand and returns them in the least significant bits of the result. More...
 
static __inline__ unsigned int __DEFAULT_FN_ATTRS _bextr_u32 (unsigned int __X, unsigned int __Y, unsigned int __Z)
 Extracts the specified bits from the first operand and returns them in the least significant bits of the result. More...
 
static __inline__ unsigned int __DEFAULT_FN_ATTRS __blsi_u32 (unsigned int __X)
 Clears all bits in the source except for the least significant bit containing a value of 1 and returns the result. More...
 
static __inline__ unsigned int __DEFAULT_FN_ATTRS __blsmsk_u32 (unsigned int __X)
 Creates a mask whose bits are set to 1, using bit 0 up to and including the least significant bit that is set to 1 in the source operand and returns the result. More...
 
static __inline__ unsigned int __DEFAULT_FN_ATTRS __blsr_u32 (unsigned int __X)
 Clears the least significant bit that is set to 1 in the source operand and returns the result. More...
 
static __inline__ unsigned int __RELAXED_FN_ATTRS __tzcnt_u32 (unsigned int __X)
 Counts the number of trailing zero bits in the operand. More...
 
static __inline__ int __RELAXED_FN_ATTRS _mm_tzcnt_32 (unsigned int __X)
 Counts the number of trailing zero bits in the operand. More...
 

Macro Definition Documentation

◆ __DEFAULT_FN_ATTRS

#define __DEFAULT_FN_ATTRS   __attribute__((__always_inline__, __nodebug__, __target__("bmi")))

◆ __RELAXED_FN_ATTRS

#define __RELAXED_FN_ATTRS   __attribute__((__always_inline__, __nodebug__))

Definition at line 50 of file bmiintrin.h.

Referenced by __blsr_u32(), __tzcnt_u32(), and _mm_tzcnt_32().

◆ _andn_u32

#define _andn_u32 (   a,
 
)    (__andn_u32((a), (b)))

Definition at line 33 of file bmiintrin.h.

◆ _blsi_u32

#define _blsi_u32 (   a)    (__blsi_u32((a)))

Definition at line 36 of file bmiintrin.h.

◆ _blsmsk_u32

#define _blsmsk_u32 (   a)    (__blsmsk_u32((a)))

Definition at line 38 of file bmiintrin.h.

◆ _blsr_u32

#define _blsr_u32 (   a)    (__blsr_u32((a)))

Definition at line 40 of file bmiintrin.h.

◆ _tzcnt_u16

#define _tzcnt_u16 (   a)    (__tzcnt_u16((a)))

Definition at line 31 of file bmiintrin.h.

◆ _tzcnt_u32

#define _tzcnt_u32 (   a)    (__tzcnt_u32((a)))

Definition at line 42 of file bmiintrin.h.

Function Documentation

◆ __andn_u32()

static __inline__ unsigned int __DEFAULT_FN_ATTRS __andn_u32 ( unsigned int  __X,
unsigned int  __Y 
)
static

Performs a bitwise AND of the second operand with the one's complement of the first operand.

This intrinsic corresponds to the ANDN instruction.

Parameters
__XAn unsigned integer containing one of the operands.
__YAn unsigned integer containing one of the operands.
Returns
An unsigned integer containing the bitwise AND of the second operand with the one's complement of the first operand.

Definition at line 82 of file bmiintrin.h.

References __DEFAULT_FN_ATTRS.

◆ __bextr_u32()

static __inline__ unsigned int __DEFAULT_FN_ATTRS __bextr_u32 ( unsigned int  __X,
unsigned int  __Y 
)
static

Extracts the specified bits from the first operand and returns them in the least significant bits of the result.

This intrinsic corresponds to the BEXTR instruction.

Parameters
__XAn unsigned integer whose bits are to be extracted.
__YAn unsigned integer used to specify which bits are extracted. Bits [7:0] specify the index of the least significant bit. Bits [15:8] specify the number of bits to be extracted.
Returns
An unsigned integer whose least significant bits contain the extracted bits.

Definition at line 104 of file bmiintrin.h.

References __DEFAULT_FN_ATTRS.

◆ __blsi_u32()

static __inline__ unsigned int __DEFAULT_FN_ATTRS __blsi_u32 ( unsigned int  __X)
static

Clears all bits in the source except for the least significant bit containing a value of 1 and returns the result.

This intrinsic corresponds to the BLSI instruction.

Parameters
__XAn unsigned integer whose bits are to be cleared.
Returns
An unsigned integer containing the result of clearing the bits from the source operand.

Definition at line 145 of file bmiintrin.h.

References __DEFAULT_FN_ATTRS.

◆ __blsmsk_u32()

static __inline__ unsigned int __DEFAULT_FN_ATTRS __blsmsk_u32 ( unsigned int  __X)
static

Creates a mask whose bits are set to 1, using bit 0 up to and including the least significant bit that is set to 1 in the source operand and returns the result.

This intrinsic corresponds to the BLSMSK instruction.

Parameters
__XAn unsigned integer used to create the mask.
Returns
An unsigned integer containing the newly created mask.

Definition at line 162 of file bmiintrin.h.

References __DEFAULT_FN_ATTRS.

◆ __blsr_u32()

static __inline__ unsigned int __DEFAULT_FN_ATTRS __blsr_u32 ( unsigned int  __X)
static

Clears the least significant bit that is set to 1 in the source operand and returns the result.

This intrinsic corresponds to the BLSR instruction.

Parameters
__XAn unsigned integer containing the operand to be cleared.
Returns
An unsigned integer containing the result of clearing the source operand.

Definition at line 179 of file bmiintrin.h.

References __RELAXED_FN_ATTRS.

◆ __tzcnt_u16()

static __inline__ unsigned short __RELAXED_FN_ATTRS __tzcnt_u16 ( unsigned short  __X)
static

Counts the number of trailing zero bits in the operand.

This intrinsic corresponds to the TZCNT instruction.

Parameters
__XAn unsigned 16-bit integer whose trailing zeros are to be counted.
Returns
An unsigned 16-bit integer containing the number of trailing zero bits in the operand.

Definition at line 63 of file bmiintrin.h.

References __DEFAULT_FN_ATTRS.

◆ __tzcnt_u32()

static __inline__ unsigned int __RELAXED_FN_ATTRS __tzcnt_u32 ( unsigned int  __X)
static

Counts the number of trailing zero bits in the operand.

This intrinsic corresponds to the TZCNT instruction.

Parameters
__XAn unsigned 32-bit integer whose trailing zeros are to be counted.
Returns
An unsigned 32-bit integer containing the number of trailing zero bits in the operand.

Definition at line 195 of file bmiintrin.h.

References __RELAXED_FN_ATTRS.

◆ _bextr_u32()

static __inline__ unsigned int __DEFAULT_FN_ATTRS _bextr_u32 ( unsigned int  __X,
unsigned int  __Y,
unsigned int  __Z 
)
static

Extracts the specified bits from the first operand and returns them in the least significant bits of the result.

This intrinsic corresponds to the BEXTR instruction.

Parameters
__XAn unsigned integer whose bits are to be extracted.
__YAn unsigned integer used to specify the index of the least significant bit for the bits to be extracted. Bits [7:0] specify the index.
__ZAn unsigned integer used to specify the number of bits to be extracted. Bits [7:0] specify the number of bits.
Returns
An unsigned integer whose least significant bits contain the extracted bits.

Definition at line 128 of file bmiintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_tzcnt_32()

static __inline__ int __RELAXED_FN_ATTRS _mm_tzcnt_32 ( unsigned int  __X)
static

Counts the number of trailing zero bits in the operand.

This intrinsic corresponds to the TZCNT instruction.

Parameters
__XAn unsigned 32-bit integer whose trailing zeros are to be counted.
Returns
An 32-bit integer containing the number of trailing zero bits in the operand.

Definition at line 211 of file bmiintrin.h.

References __DEFAULT_FN_ATTRS, and __RELAXED_FN_ATTRS.