Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


X86.Sse

SSE intrinsics
Read time 13 minutesLast updated 5 days ago

Definition

public static class X86.Sse

Static Properties

Property

Description

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

Static Methods

Method

Description

add_psAdd packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".
add_ssAdd 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_psCompute the bitwise AND of packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".
andnot_psCompute 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b" for equality, and store the results in "dst".
cmpeq_ssCompare 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b" for greater-than-or-equal, and store the results in "dst".
cmpge_ssCompare 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b" for greater-than, and store the results in "dst".
cmpgt_ssCompare 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b" for less-than-or-equal, and store the results in "dst".
cmple_ssCompare 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b" for less-than, and store the results in "dst".
cmplt_ssCompare 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b" for not-equal, and store the results in "dst".
cmpneq_ssCompare 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_psCompare 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_ssCompare 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b" for not-greater-than, and store the results in "dst".
cmpngt_ssCompare 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_psCompare 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_ssCompare 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b" for not-less-than, and store the results in "dst".
cmpnlt_ssCompare 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_psCompare 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_ssCompare 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_psCompare 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_ssCompare 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_ssCompare the lower single-precision (32-bit) floating-point element in "a" and "b" for equality, and return the boolean result (0 or 1).
comige_ssCompare 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_ssCompare 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_ssCompare 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_ssCompare 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_ssCompare 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_ss2siConvert the lower single-precision (32-bit) floating-point element in "a" to a 32-bit integer, and store the result in "dst". Follows standard of rounding to nearest, and for midpoint rounding it rounds to even.
cvtsi32_ssConvert 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_ssConvert 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_f32Copy the lower single-precision (32-bit) floating-point element of "a" to "dst".
cvtss_si32Convert the lower single-precision (32-bit) floating-point element in "a" to a 32-bit integer, and store the result in "dst".
cvtss_si64Convert the lower single-precision (32-bit) floating-point element in "a" to a 64-bit integer, and store the result in "dst". Follows standard of rounding to nearest, and for midpoint rounding it rounds to even.
cvtt_ss2siConvert 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_si32Convert 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_si64Convert 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_psDivide packed single-precision (32-bit) floating-point elements in "a" by packed elements in "b", and store the results in "dst".
div_ssDivide 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_psLoad 128-bits (composed of 4 packed single-precision (32-bit) floating-point elements) from memory into dst.
loadu_psLoad 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_si16Load unaligned 16-bit integer from memory into the first element of dst.
loadu_si64Load unaligned 64-bit integer from memory into the first element of dst.
max_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b", and store packed maximum values in "dst".
max_ssCompare 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_psCompare packed single-precision (32-bit) floating-point elements in "a" and "b", and store packed minimum values in "dst".
min_ssCompare 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_ssMove 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_psMove 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_psMove 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_psSet 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_psMultiply packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".
mul_ssMultiply 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_psCompute the bitwise OR of packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".
rcp_psCompute 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_ssCompute 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_psCompute 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_ssCompute 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.
set1_psBroadcast single-precision (32-bit) floating-point value "a" to all elements of "dst".
set_psSet packed single-precision (32-bit) floating-point elements in "dst" with the supplied values.
set_ps1Broadcast single-precision (32-bit) floating-point value "a" to all elements of "dst".
set_ssCopy single-precision (32-bit) floating-point element "a" to the lower element of "dst", and zero the upper 3 elements.
setr_psSet packed single-precision (32-bit) floating-point elements in "dst" with the supplied values in reverse order.
setzero_psReturn vector of type v128 with all elements set to zero.
SHUFFLEReturn a shuffle immediate suitable for use with shuffle_ps and similar instructions.
shuffle_psShuffle single-precision (32-bit) floating-point elements in "a" using the control in "imm8", and store the results in "dst".
sqrt_psCompute the square root of packed single-precision (32-bit) floating-point elements in "a", and store the results in "dst".
sqrt_ssCompute 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_psStore 128-bits (composed of 4 packed single-precision (32-bit) floating-point elements) from a into memory.
storeu_psStore 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_si16Store 16-bit integer from the first element of a into memory. mem_addr does not need to be aligned on any particular boundary.
storeu_si64Store 64-bit integer from the first element of a into memory. mem_addr does not need to be aligned on any particular boundary.
stream_psStore 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_psSubtract 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_ssSubtract 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_PSTransposes a 4x4 matrix of single precision floating point values (_MM_TRANSPOSE4_PS).
ucomieq_ssCompare 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_ssCompare 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_ssCompare 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_ssCompare 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_ssCompare 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_ssCompare 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_psUnpack and interleave single-precision (32-bit) floating-point elements from the high half "a" and "b", and store the results in "dst".
unpacklo_psUnpack and interleave single-precision (32-bit) floating-point elements from the low half of "a" and "b", and store the results in "dst".
xor_psCompute the bitwise XOR of packed single-precision (32-bit) floating-point elements in "a" and "b", and store the results in "dst".