Class X86.Sse2
Syntax
Properties
IsSse2Supported
Evaluates to true at compile time if SSE2 intrinsics are supported.
Declaration
public static bool IsSse2Supported { get; }
Property Value
Methods
add_epi16(v128, v128)
Add packed 16-bit integers in "a" and "b", and store the results in "dst".
Declaration
public static v128 add_epi16(v128 a, v128 b)
Parameters
Returns
add_epi32(v128, v128)
Add packed 32-bit integers in "a" and "b", and store the results in "dst".
Declaration
public static v128 add_epi32(v128 a, v128 b)
Parameters
Returns
add_epi64(v128, v128)
Add packed 64-bit integers in "a" and "b", and store the results in "dst".
Declaration
public static v128 add_epi64(v128 a, v128 b)
Parameters
Returns
add_epi8(v128, v128)
Add packed 8-bit integers in "a" and "b", and store the results in "dst".
Declaration
public static v128 add_epi8(v128 a, v128 b)
Parameters
Returns
add_pd(v128, v128)
Add packed double-precision (64-bit) floating-point elements in "a" and "b", and store the results in "dst".
Declaration
public static v128 add_pd(v128 a, v128 b)
Parameters
Returns
add_sd(v128, v128)
Add the lower double-precision (64-bit) floating-point element in "a" and "b", store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 add_sd(v128 a, v128 b)
Parameters
Returns
adds_epi16(v128, v128)
Add packed 16-bit integers in "a" and "b" using saturation, and store the results in "dst".
Declaration
public static v128 adds_epi16(v128 a, v128 b)
Parameters
Returns
adds_epi8(v128, v128)
Add packed 8-bit integers in "a" and "b" using saturation, and store the results in "dst".
Declaration
public static v128 adds_epi8(v128 a, v128 b)
Parameters
Returns
adds_epu16(v128, v128)
Add packed unsigned 16-bit integers in "a" and "b" using saturation, and store the results in "dst".
Declaration
public static v128 adds_epu16(v128 a, v128 b)
Parameters
Returns
adds_epu8(v128, v128)
Add packed unsigned 8-bit integers in "a" and "b" using saturation, and store the results in "dst".
Declaration
public static v128 adds_epu8(v128 a, v128 b)
Parameters
Returns
and_pd(v128, v128)
Compute the bitwise AND of packed double-precision (64-bit) floating-point elements in "a" and "b", and store the results in "dst".
Declaration
public static v128 and_pd(v128 a, v128 b)
Parameters
Returns
and_si128(v128, v128)
Compute the bitwise AND of 128 bits (representing integer data) in "a" and "b", and store the result in "dst".
Declaration
public static v128 and_si128(v128 a, v128 b)
Parameters
Returns
andnot_pd(v128, v128)
Compute the bitwise NOT of packed double-precision (64-bit) floating-point elements in "a" and then AND with "b", and store the results in "dst".
Declaration
public static v128 andnot_pd(v128 a, v128 b)
Parameters
Returns
andnot_si128(v128, v128)
Compute the bitwise NOT of 128 bits (representing integer data) in "a" and then AND with "b", and store the result in "dst".
Declaration
public static v128 andnot_si128(v128 a, v128 b)
Parameters
Returns
avg_epu16(v128, v128)
Average packed unsigned 16-bit integers in "a" and "b", and store the results in "dst".
Declaration
public static v128 avg_epu16(v128 a, v128 b)
Parameters
Returns
avg_epu8(v128, v128)
Average packed unsigned 8-bit integers in "a" and "b", and store the results in "dst".
Declaration
public static v128 avg_epu8(v128 a, v128 b)
Parameters
Returns
bslli_si128(v128, Int32)
Shift "a" left by "imm8" bytes while shifting in zeros, and store the results in "dst".
Declaration
public static v128 bslli_si128(v128 a, int imm8)
Parameters
Returns
bsrli_si128(v128, Int32)
Shift "a" right by "imm8" bytes while shifting in zeros, and store the results in "dst".
Declaration
public static v128 bsrli_si128(v128 a, int imm8)
Parameters
Returns
cmpeq_epi16(v128, v128)
Compare packed 16-bit integers in "a" and "b" for equality, and store the results in "dst".
Declaration
public static v128 cmpeq_epi16(v128 a, v128 b)
Parameters
Returns
cmpeq_epi32(v128, v128)
Compare packed 32-bit integers in "a" and "b" for equality, and store the results in "dst".
Declaration
public static v128 cmpeq_epi32(v128 a, v128 b)
Parameters
Returns
cmpeq_epi8(v128, v128)
Compare packed 8-bit integers in "a" and "b" for equality, and store the results in "dst".
Declaration
public static v128 cmpeq_epi8(v128 a, v128 b)
Parameters
Returns
cmpeq_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for equality, and store the results in "dst".
Declaration
public static v128 cmpeq_pd(v128 a, v128 b)
Parameters
Returns
cmpeq_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for equality, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpeq_sd(v128 a, v128 b)
Parameters
Returns
cmpge_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for greater-than-or-equal, and store the results in "dst".
Declaration
public static v128 cmpge_pd(v128 a, v128 b)
Parameters
Returns
cmpge_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for greater-than-or-equal, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpge_sd(v128 a, v128 b)
Parameters
Returns
cmpgt_epi16(v128, v128)
Compare packed 16-bit integers in "a" and "b" for greater-than, and store the results in "dst".
Declaration
public static v128 cmpgt_epi16(v128 a, v128 b)
Parameters
Returns
cmpgt_epi32(v128, v128)
Compare packed 32-bit integers in "a" and "b" for greater-than, and store the results in "dst".
Declaration
public static v128 cmpgt_epi32(v128 a, v128 b)
Parameters
Returns
cmpgt_epi8(v128, v128)
Compare packed 8-bit integers in "a" and "b" for greater-than, and store the results in "dst".
Declaration
public static v128 cmpgt_epi8(v128 a, v128 b)
Parameters
Returns
cmpgt_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for greater-than, and store the results in "dst".
Declaration
public static v128 cmpgt_pd(v128 a, v128 b)
Parameters
Returns
cmpgt_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for greater-than, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpgt_sd(v128 a, v128 b)
Parameters
Returns
cmple_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for less-than-or-equal, and store the results in "dst".
Declaration
public static v128 cmple_pd(v128 a, v128 b)
Parameters
Returns
cmple_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for less-than-or-equal, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmple_sd(v128 a, v128 b)
Parameters
Returns
cmplt_epi16(v128, v128)
Compare packed 16-bit integers in "a" and "b" for less-than, and store the results in "dst". Note: This intrinsic emits the pcmpgtw instruction with the order of the operands switched.
Declaration
public static v128 cmplt_epi16(v128 a, v128 b)
Parameters
Returns
cmplt_epi32(v128, v128)
Compare packed 32-bit integers in "a" and "b" for less-than, and store the results in "dst". Note: This intrinsic emits the pcmpgtd instruction with the order of the operands switched.
Declaration
public static v128 cmplt_epi32(v128 a, v128 b)
Parameters
Returns
cmplt_epi8(v128, v128)
Compare packed 8-bit integers in "a" and "b" for less-than, and store the results in "dst". Note: This intrinsic emits the pcmpgtb instruction with the order of the operands switched.
Declaration
public static v128 cmplt_epi8(v128 a, v128 b)
Parameters
Returns
cmplt_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for less-than, and store the results in "dst".
Declaration
public static v128 cmplt_pd(v128 a, v128 b)
Parameters
Returns
cmplt_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for less-than, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmplt_sd(v128 a, v128 b)
Parameters
Returns
cmpneq_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for not-equal, and store the results in "dst".
Declaration
public static v128 cmpneq_pd(v128 a, v128 b)
Parameters
Returns
cmpneq_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for not-equal, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpneq_sd(v128 a, v128 b)
Parameters
Returns
cmpnge_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for not-greater-than-or-equal, and store the results in "dst".
Declaration
public static v128 cmpnge_pd(v128 a, v128 b)
Parameters
Returns
cmpnge_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for not-greater-than-or-equal, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpnge_sd(v128 a, v128 b)
Parameters
Returns
cmpngt_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for not-greater-than, and store the results in "dst".
Declaration
public static v128 cmpngt_pd(v128 a, v128 b)
Parameters
Returns
cmpngt_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for not-greater-than, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpngt_sd(v128 a, v128 b)
Parameters
Returns
cmpnle_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for not-less-than-or-equal, and store the results in "dst".
Declaration
public static v128 cmpnle_pd(v128 a, v128 b)
Parameters
Returns
cmpnle_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for not-less-than-or-equal, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpnle_sd(v128 a, v128 b)
Parameters
Returns
cmpnlt_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" for not-less-than, and store the results in "dst".
Declaration
public static v128 cmpnlt_pd(v128 a, v128 b)
Parameters
Returns
cmpnlt_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" for not-less-than, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpnlt_sd(v128 a, v128 b)
Parameters
Returns
cmpord_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" to see if neither is NaN, and store the results in "dst".
Declaration
public static v128 cmpord_pd(v128 a, v128 b)
Parameters
Returns
cmpord_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" to see if neither is NaN, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpord_sd(v128 a, v128 b)
Parameters
Returns
cmpunord_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b" to see if either is NaN, and store the results in "dst".
Declaration
public static v128 cmpunord_pd(v128 a, v128 b)
Parameters
Returns
cmpunord_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b" to see if either is NaN, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cmpunord_sd(v128 a, v128 b)
Parameters
Returns
comieq_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for equality, and return the boolean result (0 or 1).
Declaration
public static int comieq_sd(v128 a, v128 b)
Parameters
Returns
comige_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for greater-than-or-equal, and return the boolean result (0 or 1).
Declaration
public static int comige_sd(v128 a, v128 b)
Parameters
Returns
comigt_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for greater-than, and return the boolean result (0 or 1).
Declaration
public static int comigt_sd(v128 a, v128 b)
Parameters
Returns
comile_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for less-than-or-equal, and return the boolean result (0 or 1).
Declaration
public static int comile_sd(v128 a, v128 b)
Parameters
Returns
comilt_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for less-than, and return the boolean result (0 or 1).
Declaration
public static int comilt_sd(v128 a, v128 b)
Parameters
Returns
comineq_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for not-equal, and return the boolean result (0 or 1).
Declaration
public static int comineq_sd(v128 a, v128 b)
Parameters
Returns
cvtepi32_pd(v128)
Convert packed 32-bit integers in "a" to packed double-precision (64-bit) floating-point elements, and store the results in "dst".
Declaration
public static v128 cvtepi32_pd(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtepi32_ps(v128)
Convert packed 32-bit integers in "a" to packed single-precision (32-bit) floating-point elements, and store the results in "dst".
Declaration
public static v128 cvtepi32_ps(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtpd_epi32(v128)
Convert packed double-precision (64-bit) floating-point elements in "a" to packed 32-bit integers, and store the results in "dst".
Declaration
public static v128 cvtpd_epi32(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtpd_ps(v128)
Convert packed double-precision (64-bit) floating-point elements in "a" to packed single-precision (32-bit) floating-point elements, and store the results in "dst".
Declaration
public static v128 cvtpd_ps(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtps_epi32(v128)
Convert packed single-precision (32-bit) floating-point elements in "a" to packed 32-bit integers, and store the results in "dst".
Declaration
public static v128 cvtps_epi32(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtps_pd(v128)
Convert packed single-precision (32-bit) floating-point elements in "a" to packed double-precision (64-bit) floating-point elements, and store the results in "dst".
Declaration
public static v128 cvtps_pd(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtsd_f64(v128)
Copy the lower double-precision (64-bit) floating-point element of "a" to "dst".
Declaration
public static double cvtsd_f64(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtsd_si32(v128)
Convert the lower double-precision (64-bit) floating-point element in "a" to a 32-bit integer, and store the result in "dst".
Declaration
public static int cvtsd_si32(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtsd_si64(v128)
Convert the lower double-precision (64-bit) floating-point element in "a" to a 64-bit integer, and store the result in "dst".
Declaration
public static long cvtsd_si64(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtsd_si64x(v128)
Convert the lower double-precision (64-bit) floating-point element in "a" to a 64-bit integer, and store the result in "dst".
Declaration
public static long cvtsd_si64x(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtsd_ss(v128, v128)
Convert the lower double-precision (64-bit) floating-point element in "b" to a single-precision (32-bit) floating-point element, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cvtsd_ss(v128 a, v128 b)
Parameters
Returns
cvtsi128_si32(v128)
Copy the lower 32-bit integer in "a" to "dst".
Declaration
public static int cvtsi128_si32(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtsi128_si64(v128)
Copy the lower 64-bit integer in "a" to "dst".
Declaration
public static long cvtsi128_si64(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtsi128_si64x(v128)
Copy the lower 64-bit integer in "a" to "dst".
Declaration
public static long cvtsi128_si64x(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvtsi32_sd(v128, Int32)
Convert the 32-bit integer "b" to a double-precision (64-bit) floating-point element, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cvtsi32_sd(v128 a, int b)
Parameters
Returns
cvtsi32_si128(Int32)
Copy 32-bit integer "a" to the lower elements of "dst", and zero the upper elements of "dst".
Declaration
public static v128 cvtsi32_si128(int a)
Parameters
Type |
Name |
Description |
Int32 |
a |
|
Returns
cvtsi64_sd(v128, Int64)
Convert the 64-bit integer "b" to a double-precision (64-bit) floating-point element, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cvtsi64_sd(v128 a, long b)
Parameters
Returns
cvtsi64_si128(Int64)
Copy 64-bit integer "a" to the lower element of "dst", and zero the upper element.
Declaration
public static v128 cvtsi64_si128(long a)
Parameters
Type |
Name |
Description |
Int64 |
a |
|
Returns
cvtsi64x_sd(v128, Int64)
Convert the 64-bit integer "b" to a double-precision (64-bit) floating-point element, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cvtsi64x_sd(v128 a, long b)
Parameters
Returns
cvtsi64x_si128(Int64)
Copy 64-bit integer "a" to the lower element of "dst", and zero the upper element.
Declaration
public static v128 cvtsi64x_si128(long a)
Parameters
Type |
Name |
Description |
Int64 |
a |
|
Returns
cvtss_sd(v128, v128)
Convert the lower single-precision (32-bit) floating-point element in "b" to a double-precision (64-bit) floating-point element, store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 cvtss_sd(v128 a, v128 b)
Parameters
Returns
cvttpd_epi32(v128)
Convert packed double-precision (64-bit) floating-point elements in "a" to packed 32-bit integers with truncation, and store the results in "dst".
Declaration
public static v128 cvttpd_epi32(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvttps_epi32(v128)
Convert packed single-precision (32-bit) floating-point elements in "a" to packed 32-bit integers with truncation, and store the results in "dst".
Declaration
public static v128 cvttps_epi32(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvttsd_si32(v128)
Convert the lower double-precision (64-bit) floating-point element in "a" to a 32-bit integer with truncation, and store the result in "dst".
Declaration
public static int cvttsd_si32(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvttsd_si64(v128)
Convert the lower double-precision (64-bit) floating-point element in "a" to a 64-bit integer with truncation, and store the result in "dst".
Declaration
public static long cvttsd_si64(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
cvttsd_si64x(v128)
Convert the lower double-precision (64-bit) floating-point element in "a" to a 64-bit integer with truncation, and store the result in "dst".
Declaration
public static long cvttsd_si64x(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
div_pd(v128, v128)
Divide packed double-precision (64-bit) floating-point elements in "a" by packed elements in "b", and store the results in "dst".
Declaration
public static v128 div_pd(v128 a, v128 b)
Parameters
Returns
div_sd(v128, v128)
Divide the lower double-precision (64-bit) floating-point element in "a" by the lower double-precision (64-bit) floating-point element in "b", store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 div_sd(v128 a, v128 b)
Parameters
Returns
Extract a 16-bit integer from "a", selected with "imm8", and store the result in the lower element of "dst".
Declaration
public static ushort extract_epi16(v128 a, int imm8)
Parameters
Returns
insert_epi16(v128, Int32, Int32)
Copy "a" to "dst", and insert the 16-bit integer "i" into "dst" at the location specified by "imm8".
Declaration
public static v128 insert_epi16(v128 a, int i, int imm8)
Parameters
Returns
load_si128(Void*)
Load 128-bits of integer data from memory into dst.
Declaration
public static v128 load_si128(void *ptr)
Parameters
Type |
Name |
Description |
Void* |
ptr |
|
Returns
loadu_si128(Void*)
Load 128-bits of integer data from memory into dst.
Declaration
public static v128 loadu_si128(void *ptr)
Parameters
Type |
Name |
Description |
Void* |
ptr |
|
Returns
loadu_si32(Void*)
Load unaligned 32-bit integer from memory into the first element of dst.
Declaration
public static v128 loadu_si32(void *mem_addr)
Parameters
Type |
Name |
Description |
Void* |
mem_addr |
|
Returns
madd_epi16(v128, v128)
Multiply packed signed 16-bit integers in "a" and "b", producing intermediate signed 32-bit integers. Horizontally add adjacent pairs of intermediate 32-bit integers, and pack the results in "dst".
Declaration
public static v128 madd_epi16(v128 a, v128 b)
Parameters
Returns
max_epi16(v128, v128)
Compare packed 16-bit integers in "a" and "b", and store packed maximum values in "dst".
Declaration
public static v128 max_epi16(v128 a, v128 b)
Parameters
Returns
max_epu8(v128, v128)
Compare packed unsigned 8-bit integers in "a" and "b", and store packed maximum values in "dst".
Declaration
public static v128 max_epu8(v128 a, v128 b)
Parameters
Returns
max_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b", and store packed maximum values in "dst".
Declaration
public static v128 max_pd(v128 a, v128 b)
Parameters
Returns
max_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b", store the maximum value in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 max_sd(v128 a, v128 b)
Parameters
Returns
min_epi16(v128, v128)
Compare packed 16-bit integers in "a" and "b", and store packed minimum values in "dst".
Declaration
public static v128 min_epi16(v128 a, v128 b)
Parameters
Returns
min_epu8(v128, v128)
Compare packed unsigned 8-bit integers in "a" and "b", and store packed minimum values in "dst".
Declaration
public static v128 min_epu8(v128 a, v128 b)
Parameters
Returns
min_pd(v128, v128)
Compare packed double-precision (64-bit) floating-point elements in "a" and "b", and store packed minimum values in "dst".
Declaration
public static v128 min_pd(v128 a, v128 b)
Parameters
Returns
min_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point elements in "a" and "b", store the minimum value in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 min_sd(v128 a, v128 b)
Parameters
Returns
move_epi64(v128)
Copy the lower 64-bit integer in "a" to the lower element of "dst", and zero the upper element.
Declaration
public static v128 move_epi64(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
move_sd(v128, v128)
Move the lower double-precision (64-bit) floating-point element from "b" to the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 move_sd(v128 a, v128 b)
Parameters
Returns
movemask_epi8(v128)
Create mask from the most significant bit of each 8-bit element in "a", and store the result in "dst".
Declaration
public static int movemask_epi8(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
movemask_pd(v128)
Set each bit of mask "dst" based on the most significant bit of the corresponding packed double-precision (64-bit) floating-point element in "a".
Declaration
public static int movemask_pd(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
mul_epu32(v128, v128)
Multiply the low unsigned 32-bit integers from each packed 64-bit element in "a" and "b", and store the unsigned 64-bit results in "dst".
Declaration
public static v128 mul_epu32(v128 a, v128 b)
Parameters
Returns
mul_pd(v128, v128)
Multiply packed double-precision (64-bit) floating-point elements in "a" and "b", and store the results in "dst".
Declaration
public static v128 mul_pd(v128 a, v128 b)
Parameters
Returns
mul_sd(v128, v128)
Multiply the lower double-precision (64-bit) floating-point element in "a" and "b", store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 mul_sd(v128 a, v128 b)
Parameters
Returns
mulhi_epi16(v128, v128)
Multiply the packed 16-bit integers in "a" and "b", producing intermediate 32-bit integers, and store the high 16 bits of the intermediate integers in "dst".
Declaration
public static v128 mulhi_epi16(v128 a, v128 b)
Parameters
Returns
mulhi_epu16(v128, v128)
Multiply the packed unsigned 16-bit integers in "a" and "b", producing intermediate 32-bit integers, and store the high 16 bits of the intermediate integers in "dst".
Declaration
public static v128 mulhi_epu16(v128 a, v128 b)
Parameters
Returns
mullo_epi16(v128, v128)
Multiply the packed 16-bit integers in "a" and "b", producing intermediate 32-bit integers, and store the low 16 bits of the intermediate integers in "dst".
Declaration
public static v128 mullo_epi16(v128 a, v128 b)
Parameters
Returns
or_pd(v128, v128)
Compute the bitwise OR of packed double-precision (64-bit) floating-point elements in "a" and "b", and store the results in "dst".
Declaration
public static v128 or_pd(v128 a, v128 b)
Parameters
Returns
or_si128(v128, v128)
Compute the bitwise OR of 128 bits (representing integer data) in "a" and "b", and store the result in "dst".
Declaration
public static v128 or_si128(v128 a, v128 b)
Parameters
Returns
packs_epi16(v128, v128)
Convert packed 16-bit integers from "a" and "b" to packed 8-bit integers using signed saturation, and store the results in "dst".
Declaration
public static v128 packs_epi16(v128 a, v128 b)
Parameters
Returns
packs_epi32(v128, v128)
Convert packed 32-bit integers from "a" and "b" to packed 16-bit integers using signed saturation, and store the results in "dst".
Declaration
public static v128 packs_epi32(v128 a, v128 b)
Parameters
Returns
packus_epi16(v128, v128)
Convert packed 16-bit integers from "a" and "b" to packed 8-bit integers using unsigned saturation, and store the results in "dst".
Declaration
public static v128 packus_epi16(v128 a, v128 b)
Parameters
Returns
sad_epu8(v128, v128)
Compute the absolute differences of packed unsigned 8-bit integers in "a" and "b", then horizontally sum each consecutive 8 differences to produce two unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low 16 bits of 64-bit elements in "dst".
Declaration
public static v128 sad_epu8(v128 a, v128 b)
Parameters
Returns
set_epi16(Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16)
Set packed 16-bit integers in "dst" with the supplied values.
Declaration
public static v128 set_epi16(short e7, short e6, short e5, short e4, short e3, short e2, short e1, short e0)
Parameters
Returns
set_epi32(Int32, Int32, Int32, Int32)
Set packed 32-bit integers in "dst" with the supplied values.
Declaration
public static v128 set_epi32(int e3, int e2, int e1, int e0)
Parameters
Returns
set_epi64x(Int64, Int64)
Set packed 64-bit integers in "dst" with the supplied values.
Declaration
public static v128 set_epi64x(long e1, long e0)
Parameters
Returns
set_epi8(SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte)
Set packed 8-bit integers in "dst" with the supplied values in reverse order.
Declaration
public static v128 set_epi8(sbyte e15_, sbyte e14_, sbyte e13_, sbyte e12_, sbyte e11_, sbyte e10_, sbyte e9_, sbyte e8_, sbyte e7_, sbyte e6_, sbyte e5_, sbyte e4_, sbyte e3_, sbyte e2_, sbyte e1_, sbyte e0_)
Parameters
Returns
set_pd(Double, Double)
Set packed double-precision (64-bit) floating-point elements in "dst" with the supplied values.
Declaration
public static v128 set_pd(double e1, double e0)
Parameters
Returns
set_pd1(Double)
Broadcast double-precision (64-bit) floating-point value "a" to all elements of "dst".
Declaration
public static v128 set_pd1(double a)
Parameters
Type |
Name |
Description |
Double |
a |
|
Returns
set_sd(Double)
Copy double-precision (64-bit) floating-point element "a" to the lower element of "dst", and zero the upper element.
Declaration
public static v128 set_sd(double a)
Parameters
Type |
Name |
Description |
Double |
a |
|
Returns
set1_epi16(Int16)
Broadcast 16-bit integer "a" to all all elements of "dst". This intrinsic may generate "vpbroadcastw".
Declaration
public static v128 set1_epi16(short a)
Parameters
Type |
Name |
Description |
Int16 |
a |
|
Returns
set1_epi32(Int32)
Broadcast 32-bit integer "a" to all elements of "dst". This intrinsic may generate "vpbroadcastd".
Declaration
public static v128 set1_epi32(int a)
Parameters
Type |
Name |
Description |
Int32 |
a |
|
Returns
set1_epi64x(Int64)
Broadcast 64-bit integer "a" to all elements of "dst". This intrinsic may generate the "vpbroadcastq".
Declaration
public static v128 set1_epi64x(long a)
Parameters
Type |
Name |
Description |
Int64 |
a |
|
Returns
set1_epi8(SByte)
Broadcast 8-bit integer "a" to all elements of "dst". This intrinsic may generate "vpbroadcastb".
Declaration
public static v128 set1_epi8(sbyte a)
Parameters
Type |
Name |
Description |
SByte |
a |
|
Returns
set1_pd(Double)
Broadcast double-precision (64-bit) floating-point value "a" to all elements of "dst".
Declaration
public static v128 set1_pd(double a)
Parameters
Type |
Name |
Description |
Double |
a |
|
Returns
setr_epi16(Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16)
Set packed 16-bit integers in "dst" with the supplied values in reverse order.
Declaration
public static v128 setr_epi16(short e7, short e6, short e5, short e4, short e3, short e2, short e1, short e0)
Parameters
Returns
setr_epi32(Int32, Int32, Int32, Int32)
Set packed 32-bit integers in "dst" with the supplied values in reverse order.
Declaration
public static v128 setr_epi32(int e3, int e2, int e1, int e0)
Parameters
Returns
setr_epi8(SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte)
Set packed 8-bit integers in "dst" with the supplied values in reverse order.
Declaration
public static v128 setr_epi8(sbyte e15_, sbyte e14_, sbyte e13_, sbyte e12_, sbyte e11_, sbyte e10_, sbyte e9_, sbyte e8_, sbyte e7_, sbyte e6_, sbyte e5_, sbyte e4_, sbyte e3_, sbyte e2_, sbyte e1_, sbyte e0_)
Parameters
Returns
setr_pd(Double, Double)
Set packed double-precision (64-bit) floating-point elements in "dst" with the supplied values in reverse order.
Declaration
public static v128 setr_pd(double e1, double e0)
Parameters
Returns
setzero_si128()
Return vector of type __m128i with all elements set to zero.
Declaration
public static v128 setzero_si128()
Returns
shuffle_epi32(v128, Int32)
Shuffle 32-bit integers in "a" using the control in "imm8", and store the results in "dst".
Declaration
public static v128 shuffle_epi32(v128 a, int imm8)
Parameters
Returns
shuffle_pd(v128, v128, Int32)
Shuffle double-precision (64-bit) floating-point elements using the control in "imm8", and store the results in "dst".
Declaration
public static v128 shuffle_pd(v128 a, v128 b, int imm8)
Parameters
Returns
SHUFFLE2(Int32, Int32)
Return a shuffle immediate suitable for use with _mm_shuffle_ps and similar instructions.
Declaration
public static int SHUFFLE2(int x, int y)
Parameters
Returns
shufflehi_epi16(v128, Int32)
Shuffle 16-bit integers in the high 64 bits of "a" using the control in "imm8". Store the results in the high 64 bits of "dst", with the low 64 bits being copied from from "a" to "dst".
Declaration
public static v128 shufflehi_epi16(v128 a, int imm8)
Parameters
Returns
shufflelo_epi16(v128, Int32)
Shuffle 16-bit integers in the low 64 bits of "a" using the control in "imm8". Store the results in the low 64 bits of "dst", with the high 64 bits being copied from from "a" to "dst".
Declaration
public static v128 shufflelo_epi16(v128 a, int imm8)
Parameters
Returns
sll_epi16(v128, v128)
Shift packed 16-bit integers in "a" left by "count" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 sll_epi16(v128 a, v128 count)
Parameters
Returns
sll_epi32(v128, v128)
Shift packed 32-bit integers in "a" left by "count" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 sll_epi32(v128 a, v128 count)
Parameters
Returns
sll_epi64(v128, v128)
Shift packed 64-bit integers in "a" left by "count" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 sll_epi64(v128 a, v128 count)
Parameters
Returns
slli_epi16(v128, Int32)
Shift packed 16-bit integers in "a" left by "imm8" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 slli_epi16(v128 a, int imm8)
Parameters
Returns
slli_epi32(v128, Int32)
Shift packed 32-bit integers in "a" left by "imm8" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 slli_epi32(v128 a, int imm8)
Parameters
Returns
slli_epi64(v128, Int32)
Shift packed 64-bit integers in "a" left by "imm8" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 slli_epi64(v128 a, int imm8)
Parameters
Returns
slli_si128(v128, Int32)
Shift "a" left by "imm8" bytes while shifting in zeros, and store the results in "dst".
Declaration
public static v128 slli_si128(v128 a, int imm8)
Parameters
Returns
sqrt_pd(v128)
Compute the square root of packed double-precision (64-bit) floating-point elements in "a", and store the results in "dst".
Declaration
public static v128 sqrt_pd(v128 a)
Parameters
Type |
Name |
Description |
v128 |
a |
|
Returns
sqrt_sd(v128, v128)
Compute the square root of the lower double-precision (64-bit) floating-point element in "b", store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 sqrt_sd(v128 a, v128 b)
Parameters
Returns
sra_epi16(v128, v128)
Shift packed 16-bit integers in "a" right by "count" while shifting in sign bits, and store the results in "dst".
Declaration
public static v128 sra_epi16(v128 a, v128 count)
Parameters
Returns
sra_epi32(v128, v128)
Shift packed 32-bit integers in "a" right by "count" while shifting in sign bits, and store the results in "dst".
Declaration
public static v128 sra_epi32(v128 a, v128 count)
Parameters
Returns
srai_epi16(v128, Int32)
Shift packed 16-bit integers in "a" right by "imm8" while shifting in sign bits, and store the results in "dst".
Declaration
public static v128 srai_epi16(v128 a, int imm8)
Parameters
Returns
srai_epi32(v128, Int32)
Shift packed 32-bit integers in "a" right by "imm8" while shifting in sign bits, and store the results in "dst".
Declaration
public static v128 srai_epi32(v128 a, int imm8)
Parameters
Returns
srl_epi16(v128, v128)
Shift packed 16-bit integers in "a" right by "count" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 srl_epi16(v128 a, v128 count)
Parameters
Returns
srl_epi32(v128, v128)
Shift packed 32-bit integers in "a" right by "count" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 srl_epi32(v128 a, v128 count)
Parameters
Returns
srl_epi64(v128, v128)
Shift packed 64-bit integers in "a" right by "count" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 srl_epi64(v128 a, v128 count)
Parameters
Returns
srli_epi16(v128, Int32)
Shift packed 16-bit integers in "a" right by "imm8" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 srli_epi16(v128 a, int imm8)
Parameters
Returns
srli_epi32(v128, Int32)
Shift packed 32-bit integers in "a" right by "imm8" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 srli_epi32(v128 a, int imm8)
Parameters
Returns
srli_epi64(v128, Int32)
Shift packed 64-bit integers in "a" right by "imm8" while shifting in zeros, and store the results in "dst".
Declaration
public static v128 srli_epi64(v128 a, int imm8)
Parameters
Returns
srli_si128(v128, Int32)
Shift "a" right by "imm8" bytes while shifting in zeros, and store the results in "dst".
Declaration
public static v128 srli_si128(v128 a, int imm8)
Parameters
Returns
store_si128(Void*, v128)
Store 128-bits of integer data from a into memory.
Declaration
public static void store_si128(void *ptr, v128 val)
Parameters
Type |
Name |
Description |
Void* |
ptr |
|
v128 |
val |
|
storeu_si128(Void*, v128)
Store 128-bits of integer data from a into memory.
Declaration
public static void storeu_si128(void *ptr, v128 val)
Parameters
Type |
Name |
Description |
Void* |
ptr |
|
v128 |
val |
|
storeu_si32(Void*, v128)
Store 32-bit integer from the first element of a into memory.
mem_addr does not need to be aligned on any particular
boundary.
Declaration
public static void storeu_si32(void *mem_addr, v128 a)
Parameters
Type |
Name |
Description |
Void* |
mem_addr |
|
v128 |
a |
|
stream_pd(Void*, v128)
Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point elements) from "a" into memory using a non-temporal memory hint. "mem_addr" must be aligned on a 16-byte boundary or a general-protection exception will be generated.
Declaration
public static void stream_pd(void *mem_addr, v128 a)
Parameters
Type |
Name |
Description |
Void* |
mem_addr |
|
v128 |
a |
|
stream_si128(Void*, v128)
Store 128-bits of integer data from a into memory using a non-temporal memory hint.mem_addr must be aligned on a 16-byte boundary or a general-protection exception may be generated.
Declaration
public static void stream_si128(void *mem_addr, v128 a)
Parameters
Type |
Name |
Description |
Void* |
mem_addr |
|
v128 |
a |
|
stream_si32(Int32*, Int32)
Store 32-bit integer "a" into memory using a non-temporal hint to minimize cache pollution. If the cache line containing address "mem_addr" is already in the cache, the cache will be updated.
Declaration
public static void stream_si32(int *mem_addr, int a)
Parameters
stream_si64(Int64*, Int64)
Store 64-bit integer a into memory using a non-temporal hint to minimize cache pollution. If the cache line containing address mem_addr is already in the cache, the cache will be updated.
Declaration
public static void stream_si64(long *mem_addr, long a)
Parameters
sub_epi16(v128, v128)
Subtract packed 16-bit integers in "b" from packed 16-bit integers in "a", and store the results in "dst".
Declaration
public static v128 sub_epi16(v128 a, v128 b)
Parameters
Returns
sub_epi32(v128, v128)
Subtract packed 32-bit integers in "b" from packed 32-bit integers in "a", and store the results in "dst".
Declaration
public static v128 sub_epi32(v128 a, v128 b)
Parameters
Returns
sub_epi64(v128, v128)
Subtract packed 64-bit integers in "b" from packed 64-bit integers in "a", and store the results in "dst".
Declaration
public static v128 sub_epi64(v128 a, v128 b)
Parameters
Returns
sub_epi8(v128, v128)
Subtract packed 8-bit integers in "b" from packed 8-bit integers in "a", and store the results in "dst".
Declaration
public static v128 sub_epi8(v128 a, v128 b)
Parameters
Returns
sub_pd(v128, v128)
Subtract packed double-precision (64-bit) floating-point elements in "b" from packed double-precision (64-bit) floating-point elements in "a", and store the results in "dst".
Declaration
public static v128 sub_pd(v128 a, v128 b)
Parameters
Returns
sub_sd(v128, v128)
Subtract the lower double-precision (64-bit) floating-point element in "b" from the lower double-precision (64-bit) floating-point element in "a", store the result in the lower element of "dst", and copy the upper element from "a" to the upper element of "dst".
Declaration
public static v128 sub_sd(v128 a, v128 b)
Parameters
Returns
subs_epi16(v128, v128)
Subtract packed 16-bit integers in "b" from packed 16-bit integers in "a" using saturation, and store the results in "dst".
Declaration
public static v128 subs_epi16(v128 a, v128 b)
Parameters
Returns
subs_epi8(v128, v128)
Subtract packed 8-bit integers in "b" from packed 8-bit integers in "a" using saturation, and store the results in "dst".
Declaration
public static v128 subs_epi8(v128 a, v128 b)
Parameters
Returns
subs_epu16(v128, v128)
Subtract packed unsigned 16-bit integers in "b" from packed unsigned 16-bit integers in "a" using saturation, and store the results in "dst".
Declaration
public static v128 subs_epu16(v128 a, v128 b)
Parameters
Returns
subs_epu8(v128, v128)
Subtract packed unsigned 8-bit integers in "b" from packed unsigned 8-bit integers in "a" using saturation, and store the results in "dst".
Declaration
public static v128 subs_epu8(v128 a, v128 b)
Parameters
Returns
ucomieq_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for equality, and return the boolean result (0 or 1). This instruction will not signal an exception for QNaNs.
Declaration
public static int ucomieq_sd(v128 a, v128 b)
Parameters
Returns
ucomige_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for greater-than-or-equal, and return the boolean result (0 or 1). This instruction will not signal an exception for QNaNs.
Declaration
public static int ucomige_sd(v128 a, v128 b)
Parameters
Returns
ucomigt_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for greater-than, and return the boolean result (0 or 1). This instruction will not signal an exception for QNaNs.
Declaration
public static int ucomigt_sd(v128 a, v128 b)
Parameters
Returns
ucomile_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for less-than-or-equal, and return the boolean result (0 or 1). This instruction will not signal an exception for QNaNs.
Declaration
public static int ucomile_sd(v128 a, v128 b)
Parameters
Returns
ucomilt_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for less-than, and return the boolean result (0 or 1). This instruction will not signal an exception for QNaNs.
Declaration
public static int ucomilt_sd(v128 a, v128 b)
Parameters
Returns
ucomineq_sd(v128, v128)
Compare the lower double-precision (64-bit) floating-point element in "a" and "b" for not-equal, and return the boolean result (0 or 1). This instruction will not signal an exception for QNaNs.
Declaration
public static int ucomineq_sd(v128 a, v128 b)
Parameters
Returns
unpackhi_epi16(v128, v128)
Unpack and interleave 16-bit integers from the high half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpackhi_epi16(v128 a, v128 b)
Parameters
Returns
unpackhi_epi32(v128, v128)
Unpack and interleave 32-bit integers from the high half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpackhi_epi32(v128 a, v128 b)
Parameters
Returns
unpackhi_epi64(v128, v128)
Unpack and interleave 64-bit integers from the high half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpackhi_epi64(v128 a, v128 b)
Parameters
Returns
unpackhi_epi8(v128, v128)
Unpack and interleave 8-bit integers from the high half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpackhi_epi8(v128 a, v128 b)
Parameters
Returns
unpackhi_pd(v128, v128)
Unpack and interleave double-precision (64-bit) floating-point elements from the high half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpackhi_pd(v128 a, v128 b)
Parameters
Returns
unpacklo_epi16(v128, v128)
Unpack and interleave 16-bit integers from the low half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpacklo_epi16(v128 a, v128 b)
Parameters
Returns
unpacklo_epi32(v128, v128)
Unpack and interleave 32-bit integers from the low half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpacklo_epi32(v128 a, v128 b)
Parameters
Returns
unpacklo_epi64(v128, v128)
Unpack and interleave 64-bit integers from the low half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpacklo_epi64(v128 a, v128 b)
Parameters
Returns
unpacklo_epi8(v128, v128)
Unpack and interleave 8-bit integers from the low half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpacklo_epi8(v128 a, v128 b)
Parameters
Returns
unpacklo_pd(v128, v128)
Unpack and interleave double-precision (64-bit) floating-point elements from the low half of "a" and "b", and store the results in "dst".
Declaration
public static v128 unpacklo_pd(v128 a, v128 b)
Parameters
Returns
xor_pd(v128, v128)
Compute the bitwise XOR of packed double-precision (64-bit) floating-point elements in "a" and "b", and store the results in "dst".
Declaration
public static v128 xor_pd(v128 a, v128 b)
Parameters
Returns
xor_si128(v128, v128)
Compute the bitwise XOR of 128 bits (representing integer data) in "a" and "b", and store the result in "dst".
Declaration
public static v128 xor_si128(v128 a, v128 b)
Parameters
Returns