# X86.Bmi2

> bmi2 intrinsics

## Definition

* **Type:** Class
* **Namespace:** [Unity.Burst.Intrinsics](/engine/6000.7/script-reference/unity/burst/intrinsics.md)
* **Assembly:** UnityEngine.BurstModule

```csharp
public static class X86.Bmi2
```

## Static Properties

| Property                                                                                              | Description                                                         |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [IsBmi2Supported](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/isbmi2supported.md) | Evaluates to true at compile time if bmi2 intrinsics are supported. |

## Static Methods

| Method                                                                                   | Description                                                                                                                                                                      |
| ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [bzhi\_u32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/bzhi-u32.md) | 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](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/bzhi-u64.md) | 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](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/mulx-u32.md) | 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.           |
| [mulx\_u64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/mulx-u64.md) | 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.           |
| [pdep\_u32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/pdep-u32.md) | 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](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/pdep-u64.md) | 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](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/pext-u32.md) | 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](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/bmi2/pext-u64.md) | 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. |
