# X86.Sse4_1

> SSE 4.1 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.Sse4_1
```

## Static Properties

| Property                                                                                                  | Description                                                            |
| --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [IsSse41Supported](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/issse41supported.md) | Evaluates to true at compile time if SSE 4.1 intrinsics are supported. |

## Static Methods

| Method                                                                                                               | Description                                                                                                                                                                                                                                                                                                                                             |
| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [blend\_epi16](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/blend-epi16.md)                     | Blend packed 16-bit integers from "a" and "b" using control mask "imm8", and store the results in "dst".                                                                                                                                                                                                                                                |
| [blend\_pd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/blend-pd.md)                           | Blend packed double-precision (64-bit) floating-point elements from "a" and "b" using control mask "imm8", and store the results in "dst".                                                                                                                                                                                                              |
| [blend\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/blend-ps.md)                           | Blend packed single-precision (32-bit) floating-point elements from "a" and "b" using control mask "imm8", and store the results in "dst".                                                                                                                                                                                                              |
| [blendv\_epi8](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/blendv-epi8.md)                     | Blend packed 8-bit integers from "a" and "b" using "mask", and store the results in "dst".                                                                                                                                                                                                                                                              |
| [blendv\_pd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/blendv-pd.md)                         | Blend packed double-precision (64-bit) floating-point elements from "a" and "b" using "mask", and store the results in "dst".                                                                                                                                                                                                                           |
| [blendv\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/blendv-ps.md)                         | Blend packed single-precision (32-bit) floating-point elements from "a" and "b" using "mask", and store the results in "dst".                                                                                                                                                                                                                           |
| [ceil\_pd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/ceil-pd.md)                             | Round the packed double-precision (64-bit) floating-point elements in "a" up to an integer value, and store the results as packed double-precision floating-point elements in "dst".                                                                                                                                                                    |
| [ceil\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/ceil-ps.md)                             | Round the packed single-precision (32-bit) floating-point elements in "a" up to an integer value, and store the results as packed single-precision floating-point elements in "dst".                                                                                                                                                                    |
| [ceil\_sd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/ceil-sd.md)                             | Round the lower double-precision (64-bit) floating-point element in "b" up to an integer value, store the result as a double-precision floating-point element in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".                                                                                         |
| [ceil\_ss](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/ceil-ss.md)                             | Round the lower single-precision (32-bit) floating-point element in "b" up to an integer value, store the result as a single-precision floating-point element in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".                                                                              |
| [cmpeq\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cmpeq-epi64.md)                     | Compare packed 64-bit integers in "a" and "b" for equality, and store the results in "dst".                                                                                                                                                                                                                                                             |
| [cvtepi16\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepi16-epi32.md)               | Sign extend packed 16-bit integers in "a" to packed 32-bit integers, and store the results in "dst".                                                                                                                                                                                                                                                    |
| [cvtepi16\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepi16-epi64.md)               | Sign extend packed 16-bit integers in "a" to packed 64-bit integers, and store the results in "dst".                                                                                                                                                                                                                                                    |
| [cvtepi32\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepi32-epi64.md)               | Sign extend packed 32-bit integers in "a" to packed 64-bit integers, and store the results in "dst".                                                                                                                                                                                                                                                    |
| [cvtepi8\_epi16](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepi8-epi16.md)                 | Sign extend packed 8-bit integers in "a" to packed 16-bit integers, and store the results in "dst".                                                                                                                                                                                                                                                     |
| [cvtepi8\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepi8-epi32.md)                 | Sign extend packed 8-bit integers in "a" to packed 32-bit integers, and store the results in "dst".                                                                                                                                                                                                                                                     |
| [cvtepi8\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepi8-epi64.md)                 | Sign extend packed 8-bit integers in the low 8 bytes of "a" to packed 64-bit integers, and store the results in "dst".                                                                                                                                                                                                                                  |
| [cvtepu16\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepu16-epi32.md)               | Zero extend packed unsigned 16-bit integers in "a" to packed 32-bit integers, and store the results in "dst".                                                                                                                                                                                                                                           |
| [cvtepu16\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepu16-epi64.md)               | Zero extend packed unsigned 16-bit integers in "a" to packed 64-bit integers, and store the results in "dst".                                                                                                                                                                                                                                           |
| [cvtepu32\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepu32-epi64.md)               | Zero extend packed unsigned 32-bit integers in "a" to packed 64-bit integers, and store the results in "dst".                                                                                                                                                                                                                                           |
| [cvtepu8\_epi16](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepu8-epi16.md)                 | Zero extend packed unsigned 8-bit integers in "a" to packed 16-bit integers, and store the results in "dst".                                                                                                                                                                                                                                            |
| [cvtepu8\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepu8-epi32.md)                 | Zero extend packed unsigned 8-bit integers in "a" to packed 32-bit integers, and store the results in "dst".                                                                                                                                                                                                                                            |
| [cvtepu8\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/cvtepu8-epi64.md)                 | Zero extend packed unsigned 8-bit integers in the low 8 byte sof "a" to packed 64-bit integers, and store the results in "dst".                                                                                                                                                                                                                         |
| [dp\_pd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/dp-pd.md)                                 | Conditionally multiply the packed double-precision (64-bit) floating-point elements in "a" and "b" using the high 4 bits in "imm8", sum the four products, and conditionally store the sum in "dst" using the low 4 bits of "imm8".                                                                                                                     |
| [dp\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/dp-ps.md)                                 | Conditionally multiply the packed single-precision (32-bit) floating-point elements in "a" and "b" using the high 4 bits in "imm8", sum the four products, and conditionally store the sum in "dst" using the low 4 bits of "imm8".                                                                                                                     |
| [extract\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/extract-epi32.md)                 | Extract a 32-bit integer from "a", selected with "imm8", and store the result in "dst".                                                                                                                                                                                                                                                                 |
| [extract\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/extract-epi64.md)                 | Extract a 64-bit integer from "a", selected with "imm8", and store the result in "dst".                                                                                                                                                                                                                                                                 |
| [extract\_epi8](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/extract-epi8.md)                   | Extract an 8-bit integer from "a", selected with "imm8", and store the result in the lower element of "dst".                                                                                                                                                                                                                                            |
| [extract\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/extract-ps.md)                       | Extract a single-precision (32-bit) floating-point element from "a", selected with "imm8", and store the result in "dst".                                                                                                                                                                                                                               |
| [extractf\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/extractf-ps.md)                     | Extract a single-precision (32-bit) floating-point element from "a", selected with "imm8", and store the result in "dst" (as a float).                                                                                                                                                                                                                  |
| [floor\_pd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/floor-pd.md)                           | Round the packed double-precision (64-bit) floating-point elements in "a" down to an integer value, and store the results as packed double-precision floating-point elements in "dst".                                                                                                                                                                  |
| [floor\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/floor-ps.md)                           | Round the packed single-precision (32-bit) floating-point elements in "a" down to an integer value, and store the results as packed single-precision floating-point elements in "dst".                                                                                                                                                                  |
| [floor\_sd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/floor-sd.md)                           | Round the lower double-precision (64-bit) floating-point element in "b" down to an integer value, store the result as a double-precision floating-point element in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".                                                                                       |
| [floor\_ss](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/floor-ss.md)                           | Round the lower single-precision (32-bit) floating-point element in "b" down to an integer value, store the result as a single-precision floating-point element in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".                                                                            |
| [insert\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/insert-epi32.md)                   | Copy "a" to "dst", and insert the 32-bit integer "i" into "dst" at the location specified by "imm8".                                                                                                                                                                                                                                                    |
| [insert\_epi64](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/insert-epi64.md)                   | Copy "a" to "dst", and insert the 64-bit integer "i" into "dst" at the location specified by "imm8".                                                                                                                                                                                                                                                    |
| [insert\_epi8](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/insert-epi8.md)                     | Copy "a" to "dst", and insert the lower 8-bit integer from "i" into "dst" at the location specified by "imm8".                                                                                                                                                                                                                                          |
| [insert\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/insert-ps.md)                         | Copy "a" to "tmp", then insert a single-precision (32-bit) floating-point element from "b" into "tmp" using the control in "imm8". Store "tmp" to "dst" using the mask in "imm8" (elements are zeroed out when the corresponding bit is set).                                                                                                           |
| [max\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/max-epi32.md)                         | Compare packed 32-bit integers in "a" and "b", and store packed maximum values in "dst".                                                                                                                                                                                                                                                                |
| [max\_epi8](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/max-epi8.md)                           | Compare packed 8-bit integers in "a" and "b", and store packed maximum values in "dst".                                                                                                                                                                                                                                                                 |
| [max\_epu16](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/max-epu16.md)                         | Compare packed unsigned 16-bit integers in "a" and "b", and store packed maximum values in "dst".                                                                                                                                                                                                                                                       |
| [max\_epu32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/max-epu32.md)                         | Compare packed unsigned 32-bit integers in "a" and "b", and store packed maximum values in "dst".                                                                                                                                                                                                                                                       |
| [min\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/min-epi32.md)                         | Compare packed 32-bit integers in "a" and "b", and store packed minimum values in "dst".                                                                                                                                                                                                                                                                |
| [min\_epi8](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/min-epi8.md)                           | Compare packed 8-bit integers in "a" and "b", and store packed minimum values in "dst".                                                                                                                                                                                                                                                                 |
| [min\_epu16](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/min-epu16.md)                         | Compare packed unsigned 16-bit integers in "a" and "b", and store packed minimum values in "dst".                                                                                                                                                                                                                                                       |
| [min\_epu32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/min-epu32.md)                         | Compare packed unsigned 32-bit integers in "a" and "b", and store packed minimum values in "dst".                                                                                                                                                                                                                                                       |
| [minpos\_epu16](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/minpos-epu16.md)                   | Horizontally compute the minimum amongst the packed unsigned 16-bit integers in "a", store the minimum and index in "dst", and zero the remaining bits in "dst".                                                                                                                                                                                        |
| [MK\_INSERTPS\_NDX](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/mk-insertps-ndx.md)            | Helper macro to create index-parameter value for insert\_ps                                                                                                                                                                                                                                                                                             |
| [mpsadbw\_epu8](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/mpsadbw-epu8.md)                   | Compute the sum of absolute differences (SADs) of quadruplets of unsigned 8-bit integers in "a" compared to those in "b", and store the 16-bit results in "dst".                                                                                                                                                                                        |
| [mul\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/mul-epi32.md)                         | Multiply the low 32-bit integers from each packed 64-bit element in "a" and "b", and store the signed 64-bit results in "dst".                                                                                                                                                                                                                          |
| [mullo\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/mullo-epi32.md)                     | Multiply the packed 32-bit integers in "a" and "b", producing intermediate 64-bit integers, and store the low 32 bits of the intermediate integers in "dst".                                                                                                                                                                                            |
| [packus\_epi32](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/packus-epi32.md)                   | Convert packed 32-bit integers from "a" and "b" to packed 16-bit integers using unsigned saturation, and store the results in "dst".                                                                                                                                                                                                                    |
| [round\_pd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/round-pd.md)                           | Round the packed double-precision (64-bit) floating-point elements in "a" using the "rounding" parameter, and store the results as packed double-precision floating-point elements in "dst".                                                                                                                                                            |
| [round\_ps](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/round-ps.md)                           | Round the packed single-precision (32-bit) floating-point elements in "a" using the "rounding" parameter, and store the results as packed single-precision floating-point elements in "dst".                                                                                                                                                            |
| [round\_sd](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/round-sd.md)                           | Round the lower double-precision (64-bit) floating-point element in "b" using the "rounding" parameter, store the result as a double-precision floating-point element in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".                                                                                 |
| [round\_ss](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/round-ss.md)                           | Round the lower single-precision (32-bit) floating-point element in "b" using the "rounding" parameter, store the result as a single-precision floating-point element in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".                                                                      |
| [stream\_load\_si128](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/stream-load-si128.md)        | Load 128-bits of integer data from memory into dst using a non-temporal memory hint. mem\_addr must be aligned on a 16-byte boundary or a general-protection exception may be generated.                                                                                                                                                                |
| [test\_all\_ones](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/test-all-ones.md)                | Compute the bitwise NOT of "a" and then AND with a 128-bit vector containing all 1's, and return 1 if the result is zero, otherwise return 0.>                                                                                                                                                                                                          |
| [test\_all\_zeros](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/test-all-zeros.md)              | Compute the bitwise AND of 128 bits (representing integer data) in "a" and "mask", and return 1 if the result is zero, otherwise return 0.                                                                                                                                                                                                              |
| [test\_mix\_ones\_zeroes](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/test-mix-ones-zeroes.md) | Compute the bitwise AND of 128 bits (representing integer data) in "a" and "mask", and set "ZF" to 1 if the result is zero, otherwise set "ZF" to 0. Compute the bitwise NOT of "a" and then AND with "mask", and set "CF" to 1 if the result is zero, otherwise set "CF" to 0. Return 1 if both the "ZF" and "CF" values are zero, otherwise return 0. |
| [testc\_si128](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/testc-si128.md)                     | Compute the bitwise AND of 128 bits (representing integer data) in "a" and "b", and set "ZF" to 1 if the result is zero, otherwise set "ZF" to 0. Compute the bitwise NOT of "a" and then AND with "b", and set "CF" to 1 if the result is zero, otherwise set "CF" to 0. Return the "CF" value.                                                        |
| [testnzc\_si128](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/testnzc-si128.md)                 | Compute the bitwise AND of 128 bits (representing integer data) in "a" and "b", and set "ZF" to 1 if the result is zero, otherwise set "ZF" to 0. Compute the bitwise NOT of "a" and then AND with "b", and set "CF" to 1 if the result is zero, otherwise set "CF" to 0. Return 1 if both the "ZF" and "CF" values are zero, otherwise return 0.       |
| [testz\_si128](/engine/6000.7/script-reference/unity/burst/intrinsics/x86/sse4-1/testz-si128.md)                     | Compute the bitwise AND of 128 bits (representing integer data) in "a" and "b", and set "ZF" to 1 if the result is zero, otherwise set "ZF" to 0. Compute the bitwise NOT of "a" and then AND with "b", and set "CF" to 1 if the result is zero, otherwise set "CF" to 0. Return the "ZF" value.                                                        |
