Class X86.Sse2 | Burst | 1.3.9
docs.unity3d.com
    Show / Hide Table of Contents

    Class X86.Sse2

    SSE2 intrinsics

    Inheritance
    Object
    X86.Sse2
    Inherited Members
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Object.ReferenceEquals(Object, Object)
    Object.ToString()
    Namespace: Unity.Burst.Intrinsics
    Syntax
    public static class Sse2

    Properties

    IsSse2Supported

    Evaluates to true at compile time if SSE2 intrinsics are supported.

    Declaration
    public static bool IsSse2Supported { get; }
    Property Value
    Type Description
    Boolean

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    Double

    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
    Type Description
    Int32

    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
    Type Description
    Int64

    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
    Type Description
    Int64

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Description
    Int32

    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
    Type Description
    Int64

    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
    Type Description
    Int64

    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
    Type Name Description
    v128 a
    Int32 b
    Returns
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int64 b
    Returns
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int64 b
    Returns
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    Int32

    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
    Type Description
    Int64

    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
    Type Description
    Int64

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    extract_epi16(v128, Int32)

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    UInt16

    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
    Type Name Description
    v128 a
    Int32 i
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Description
    v128
    Remarks

    Burst always generates unaligned loads.

    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
    Type Description
    v128
    Remarks

    Burst always generates unaligned loads.

    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
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Description
    Int32

    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
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    Int16 e7
    Int16 e6
    Int16 e5
    Int16 e4
    Int16 e3
    Int16 e2
    Int16 e1
    Int16 e0
    Returns
    Type Description
    v128

    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
    Type Name Description
    Int32 e3
    Int32 e2
    Int32 e1
    Int32 e0
    Returns
    Type Description
    v128

    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
    Type Name Description
    Int64 e1
    Int64 e0
    Returns
    Type Description
    v128

    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
    Type Name Description
    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_
    Returns
    Type Description
    v128

    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
    Type Name Description
    Double e1
    Double e0
    Returns
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Name Description
    Int16 e7
    Int16 e6
    Int16 e5
    Int16 e4
    Int16 e3
    Int16 e2
    Int16 e1
    Int16 e0
    Returns
    Type Description
    v128

    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
    Type Name Description
    Int32 e3
    Int32 e2
    Int32 e1
    Int32 e0
    Returns
    Type Description
    v128

    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
    Type Name Description
    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_
    Returns
    Type Description
    v128

    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
    Type Name Description
    Double e1
    Double e0
    Returns
    Type Description
    v128

    setzero_si128()

    Return vector of type __m128i with all elements set to zero.

    Declaration
    public static v128 setzero_si128()
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    Int32 x
    Int32 y
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 count
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 count
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 count
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 count
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 count
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 count
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 count
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 count
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    Int32 imm8
    Returns
    Type Description
    v128

    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
    Remarks

    Burst always generates unaligned stores.

    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
    Remarks

    Burst always generates unaligned stores.

    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
    Type Name Description
    Int32* mem_addr
    Int32 a

    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
    Type Name Description
    Int64* mem_addr
    Int64 a

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    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
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023