docs.unity3d.com
    Show / Hide Table of Contents

    Class X86.Avx

    AVX intrinsics

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

    Properties

    Name Description
    IsAvxSupported

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

    Methods

    Name Description
    broadcast_ss(Void*)

    Broadcast a single-precision (32-bit) floating-point element from memory to all elements of dst.

    cmp_pd(v128, v128, Int32)

    Compare packed double-precision (64-bit) floating-point elements in a and b based on the comparison operand specified by imm8, and store the results in dst.

    cmp_ps(v128, v128, Int32)

    Compare packed single-precision (32-bit) floating-point elements in a and b based on the comparison operand specified by imm8, and store the results in dst.

    cmp_sd(v128, v128, Int32)

    Compare the lower double-precision (64-bit) floating-point element in a and b based on the comparison operand specified by imm8, store the result in the lower element of dst, and copy the upper element from a to the upper element of dst.

    cmp_ss(v128, v128, Int32)

    Compare the lower single-precision (32-bit) floating-point element in a and b based on the comparison operand specified by imm8, store the result in the lower element of dst, and copy the upper 3 packed elements from a to the upper elements of dst.

    maskload_pd(Void*, v128)

    Load packed double-precision (64-bit) floating-point elements from memory into dst using mask (elements are zeroed out when the high bit of the corresponding element is not set).

    maskload_ps(Void*, v128)

    Load packed single-precision (32-bit) floating-point elements from memory into dst using mask (elements are zeroed out when the high bit of the corresponding element is not set).

    maskstore_pd(Void*, v128, v128)

    Store packed double-precision (64-bit) floating-point elements from a into memory using mask.

    maskstore_ps(Void*, v128, v128)

    Store packed single-precision (32-bit) floating-point elements from a into memory using mask.

    mm256_add_pd(v256, v256)

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

    mm256_add_ps(v256, v256)

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

    mm256_addsub_pd(v256, v256)

    Alternatively add and subtract packed double-precision (64-bit) floating-point elements in a to/from packed elements in b, and store the results in dst.

    mm256_addsub_ps(v256, v256)

    Alternatively add and subtract packed single-precision (32-bit) floating-point elements in a to/from packed elements in b, and store the results in dst.

    mm256_and_pd(v256, v256)

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

    mm256_and_ps(v256, v256)

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

    mm256_andnot_pd(v256, v256)

    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.

    mm256_andnot_ps(v256, v256)

    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.

    mm256_blend_pd(v256, v256, Int32)

    Blend packed double-precision (64-bit) floating-point elements from a and b using control mask imm8, and store the results in dst.

    mm256_blend_ps(v256, v256, Int32)

    Blend packed single-precision (32-bit) floating-point elements from a and b using control mask imm8, and store the results in dst.

    mm256_blendv_pd(v256, v256, v256)

    Blend packed double-precision (64-bit) floating-point elements from a and b using mask, and store the results in dst.

    mm256_blendv_ps(v256, v256, v256)

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

    mm256_broadcast_pd(Void*)

    Broadcast 128 bits from memory (composed of 2 packed double-precision (64-bit) floating-point elements) to all elements of dst.

    mm256_broadcast_ps(Void*)

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

    mm256_broadcast_sd(Void*)

    Broadcast a double-precision (64-bit) floating-point element from memory to all elements of dst.

    mm256_broadcast_ss(Void*)

    Broadcast a single-precision (32-bit) floating-point element from memory to all elements of dst.

    mm256_castpd_ps(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castpd_si256(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castpd128_pd256(v128)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castpd256_pd128(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castps_pd(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castps_si256(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castps128_ps256(v128)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castps256_ps128(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castsi128_si256(v128)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castsi256_pd(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castsi256_ps(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_castsi256_si128(v256)

    For compatibility with C++ code only. This is a no-op in Burst.

    mm256_ceil_pd(v256)

    Round the packed double-precision (64-bit) floating-point elements in a up to an integer value, and store the results as packed double-precision floating-point elements in dst.

    mm256_ceil_ps(v256)

    Round the packed single-precision (32-bit) floating-point elements in a up to an integer value, and store the results as packed single-precision floating-point elements in dst.

    mm256_cmp_pd(v256, v256, Int32)

    Compare packed double-precision (64-bit) floating-point elements in a and b based on the comparison operand specified by imm8, and store the results in dst.

    mm256_cmp_ps(v256, v256, Int32)

    Compare packed single-precision (32-bit) floating-point elements in a and b based on the comparison operand specified by imm8, and store the results in dst.

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

    mm256_cvtepi32_ps(v256)

    Convert packed 32-bit integers in a to packed single-precision (32-bit) floating-point elements, and store the results in dst.

    mm256_cvtpd_epi32(v256)

    Convert packed double-precision(64-bit) floating-point elements in a to packed 32-bit integers, and store the results in dst.

    mm256_cvtpd_ps(v256)

    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.

    mm256_cvtps_epi32(v256)

    Convert packed single-precision (32-bit) floating-point elements in a to packed 32-bit integers, and store the results in dst.

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

    mm256_cvtss_f32(v256)

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

    mm256_cvttpd_epi32(v256)

    Convert packed double-precision (64-bit) floating-point elements in a to packed 32-bit integers with truncation, and store the results in dst.

    mm256_cvttps_epi32(v256)

    Convert packed single-precision (32-bit) floating-point elements in a to packed 32-bit integers with truncation, and store the results in dst.

    mm256_div_pd(v256, v256)

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

    mm256_div_ps(v256, v256)

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

    mm256_dp_ps(v256, v256, Int32)

    Conditionally multiply the packed single-precision (32-bit) floating-point elements in a and b using the high 4 bits in imm8, sum the four products, and conditionally store the sum in dst using the low 4 bits of imm8.

    mm256_extract_epi32(v256, Int32)

    Extract a 32-bit integer from a, selected with index (which must be a constant), and store the result in dst.

    mm256_extract_epi64(v256, Int32)

    Extract a 64-bit integer from a, selected with index (which must be a constant), and store the result in dst.

    mm256_extractf128_pd(v256, Int32)

    Extract 128 bits (composed of 2 packed double-precision (64-bit) floating-point elements) from a, selected with imm8, and store the result in dst.

    mm256_extractf128_ps(v256, Int32)

    Extract 128 bits (composed of 4 packed single-precision (32-bit) floating-point elements) from a, selected with imm8, and store the result in dst.

    mm256_extractf128_si256(v256, Int32)

    Extract 128 bits (composed of integer data) from a, selected with imm8, and store the result in dst.

    mm256_floor_pd(v256)

    Round the packed double-precision (64-bit) floating-point elements in a down to an integer value, and store the results as packed double-precision floating-point elements in dst.

    mm256_floor_ps(v256)

    Round the packed single-precision (32-bit) floating-point elements in a down to an integer value, and store the results as packed single-precision floating-point elements in dst.

    mm256_hadd_pd(v256, v256)

    Horizontally add adjacent pairs of double-precision (64-bit) floating-point elements in a and b, and pack the results in dst.

    mm256_hadd_ps(v256, v256)

    Horizontally add adjacent pairs of single-precision (32-bit) floating-point elements in a and b, and pack the results in dst.

    mm256_hsub_pd(v256, v256)

    Horizontally subtract adjacent pairs of double-precision (64-bit) floating-point elements in a and b, and pack the results in dst.

    mm256_hsub_ps(v256, v256)

    Horizontally add adjacent pairs of single-precision (32-bit) floating-point elements in a and b, and pack the results in dst.

    mm256_insert_epi16(v256, Int32, Int32)

    Copy a to dst, and insert the 16-bit integer i into dst at the location specified by index (which must be a constant).

    mm256_insert_epi32(v256, Int32, Int32)

    Copy a to dst, and insert the 32-bit integer i into dst at the location specified by index (which must be a constant).

    mm256_insert_epi64(v256, Int64, Int32)

    Copy a to dst, and insert the 64-bit integer i into dst at the location specified by index (which must be a constant).

    mm256_insert_epi8(v256, Int32, Int32)

    Copy a to dst, and insert the 8-bit integer i into dst at the location specified by index (which must be a constant).

    mm256_insertf128_pd(v256, v128, Int32)

    Copy a to dst, then insert 128 bits (composed of 2 packed double-precision (64-bit) floating-point elements) from b into dst at the location specified by imm8.

    mm256_insertf128_ps(v256, v128, Int32)

    Copy a to dst, then insert 128 bits (composed of 4 packed single-precision (32-bit) floating-point elements) from b into dst at the location specified by imm8.

    mm256_insertf128_si256(v256, v128, Int32)

    Copy a to dst, then insert 128 bits of integer data from b into dst at the location specified by imm8.

    mm256_lddqu_si256(Void*)

    Load 256-bits of integer data from unaligned memory into dst. This intrinsic may perform better than mm256_loadu_si256 when the data crosses a cache line boundary.

    mm256_load_pd(Void*)

    Load 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from memory

    mm256_load_ps(Void*)

    Load 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from memory

    mm256_load_si256(Void*)

    Load 256-bits (composed of 8 packed 32-bit integers elements) from memory

    mm256_loadu_pd(Void*)

    Load 256-bits (composed of 4 packed double-precision (64-bit) floating-point elements) from memory

    mm256_loadu_ps(Void*)

    Load 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from memory

    mm256_loadu_si256(Void*)

    Load 256-bits (composed of 8 packed 32-bit integers elements) from memory

    mm256_loadu2_m128(Void*, Void*)

    Load two 128-bit values (composed of 4 packed single-precision (32-bit) floating-point elements) from memory, and combine them into a 256-bit value in dst. hiaddr and loaddr do not need to be aligned on any particular boundary.

    mm256_loadu2_m128d(Void*, Void*)

    Load two 128-bit values (composed of 2 packed double-precision (64-bit) floating-point elements) from memory, and combine them into a 256-bit value in dst. hiaddr and loaddr do not need to be aligned on any particular boundary.

    mm256_loadu2_m128i(Void*, Void*)

    Load two 128-bit values (composed of integer data) from memory, and combine them into a 256-bit value in dst. hiaddr and loaddr do not need to be aligned on any particular boundary.

    mm256_maskload_pd(Void*, v256)

    Load packed double-precision (64-bit) floating-point elements from memory into dst using mask (elements are zeroed out when the high bit of the corresponding element is not set).

    mm256_maskload_ps(Void*, v256)

    Load packed single-precision (32-bit) floating-point elements from memory into dst using mask (elements are zeroed out when the high bit of the corresponding element is not set).

    mm256_maskstore_pd(Void*, v256, v256)

    Store packed double-precision (64-bit) floating-point elements from a into memory using mask.

    mm256_maskstore_ps(Void*, v256, v256)

    Store packed single-precision (32-bit) floating-point elements from a into memory using mask.

    mm256_max_pd(v256, v256)

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

    mm256_max_ps(v256, v256)

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

    mm256_min_pd(v256, v256)

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

    mm256_min_ps(v256, v256)

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

    mm256_movedup_pd(v256)

    Duplicate even-indexed double-precision (64-bit) floating-point elements from a, and store the results in dst.

    mm256_movehdup_ps(v256)

    Duplicate odd-indexed single-precision (32-bit) floating-point elements from a, and store the results in dst.

    mm256_moveldup_ps(v256)

    Duplicate even-indexed single-precision (32-bit) floating-point elements from a, and store the results in dst.

    mm256_movemask_pd(v256)

    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.

    mm256_movemask_ps(v256)

    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.

    mm256_mul_pd(v256, v256)

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

    mm256_mul_ps(v256, v256)

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

    mm256_or_pd(v256, v256)

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

    mm256_or_ps(v256, v256)

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

    mm256_permute_pd(v256, Int32)

    Shuffle double-precision (64-bit) floating-point elements in a within 128-bit lanes using the control in imm8, and store the results in dst.

    mm256_permute_ps(v256, Int32)

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

    mm256_permute2f128_pd(v256, v256, Int32)

    Shuffle 128-bits (composed of 2 packed double-precision (64-bit) floating-point elements) selected by imm8 from a and b, and store the results in dst.

    mm256_permute2f128_ps(v256, v256, Int32)

    Shuffle 128-bits (composed of 4 packed single-precision (32-bit) floating-point elements) selected by imm8 from a and b, and store the results in dst.

    mm256_permute2f128_si256(v256, v256, Int32)

    Shuffle 128-bits (composed of integer data) selected by imm8 from a and b, and store the results in dst.

    mm256_permutevar_pd(v256, v256)

    Shuffle double-precision (64-bit) floating-point elements in a within 128-bit lanes using the control in b, and store the results in dst.

    mm256_permutevar_ps(v256, v256)

    Shuffle single-precision (32-bit) floating-point elements in a within 128-bit lanes using the control in b, and store the results in dst.

    mm256_rcp_ps(v256)

    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.

    mm256_round_pd(v256, Int32)

    Round the packed double-precision (64-bit) floating-point elements in a using the rounding parameter, and store the results as packed double-precision floating-point elements in dst.

    mm256_round_ps(v256, Int32)

    Round the packed single-precision (32-bit) floating-point elements in a using the rounding parameter, and store the results as packed single-precision floating-point elements in dst.

    mm256_rsqrt_ps(v256)

    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.

    mm256_set_epi16(Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16)

    Set packed short elements in dst with the supplied values.

    mm256_set_epi32(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

    Set packed int elements in dst with the supplied values.

    mm256_set_epi64x(Int64, Int64, Int64, Int64)

    Set packed 64-bit integers in dst with the supplied values.

    mm256_set_epi8(Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte)

    Set packed byte elements in dst with the supplied values.

    mm256_set_m128(v128, v128)

    Set packed __m256 vector dst with the supplied values.

    mm256_set_m128d(v128, v128)

    Set packed v256 vector with the supplied values.

    mm256_set_m128i(v128, v128)

    Set packed v256 vector with the supplied values.

    mm256_set_pd(Double, Double, Double, Double)

    Set packed double-precision (64-bit) floating-point elements in dst with the supplied values.

    mm256_set_ps(Single, Single, Single, Single, Single, Single, Single, Single)

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

    mm256_set1_epi16(Int16)

    Broadcast 16-bit integer a to all all elements of dst. This intrinsic may generate the vpbroadcastw instruction.

    mm256_set1_epi32(Int32)

    Broadcast 32-bit integer a to all elements of dst. This intrinsic may generate the vpbroadcastd instruction.

    mm256_set1_epi64x(Int64)

    Broadcast 64-bit integer a to all elements of dst. This intrinsic may generate the vpbroadcastq instruction.

    mm256_set1_epi8(Byte)

    Broadcast 8-bit integer a to all elements of dst. This intrinsic may generate the vpbroadcastb instruction.

    mm256_set1_pd(Double)

    Broadcast double-precision (64-bit) floating-point value a to all elements of dst.

    mm256_set1_ps(Single)

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

    mm256_setr_epi16(Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16)

    Set packed short elements in dst with the supplied values in reverse order.

    mm256_setr_epi32(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

    Set packed int elements in dst with the supplied values in reverse order.

    mm256_setr_epi64x(Int64, Int64, Int64, Int64)

    Set packed 64-bit integers in dst with the supplied values in reverse order.

    mm256_setr_epi8(Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte)

    Set packed byte elements in dst with the supplied values in reverse order.

    mm256_setr_m128(v128, v128)

    Set packed v256 vector with the supplied values in reverse order.

    mm256_setr_m128d(v128, v128)

    Set packed v256 vector with the supplied values in reverse order.

    mm256_setr_m128i(v128, v128)

    Set packed v256 vector with the supplied values in reverse order.

    mm256_setr_pd(Double, Double, Double, Double)

    Set packed double-precision (64-bit) floating-point elements in dst with the supplied values in reverse order.

    mm256_setr_ps(Single, Single, Single, Single, Single, Single, Single, Single)

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

    mm256_setzero_pd()

    Return Vector with all elements set to zero.

    mm256_setzero_ps()

    Return Vector with all elements set to zero.

    mm256_setzero_si256()

    Return Vector with all elements set to zero.

    mm256_shuffle_pd(v256, v256, Int32)

    Shuffle double-precision (64-bit) floating-point elements within 128-bit lanes using the control in imm8, and store the results in dst.

    mm256_shuffle_ps(v256, v256, Int32)

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

    mm256_sqrt_pd(v256)

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

    mm256_sqrt_ps(v256)

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

    mm256_store_pd(Void*, v256)

    Store 256-bits (composed of 4 packed double-precision (64-bit) floating-point elements) from a into memory

    mm256_store_ps(Void*, v256)

    Store 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from a into memory

    mm256_store_si256(Void*, v256)

    Store 256-bits (composed of 8 packed 32-bit integer elements) from a into memory

    mm256_storeu_pd(Void*, v256)

    Store 256-bits (composed of 4 packed double-precision (64-bit) floating-point elements) from a into memory

    mm256_storeu_ps(Void*, v256)

    Store 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from a into memory

    mm256_storeu_si256(Void*, v256)

    Store 256-bits (composed of 8 packed 32-bit integer elements) from a into memory

    mm256_storeu2_m128(Void*, Void*, v256)

    Store the high and low 128-bit halves (each composed of 4 packed single-precision (32-bit) floating-point elements) from a into memory two different 128-bit locations. hiaddr and loaddr do not need to be aligned on any particular boundary.

    mm256_storeu2_m128d(Void*, Void*, v256)

    Store the high and low 128-bit halves (each composed of 2 packed double-precision (64-bit) floating-point elements) from a into memory two different 128-bit locations. hiaddr and loaddr do not need to be aligned on any particular boundary.

    mm256_storeu2_m128i(Void*, Void*, v256)

    Store the high and low 128-bit halves (each composed of integer data) from a into memory two different 128-bit locations. hiaddr and loaddr do not need to be aligned on any particular boundary.

    mm256_stream_pd(Void*, v256)

    Store 256-bits (composed of 4 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 32-byte boundary or a general-protection exception may be generated.

    mm256_stream_ps(Void*, v256)

    Store 256-bits (composed of 8 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 32-byte boundary or a general-protection exception may be generated.

    mm256_stream_si256(Void*, v256)

    Store 256-bits of integer data from a into memory using a non-temporal memory hint. mem_addr must be aligned on a 32-byte boundary or a general-protection exception may be generated.

    mm256_sub_pd(v256, v256)

    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.

    mm256_sub_ps(v256, v256)

    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.

    mm256_testc_pd(v256, v256)

    Compute the bitwise AND of 256 bits (representing double-precision (64-bit) floating-point elements) in a and b, producing an intermediate 256-bit value, and set ZF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set CF to 0. Return the CF value.

    mm256_testc_ps(v256, v256)

    Compute the bitwise AND of 256 bits (representing single-precision (32-bit) floating-point elements) in a and b, producing an intermediate 256-bit value, and set ZF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set CF to 0. Return the CF value.

    mm256_testc_si256(v256, v256)

    Compute the bitwise AND of 256 bits (representing integer data) in a and b, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, otherwise set CF to 0. Return the CF value.

    mm256_testnzc_pd(v256, v256)

    Compute the bitwise AND of 256 bits (representing double-precision (64-bit) floating-point elements) in a and b, producing an intermediate 256-bit value, and set ZF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, otherwise return 0.

    mm256_testnzc_ps(v256, v256)

    Compute the bitwise AND of 256 bits (representing single-precision (32-bit) floating-point elements) in a and b, producing an intermediate 256-bit value, and set ZF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, otherwise return 0.

    mm256_testnzc_si256(v256, v256)

    Compute the bitwise AND of 256 bits (representing integer data) in a and b, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, otherwise return 0.

    mm256_testz_pd(v256, v256)

    Compute the bitwise AND of 256 bits (representing double-precision (64-bit) floating-point elements) in a and b, producing an intermediate 256-bit value, and set ZF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set CF to 0. Return the ZF value.

    mm256_testz_ps(v256, v256)

    Compute the bitwise AND of 256 bits (representing single-precision (32-bit) floating-point elements) in a and b, producing an intermediate 256-bit value, and set ZF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set CF to 0. Return the ZF value.

    mm256_testz_si256(v256, v256)

    Compute the bitwise AND of 256 bits (representing integer data) in a and b, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, otherwise set CF to 0. Return the ZF value.

    mm256_undefined_pd()

    Return a 256-bit vector with undefined contents.

    mm256_undefined_ps()

    Return a 256-bit vector with undefined contents.

    mm256_undefined_si256()

    Return a 256-bit vector with undefined contents.

    mm256_unpackhi_pd(v256, v256)

    Unpack and interleave double-precision (64-bit) floating-point elements from the high half of each 128-bit lane in a and b, and store the results in dst.

    mm256_unpackhi_ps(v256, v256)

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

    mm256_unpacklo_pd(v256, v256)

    Unpack and interleave double-precision (64-bit) floating-point elements from the low half of each 128-bit lane in a and b, and store the results in dst.

    mm256_unpacklo_ps(v256, v256)

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

    mm256_xor_pd(v256, v256)

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

    mm256_xor_ps(v256, v256)

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

    mm256_zeroall()

    Zeros the contents of all YMM registers

    mm256_zeroupper()

    Zero the upper 128 bits of all YMM registers; the lower 128-bits of the registers are unmodified.

    mm256_zextpd128_pd256(v128)

    Casts vector of type v128 to type v256; the upper 128 bits of the result are zeroed. This intrinsic is only used for compilation and does not generate any instructions, thus it has zero latency.

    mm256_zextps128_ps256(v128)

    Casts vector of type v128 to type v256; the upper 128 bits of the result are zeroed. This intrinsic is only used for compilation and does not generate any instructions, thus it has zero latency.

    mm256_zextsi128_si256(v128)

    Casts vector of type v128 to type v256; the upper 128 bits of the result are zeroed. This intrinsic is only used for compilation and does not generate any instructions, thus it has zero latency.

    permute_pd(v128, Int32)

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

    permute_ps(v128, Int32)

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

    permutevar_pd(v128, v128)

    Shuffle double-precision (64-bit) floating-point elements in a using the control in b, and store the results in dst.

    permutevar_ps(v128, v128)

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

    testc_pd(v128, v128)

    Compute the bitwise AND of 128 bits (representing double-precision (64-bit) floating-point elements) in a and b, producing an intermediate 128-bit value, and set ZF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set CF to 0. Return the CF value.

    testc_ps(v128, v128)

    Compute the bitwise AND of 128 bits (representing single-precision (32-bit) floating-point elements) in a and b, producing an intermediate 128-bit value, and set ZF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set CF to 0. Return the CF value.

    testnzc_pd(v128, v128)

    Compute the bitwise AND of 128 bits (representing double-precision (64-bit) floating-point elements) in a and b, producing an intermediate 128-bit value, and set ZF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, otherwise return 0.

    testnzc_ps(v128, v128)

    Compute the bitwise AND of 128 bits (representing single-precision (32-bit) floating-point elements) in a and b, producing an intermediate 128-bit value, and set ZF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, otherwise return 0.

    testz_pd(v128, v128)

    Compute the bitwise AND of 128 bits (representing double-precision (64-bit) floating-point elements) in a and b, producing an intermediate 128-bit value, and set ZF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 64-bit element in the intermediate value is zero, otherwise set CF to 0. Return the ZF value.

    testz_ps(v128, v128)

    Compute the bitwise AND of 128 bits (representing single-precision (32-bit) floating-point elements) in a and b, producing an intermediate 128-bit value, and set ZF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set ZF to 0. Compute the bitwise NOT of a and then AND with b, producing an intermediate value, and set CF to 1 if the sign bit of each 32-bit element in the intermediate value is zero, otherwise set CF to 0. Return the ZF value.

    undefined_pd()

    Return a 128-bit vector with undefined contents.

    undefined_ps()

    Return a 128-bit vector with undefined contents.

    undefined_si128()

    Return a 128-bit vector with undefined contents.

    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