docs.unity3d.com
    Show / Hide Table of Contents

    Class X86.Sse

    SSE intrinsics

    Inheritance
    Object
    X86.Sse
    Namespace: Unity.Burst.Intrinsics
    Syntax
    public static class Sse : object

    Properties

    Name Description
    IsSseSupported

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

    Methods

    Name Description
    add_ps(v128, v128)

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

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    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).

    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).

    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).

    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).

    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).

    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).

    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".

    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".

    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".

    cvtss_f32(v128)

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

    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".

    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".

    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".

    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".

    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".

    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".

    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".

    load_ps(Void*)

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

    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.

    loadu_si16(Void*)

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

    loadu_si64(Void*)

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

    max_ps(v128, v128)

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

    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".

    min_ps(v128, v128)

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

    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".

    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".

    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".

    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".

    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".

    mul_ps(v128, v128)

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

    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".

    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".

    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.

    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.

    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.

    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.

    set_ps(Single, Single, Single, Single)

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

    set_ps1(Single)

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

    set_ss(Single)

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

    set1_ps(Single)

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

    setr_ps(Single, Single, Single, Single)

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

    setzero_ps()

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

    SHUFFLE(Int32, Int32, Int32, Int32)

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

    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".

    sqrt_ps(v128)

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

    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".

    store_ps(Void*, v128)

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

    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.

    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.

    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.

    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.

    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".

    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".

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

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

    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.

    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.

    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.

    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.

    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.

    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.

    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".

    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".

    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".

    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