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

    Class X86.Sse

    SSE intrinsics

    Inheritance
    Object
    X86.Sse
    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 Sse

    Properties

    IsSseSupported

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

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

    Methods

    add_ps(v128, v128)

    Add packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".

    Declaration
    public static v128 add_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    add_ss(v128, v128)

    Add the lower single-precision (32-bit) floating-point element in "a" and "b", store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 add_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    and_ps(v128, v128)

    Compute the bitwise AND of packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".

    Declaration
    public static v128 and_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    andnot_ps(v128, v128)

    Compute the bitwise NOT of packed single-precision (32-bit) floating-point elements in "a" and then AND with "b", and store the results in "dst".

    Declaration
    public static v128 andnot_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpeq_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b" for equality, and store the results in "dst".

    Declaration
    public static v128 cmpeq_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpeq_ss(v128, v128)

    Compare the lower single-precision (32-bit) floating-point elements in "a" and "b" for equality, store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpeq_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpge_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b" for greater-than-or-equal, and store the results in "dst".

    Declaration
    public static v128 cmpge_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpge_ss(v128, v128)

    Compare the lower single-precision (32-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 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpge_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpgt_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b" for greater-than, and store the results in "dst".

    Declaration
    public static v128 cmpgt_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpgt_ss(v128, v128)

    Compare the lower single-precision (32-bit) floating-point elements in "a" and "b" for greater-than, store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpgt_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmple_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b" for less-than-or-equal, and store the results in "dst".

    Declaration
    public static v128 cmple_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmple_ss(v128, v128)

    Compare the lower single-precision (32-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 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmple_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmplt_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b" for less-than, and store the results in "dst".

    Declaration
    public static v128 cmplt_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmplt_ss(v128, v128)

    Compare the lower single-precision (32-bit) floating-point elements in "a" and "b" for less-than, store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmplt_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpneq_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b" for not-equal, and store the results in "dst".

    Declaration
    public static v128 cmpneq_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpneq_ss(v128, v128)

    Compare the lower single-precision (32-bit) floating-point elements in "a" and "b" for not-equal, store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpneq_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpnge_ps(v128, v128)

    Compare packed single-precision (32-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_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpnge_ss(v128, v128)

    Compare the lower single-precision (32-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 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpnge_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpngt_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b" for not-greater-than, and store the results in "dst".

    Declaration
    public static v128 cmpngt_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpngt_ss(v128, v128)

    Compare the lower single-precision (32-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 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpngt_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpnle_ps(v128, v128)

    Compare packed single-precision (32-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_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpnle_ss(v128, v128)

    Compare the lower single-precision (32-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 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpnle_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpnlt_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b" for not-less-than, and store the results in "dst".

    Declaration
    public static v128 cmpnlt_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpnlt_ss(v128, v128)

    Compare the lower single-precision (32-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 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpnlt_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpord_ps(v128, v128)

    Compare packed single-precision (32-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_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpord_ss(v128, v128)

    Compare the lower single-precision (32-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 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpord_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpunord_ps(v128, v128)

    Compare packed single-precision (32-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_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    cmpunord_ss(v128, v128)

    Compare the lower single-precision (32-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 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cmpunord_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    comieq_ss(v128, v128)

    Compare the lower single-precision (32-bit) floating-point element in "a" and "b" for equality, and return the boolean result (0 or 1).

    Declaration
    public static int comieq_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    comige_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    comigt_ss(v128, v128)

    Compare the lower single-precision (32-bit) floating-point element in "a" and "b" for greater-than, and return the boolean result (0 or 1).

    Declaration
    public static int comigt_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    comile_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    comilt_ss(v128, v128)

    Compare the lower single-precision (32-bit) floating-point element in "a" and "b" for less-than, and return the boolean result (0 or 1).

    Declaration
    public static int comilt_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    comineq_ss(v128, v128)

    Compare the lower single-precision (32-bit) floating-point element in "a" and "b" for not-equal, and return the boolean result (0 or 1).

    Declaration
    public static int comineq_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    cvt_ss2si(v128)

    Convert the lower single-precision (32-bit) floating-point element in "a" to a 32-bit integer, and store the result in "dst".

    Declaration
    public static int cvt_ss2si(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    Int32

    cvtsi32_ss(v128, Int32)

    Convert the 32-bit integer "b" to a single-precision (32-bit) floating-point element, store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cvtsi32_ss(v128 a, int b)
    Parameters
    Type Name Description
    v128 a
    Int32 b
    Returns
    Type Description
    v128

    cvtsi64_ss(v128, Int64)

    Convert the 64-bit integer "b" to a single-precision (32-bit) floating-point element, store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 cvtsi64_ss(v128 a, long b)
    Parameters
    Type Name Description
    v128 a
    Int64 b
    Returns
    Type Description
    v128

    cvtss_f32(v128)

    Copy the lower single-precision (32-bit) floating-point element of "a" to "dst".

    Declaration
    public static float cvtss_f32(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    Single

    cvtss_si32(v128)

    Convert the lower single-precision (32-bit) floating-point element in "a" to a 32-bit integer, and store the result in "dst".

    Declaration
    public static int cvtss_si32(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    Int32

    cvtss_si64(v128)

    Convert the lower single-precision (32-bit) floating-point element in "a" to a 64-bit integer, and store the result in "dst".

    Declaration
    public static long cvtss_si64(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    Int64

    cvtt_ss2si(v128)

    Convert the lower single-precision (32-bit) floating-point element in "a" to a 32-bit integer with truncation, and store the result in "dst".

    Declaration
    public static int cvtt_ss2si(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    Int32

    cvttss_si32(v128)

    Convert the lower single-precision (32-bit) floating-point element in "a" to a 32-bit integer with truncation, and store the result in "dst".

    Declaration
    public static int cvttss_si32(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    Int32

    cvttss_si64(v128)

    Convert the lower single-precision (32-bit) floating-point element in "a" to a 64-bit integer with truncation, and store the result in "dst".

    Declaration
    public static long cvttss_si64(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    Int64

    div_ps(v128, v128)

    Divide packed single-precision (32-bit) floating-point elements in "a" by packed elements in "b", and store the results in "dst".

    Declaration
    public static v128 div_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    div_ss(v128, v128)

    Divide the lower single-precision (32-bit) floating-point element in "a" by the lower single-precision (32-bit) floating-point element in "b", store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 div_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    load_ps(Void*)

    Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point elements) from memory into dst.

    Declaration
    public static v128 load_ps(void *ptr)
    Parameters
    Type Name Description
    Void* ptr
    Returns
    Type Description
    v128
    Remarks

    Burst will always generate unaligned loads.

    loadu_ps(Void*)

    Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point elements) from memory into dst. mem_addr does not need to be aligned on any particular boundary.

    Declaration
    public static v128 loadu_ps(void *ptr)
    Parameters
    Type Name Description
    Void* ptr
    Returns
    Type Description
    v128

    loadu_si16(Void*)

    Load unaligned 16-bit integer from memory into the first element of dst.

    Declaration
    public static v128 loadu_si16(void *mem_addr)
    Parameters
    Type Name Description
    Void* mem_addr
    Returns
    Type Description
    v128

    loadu_si64(Void*)

    Load unaligned 64-bit integer from memory into the first element of dst.

    Declaration
    public static v128 loadu_si64(void *mem_addr)
    Parameters
    Type Name Description
    Void* mem_addr
    Returns
    Type Description
    v128

    max_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b", and store packed maximum values in "dst".

    Declaration
    public static v128 max_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    max_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    min_ps(v128, v128)

    Compare packed single-precision (32-bit) floating-point elements in "a" and "b", and store packed minimum values in "dst".

    Declaration
    public static v128 min_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    min_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    move_ss(v128, v128)

    Move the lower single-precision (32-bit) floating-point element from "b" to the lower element of "dst", and copy the upper 3 elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 move_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    movehl_ps(v128, v128)

    Move the upper 2 single-precision (32-bit) floating-point elements from "b" to the lower 2 elements of "dst", and copy the upper 2 elements from "a" to the upper 2 elements of "dst".

    Declaration
    public static v128 movehl_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    movelh_ps(v128, v128)

    Move the lower 2 single-precision (32-bit) floating-point elements from "b" to the upper 2 elements of "dst", and copy the lower 2 elements from "a" to the lower 2 elements of "dst".

    Declaration
    public static v128 movelh_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    movemask_ps(v128)

    Set each bit of mask "dst" based on the most significant bit of the corresponding packed single-precision (32-bit) floating-point element in "a".

    Declaration
    public static int movemask_ps(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    Int32

    mul_ps(v128, v128)

    Multiply packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".

    Declaration
    public static v128 mul_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    mul_ss(v128, v128)

    Multiply the lower single-precision (32-bit) floating-point element in "a" and "b", store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 mul_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    or_ps(v128, v128)

    Compute the bitwise OR of packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".

    Declaration
    public static v128 or_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    rcp_ps(v128)

    Compute the approximate reciprocal of packed single-precision (32-bit) floating-point elements in "a", and store the results in "dst". The maximum relative error for this approximation is less than 1.5*2^-12.

    Declaration
    public static v128 rcp_ps(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    v128

    rcp_ss(v128)

    Compute the approximate reciprocal of the lower single-precision (32-bit) floating-point element in "a", store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst". The maximum relative error for this approximation is less than 1.5*2^-12.

    Declaration
    public static v128 rcp_ss(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    v128

    rsqrt_ps(v128)

    Compute the approximate reciprocal square root of packed single-precision (32-bit) floating-point elements in "a", and store the results in "dst". The maximum relative error for this approximation is less than 1.5*2^-12.

    Declaration
    public static v128 rsqrt_ps(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    v128

    rsqrt_ss(v128)

    Compute the approximate reciprocal square root of the lower single-precision (32-bit) floating-point element in "a", store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst". The maximum relative error for this approximation is less than 1.5*2^-12.

    Declaration
    public static v128 rsqrt_ss(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    v128

    set_ps(Single, Single, Single, Single)

    Set packed single-precision (32-bit) floating-point elements in "dst" with the supplied values.

    Declaration
    public static v128 set_ps(float e3, float e2, float e1, float e0)
    Parameters
    Type Name Description
    Single e3
    Single e2
    Single e1
    Single e0
    Returns
    Type Description
    v128

    set_ps1(Single)

    Broadcast single-precision (32-bit) floating-point value "a" to all elements of "dst".

    Declaration
    public static v128 set_ps1(float a)
    Parameters
    Type Name Description
    Single a
    Returns
    Type Description
    v128

    set_ss(Single)

    Copy single-precision (32-bit) floating-point element "a" to the lower element of "dst", and zero the upper 3 elements.

    Declaration
    public static v128 set_ss(float a)
    Parameters
    Type Name Description
    Single a
    Returns
    Type Description
    v128

    set1_ps(Single)

    Broadcast single-precision (32-bit) floating-point value "a" to all elements of "dst".

    Declaration
    public static v128 set1_ps(float a)
    Parameters
    Type Name Description
    Single a
    Returns
    Type Description
    v128

    setr_ps(Single, Single, Single, Single)

    Set packed single-precision (32-bit) floating-point elements in "dst" with the supplied values in reverse order.

    Declaration
    public static v128 setr_ps(float e3, float e2, float e1, float e0)
    Parameters
    Type Name Description
    Single e3
    Single e2
    Single e1
    Single e0
    Returns
    Type Description
    v128

    setzero_ps()

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

    Declaration
    public static v128 setzero_ps()
    Returns
    Type Description
    v128

    SHUFFLE(Int32, Int32, Int32, Int32)

    Return a shuffle immediate suitable for use with shuffle_ps and similar instructions.

    Declaration
    public static int SHUFFLE(int d, int c, int b, int a)
    Parameters
    Type Name Description
    Int32 d
    Int32 c
    Int32 b
    Int32 a
    Returns
    Type Description
    Int32

    shuffle_ps(v128, v128, Int32)

    Shuffle single-precision (32-bit) floating-point elements in "a" using the control in "imm8", and store the results in "dst".

    Declaration
    public static v128 shuffle_ps(v128 a, v128 b, int imm8)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Int32 imm8
    Returns
    Type Description
    v128

    sqrt_ps(v128)

    Compute the square root of packed single-precision (32-bit) floating-point elements in "a", and store the results in "dst".

    Declaration
    public static v128 sqrt_ps(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    v128

    sqrt_ss(v128)

    Compute the square root of the lower single-precision (32-bit) floating-point element in "a", store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 sqrt_ss(v128 a)
    Parameters
    Type Name Description
    v128 a
    Returns
    Type Description
    v128

    store_ps(Void*, v128)

    Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point elements) from a into memory.

    Declaration
    public static void store_ps(void *ptr, v128 val)
    Parameters
    Type Name Description
    Void* ptr
    v128 val
    Remarks

    Burst will always generate unaligned stores.

    storeu_ps(Void*, v128)

    Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point elements) from a into memory. mem_addr does not need to be aligned on any particular boundary.

    Declaration
    public static void storeu_ps(void *ptr, v128 val)
    Parameters
    Type Name Description
    Void* ptr
    v128 val

    storeu_si16(Void*, v128)

    Store 16-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_si16(void *mem_addr, v128 a)
    Parameters
    Type Name Description
    Void* mem_addr
    v128 a

    storeu_si64(Void*, v128)

    Store 64-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_si64(void *mem_addr, v128 a)
    Parameters
    Type Name Description
    Void* mem_addr
    v128 a

    stream_ps(Void*, v128)

    Store 128-bits (composed of 4 packed single-precision (32-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_ps(void *mem_addr, v128 a)
    Parameters
    Type Name Description
    Void* mem_addr
    v128 a

    sub_ps(v128, v128)

    Subtract packed single-precision (32-bit) floating-point elements in "b" from packed single-precision (32-bit) floating-point elements in "a", and store the results in "dst".

    Declaration
    public static v128 sub_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    sub_ss(v128, v128)

    Subtract the lower single-precision (32-bit) floating-point element in "b" from the lower single-precision (32-bit) floating-point element in "a", store the result in the lower element of "dst", and copy the upper 3 packed elements from "a" to the upper elements of "dst".

    Declaration
    public static v128 sub_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    TRANSPOSE4_PS(ref v128, ref v128, ref v128, ref v128)

    Transposes a 4x4 matrix of single precision floating point values (_MM_TRANSPOSE4_PS).

    Declaration
    public static void TRANSPOSE4_PS(ref v128 row0, ref v128 row1, ref v128 row2, ref v128 row3)
    Parameters
    Type Name Description
    v128 row0
    v128 row1
    v128 row2
    v128 row3
    Remarks

    Arguments row0, row1, row2, and row3 are __m128
    values whose elements form the corresponding rows of a 4x4 matrix. The matrix transpose is returned in arguments row0, row1, row2, and row3 where row0 now holds column 0 of the original matrix, row1 now holds column 1 of the original matrix, etc.

    ucomieq_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    ucomige_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    ucomigt_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    ucomile_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    ucomilt_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    ucomineq_ss(v128, v128)

    Compare the lower single-precision (32-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_ss(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    Int32

    unpackhi_ps(v128, v128)

    Unpack and interleave single-precision (32-bit) floating-point elements from the high half "a" and "b", and store the results in "dst".

    Declaration
    public static v128 unpackhi_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    unpacklo_ps(v128, v128)

    Unpack and interleave single-precision (32-bit) floating-point elements from the low half of "a" and "b", and store the results in "dst".

    Declaration
    public static v128 unpacklo_ps(v128 a, v128 b)
    Parameters
    Type Name Description
    v128 a
    v128 b
    Returns
    Type Description
    v128

    xor_ps(v128, v128)

    Compute the bitwise XOR of packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".

    Declaration
    public static v128 xor_ps(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