clang 10.0.0git

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 | __RELAXED_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
#define | _tzcnt_u16(a) (__tzcnt_u16((a)))
#define | _tzcnt_u32(a) (__tzcnt_u32((a)))
#define | __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("bmi")))
#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)))

## 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 __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...
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...

## Macro Definition Documentation

## ◆ __DEFAULT_FN_ATTRS

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

Definition at line 117 of file bmiintrin.h.

Referenced by __andn_u32(), __bextr_u32(), __blsi_u32(), __blsmsk_u32(), __blsr_u32(), and _bextr_u32().

## ◆ __RELAXED_FN_ATTRS

#define __RELAXED_FN_ATTRS __attribute__((__always_inline__, __nodebug__))

Definition at line 20 of file bmiintrin.h.

Referenced by __tzcnt_u16(), and __tzcnt_u32().

## ◆ _andn_u32

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

Definition at line 119 of file bmiintrin.h.

## ◆ _blsi_u32

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

Definition at line 122 of file bmiintrin.h.

## ◆ _blsmsk_u32

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

Definition at line 124 of file bmiintrin.h.

## ◆ _blsr_u32

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

Definition at line 126 of file bmiintrin.h.

## ◆ _tzcnt_u16

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

Definition at line 22 of file bmiintrin.h.

## ◆ _tzcnt_u32

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

Definition at line 72 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

  __X | An unsigned integer containing one of the operands.
  __Y | An 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 142 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

  __X | An unsigned integer whose bits are to be extracted.
  __Y | An 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.

See also
  _bextr_u32

Definition at line 165 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

  __X | An 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 207 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

  __X | An unsigned integer used to create the mask.

Returns
  An unsigned integer containing the newly created mask.

Definition at line 224 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

  __X | An unsigned integer containing the operand to be cleared.

Returns
  An unsigned integer containing the result of clearing the source operand.

Definition at line 241 of file bmiintrin.h.

References __DEFAULT_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

  __X | An 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 35 of file bmiintrin.h.

References __RELAXED_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

  __X | An 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 51 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

  __X | An unsigned integer whose bits are to be extracted.
  __Y | An unsigned integer used to specify the index of the least significant bit for the bits to be extracted. Bits [7:0] specify the index.
  __Z | An 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.

See also
  __bextr_u32

Definition at line 190 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

  __X | An 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 67 of file bmiintrin.h.