core/simd/x86
simd_x86
Types
21_MM_CMPINT_ENUM
_MM_CMPINT_ENUM :: i32SourceThe _MM_CMPINT_ENUM type used to specify comparison operations in AVX-512 intrinsics.
_MM_MANTISSA_NORM_ENUM
_MM_MANTISSA_NORM_ENUM :: i32SourceThe MM_MANTISSA_NORM_ENUM type used to specify mantissa normalized operations in AVX-512 intrinsics.
_MM_MANTISSA_SIGN_ENUM
_MM_MANTISSA_SIGN_ENUM :: i32SourceThe MM_MANTISSA_SIGN_ENUM type used to specify mantissa signed operations in AVX-512 intrinsics.
_MM_PERM_ENUM
_MM_PERM_ENUM :: i32Source__m128
__m128 :: #simd[4]f32Source__m128bh
__m128bh :: #simd[8]bf16Source__m128d
__m128d :: #simd[2]f64Source__m128i
__m128i :: #simd[2]i64Source__m256
__m256 :: #simd[8]f32Source__m256bh
__m256bh :: #simd[16]bf16Source__m256d
__m256d :: #simd[4]f64Source__m256i
__m256i :: #simd[4]i64Source__m512
__m512 :: #simd[16]f32Source__m512bh
__m512bh :: #simd[32]bf16Source__m512d
__m512d :: #simd[8]f64Source__m512i
__m512i :: #simd[8]i64Source__mmask16
__mmask16 :: u16SourceThe __mmask16 type used in AVX-512 intrinsics, a 16-bit integer
__mmask32
__mmask32 :: u32SourceThe __mmask32 type used in AVX-512 intrinsics, a 32-bit integer
__mmask64
__mmask64 :: u64SourceThe __mmask64 type used in AVX-512 intrinsics, a 64-bit integer
__mmask8
__mmask8 :: u8SourceThe __mmask8 type used in AVX-512 intrinsics, a 8-bit integer
bf16
bf16 :: u16SourceConstants
90_CMP_EQ_OQ
_CMP_EQ_OQ :: 0x00SourceEqual (ordered, non-signaling)
_CMP_EQ_OS
_CMP_EQ_OS :: 0x10SourceEqual (ordered, signaling)
_CMP_EQ_UQ
_CMP_EQ_UQ :: 0x08SourceEqual (unordered, non-signaling)
_CMP_EQ_US
_CMP_EQ_US :: 0x18SourceEqual (unordered, signaling)
_CMP_FALSE_OQ
_CMP_FALSE_OQ :: 0x0bSourceFalse (ordered, non-signaling)
_CMP_FALSE_OS
_CMP_FALSE_OS :: 0x1bSourceFalse (ordered, signaling)
_CMP_GE_OQ
_CMP_GE_OQ :: 0x1dSourceGreater-than-or-equal (ordered, non-signaling)
_CMP_GE_OS
_CMP_GE_OS :: 0x0dSourceGreater-than-or-equal (ordered, signaling)
_CMP_GT_OQ
_CMP_GT_OQ :: 0x1eSourceGreater-than (ordered, non-signaling)
_CMP_GT_OS
_CMP_GT_OS :: 0x0eSourceGreater-than (ordered, signaling)
_CMP_LE_OQ
_CMP_LE_OQ :: 0x12SourceLess-than-or-equal (ordered, non-signaling)
_CMP_LE_OS
_CMP_LE_OS :: 0x02SourceLess-than-or-equal (ordered, signaling)
_CMP_LT_OQ
_CMP_LT_OQ :: 0x11SourceLess-than (ordered, non-signaling)
_CMP_LT_OS
_CMP_LT_OS :: 0x01SourceLess-than (ordered, signaling)
_CMP_NEQ_OQ
_CMP_NEQ_OQ :: 0x0cSourceNot-equal (ordered, non-signaling)
_CMP_NEQ_OS
_CMP_NEQ_OS :: 0x1cSourceNot-equal (ordered, signaling)
_CMP_NEQ_UQ
_CMP_NEQ_UQ :: 0x04SourceNot-equal (unordered, non-signaling)
_CMP_NEQ_US
_CMP_NEQ_US :: 0x14SourceNot-equal (unordered, signaling)
_CMP_NGE_UQ
_CMP_NGE_UQ :: 0x19SourceNot-greater-than-or-equal (unordered, non-signaling)
_CMP_NGE_US
_CMP_NGE_US :: 0x09SourceNot-greater-than-or-equal (unordered, signaling)
_CMP_NGT_UQ
_CMP_NGT_UQ :: 0x1aSourceNot-greater-than (unordered, non-signaling)
_CMP_NGT_US
_CMP_NGT_US :: 0x0aSourceNot-greater-than (unordered, signaling)
_CMP_NLE_UQ
_CMP_NLE_UQ :: 0x16SourceNot-less-than-or-equal (unordered, non-signaling)
_CMP_NLE_US
_CMP_NLE_US :: 0x06SourceNot-less-than-or-equal (unordered, signaling)
_CMP_NLT_UQ
_CMP_NLT_UQ :: 0x15SourceNot-less-than (unordered, non-signaling)
_CMP_NLT_US
_CMP_NLT_US :: 0x05SourceNot-less-than (unordered, signaling)
_CMP_ORD_Q
_CMP_ORD_Q :: 0x07SourceOrdered (non-signaling)
_CMP_ORD_S
_CMP_ORD_S :: 0x17SourceOrdered (signaling)
_CMP_TRUE_UQ
_CMP_TRUE_UQ :: 0x0fSourceTrue (unordered, non-signaling)
_CMP_TRUE_US
_CMP_TRUE_US :: 0x1fSourceTrue (unordered, signaling)
_CMP_UNORD_Q
_CMP_UNORD_Q :: 0x03SourceUnordered (non-signaling)
_CMP_UNORD_S
_CMP_UNORD_S :: 0x13SourceUnordered (signaling)
_MM_EXCEPT_DENORM
_MM_EXCEPT_DENORM :: 0x0002Source_MM_EXCEPT_DIV_ZERO
_MM_EXCEPT_DIV_ZERO :: 0x0004Source_MM_EXCEPT_INEXACT
_MM_EXCEPT_INEXACT :: 0x0020Source_MM_EXCEPT_INVALID
_MM_EXCEPT_INVALID :: 0x0001Source_MM_EXCEPT_MASK
_MM_EXCEPT_MASK :: 0x003fSource_MM_EXCEPT_OVERFLOW
_MM_EXCEPT_OVERFLOW :: 0x0008Source_MM_EXCEPT_UNDERFLOW
_MM_EXCEPT_UNDERFLOW :: 0x0010Source_MM_FLUSH_ZERO_MASK
_MM_FLUSH_ZERO_MASK :: 0x8000Source_MM_FLUSH_ZERO_OFF
_MM_FLUSH_ZERO_OFF :: 0x0000Source_MM_FLUSH_ZERO_ON
_MM_FLUSH_ZERO_ON :: 0x8000Source_MM_FROUND_CEIL
_MM_FROUND_CEIL :: _MM_FROUND_RAISE_EXC | _MM_FROUND_TO_POS_INFSource_MM_FROUND_CUR_DIRECTION
_MM_FROUND_CUR_DIRECTION :: 0x04Source_MM_FROUND_FLOOR
_MM_FROUND_FLOOR :: _MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEG_INFSource_MM_FROUND_NEARBYINT
_MM_FROUND_NEARBYINT :: _MM_FROUND_NO_EXC | _MM_FROUND_CUR_DIRECTIONSource_MM_FROUND_NINT
_MM_FROUND_NINT :: 0x00Source_MM_FROUND_NO_EXC
_MM_FROUND_NO_EXC :: 0x08Source_MM_FROUND_RAISE_EXC
_MM_FROUND_RAISE_EXC :: 0x00Source_MM_FROUND_RINT
_MM_FROUND_RINT :: _MM_FROUND_RAISE_EXC | _MM_FROUND_CUR_DIRECTIONSource_MM_FROUND_TO_NEAREST_INT
_MM_FROUND_TO_NEAREST_INT :: 0x00SourceSSE4 rounding constants
_MM_FROUND_TO_NEG_INF
_MM_FROUND_TO_NEG_INF :: 0x01Source_MM_FROUND_TO_POS_INF
_MM_FROUND_TO_POS_INF :: 0x02Source_MM_FROUND_TO_ZERO
_MM_FROUND_TO_ZERO :: 0x03Source_MM_FROUND_TRUNC
_MM_FROUND_TRUNC :: _MM_FROUND_RAISE_EXC | _MM_FROUND_TO_ZEROSource_MM_HINT_ET0
_MM_HINT_ET0 :: 7Source_MM_HINT_ET1
_MM_HINT_ET1 :: 6Source_MM_HINT_NTA
_MM_HINT_NTA :: 0Source_MM_HINT_T0
_MM_HINT_T0 :: 3Source_MM_HINT_T1
_MM_HINT_T1 :: 2Source_MM_HINT_T2
_MM_HINT_T2 :: 1Source_MM_MASK_DENORM
_MM_MASK_DENORM :: 0x0100Source_MM_MASK_DIV_ZERO
_MM_MASK_DIV_ZERO :: 0x0200Source_MM_MASK_INEXACT
_MM_MASK_INEXACT :: 0x1000Source_MM_MASK_INVALID
_MM_MASK_INVALID :: 0x0080Source_MM_MASK_MASK
_MM_MASK_MASK :: 0x1f80Source_MM_MASK_OVERFLOW
_MM_MASK_OVERFLOW :: 0x0400Source_MM_MASK_UNDERFLOW
_MM_MASK_UNDERFLOW :: 0x0800Source_MM_ROUND_DOWN
_MM_ROUND_DOWN :: 0x2000Source_MM_ROUND_MASK
_MM_ROUND_MASK :: 0x6000Source_MM_ROUND_NEAREST
_MM_ROUND_NEAREST :: 0x0000Source_MM_ROUND_TOWARD_ZERO
_MM_ROUND_TOWARD_ZERO :: 0x6000Source_MM_ROUND_UP
_MM_ROUND_UP :: 0x4000Source_MM_SHUFFLE
_MM_SHUFFLE :: intrinsics.simd_x86__MM_SHUFFLESource_MM_SHUFFLE(z, y, x, w) -> (z<<6 | y<<4 | x<<2 | w)
_SIDD_BIT_MASK
_SIDD_BIT_MASK :: 0b0000_0000Source_SIDD_CMP_EQUAL_ANY
_SIDD_CMP_EQUAL_ANY :: 0b0000_0000Source_SIDD_CMP_EQUAL_EACH
_SIDD_CMP_EQUAL_EACH :: 0b0000_1000Source_SIDD_CMP_EQUAL_ORDERED
_SIDD_CMP_EQUAL_ORDERED :: 0b0000_1100Source_SIDD_CMP_RANGES
_SIDD_CMP_RANGES :: 0b0000_0100Source_SIDD_LEAST_SIGNIFICANT
_SIDD_LEAST_SIGNIFICANT :: 0b0000_0000Source_SIDD_MASKED_NEGATIVE_POLARITY
_SIDD_MASKED_NEGATIVE_POLARITY :: 0b0011_0000Source_SIDD_MASKED_POSITIVE_POLARITY
_SIDD_MASKED_POSITIVE_POLARITY :: 0b0010_0000Source_SIDD_MOST_SIGNIFICANT
_SIDD_MOST_SIGNIFICANT :: 0b0100_0000Source_SIDD_NEGATIVE_POLARITY
_SIDD_NEGATIVE_POLARITY :: 0b0001_0000Source_SIDD_POSITIVE_POLARITY
_SIDD_POSITIVE_POLARITY :: 0b0000_0000Source_SIDD_SBYTE_OPS
_SIDD_SBYTE_OPS :: 0b0000_0010Source_SIDD_SWORD_OPS
_SIDD_SWORD_OPS :: 0b0000_0011Source_SIDD_UBYTE_OPS
_SIDD_UBYTE_OPS :: 0b0000_0000Source_SIDD_UNIT_MASK
_SIDD_UNIT_MASK :: 0b0100_0000Source_SIDD_UWORD_OPS
_SIDD_UWORD_OPS :: 0b0000_0001SourceProcedures
673_MM_GET_EXCEPTION_MASK
_MM_GET_EXCEPTION_MASK :: proc() -> (u32)Source_MM_GET_EXCEPTION_STATE
_MM_GET_EXCEPTION_STATE :: proc() -> (u32)Source_MM_GET_FLUSH_ZERO_MODE
_MM_GET_FLUSH_ZERO_MODE :: proc() -> (u32)Source_MM_GET_ROUNDING_MODE
_MM_GET_ROUNDING_MODE :: proc() -> (u32)Source_MM_SET_EXCEPTION_MASK
_MM_SET_EXCEPTION_MASK :: proc(x: u32)Source_MM_SET_EXCEPTION_STATE
_MM_SET_EXCEPTION_STATE :: proc(x: u32)Source_MM_SET_FLUSH_ZERO_MODE
_MM_SET_FLUSH_ZERO_MODE :: proc(x: u32)Source_MM_SET_ROUNDING_MODE
_MM_SET_ROUNDING_MODE :: proc(x: u32)Source_MM_TRANSPOSE4_PS
_MM_TRANSPOSE4_PS :: proc(row0: ^__m128, row1: ^__m128, row2: ^__m128, row3: ^__m128)Source__rdtscp
__rdtscp :: proc(aux: ^u32) -> (u64)Source_addcarry_u32
_addcarry_u32 :: proc(c_in: u8, a: u32, b: u32, out: ^u32) -> (u8)Source_addcarry_u64
_addcarry_u64 :: proc(c_in: u8, a: u64, b: u64, out: ^u64) -> (u8)Source_addcarryx_u32
_addcarryx_u32 :: proc(c_in: u8, a: u32, b: u32, out: ^u32) -> (u8)Source_addcarryx_u64
_addcarryx_u64 :: proc(c_in: u8, a: u64, b: u64, out: ^u64) -> (u8)Source_andn_u32
_andn_u32 :: proc(a: u32, b: u32) -> (u32)Source_andn_u64
_andn_u64 :: proc(a: u64, b: u64) -> (u64)Source_bextr2_u32
_bextr2_u32 :: proc(a: u32, control: u32) -> (u32)Source_bextr2_u64
_bextr2_u64 :: proc(a: u64, control: u64) -> (u64)Source_bextr_u32
_bextr_u32 :: proc(a: u32, start: u32, len: u32) -> (u32)Source_bextr_u64
_bextr_u64 :: proc(a: u64, start: u32, len: u32) -> (u64)Source_blsi_u32
_blsi_u32 :: proc(a: u32) -> (u32)Source_blsi_u64
_blsi_u64 :: proc(a: u64) -> (u64)Source_blsmsk_u32
_blsmsk_u32 :: proc(a: u32) -> (u32)Source_blsmsk_u64
_blsmsk_u64 :: proc(a: u64) -> (u64)Source_blsr_u32
_blsr_u32 :: proc(a: u32) -> (u32)Source_blsr_u64
_blsr_u64 :: proc(a: u64) -> (u64)Source_bzhi_u32
_bzhi_u32 :: proc(a: u32, index: u32) -> (u32)Source_bzhi_u64
_bzhi_u64 :: proc(a: u64, index: u64) -> (u64)Source_fxrstor
_fxrstor :: proc(mem_addr: rawptr)Source_fxrstor64
_fxrstor64 :: proc(mem_addr: rawptr)Source_fxsave
_fxsave :: proc(mem_addr: rawptr)Source_fxsave64
_fxsave64 :: proc(mem_addr: rawptr)Source_lzcnt_u32
_lzcnt_u32 :: proc(x: u32) -> (u32)Source_lzcnt_u64
_lzcnt_u64 :: proc(x: u64) -> (u64)Source_mm256_add_pd
_mm256_add_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceAdds packed double-precision (64-bit) floating-point elements in a and b.
_mm256_add_ps
_mm256_add_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceAdds packed single-precision (32-bit) floating-point elements in a and b.
_mm256_addsub_pd
_mm256_addsub_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceAlternatively adds and subtracts packed double-precision (64-bit) floating-point elements in a to/from packed elements in b.
_mm256_addsub_ps
_mm256_addsub_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceAlternatively adds and subtracts packed single-precision (32-bit) floating-point elements in a to/from packed elements in b.
_mm256_and_pd
_mm256_and_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceComputes the bitwise AND of a packed double-precision (64-bit) floating-point elements in a and b.
_mm256_and_ps
_mm256_and_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceComputes the bitwise AND of packed single-precision (32-bit) floating-point elements in a and b.
_mm256_andnot_pd
_mm256_andnot_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceComputes the bitwise NOT of packed double-precision (64-bit) floating-point elements in a, and then AND with b.
_mm256_andnot_ps
_mm256_andnot_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceComputes the bitwise NOT of packed single-precision (32-bit) floating-point elements in a and then AND with b.
_mm256_blend_pd
_mm256_blend_pd :: proc(a: __m256d, b: __m256d, IIM4: u32) -> (__m256d)SourceBlends packed double-precision (64-bit) floating-point elements from a and b using control mask imm8.
_mm256_blend_ps
_mm256_blend_ps :: proc(a: __m256, b: __m256, IMM8: u8) -> (__m256)SourceBlends packed single-precision (32-bit) floating-point elements from a and b using control mask imm8.
_mm256_blendv_pd
_mm256_blendv_pd :: proc(a: __m256d, b: __m256d, c: __m256d) -> (__m256d)SourceBlends packed double-precision (64-bit) floating-point elements from a and b using c as a mask.
_mm256_blendv_ps
_mm256_blendv_ps :: proc(a: __m256, b: __m256, c: __m256) -> (__m256)SourceBlends packed single-precision (32-bit) floating-point elements from a and b using c as a mask.
_mm256_broadcast_pd
_mm256_broadcast_pd :: proc(a: ^__m128d) -> (__m256d)SourceBroadcasts 128 bits from memory (composed of 2 packed double-precision (64-bit) floating-point elements) to all elements of the returned vector.
_mm256_broadcast_ps
_mm256_broadcast_ps :: proc(a: ^__m128) -> (__m256)SourceBroadcasts 128 bits from memory (composed of 4 packed single-precision (32-bit) floating-point elements) to all elements of the returned vector.
_mm256_broadcast_sd
_mm256_broadcast_sd :: proc(f: ^f64) -> (__m256d)SourceBroadcasts a double-precision (64-bit) floating-point element from memory to all elements of the returned vector.
_mm256_broadcast_ss
_mm256_broadcast_ss :: proc(f: ^f32) -> (__m256)SourceBroadcasts a single-precision (32-bit) floating-point element from memory to all elements of the returned vector.
_mm256_castpd128_pd256
_mm256_castpd128_pd256 :: proc(a: __m128d) -> (__m256d)SourceCasts vector of type __m128d to type __m256d; the upper 128 bits of the result are indeterminate.
In the Intel documentation, the upper bits are declared to be "undefined".
_mm256_castpd256_pd128
_mm256_castpd256_pd128 :: proc(a: __m256d) -> (__m128d)SourceCasts vector of type __m256d to type __m128d.
_mm256_castpd_ps
_mm256_castpd_ps :: proc(a: __m256d) -> (__m256)SourceCast vector of type __m256d to type __m256.
_mm256_castpd_si256
_mm256_castpd_si256 :: proc(a: __m256d) -> (__m256i)SourceCasts vector of type __m256d to type __m256i.
_mm256_castps128_ps256
_mm256_castps128_ps256 :: proc(a: __m128) -> (__m256)SourceCasts vector of type __m128 to type __m256; the upper 128 bits of the result are indeterminate.
In the Intel documentation, the upper bits are declared to be "undefined".
_mm256_castps256_ps128
_mm256_castps256_ps128 :: proc(a: __m256) -> (__m128)SourceCasts vector of type __m256 to type __m128.
_mm256_castps_pd
_mm256_castps_pd :: proc(a: __m256) -> (__m256d)SourceCast vector of type __m256 to type __m256d.
_mm256_castps_si256
_mm256_castps_si256 :: proc(a: __m256) -> (__m256i)SourceCasts vector of type __m256 to type __m256i.
_mm256_castsi128_si256
_mm256_castsi128_si256 :: proc(a: __m128i) -> (__m256i)SourceCasts vector of type __m128i to type __m256i; the upper 128 bits of the result are indeterminate.
In the Intel documentation, the upper bits are declared to be "undefined".
_mm256_castsi256_pd
_mm256_castsi256_pd :: proc(a: __m256i) -> (__m256d)SourceCasts vector of type __m256i to type __m256d.
_mm256_castsi256_ps
_mm256_castsi256_ps :: proc(a: __m256i) -> (__m256)SourceCasts vector of type __m256i to type __m256.
_mm256_castsi256_si128
_mm256_castsi256_si128 :: proc(a: __m256i) -> (__m128i)SourceCasts vector of type __m256i to type __m128i.
_mm256_ceil_pd
_mm256_ceil_pd :: proc(a: __m256d) -> (__m256d)SourceRounds packed double-precision (64-bit) floating point elements in a toward positive infinity.
_mm256_ceil_ps
_mm256_ceil_ps :: proc(a: __m256) -> (__m256)SourceRounds packed single-precision (32-bit) floating point elements in a toward positive infinity.
_mm256_cmp_pd
_mm256_cmp_pd :: proc(a: __m256d, b: __m256d, IMM5: u8) -> (__m256d)SourceCompares packed double-precision (64-bit) floating-point elements in a and b based on the comparison operand specified by IMM5.
_mm256_cmp_ps
_mm256_cmp_ps :: proc(a: __m256, b: __m256, IMM5: u8) -> (__m256)SourceCompares packed single-precision (32-bit) floating-point elements in a and b based on the comparison operand specified by IMM5.
_mm256_cvtepi32_pd
_mm256_cvtepi32_pd :: proc(a: __m128i) -> (__m256d)SourceConverts packed 32-bit integers in a to packed double-precision (64-bit) floating-point elements.
_mm256_cvtepi32_ps
_mm256_cvtepi32_ps :: proc(a: __m256i) -> (__m256)SourceConverts packed 32-bit integers in a to packed single-precision (32-bit) floating-point elements.
_mm256_cvtpd_epi32
_mm256_cvtpd_epi32 :: proc(a: __m256d) -> (__m128i)SourceConverts packed double-precision (64-bit) floating-point elements in a to packed 32-bit integers.
_mm256_cvtpd_ps
_mm256_cvtpd_ps :: proc(a: __m256d) -> (__m128)SourceConverts packed double-precision (64-bit) floating-point elements in a to packed single-precision (32-bit) floating-point elements.
_mm256_cvtps_epi32
_mm256_cvtps_epi32 :: proc(a: __m256) -> (__m256i)SourceConverts packed single-precision (32-bit) floating-point elements in a to packed 32-bit integers.
_mm256_cvtps_pd
_mm256_cvtps_pd :: proc(a: __m128) -> (__m256d)SourceConverts packed single-precision (32-bit) floating-point elements in a to packed double-precision (64-bit) floating-point elements.
_mm256_cvtsd_f64
_mm256_cvtsd_f64 :: proc(a: __m256d) -> (f64)SourceReturns the first element of the input vector of [4 x double].
_mm256_cvtsi256_si32
_mm256_cvtsi256_si32 :: proc(a: __m256i) -> (i32)Source_mm256_cvtss_f32
_mm256_cvtss_f32 :: proc(a: __m256) -> (f32)SourceReturns the first element of the input vector of [8 x float].
_mm256_cvttpd_epi32
_mm256_cvttpd_epi32 :: proc(a: __m256d) -> (__m128i)SourceConverts packed double-precision (64-bit) floating-point elements in a to packed 32-bit integers with truncation.
_mm256_cvttps_epi32
_mm256_cvttps_epi32 :: proc(a: __m256) -> (__m256i)SourceConverts packed single-precision (32-bit) floating-point elements in a to packed 32-bit integers with truncation.
_mm256_div_pd
_mm256_div_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceComputes the division of each of the 4 packed 64-bit floating-point elements in a by the corresponding packed elements in b.
_mm256_div_ps
_mm256_div_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceComputes the division of each of the 8 packed 32-bit floating-point elements in a by the corresponding packed elements in b.
_mm256_dp_ps
_mm256_dp_ps :: proc(a: __m256, b: __m256, IMM8: i8) -> (__m256)SourceConditionally multiplies 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 return the sum using the low 4 bits of imm8.
_mm256_extract_epi32
_mm256_extract_epi32 :: proc(a: __m256i, INDEX: u8) -> (i32)SourceExtracts a 32-bit integer from a, selected with INDEX.
_mm256_extract_epi64
_mm256_extract_epi64 :: proc(a: __m256i, idx: u32) -> (i64)Source_mm256_extractf128_pd
_mm256_extractf128_pd :: proc(a: __m256d, IMM1: u8) -> (__m128d)SourceExtracts 128 bits (composed of 2 packed double-precision (64-bit) floating-point elements) from a, selected with imm8.
_mm256_extractf128_ps
_mm256_extractf128_ps :: proc(a: __m256, IMM1: u8) -> (__m128)SourceExtracts 128 bits (composed of 4 packed single-precision (32-bit) floating-point elements) from a, selected with imm8.
_mm256_extractf128_si256
_mm256_extractf128_si256 :: proc(a: __m256i, IMM1: u8) -> (__m128i)SourceExtracts 128 bits (composed of integer data) from a, selected with imm8.
_mm256_floor_pd
_mm256_floor_pd :: proc(a: __m256d) -> (__m256d)SourceRounds packed double-precision (64-bit) floating point elements in a toward negative infinity.
_mm256_floor_ps
_mm256_floor_ps :: proc(a: __m256) -> (__m256)SourceRounds packed single-precision (32-bit) floating point elements in a toward negative infinity.
_mm256_hadd_pd
_mm256_hadd_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceHorizontal addition of adjacent pairs in the two packed vectors of 4 64-bit floating points a and b. In the result, sums of elements from a are returned in even locations, while sums of elements from b are returned in odd locations.
_mm256_hadd_ps
_mm256_hadd_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceHorizontal addition of adjacent pairs in the two packed vectors of 8 32-bit floating points a and b. In the result, sums of elements from a are returned in locations of indices 0, 1, 4, 5; while sums of elements from b are locations 2, 3, 6, 7.
_mm256_hsub_pd
_mm256_hsub_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceHorizontal subtraction of adjacent pairs in the two packed vectors of 4 64-bit floating points a and b. In the result, sums of elements from a are returned in even locations, while sums of elements from b are returned in odd locations.
_mm256_hsub_ps
_mm256_hsub_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceHorizontal subtraction of adjacent pairs in the two packed vectors of 8 32-bit floating points a and b. In the result, sums of elements from a are returned in locations of indices 0, 1, 4, 5; while sums of elements from b are locations 2, 3, 6, 7.
_mm256_insert_epi16
_mm256_insert_epi16 :: proc(a: __m256i, i: i16, INDEX: u8) -> (__m256i)SourceCopies a to result, and inserts the 16-bit integer i into result at the location specified by index.
_mm256_insert_epi32
_mm256_insert_epi32 :: proc(a: __m256i, i: i32, INDEX: u8) -> (__m256i)SourceCopies a to result, and inserts the 32-bit integer i into result at the location specified by index.
_mm256_insert_epi64
_mm256_insert_epi64 :: proc(a: __m256i, i: i64, idx: u32) -> (__m256i)Source_mm256_insert_epi8
_mm256_insert_epi8 :: proc(a: __m256i, i: i8, INDEX: u8) -> (__m256i)SourceCopies a to result, and inserts the 8-bit integer i into result at the location specified by index.
_mm256_insertf128_pd
_mm256_insertf128_pd :: proc(a: __m256d, b: __m128d, IMM1: u8) -> (__m256d)SourceCopies a to result, then inserts 128 bits (composed of 2 packed double-precision (64-bit) floating-point elements) from b into result at the location specified by imm8.
_mm256_insertf128_ps
_mm256_insertf128_ps :: proc(a: __m256, b: __m128, IMM1: u8) -> (__m256)SourceCopies a to result, then inserts 128 bits (composed of 4 packed single-precision (32-bit) floating-point elements) from b into result at the location specified by imm8.
_mm256_insertf128_si256
_mm256_insertf128_si256 :: proc(a: __m256i, b: __m128i, IMM1: u8) -> (__m256i)SourceCopies a to result, then inserts 128 bits from b into result at the location specified by imm8.
_mm256_lddqu_si256
_mm256_lddqu_si256 :: proc(mem_addr: ^__m256i) -> (__m256i)SourceLoads 256-bits of integer data from unaligned memory into result. This intrinsic may perform better than _mm256_loadu_si256 when the data crosses a cache line boundary.
_mm256_load_pd
_mm256_load_pd :: proc(mem_addr: ^f64) -> (__m256d)SourceLoads 256-bits (composed of 4 packed double-precision (64-bit) floating-point elements) from memory into result. mem_addr must be aligned on a 32-byte boundary or a general-protection exception may be generated.
_mm256_load_ps
_mm256_load_ps :: proc(mem_addr: ^f32) -> (__m256)SourceLoads 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from memory into result. mem_addr must be aligned on a 32-byte boundary or a general-protection exception may be generated.
_mm256_load_si256
_mm256_load_si256 :: proc(mem_addr: ^__m256i) -> (__m256i)SourceLoads 256-bits of integer data from memory into result. mem_addr must be aligned on a 32-byte boundary or a general-protection exception may be generated.
_mm256_loadu2_m128
_mm256_loadu2_m128 :: proc(hiaddr: ^f32, loaddr: ^f32) -> (__m256)SourceLoads 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. hiaddr and loaddr do not need to be aligned on any particular boundary.
_mm256_loadu2_m128d
_mm256_loadu2_m128d :: proc(hiaddr: ^f64, loaddr: ^f64) -> (__m256d)SourceLoads 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. hiaddr and loaddr do not need to be aligned on any particular boundary.
_mm256_loadu2_m128i
_mm256_loadu2_m128i :: proc(hiaddr: ^__m128i, loaddr: ^__m128i) -> (__m256i)SourceLoads two 128-bit values (composed of integer data) from memory, and combine them into a 256-bit value. hiaddr and loaddr do not need to be aligned on any particular boundary.
_mm256_loadu_pd
_mm256_loadu_pd :: proc(mem_addr: ^f64) -> (__m256d)SourceLoads 256-bits (composed of 4 packed double-precision (64-bit) floating-point elements) from memory into result. mem_addr does not need to be aligned on any particular boundary.
_mm256_loadu_ps
_mm256_loadu_ps :: proc(mem_addr: ^f32) -> (__m256)SourceLoads 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from memory into result. mem_addr does not need to be aligned on any particular boundary.
_mm256_loadu_si256
_mm256_loadu_si256 :: proc(mem_addr: ^__m256i) -> (__m256i)SourceLoads 256-bits of integer data from memory into result. mem_addr does not need to be aligned on any particular boundary.
_mm256_maskload_pd
_mm256_maskload_pd :: proc(mem_addr: ^f64, mask: __m256i) -> (__m256d)SourceLoads packed double-precision (64-bit) floating-point elements from memory into result using mask (elements are zeroed out when the high bit of the corresponding element is not set).
_mm256_maskload_ps
_mm256_maskload_ps :: proc(mem_addr: ^f32, mask: __m256i) -> (__m256)SourceLoads packed single-precision (32-bit) floating-point elements from memory into result using mask (elements are zeroed out when the high bit of the corresponding element is not set).
_mm256_maskstore_pd
_mm256_maskstore_pd :: proc(mem_addr: ^f64, mask: __m256i, a: __m256d)SourceStores packed double-precision (64-bit) floating-point elements from a into memory using mask.
_mm256_maskstore_ps
_mm256_maskstore_ps :: proc(mem_addr: ^f32, mask: __m256i, a: __m256)SourceStores packed single-precision (32-bit) floating-point elements from a into memory using mask.
_mm256_max_pd
_mm256_max_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceCompares packed double-precision (64-bit) floating-point elements in a and b, and returns packed maximum values
_mm256_max_ps
_mm256_max_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceCompares packed single-precision (32-bit) floating-point elements in a and b, and returns packed maximum values
_mm256_min_pd
_mm256_min_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceCompares packed double-precision (64-bit) floating-point elements in a and b, and returns packed minimum values
_mm256_min_ps
_mm256_min_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceCompares packed single-precision (32-bit) floating-point elements in a and b, and returns packed minimum values
_mm256_movedup_pd
_mm256_movedup_pd :: proc(a: __m256d) -> (__m256d)SourceDuplicate even-indexed double-precision (64-bit) floating-point elements from a, and returns the results.
_mm256_movehdup_ps
_mm256_movehdup_ps :: proc(a: __m256) -> (__m256)SourceDuplicate odd-indexed single-precision (32-bit) floating-point elements from a, and returns the results.
_mm256_moveldup_ps
_mm256_moveldup_ps :: proc(a: __m256) -> (__m256)SourceDuplicate even-indexed single-precision (32-bit) floating-point elements from a, and returns the results.
_mm256_movemask_pd
_mm256_movemask_pd :: proc(a: __m256d) -> (i32)SourceSets each bit of the returned mask based on the most significant bit of the corresponding packed double-precision (64-bit) floating-point element in a.
_mm256_movemask_ps
_mm256_movemask_ps :: proc(a: __m256) -> (i32)SourceSets each bit of the returned mask based on the most significant bit of the corresponding packed single-precision (32-bit) floating-point element in a.
_mm256_mul_pd
_mm256_mul_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceMultiplies packed double-precision (64-bit) floating-point elements in a and b.
_mm256_mul_ps
_mm256_mul_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceMultiplies packed single-precision (32-bit) floating-point elements in a and b.
_mm256_or_pd
_mm256_or_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceComputes the bitwise OR packed double-precision (64-bit) floating-point elements in a and b.
_mm256_or_ps
_mm256_or_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceComputes the bitwise OR packed single-precision (32-bit) floating-point elements in a and b.
_mm256_permute2f128_pd
_mm256_permute2f128_pd :: proc(a: __m256d, b: __m256d, IMM8: u8) -> (__m256d)SourceShuffles 256 bits (composed of 4 packed double-precision (64-bit) floating-point elements) selected by imm8 from a and b.
_mm256_permute2f128_ps
_mm256_permute2f128_ps :: proc(a: __m256, b: __m256, IMM8: u8) -> (__m256)SourceShuffles 256 bits (composed of 8 packed single-precision (32-bit) floating-point elements) selected by imm8 from a and b.
_mm256_permute2f128_si256
_mm256_permute2f128_si256 :: proc(a: __m256i, b: __m256i, IMM8: u8) -> (__m256i)SourceShuffles 128-bits (composed of integer data) selected by imm8 from a and b.
_mm256_permute_pd
_mm256_permute_pd :: proc(a: __m256d, IMM4: u8) -> (__m256d)SourceShuffles double-precision (64-bit) floating-point elements in a within 128-bit lanes using the control in imm8.
_mm256_permute_ps
_mm256_permute_ps :: proc(a: __m256, IMM8: u8) -> (__m256)SourceShuffles single-precision (32-bit) floating-point elements in a within 128-bit lanes using the control in imm8.
_mm256_permutevar_pd
_mm256_permutevar_pd :: proc(a: __m256d, b: __m256i) -> (__m256d)SourceShuffles double-precision (64-bit) floating-point elements in a within 256-bit lanes using the control in b.
_mm256_permutevar_ps
_mm256_permutevar_ps :: proc(a: __m256, b: __m256i) -> (__m256)SourceShuffles single-precision (32-bit) floating-point elements in a within 128-bit lanes using the control in b.
_mm256_rcp_ps
_mm256_rcp_ps :: proc(a: __m256) -> (__m256)Source// Moves integer data from a 256-bit integer vector to a 32-byte // aligned memory location. To minimize caching, the data is flagged as // non-temporal (unlikely to be used again soon) // // Intel's documentation // // # Safety of non-temporal stores // // After using this intrinsic, but before any other access to the memory that this intrinsic // mutates, a call to [_mm_sfence] must be performed by the thread that used the intrinsic. In // particular, functions that call this intrinsic should generally call _mm_sfence before they // return. // // See [_mm_sfence] for details. @(enable_target_feature="avx") _mm256_stream_si256 :: #force_inline proc "c" (mem_addr: ^__m256i, a: __m256i) {
panic_contextless("TODO: _mm256_stream_si256")
}
// Moves double-precision values from a 256-bit vector of `[4 x double]`
// to a 32-byte aligned memory location. To minimize caching, the data is
// flagged as non-temporal (unlikely to be used again soon).
//
// [Intel's documentation](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm256_stream_pd)
//
// # Safety of non-temporal stores
//
// After using this intrinsic, but before any other access to the memory that this intrinsic
// mutates, a call to [`_mm_sfence`] must be performed by the thread that used the intrinsic. In
// particular, functions that call this intrinsic should generally call `_mm_sfence` before they
// return.
//
// See [`_mm_sfence`] for details.
@(enable_target_feature="avx")
_mm256_stream_pd :: #force_inline proc "c" (mem_addr: ^f64, a: __m256d) {
panic_contextless("TODO: _mm256_stream_pd")
}
// Moves single-precision floating point values from a 256-bit vector
// of `[8 x float]` to a 32-byte aligned memory location. To minimize
// caching, the data is flagged as non-temporal (unlikely to be used again
// soon).
//
// [Intel's documentation](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm256_stream_ps)
//
// # Safety of non-temporal stores
//
// After using this intrinsic, but before any other access to the memory that this intrinsic
// mutates, a call to [`_mm_sfence`] must be performed by the thread that used the intrinsic. In
// particular, functions that call this intrinsic should generally call `_mm_sfence` before they
// return.
//
// See [`_mm_sfence`] for details.
@(enable_target_feature="avx")
_mm256_stream_ps :: #force_inline proc "c" (mem_addr: ^f32, a: __m256) {
panic_contextless("TODO: _mm256_stream_ps")
}
Computes the approximate reciprocal of packed single-precision (32-bit) floating-point elements in `a`, and returns the results. The maximum
relative error for this approximation is less than 1.5*2^-12.
[Intel's documentation](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm256_rcp_ps)_mm256_round_pd
_mm256_round_pd :: proc(a: __m256d, ROUNDING: u8) -> (__m256d)SourceRounds packed double-precision (64-bit) floating point elements in a according to the flag ROUNDING. The value of ROUNDING may be as follows:
0x00: Round to the nearest whole number.0x01: Round down, toward negative infinity.0x02: Round up, toward positive infinity.0x03: Truncate the values.
For a complete list of options, check [the LLVM docs][llvm_docs].
[llvm_docs]: https://github.com/llvm-mirror/clang/blob/dcd8d797b20291f1a6b3e0ddda085aa2bbb382a8/lib/Headers/avxintrin.h#L382
_mm256_round_ps
_mm256_round_ps :: proc(a: __m256, ROUNDING: u8) -> (__m256)SourceRounds packed single-precision (32-bit) floating point elements in a according to the flag ROUNDING. The value of ROUNDING may be as follows:
0x00: Round to the nearest whole number.0x01: Round down, toward negative infinity.0x02: Round up, toward positive infinity.0x03: Truncate the values.
For a complete list of options, check [the LLVM docs][llvm_docs].
[llvm_docs]: https://github.com/llvm-mirror/clang/blob/dcd8d797b20291f1a6b3e0ddda085aa2bbb382a8/lib/Headers/avxintrin.h#L382
_mm256_rsqrt_ps
_mm256_rsqrt_ps :: proc(a: __m256) -> (__m256)SourceComputes the approximate reciprocal square root of packed single-precision (32-bit) floating-point elements in a, and returns the results. The maximum relative error for this approximation is less than 1.5*2^-12.
_mm256_set1_epi16
_mm256_set1_epi16 :: proc(a: i16) -> (__m256i)SourceBroadcasts 16-bit integer a to all elements of returned vector. This intrinsic may generate the vpbroadcastw.
_mm256_set1_epi32
_mm256_set1_epi32 :: proc(a: i32) -> (__m256i)SourceBroadcasts 32-bit integer a to all elements of returned vector. This intrinsic may generate the vpbroadcastd.
_mm256_set1_epi64x
_mm256_set1_epi64x :: proc(a: i64) -> (__m256i)SourceBroadcasts 64-bit integer a to all elements of returned vector. This intrinsic may generate the vpbroadcastq.
_mm256_set1_epi8
_mm256_set1_epi8 :: proc(a: i8) -> (__m256i)SourceBroadcasts 8-bit integer a to all elements of returned vector. This intrinsic may generate the vpbroadcastb.
_mm256_set1_pd
_mm256_set1_pd :: proc(a: f64) -> (__m256d)SourceBroadcasts double-precision (64-bit) floating-point value a to all elements of returned vector.
_mm256_set1_ps
_mm256_set1_ps :: proc(a: f32) -> (__m256)SourceBroadcasts single-precision (32-bit) floating-point value a to all elements of returned vector.
_mm256_set_epi16
_mm256_set_epi16 :: proc(
e00: i16,
e01: i16,
e02: i16,
e03: i16,
e04: i16,
e05: i16,
e06: i16,
e07: i16,
e08: i16,
e09: i16,
e10: i16,
e11: i16,
e12: i16,
e13: i16,
e14: i16,
e15: i16,
) -> (__m256i)SourceSets packed 16-bit integers in returned vector with the supplied values.
_mm256_set_epi32
_mm256_set_epi32 :: proc(
e0: i32,
e1: i32,
e2: i32,
e3: i32,
e4: i32,
e5: i32,
e6: i32,
e7: i32,
) -> (__m256i)SourceSets packed 32-bit integers in returned vector with the supplied values.
_mm256_set_epi64x
_mm256_set_epi64x :: proc(a: i64, b: i64, c: i64, d: i64) -> (__m256i)SourceSets packed 64-bit integers in returned vector with the supplied values.
_mm256_set_epi8
_mm256_set_epi8 :: proc(
e00: i8,
e01: i8,
e02: i8,
e03: i8,
e04: i8,
e05: i8,
e06: i8,
e07: i8,
e08: i8,
e09: i8,
e10: i8,
e11: i8,
e12: i8,
e13: i8,
e14: i8,
e15: i8,
e16: i8,
e17: i8,
e18: i8,
e19: i8,
e20: i8,
e21: i8,
e22: i8,
e23: i8,
e24: i8,
e25: i8,
e26: i8,
e27: i8,
e28: i8,
e29: i8,
e30: i8,
e31: i8,
) -> (__m256i)SourceSets packed 8-bit integers in returned vector with the supplied values.
_mm256_set_m128
_mm256_set_m128 :: proc(hi: __m128, lo: __m128) -> (__m256)SourceSets packed __m256 returned vector with the supplied values.
_mm256_set_m128d
_mm256_set_m128d :: proc(hi: __m128d, lo: __m128d) -> (__m256d)SourceSets packed __m256d returned vector with the supplied values.
_mm256_set_m128i
_mm256_set_m128i :: proc(hi: __m128i, lo: __m128i) -> (__m256i)SourceSets packed __m256i returned vector with the supplied values.
_mm256_set_pd
_mm256_set_pd :: proc(a: f64, b: f64, c: f64, d: f64) -> (__m256d)SourceSets packed double-precision (64-bit) floating-point elements in returned vector with the supplied values.
_mm256_set_ps
_mm256_set_ps :: proc(
a: f32,
b: f32,
c: f32,
d: f32,
e: f32,
f: f32,
g: f32,
h: f32,
) -> (__m256)SourceSets packed single-precision (32-bit) floating-point elements in returned vector with the supplied values.
_mm256_setr_epi16
_mm256_setr_epi16 :: proc(
e00: i16,
e01: i16,
e02: i16,
e03: i16,
e04: i16,
e05: i16,
e06: i16,
e07: i16,
e08: i16,
e09: i16,
e10: i16,
e11: i16,
e12: i16,
e13: i16,
e14: i16,
e15: i16,
) -> (__m256i)SourceSets packed 16-bit integers in returned vector with the supplied values in reverse order.
_mm256_setr_epi32
_mm256_setr_epi32 :: proc(
e0: i32,
e1: i32,
e2: i32,
e3: i32,
e4: i32,
e5: i32,
e6: i32,
e7: i32,
) -> (__m256i)SourceSets packed 32-bit integers in returned vector with the supplied values in reverse order.
_mm256_setr_epi64x
_mm256_setr_epi64x :: proc(a: i64, b: i64, c: i64, d: i64) -> (__m256i)SourceSets packed 64-bit integers in returned vector with the supplied values in reverse order.
_mm256_setr_epi8
_mm256_setr_epi8 :: proc(
e00: i8,
e01: i8,
e02: i8,
e03: i8,
e04: i8,
e05: i8,
e06: i8,
e07: i8,
e08: i8,
e09: i8,
e10: i8,
e11: i8,
e12: i8,
e13: i8,
e14: i8,
e15: i8,
e16: i8,
e17: i8,
e18: i8,
e19: i8,
e20: i8,
e21: i8,
e22: i8,
e23: i8,
e24: i8,
e25: i8,
e26: i8,
e27: i8,
e28: i8,
e29: i8,
e30: i8,
e31: i8,
) -> (__m256i)SourceSets packed 8-bit integers in returned vector with the supplied values in reverse order.
_mm256_setr_m128
_mm256_setr_m128 :: proc(lo: __m128, hi: __m128) -> (__m256)SourceSets packed __m256 returned vector with the supplied values.
_mm256_setr_m128d
_mm256_setr_m128d :: proc(lo: __m128d, hi: __m128d) -> (__m256d)SourceSets packed __m256d returned vector with the supplied values.
_mm256_setr_m128i
_mm256_setr_m128i :: proc(lo: __m128i, hi: __m128i) -> (__m256i)SourceSets packed __m256i returned vector with the supplied values.
_mm256_setr_pd
_mm256_setr_pd :: proc(a: f64, b: f64, c: f64, d: f64) -> (__m256d)SourceSets packed double-precision (64-bit) floating-point elements in returned vector with the supplied values in reverse order.
_mm256_setr_ps
_mm256_setr_ps :: proc(
a: f32,
b: f32,
c: f32,
d: f32,
e: f32,
f: f32,
g: f32,
h: f32,
) -> (__m256)SourceSets packed single-precision (32-bit) floating-point elements in returned vector with the supplied values in reverse order.
_mm256_setzero_pd
_mm256_setzero_pd :: proc() -> (__m256d)SourceReturns vector of type __m256d with all elements set to zero.
_mm256_setzero_ps
_mm256_setzero_ps :: proc() -> (__m256)SourceReturns vector of type __m256 with all elements set to zero.
_mm256_setzero_si256
_mm256_setzero_si256 :: proc() -> (__m256i)SourceReturns vector of type __m256i with all elements set to zero.
_mm256_shuffle_pd
_mm256_shuffle_pd :: proc(a: __m256d, b: __m256d, MASK: u8) -> (__m256d)SourceShuffles double-precision (64-bit) floating-point elements within 128-bit lanes using the control in imm8.
_mm256_shuffle_ps
_mm256_shuffle_ps :: proc(a: __m256, b: __m256, MASK: u8) -> (__m256)SourceShuffles single-precision (32-bit) floating-point elements in a within 128-bit lanes using the control in imm8.
_mm256_sqrt_pd
_mm256_sqrt_pd :: proc(a: __m256d) -> (__m256d)SourceReturns the square root of packed double-precision (64-bit) floating point elements in a.
_mm256_sqrt_ps
_mm256_sqrt_ps :: proc(a: __m256) -> (__m256)SourceReturns the square root of packed single-precision (32-bit) floating point elements in a.
_mm256_store_pd
_mm256_store_pd :: proc(mem_addr: ^f64, a: __m256d)SourceStores 256-bits (composed of 4 packed double-precision (64-bit) floating-point elements) from a into memory. mem_addr must be aligned on a 32-byte boundary or a general-protection exception may be generated.
_mm256_store_ps
_mm256_store_ps :: proc(mem_addr: ^f32, a: __m256)SourceStores 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from a into memory. mem_addr must be aligned on a 32-byte boundary or a general-protection exception may be generated.
_mm256_store_si256
_mm256_store_si256 :: proc(mem_addr: ^__m256i, a: __m256i)SourceStores 256-bits of integer data from a into memory. mem_addr must be aligned on a 32-byte boundary or a general-protection exception may be generated.
_mm256_storeu2_m128
_mm256_storeu2_m128 :: proc(hiaddr: ^f32, loaddr: ^f32, a: __m256)SourceStores 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
_mm256_storeu2_m128d :: proc(hiaddr: ^f64, loaddr: ^f64, a: __m256d)SourceStores 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
_mm256_storeu2_m128i :: proc(hiaddr: ^__m128i, loaddr: ^__m128i, a: __m256i)SourceStores 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_storeu_pd
_mm256_storeu_pd :: proc(mem_addr: ^f64, a: __m256d)SourceStores 256-bits (composed of 4 packed double-precision (64-bit) floating-point elements) from a into memory. mem_addr does not need to be aligned on any particular boundary.
_mm256_storeu_ps
_mm256_storeu_ps :: proc(mem_addr: ^f32, a: __m256)SourceStores 256-bits (composed of 8 packed single-precision (32-bit) floating-point elements) from a into memory. mem_addr does not need to be aligned on any particular boundary.
_mm256_storeu_si256
_mm256_storeu_si256 :: proc(mem_addr: ^__m256i, a: __m256i)SourceStores 256-bits of integer data from a into memory. mem_addr does not need to be aligned on any particular boundary.
_mm256_sub_pd
_mm256_sub_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceSubtracts packed double-precision (64-bit) floating-point elements in b from packed elements in a.
_mm256_sub_ps
_mm256_sub_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceSubtracts packed single-precision (32-bit) floating-point elements in b from packed elements in a.
_mm256_testc_pd
_mm256_testc_pd :: proc(a: __m256d, b: __m256d) -> (i32)SourceComputes 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
_mm256_testc_ps :: proc(a: __m256, b: __m256) -> (i32)SourceComputes 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
_mm256_testc_si256 :: proc(a: __m256i, b: __m256i) -> (i32)SourceComputes 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. Computes 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
_mm256_testnzc_pd :: proc(a: __m256d, b: __m256d) -> (i32)SourceComputes 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
_mm256_testnzc_ps :: proc(a: __m256, b: __m256) -> (i32)SourceComputes 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
_mm256_testnzc_si256 :: proc(a: __m256i, b: __m256i) -> (i32)SourceComputes 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. Computes 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
_mm256_testz_pd :: proc(a: __m256d, b: __m256d) -> (i32)SourceComputes 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
_mm256_testz_ps :: proc(a: __m256, b: __m256) -> (i32)SourceComputes 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
_mm256_testz_si256 :: proc(a: __m256i, b: __m256i) -> (i32)SourceComputes 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. Computes 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
_mm256_undefined_pd :: proc() -> (__m256d)SourceReturns vector of type __m256d with indeterminate elements. Despite using the word "undefined" (following Intel's naming scheme), this non-deterministically
_mm256_undefined_ps
_mm256_undefined_ps :: proc() -> (__m256)SourceReturns vector of type __m256 with indeterminate elements. Despite using the word "undefined" (following Intel's naming scheme), this non-deterministically
_mm256_undefined_si256
_mm256_undefined_si256 :: proc() -> (__m256i)SourceReturns vector of type __m256i with with indeterminate elements. Despite using the word "undefined" (following Intel's naming scheme), this non-deterministically
_mm256_unpackhi_pd
_mm256_unpackhi_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceUnpacks and interleave double-precision (64-bit) floating-point elements from the high half of each 128-bit lane in a and b.
_mm256_unpackhi_ps
_mm256_unpackhi_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceUnpacks and interleave single-precision (32-bit) floating-point elements from the high half of each 128-bit lane in a and b.
_mm256_unpacklo_pd
_mm256_unpacklo_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceUnpacks and interleave double-precision (64-bit) floating-point elements from the low half of each 128-bit lane in a and b.
_mm256_unpacklo_ps
_mm256_unpacklo_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceUnpacks and interleave single-precision (32-bit) floating-point elements from the low half of each 128-bit lane in a and b.
_mm256_xor_pd
_mm256_xor_pd :: proc(a: __m256d, b: __m256d) -> (__m256d)SourceComputes the bitwise XOR of packed double-precision (64-bit) floating-point elements in a and b.
_mm256_xor_ps
_mm256_xor_ps :: proc(a: __m256, b: __m256) -> (__m256)SourceComputes the bitwise XOR of packed single-precision (32-bit) floating-point elements in a and b.
_mm256_zeroall
_mm256_zeroall :: proc()SourceZeroes the contents of all XMM or YMM registers.
_mm256_zeroupper
_mm256_zeroupper :: proc()SourceZeroes the upper 128 bits of all YMM registers; the lower 128-bits of the registers are unmodified.
_mm256_zextpd128_pd256
_mm256_zextpd128_pd256 :: proc(a: __m128d) -> (__m256d)SourceConstructs a 256-bit floating-point vector of [4 x double] from a 128-bit floating-point vector of [2 x double]. The lower 128 bits contain the value of the source vector. The upper 128 bits are set to zero.
_mm256_zextps128_ps256
_mm256_zextps128_ps256 :: proc(a: __m128) -> (__m256)SourceConstructs a 256-bit floating-point vector of [8 x float] from a 128-bit floating-point vector of [4 x float]. The lower 128 bits contain the value of the source vector. The upper 128 bits are set to zero.
_mm256_zextsi128_si256
_mm256_zextsi128_si256 :: proc(a: __m128i) -> (__m256i)SourceConstructs a 256-bit integer vector from a 128-bit integer vector. The lower 128 bits contain the value of the source vector. The upper 128 bits are set to zero.
_mm_abs_epi16
_mm_abs_epi16 :: proc(a: __m128i) -> (__m128i)Source_mm_abs_epi32
_mm_abs_epi32 :: proc(a: __m128i) -> (__m128i)Source_mm_abs_epi8
_mm_abs_epi8 :: proc(a: __m128i) -> (__m128i)Source_mm_add_epi16
_mm_add_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_add_epi32
_mm_add_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_add_epi64
_mm_add_epi64 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_add_epi8
_mm_add_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_add_pd
_mm_add_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_add_ps
_mm_add_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_add_sd
_mm_add_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_add_ss
_mm_add_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_adds_epi16
_mm_adds_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_adds_epi8
_mm_adds_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_adds_epu16
_mm_adds_epu16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_adds_epu8
_mm_adds_epu8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_addsub_pd
_mm_addsub_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_addsub_ps
_mm_addsub_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_aesdec_si128
_mm_aesdec_si128 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_aesdeclast_si128
_mm_aesdeclast_si128 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_aesenc_si128
_mm_aesenc_si128 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_aesenclast_si128
_mm_aesenclast_si128 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_aesimc_si128
_mm_aesimc_si128 :: proc(a: __m128i) -> (__m128i)Source_mm_aeskeygenassist_si128
_mm_aeskeygenassist_si128 :: proc(a: __m128i, IMM8: u8) -> (__m128i)Source_mm_alignr_epi8
_mm_alignr_epi8 :: proc(a: __m128i, b: __m128i, IMM8: u32) -> (__m128i)Source_mm_and_pd
_mm_and_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_and_ps
_mm_and_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_and_si128
_mm_and_si128 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_andnot_pd
_mm_andnot_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_andnot_ps
_mm_andnot_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_andnot_si128
_mm_andnot_si128 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_avg_epu16
_mm_avg_epu16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_avg_epu8
_mm_avg_epu8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_blend_epi16
_mm_blend_epi16 :: proc(a: __m128i, b: __m128i, IMM8: u8) -> (__m128i)Source_mm_blend_pd
_mm_blend_pd :: proc(a: __m128d, b: __m128d, IMM2: u8) -> (__m128d)Source_mm_blend_ps
_mm_blend_ps :: proc(a: __m128, b: __m128, IMM4: u8) -> (__m128)Source_mm_blendv_epi8
_mm_blendv_epi8 :: proc(a: __m128i, b: __m128i, mask: __m128i) -> (__m128i)Source_mm_blendv_pd
_mm_blendv_pd :: proc(a: __m128d, b: __m128d, mask: __m128d) -> (__m128d)Source_mm_blendv_ps
_mm_blendv_ps :: proc(a: __m128, b: __m128, mask: __m128) -> (__m128)Source_mm_broadcast_ss
_mm_broadcast_ss :: proc(f: ^f32) -> (__m128)SourceBroadcasts a single-precision (32-bit) floating-point element from memory to all elements of the returned vector.
_mm_bslli_si128
_mm_bslli_si128 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_bsrli_si128
_mm_bsrli_si128 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_castpd_ps
_mm_castpd_ps :: proc(a: __m128d) -> (__m128)Source_mm_castpd_si128
_mm_castpd_si128 :: proc(a: __m128d) -> (__m128i)Source_mm_castps_pd
_mm_castps_pd :: proc(a: __m128) -> (__m128d)Source_mm_castps_si128
_mm_castps_si128 :: proc(a: __m128) -> (__m128i)Source_mm_castsi128_pd
_mm_castsi128_pd :: proc(a: __m128i) -> (__m128d)Source_mm_castsi128_ps
_mm_castsi128_ps :: proc(a: __m128i) -> (__m128)Source_mm_ceil_pd
_mm_ceil_pd :: proc(a: __m128d) -> (__m128d)Source_mm_ceil_ps
_mm_ceil_ps :: proc(a: __m128) -> (__m128)Source_mm_ceil_sd
_mm_ceil_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_ceil_ss
_mm_ceil_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_clflush
_mm_clflush :: proc(p: rawptr)Source_mm_clmulepi64_si128
_mm_clmulepi64_si128 :: proc(a: __m128i, b: __m128i, IMM8: u8) -> (__m128i)Source_mm_cmp_pd
_mm_cmp_pd :: proc(a: __m128d, b: __m128d, IMM5: u8) -> (__m128d)SourceCompares packed double-precision (64-bit) floating-point elements in a and b based on the comparison operand specified by IMM5.
_mm_cmp_ps
_mm_cmp_ps :: proc(a: __m128, b: __m128, IMM5: u8) -> (__m128)SourceCompares packed single-precision (32-bit) floating-point elements in a and b based on the comparison operand specified by IMM5.
_mm_cmp_sd
_mm_cmp_sd :: proc(a: __m128d, b: __m128d, IMM5: u8) -> (__m128d)SourceCompares the lower double-precision (64-bit) floating-point element in a and b based on the comparison operand specified by IMM5, store the result in the lower element of returned vector, and copies the upper element from a to the upper element of returned vector.
_mm_cmp_ss
_mm_cmp_ss :: proc(a: __m128, b: __m128, IMM5: u8) -> (__m128)SourceCompares the lower single-precision (32-bit) floating-point element in a and b based on the comparison operand specified by IMM5, store the result in the lower element of returned vector, and copies the upper 3 packed elements from a to the upper elements of returned vector.
_mm_cmpeq_epi16
_mm_cmpeq_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmpeq_epi32
_mm_cmpeq_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmpeq_epi64
_mm_cmpeq_epi64 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmpeq_epi8
_mm_cmpeq_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmpeq_pd
_mm_cmpeq_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpeq_ps
_mm_cmpeq_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpeq_sd
_mm_cmpeq_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpeq_ss
_mm_cmpeq_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpestra
_mm_cmpestra :: proc(a: __m128i, la: i32, b: __m128i, lb: i32, IMM8: i8) -> (i32)Source_mm_cmpestrc
_mm_cmpestrc :: proc(a: __m128i, la: i32, b: __m128i, lb: i32, IMM8: i8) -> (i32)Source_mm_cmpestri
_mm_cmpestri :: proc(a: __m128i, la: i32, b: __m128i, lb: i32, IMM8: i8) -> (i32)Source_mm_cmpestrm
_mm_cmpestrm :: proc(a: __m128i, la: i32, b: __m128i, lb: i32, IMM8: i8) -> (__m128i)Source_mm_cmpestro
_mm_cmpestro :: proc(a: __m128i, la: i32, b: __m128i, lb: i32, IMM8: i8) -> (i32)Source_mm_cmpestrs
_mm_cmpestrs :: proc(a: __m128i, la: i32, b: __m128i, lb: i32, IMM8: i8) -> (i32)Source_mm_cmpestrz
_mm_cmpestrz :: proc(a: __m128i, la: i32, b: __m128i, lb: i32, IMM8: i8) -> (i32)Source_mm_cmpge_pd
_mm_cmpge_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpge_ps
_mm_cmpge_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpge_sd
_mm_cmpge_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpge_ss
_mm_cmpge_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpgt_epi16
_mm_cmpgt_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmpgt_epi32
_mm_cmpgt_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmpgt_epi64
_mm_cmpgt_epi64 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmpgt_epi8
_mm_cmpgt_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmpgt_pd
_mm_cmpgt_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpgt_ps
_mm_cmpgt_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpgt_sd
_mm_cmpgt_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpgt_ss
_mm_cmpgt_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpistra
_mm_cmpistra :: proc(a: __m128i, b: __m128i, IMM8: i8) -> (i32)Source_mm_cmpistrc
_mm_cmpistrc :: proc(a: __m128i, b: __m128i, IMM8: i8) -> (i32)Source_mm_cmpistri
_mm_cmpistri :: proc(a: __m128i, b: __m128i, IMM8: i8) -> (i32)Source_mm_cmpistrm
_mm_cmpistrm :: proc(a: __m128i, b: __m128i, IMM8: i8) -> (__m128i)Source_mm_cmpistro
_mm_cmpistro :: proc(a: __m128i, b: __m128i, IMM8: i8) -> (i32)Source_mm_cmpistrs
_mm_cmpistrs :: proc(a: __m128i, b: __m128i, IMM8: i8) -> (i32)Source_mm_cmpistrz
_mm_cmpistrz :: proc(a: __m128i, b: __m128i, IMM8: i8) -> (i32)Source_mm_cmple_pd
_mm_cmple_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmple_ps
_mm_cmple_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmple_sd
_mm_cmple_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmple_ss
_mm_cmple_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmplt_epi16
_mm_cmplt_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmplt_epi32
_mm_cmplt_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmplt_epi8
_mm_cmplt_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_cmplt_pd
_mm_cmplt_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmplt_ps
_mm_cmplt_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmplt_sd
_mm_cmplt_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmplt_ss
_mm_cmplt_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpneq_pd
_mm_cmpneq_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpneq_ps
_mm_cmpneq_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpneq_sd
_mm_cmpneq_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpneq_ss
_mm_cmpneq_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpnge_pd
_mm_cmpnge_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpnge_ps
_mm_cmpnge_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpnge_sd
_mm_cmpnge_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpnge_ss
_mm_cmpnge_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpngt_pd
_mm_cmpngt_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpngt_ps
_mm_cmpngt_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpngt_sd
_mm_cmpngt_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpngt_ss
_mm_cmpngt_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpnle_pd
_mm_cmpnle_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpnle_ps
_mm_cmpnle_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpnle_sd
_mm_cmpnle_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpnle_ss
_mm_cmpnle_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpnlt_pd
_mm_cmpnlt_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpnlt_ps
_mm_cmpnlt_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpnlt_sd
_mm_cmpnlt_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpnlt_ss
_mm_cmpnlt_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpord_pd
_mm_cmpord_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpord_ps
_mm_cmpord_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpord_sd
_mm_cmpord_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpord_ss
_mm_cmpord_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpunord_pd
_mm_cmpunord_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpunord_ps
_mm_cmpunord_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_cmpunord_sd
_mm_cmpunord_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_cmpunord_ss
_mm_cmpunord_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_comieq_sd
_mm_comieq_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_comieq_ss
_mm_comieq_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_comige_sd
_mm_comige_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_comige_ss
_mm_comige_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_comigt_sd
_mm_comigt_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_comigt_ss
_mm_comigt_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_comile_sd
_mm_comile_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_comile_ss
_mm_comile_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_comilt_sd
_mm_comilt_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_comilt_ss
_mm_comilt_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_comineq_sd
_mm_comineq_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_comineq_ss
_mm_comineq_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_crc32_u16
_mm_crc32_u16 :: proc(crc: u32, v: u16) -> (u32)Source_mm_crc32_u32
_mm_crc32_u32 :: proc(crc: u32, v: u32) -> (u32)Source_mm_crc32_u64
_mm_crc32_u64 :: proc(crc: u64, v: u64) -> (u64)Source_mm_crc32_u8
_mm_crc32_u8 :: proc(crc: u32, v: u8) -> (u32)Source_mm_cvt_si2ss
_mm_cvt_si2ss :: proc(a: __m128, b: i32) -> (__m128)Source_mm_cvt_ss2si
_mm_cvt_ss2si :: proc(a: __m128) -> (i32)Source_mm_cvtepi16_epi32
_mm_cvtepi16_epi32 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepi16_epi64
_mm_cvtepi16_epi64 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepi32_epi64
_mm_cvtepi32_epi64 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepi32_pd
_mm_cvtepi32_pd :: proc(a: __m128i) -> (__m128d)Source_mm_cvtepi32_ps
_mm_cvtepi32_ps :: proc(a: __m128i) -> (__m128)Source_mm_cvtepi8_epi16
_mm_cvtepi8_epi16 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepi8_epi32
_mm_cvtepi8_epi32 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepi8_epi64
_mm_cvtepi8_epi64 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepu16_epi32
_mm_cvtepu16_epi32 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepu16_epi64
_mm_cvtepu16_epi64 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepu32_epi64
_mm_cvtepu32_epi64 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepu8_epi16
_mm_cvtepu8_epi16 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepu8_epi32
_mm_cvtepu8_epi32 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtepu8_epi64
_mm_cvtepu8_epi64 :: proc(a: __m128i) -> (__m128i)Source_mm_cvtpd_epi32
_mm_cvtpd_epi32 :: proc(a: __m128d) -> (__m128i)Source_mm_cvtpd_ps
_mm_cvtpd_ps :: proc(a: __m128d) -> (__m128)Source_mm_cvtps_epi32
_mm_cvtps_epi32 :: proc(a: __m128) -> (__m128i)Source_mm_cvtps_pd
_mm_cvtps_pd :: proc(a: __m128) -> (__m128d)Source_mm_cvtsd_f64
_mm_cvtsd_f64 :: proc(a: __m128d) -> (f64)Source_mm_cvtsd_si32
_mm_cvtsd_si32 :: proc(a: __m128d) -> (i32)Source_mm_cvtsd_si64
_mm_cvtsd_si64 :: proc(a: __m128d) -> (i64)Source_mm_cvtsd_si64x
_mm_cvtsd_si64x :: proc(a: __m128d) -> (i64)Source_mm_cvtsd_ss
_mm_cvtsd_ss :: proc(a: __m128d, b: __m128d) -> (__m128)Source_mm_cvtsi128_si32
_mm_cvtsi128_si32 :: proc(a: __m128i) -> (i32)Source_mm_cvtsi128_si64
_mm_cvtsi128_si64 :: proc(a: __m128i) -> (i64)Source_mm_cvtsi128_si64x
_mm_cvtsi128_si64x :: proc(a: __m128i) -> (i64)Source_mm_cvtsi32_sd
_mm_cvtsi32_sd :: proc(a: __m128d, b: i32) -> (__m128d)Source_mm_cvtsi32_si128
_mm_cvtsi32_si128 :: proc(a: i32) -> (__m128i)Source_mm_cvtsi32_ss
_mm_cvtsi32_ss :: proc(a: __m128, b: i32) -> (__m128)Source_mm_cvtsi64_sd
_mm_cvtsi64_sd :: proc(a: __m128d, b: i64) -> (__m128d)Source_mm_cvtsi64_si128
_mm_cvtsi64_si128 :: proc(a: i64) -> (__m128i)Source_mm_cvtsi64_ss
_mm_cvtsi64_ss :: proc(a: __m128, b: i64) -> (__m128)Source_mm_cvtsi64x_sd
_mm_cvtsi64x_sd :: proc(a: __m128d, b: i64) -> (__m128d)Source_mm_cvtsi64x_si128
_mm_cvtsi64x_si128 :: proc(a: i64) -> (__m128i)Source_mm_cvtss_f32
_mm_cvtss_f32 :: proc(a: __m128) -> (f32)Source_mm_cvtss_sd
_mm_cvtss_sd :: proc(a: __m128, b: __m128) -> (__m128d)Source_mm_cvtss_si32
_mm_cvtss_si32 :: proc(a: __m128) -> (i32)Source_mm_cvtss_si64
_mm_cvtss_si64 :: proc(a: __m128) -> (i64)Source_mm_cvttpd_epi32
_mm_cvttpd_epi32 :: proc(a: __m128d) -> (__m128i)Source_mm_cvttps_epi32
_mm_cvttps_epi32 :: proc(a: __m128) -> (__m128i)Source_mm_cvttsd_si32
_mm_cvttsd_si32 :: proc(a: __m128d) -> (i32)Source_mm_cvttsd_si64
_mm_cvttsd_si64 :: proc(a: __m128d) -> (i64)Source_mm_cvttsd_si64x
_mm_cvttsd_si64x :: proc(a: __m128d) -> (i64)Source_mm_cvttss_si32
_mm_cvttss_si32 :: proc(a: __m128) -> (i32)Source_mm_cvttss_si64
_mm_cvttss_si64 :: proc(a: __m128) -> (i64)Source_mm_div_pd
_mm_div_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_div_ps
_mm_div_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_div_sd
_mm_div_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_div_ss
_mm_div_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_dp_pd
_mm_dp_pd :: proc(a: __m128d, b: __m128d, IMM8: u8) -> (__m128d)Source_mm_dp_ps
_mm_dp_ps :: proc(a: __m128, b: __m128, IMM8: u8) -> (__m128)Source_mm_extract_epi16
_mm_extract_epi16 :: proc(a: __m128i, IMM8: u32) -> (i32)Source_mm_extract_epi32
_mm_extract_epi32 :: proc(a: __m128i, IMM8: u32) -> (i32)Source_mm_extract_epi64
_mm_extract_epi64 :: proc(a: __m128i, IMM1: u32) -> (i64)Source_mm_extract_epi8
_mm_extract_epi8 :: proc(a: __m128i, IMM8: u32) -> (i32)Source_mm_extract_ps
_mm_extract_ps :: proc(a: __m128, IMM8: u32) -> (i32)Source_mm_floor_pd
_mm_floor_pd :: proc(a: __m128d) -> (__m128d)Source_mm_floor_ps
_mm_floor_ps :: proc(a: __m128) -> (__m128)Source_mm_floor_sd
_mm_floor_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_floor_ss
_mm_floor_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_getcsr
_mm_getcsr :: proc() -> (result: u32)Source_mm_hadd_epi16
_mm_hadd_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_hadd_epi32
_mm_hadd_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_hadd_pd
_mm_hadd_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_hadd_ps
_mm_hadd_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_hadds_epi16
_mm_hadds_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_hsub_epi16
_mm_hsub_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_hsub_epi32
_mm_hsub_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_hsub_pd
_mm_hsub_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_hsub_ps
_mm_hsub_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_hsubs_epi16
_mm_hsubs_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_insert_epi16
_mm_insert_epi16 :: proc(a: __m128i, i: i32, IMM8: u32) -> (__m128i)Source_mm_insert_epi32
_mm_insert_epi32 :: proc(a: __m128i, i: i32, IMM8: u32) -> (__m128i)Source_mm_insert_epi64
_mm_insert_epi64 :: proc(a: __m128i, i: i64, IMM1: u32) -> (__m128i)Source_mm_insert_epi8
_mm_insert_epi8 :: proc(a: __m128i, i: i32, IMM8: u32) -> (__m128i)Source_mm_insert_ps
_mm_insert_ps :: proc(a: __m128, b: __m128, IMM8: u8) -> (__m128)Source_mm_lddqu_si128
_mm_lddqu_si128 :: proc(mem_addr: ^__m128i) -> (__m128i)Source_mm_lfence
_mm_lfence :: proc()Source_mm_load1_pd
_mm_load1_pd :: proc(mem_addr: ^f64) -> (__m128d)Source_mm_load1_ps
_mm_load1_ps :: proc(p: ^f32) -> (__m128)Source_mm_load_pd
_mm_load_pd :: proc(mem_addr: ^f64) -> (__m128d)Source_mm_load_pd1
_mm_load_pd1 :: proc(mem_addr: ^f64) -> (__m128d)Source_mm_load_ps
_mm_load_ps :: proc(p: [^]f32) -> (__m128)Source_mm_load_ps1
_mm_load_ps1 :: proc(p: ^f32) -> (__m128)Source_mm_load_sd
_mm_load_sd :: proc(mem_addr: ^f64) -> (__m128d)Source_mm_load_si128
_mm_load_si128 :: proc(mem_addr: ^__m128i) -> (__m128i)Source_mm_load_ss
_mm_load_ss :: proc(p: ^f32) -> (__m128)Source_mm_loaddup_pd
_mm_loaddup_pd :: proc(mem_addr: [^]f64) -> (__m128d)Source_mm_loadh_pd
_mm_loadh_pd :: proc(a: __m128d, mem_addr: ^f64) -> (__m128d)Source_mm_loadl_epi64
_mm_loadl_epi64 :: proc(mem_addr: ^__m128i) -> (__m128i)Source_mm_loadl_pd
_mm_loadl_pd :: proc(a: __m128d, mem_addr: ^f64) -> (__m128d)Source_mm_loadr_pd
_mm_loadr_pd :: proc(mem_addr: ^f64) -> (__m128d)Source_mm_loadr_ps
_mm_loadr_ps :: proc(p: [^]f32) -> (__m128)Source_mm_loadu_pd
_mm_loadu_pd :: proc(mem_addr: ^f64) -> (__m128d)Source_mm_loadu_ps
_mm_loadu_ps :: proc(p: [^]f32) -> (__m128)Source_mm_loadu_si128
_mm_loadu_si128 :: proc(mem_addr: ^__m128i) -> (__m128i)Source_mm_loadu_si64
_mm_loadu_si64 :: proc(mem_addr: rawptr) -> (__m128i)Source_mm_madd_epi16
_mm_madd_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_maddubs_epi16
_mm_maddubs_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_maskload_pd
_mm_maskload_pd :: proc(mem_addr: ^f64, mask: __m128i) -> (__m128d)SourceLoads packed double-precision (64-bit) floating-point elements from memory into result using mask (elements are zeroed out when the high bit of the corresponding element is not set).
_mm_maskload_ps
_mm_maskload_ps :: proc(mem_addr: ^f32, mask: __m128i) -> (__m128)SourceLoads packed single-precision (32-bit) floating-point elements from memory into result using mask (elements are zeroed out when the high bit of the corresponding element is not set).
_mm_maskmoveu_si128
_mm_maskmoveu_si128 :: proc(a: __m128i, mask: __m128i, mem_addr: rawptr)Source_mm_maskstore_pd
_mm_maskstore_pd :: proc(mem_addr: ^f64, mask: __m128i, a: __m128d)SourceStores packed double-precision (64-bit) floating-point elements from a into memory using mask.
_mm_maskstore_ps
_mm_maskstore_ps :: proc(mem_addr: ^f32, mask: __m128i, a: __m128)SourceStores packed single-precision (32-bit) floating-point elements from a into memory using mask.
_mm_max_epi16
_mm_max_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_max_epi32
_mm_max_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_max_epi8
_mm_max_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_max_epu16
_mm_max_epu16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_max_epu32
_mm_max_epu32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_max_epu8
_mm_max_epu8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_max_pd
_mm_max_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_max_ps
_mm_max_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_max_sd
_mm_max_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_max_ss
_mm_max_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_mfence
_mm_mfence :: proc()Source_mm_min_epi16
_mm_min_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_min_epi32
_mm_min_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_min_epi8
_mm_min_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_min_epu16
_mm_min_epu16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_min_epu32
_mm_min_epu32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_min_epu8
_mm_min_epu8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_min_pd
_mm_min_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_min_ps
_mm_min_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_min_sd
_mm_min_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_min_ss
_mm_min_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_minpos_epu16
_mm_minpos_epu16 :: proc(a: __m128i) -> (__m128i)Source_mm_move_epi64
_mm_move_epi64 :: proc(a: __m128i) -> (__m128i)Source_mm_move_sd
_mm_move_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_move_ss
_mm_move_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_movedup_pd
_mm_movedup_pd :: proc(a: __m128d) -> (__m128d)Source_mm_movehdup_ps
_mm_movehdup_ps :: proc(a: __m128) -> (__m128)Source_mm_movehl_ps
_mm_movehl_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_moveldup_ps
_mm_moveldup_ps :: proc(a: __m128) -> (__m128)Source_mm_movelh_ps
_mm_movelh_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_movemask_epi8
_mm_movemask_epi8 :: proc(a: __m128i) -> (i32)Source_mm_movemask_pd
_mm_movemask_pd :: proc(a: __m128d) -> (i32)Source_mm_movemask_ps
_mm_movemask_ps :: proc(a: __m128) -> (u32)Source_mm_mpsadbw_epu8
_mm_mpsadbw_epu8 :: proc(a: __m128i, b: __m128i, IMM8: u8) -> (__m128i)Source_mm_mul_epi32
_mm_mul_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_mul_epu32
_mm_mul_epu32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_mul_pd
_mm_mul_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_mul_ps
_mm_mul_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_mul_sd
_mm_mul_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_mul_ss
_mm_mul_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_mulhi_epi16
_mm_mulhi_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_mulhi_epu16
_mm_mulhi_epu16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_mulhrs_epi16
_mm_mulhrs_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_mullo_epi16
_mm_mullo_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_mullo_epi32
_mm_mullo_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_or_pd
_mm_or_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_or_ps
_mm_or_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_or_si128
_mm_or_si128 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_packs_epi16
_mm_packs_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_packs_epi32
_mm_packs_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_packus_epi16
_mm_packus_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_packus_epi32
_mm_packus_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_pause
_mm_pause :: proc()Source_mm_permute_pd
_mm_permute_pd :: proc(a: __m128d, IMM2: u8) -> (__m128d)SourceShuffles double-precision (64-bit) floating-point elements in a using the control in imm8.
_mm_permute_ps
_mm_permute_ps :: proc(a: __m128, IMM8: u8) -> (__m128)SourceShuffles single-precision (32-bit) floating-point elements in a using the control in imm8.
_mm_permutevar_pd
_mm_permutevar_pd :: proc(a: __m128d, b: __m128i) -> (__m128d)SourceShuffles double-precision (64-bit) floating-point elements in a using the control in b.
_mm_permutevar_ps
_mm_permutevar_ps :: proc(a: __m128, b: __m128i) -> (__m128)SourceShuffles single-precision (32-bit) floating-point elements in a using the control in b.
_mm_prefetch
_mm_prefetch :: proc(p: rawptr, STRATEGY: u32)Source_mm_rcp_ps
_mm_rcp_ps :: proc(a: __m128) -> (__m128)Source_mm_rcp_ss
_mm_rcp_ss :: proc(a: __m128) -> (__m128)Source_mm_round_pd
_mm_round_pd :: proc(a: __m128d, ROUNDING: i32) -> (__m128d)Source_mm_round_ps
_mm_round_ps :: proc(a: __m128, ROUNDING: i32) -> (__m128)Source_mm_round_sd
_mm_round_sd :: proc(a: __m128d, b: __m128d, ROUNDING: i32) -> (__m128d)Source_mm_round_ss
_mm_round_ss :: proc(a: __m128, b: __m128, ROUNDING: i32) -> (__m128)Source_mm_rsqrt_ps
_mm_rsqrt_ps :: proc(a: __m128) -> (__m128)Source_mm_rsqrt_ss
_mm_rsqrt_ss :: proc(a: __m128) -> (__m128)Source_mm_sad_epu8
_mm_sad_epu8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_set1_epi16
_mm_set1_epi16 :: proc(a: i16) -> (__m128i)Source_mm_set1_epi32
_mm_set1_epi32 :: proc(a: i32) -> (__m128i)Source_mm_set1_epi64x
_mm_set1_epi64x :: proc(a: i64) -> (__m128i)Source_mm_set1_epi8
_mm_set1_epi8 :: proc(a: i8) -> (__m128i)Source_mm_set1_pd
_mm_set1_pd :: proc(a: f64) -> (__m128d)Source_mm_set1_ps
_mm_set1_ps :: proc(a: f32) -> (__m128)Source_mm_set_epi16
_mm_set_epi16 :: proc(
e7: i16,
e6: i16,
e5: i16,
e4: i16,
e3: i16,
e2: i16,
e1: i16,
e0: i16,
) -> (__m128i)Source_mm_set_epi32
_mm_set_epi32 :: proc(e3: i32, e2: i32, e1: i32, e0: i32) -> (__m128i)Source_mm_set_epi64x
_mm_set_epi64x :: proc(e1: i64, e0: i64) -> (__m128i)Source_mm_set_epi8
_mm_set_epi8 :: proc(
e15: i8,
e14: i8,
e13: i8,
e12: i8,
e11: i8,
e10: i8,
e9: i8,
e8: i8,
e7: i8,
e6: i8,
e5: i8,
e4: i8,
e3: i8,
e2: i8,
e1: i8,
e0: i8,
) -> (__m128i)Source_mm_set_pd
_mm_set_pd :: proc(a: f64, b: f64) -> (__m128d)Source_mm_set_pd1
_mm_set_pd1 :: proc(a: f64) -> (__m128d)Source_mm_set_ps
_mm_set_ps :: proc(a: f32, b: f32, c: f32, d: f32) -> (__m128)Source_mm_set_ps1
_mm_set_ps1 :: proc(a: f32) -> (__m128)Source_mm_set_sd
_mm_set_sd :: proc(a: f64) -> (__m128d)Source_mm_set_ss
_mm_set_ss :: proc(a: f32) -> (__m128)Source_mm_setcsr
_mm_setcsr :: proc(val: u32)Source_mm_setr_epi16
_mm_setr_epi16 :: proc(
e7: i16,
e6: i16,
e5: i16,
e4: i16,
e3: i16,
e2: i16,
e1: i16,
e0: i16,
) -> (__m128i)Source_mm_setr_epi32
_mm_setr_epi32 :: proc(e3: i32, e2: i32, e1: i32, e0: i32) -> (__m128i)Source_mm_setr_epi8
_mm_setr_epi8 :: proc(
e15: i8,
e14: i8,
e13: i8,
e12: i8,
e11: i8,
e10: i8,
e9: i8,
e8: i8,
e7: i8,
e6: i8,
e5: i8,
e4: i8,
e3: i8,
e2: i8,
e1: i8,
e0: i8,
) -> (__m128i)Source_mm_setr_pd
_mm_setr_pd :: proc(a: f64, b: f64) -> (__m128d)Source_mm_setr_ps
_mm_setr_ps :: proc(a: f32, b: f32, c: f32, d: f32) -> (__m128)Source_mm_setzero_pd
_mm_setzero_pd :: proc() -> (__m128d)Source_mm_setzero_ps
_mm_setzero_ps :: proc() -> (__m128)Source_mm_setzero_si128
_mm_setzero_si128 :: proc() -> (__m128i)Source_mm_sfence
_mm_sfence :: proc()Source_mm_sha1msg1_epu32
_mm_sha1msg1_epu32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sha1msg2_epu32
_mm_sha1msg2_epu32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sha1nexte_epu32
_mm_sha1nexte_epu32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sha1rnds4_epu32
_mm_sha1rnds4_epu32 :: proc(a: __m128i, b: __m128i, FUNC: u32) -> (__m128i)Source_mm_sha256msg1_epu32
_mm_sha256msg1_epu32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sha256msg2_epu32
_mm_sha256msg2_epu32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sha256rnds2_epu32
_mm_sha256rnds2_epu32 :: proc(a: __m128i, b: __m128i, k: __m128i) -> (__m128i)Source_mm_shuffle_epi32
_mm_shuffle_epi32 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_shuffle_epi8
_mm_shuffle_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_shuffle_pd
_mm_shuffle_pd :: proc(a: __m128d, b: __m128d, MASK: u32) -> (__m128d)Source_mm_shuffle_ps
_mm_shuffle_ps :: proc(a: __m128, b: __m128, MASK: u32) -> (__m128)Source_mm_shufflehi_epi16
_mm_shufflehi_epi16 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_shufflelo_epi16
_mm_shufflelo_epi16 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_sign_epi16
_mm_sign_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sign_epi32
_mm_sign_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sign_epi8
_mm_sign_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sll_epi16
_mm_sll_epi16 :: proc(a: __m128i, count: __m128i) -> (__m128i)Source_mm_sll_epi32
_mm_sll_epi32 :: proc(a: __m128i, count: __m128i) -> (__m128i)Source_mm_sll_epi64
_mm_sll_epi64 :: proc(a: __m128i, count: __m128i) -> (__m128i)Source_mm_slli_epi16
_mm_slli_epi16 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_slli_epi32
_mm_slli_epi32 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_slli_epi64
_mm_slli_epi64 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_slli_si128
_mm_slli_si128 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_sqrt_pd
_mm_sqrt_pd :: proc(a: __m128d) -> (__m128d)Source_mm_sqrt_ps
_mm_sqrt_ps :: proc(a: __m128) -> (__m128)Source_mm_sqrt_sd
_mm_sqrt_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_sqrt_ss
_mm_sqrt_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_sra_epi16
_mm_sra_epi16 :: proc(a: __m128i, count: __m128i) -> (__m128i)Source_mm_sra_epi32
_mm_sra_epi32 :: proc(a: __m128i, count: __m128i) -> (__m128i)Source_mm_srai_epi16
_mm_srai_epi16 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_srai_epi32
_mm_srai_epi32 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_srl_epi16
_mm_srl_epi16 :: proc(a: __m128i, count: __m128i) -> (__m128i)Source_mm_srl_epi32
_mm_srl_epi32 :: proc(a: __m128i, count: __m128i) -> (__m128i)Source_mm_srl_epi64
_mm_srl_epi64 :: proc(a: __m128i, count: __m128i) -> (__m128i)Source_mm_srli_epi16
_mm_srli_epi16 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_srli_epi32
_mm_srli_epi32 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_srli_epi64
_mm_srli_epi64 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_srli_si128
_mm_srli_si128 :: proc(a: __m128i, IMM8: u32) -> (__m128i)Source_mm_store1_pd
_mm_store1_pd :: proc(mem_addr: ^f64, a: __m128d)Source_mm_store1_ps
_mm_store1_ps :: proc(p: [^]f32, a: __m128)Source_mm_store_pd
_mm_store_pd :: proc(mem_addr: ^f64, a: __m128d)Source_mm_store_pd1
_mm_store_pd1 :: proc(mem_addr: ^f64, a: __m128d)Source_mm_store_ps
_mm_store_ps :: proc(p: [^]f32, a: __m128)Source_mm_store_ps1
_mm_store_ps1 :: proc(p: [^]f32, a: __m128)Source_mm_store_sd
_mm_store_sd :: proc(mem_addr: ^f64, a: __m128d)Source_mm_store_si128
_mm_store_si128 :: proc(mem_addr: ^__m128i, a: __m128i)Source_mm_store_ss
_mm_store_ss :: proc(p: ^f32, a: __m128)Source_mm_storeh_pd
_mm_storeh_pd :: proc(mem_addr: ^f64, a: __m128d)Source_mm_storel_epi64
_mm_storel_epi64 :: proc(mem_addr: ^__m128i, a: __m128i)Source_mm_storel_pd
_mm_storel_pd :: proc(mem_addr: ^f64, a: __m128d)Source_mm_storer_pd
_mm_storer_pd :: proc(mem_addr: ^f64, a: __m128d)Source_mm_storer_ps
_mm_storer_ps :: proc(p: [^]f32, a: __m128)Source_mm_storeu_pd
_mm_storeu_pd :: proc(mem_addr: ^f64, a: __m128d)Source_mm_storeu_ps
_mm_storeu_ps :: proc(p: [^]f32, a: __m128)Source_mm_storeu_si128
_mm_storeu_si128 :: proc(mem_addr: ^__m128i, a: __m128i)Source_mm_stream_pd
_mm_stream_pd :: proc(mem_addr: ^f64, a: __m128d)Source_mm_stream_ps
_mm_stream_ps :: proc(addr: [^]f32, a: __m128)Source_mm_stream_si128
_mm_stream_si128 :: proc(mem_addr: ^__m128i, a: __m128i)Source_mm_stream_si32
_mm_stream_si32 :: proc(mem_addr: ^i32, a: i32)Source_mm_stream_si64
_mm_stream_si64 :: proc(mem_addr: ^i64, a: i64)Source_mm_sub_epi16
_mm_sub_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sub_epi32
_mm_sub_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sub_epi64
_mm_sub_epi64 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sub_epi8
_mm_sub_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_sub_pd
_mm_sub_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_sub_ps
_mm_sub_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_sub_sd
_mm_sub_sd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_sub_ss
_mm_sub_ss :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_subs_epi16
_mm_subs_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_subs_epi8
_mm_subs_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_subs_epu16
_mm_subs_epu16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_subs_epu8
_mm_subs_epu8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_test_all_ones
_mm_test_all_ones :: proc(a: __m128i) -> (i32)Source_mm_test_all_zeros
_mm_test_all_zeros :: proc(a: __m128i, mask: __m128i) -> (i32)Source_mm_test_mix_ones_zeros
_mm_test_mix_ones_zeros :: proc(a: __m128i, mask: __m128i) -> (i32)Source_mm_testc_pd
_mm_testc_pd :: proc(a: __m128d, b: __m128d) -> (i32)SourceComputes 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.
_mm_testc_ps
_mm_testc_ps :: proc(a: __m128, b: __m128) -> (i32)SourceComputes 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.
_mm_testc_si128
_mm_testc_si128 :: proc(a: __m128i, mask: __m128i) -> (i32)Source_mm_testnzc_pd
_mm_testnzc_pd :: proc(a: __m128d, b: __m128d) -> (i32)SourceComputes 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.
_mm_testnzc_ps
_mm_testnzc_ps :: proc(a: __m128, b: __m128) -> (i32)SourceComputes 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.
_mm_testnzc_si128
_mm_testnzc_si128 :: proc(a: __m128i, mask: __m128i) -> (i32)Source_mm_testz_pd
_mm_testz_pd :: proc(a: __m128d, b: __m128d) -> (i32)SourceComputes 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.
_mm_testz_ps
_mm_testz_ps :: proc(a: __m128, b: __m128) -> (i32)SourceComputes 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.
_mm_testz_si128
_mm_testz_si128 :: proc(a: __m128i, mask: __m128i) -> (i32)Source_mm_ucomieq_sd
_mm_ucomieq_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_ucomieq_ss
_mm_ucomieq_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_ucomige_sd
_mm_ucomige_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_ucomige_ss
_mm_ucomige_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_ucomigt_sd
_mm_ucomigt_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_ucomigt_ss
_mm_ucomigt_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_ucomile_sd
_mm_ucomile_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_ucomile_ss
_mm_ucomile_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_ucomilt_sd
_mm_ucomilt_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_ucomilt_ss
_mm_ucomilt_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_ucomineq_sd
_mm_ucomineq_sd :: proc(a: __m128d, b: __m128d) -> (i32)Source_mm_ucomineq_ss
_mm_ucomineq_ss :: proc(a: __m128, b: __m128) -> (b32)Source_mm_undefined_pd
_mm_undefined_pd :: proc() -> (__m128d)Source_mm_undefined_ps
_mm_undefined_ps :: proc() -> (__m128)Source_mm_undefined_si128
_mm_undefined_si128 :: proc() -> (__m128i)Source_mm_unpackhi_epi16
_mm_unpackhi_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_unpackhi_epi32
_mm_unpackhi_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_unpackhi_epi64
_mm_unpackhi_epi64 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_unpackhi_epi8
_mm_unpackhi_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_unpackhi_pd
_mm_unpackhi_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_unpackhi_ps
_mm_unpackhi_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_unpacklo_epi16
_mm_unpacklo_epi16 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_unpacklo_epi32
_mm_unpacklo_epi32 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_unpacklo_epi64
_mm_unpacklo_epi64 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_unpacklo_epi8
_mm_unpacklo_epi8 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_mm_unpacklo_pd
_mm_unpacklo_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_unpacklo_ps
_mm_unpacklo_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_xor_pd
_mm_xor_pd :: proc(a: __m128d, b: __m128d) -> (__m128d)Source_mm_xor_ps
_mm_xor_ps :: proc(a: __m128, b: __m128) -> (__m128)Source_mm_xor_si128
_mm_xor_si128 :: proc(a: __m128i, b: __m128i) -> (__m128i)Source_pdep_u32
_pdep_u32 :: proc(a: u32, mask: u32) -> (u32)Source_pdep_u64
_pdep_u64 :: proc(a: u64, mask: u64) -> (u64)Source_pext_u32
_pext_u32 :: proc(a: u32, mask: u32) -> (u32)Source_pext_u64
_pext_u64 :: proc(a: u64, mask: u64) -> (u64)Source_popcnt32
_popcnt32 :: proc(x: u32) -> (i32)Source_popcnt64
_popcnt64 :: proc(x: u64) -> (i32)Source_rdtsc
_rdtsc :: proc() -> (u64)Source_subborrow_u32
_subborrow_u32 :: proc(c_in: u8, a: u32, b: u32, out: ^u32) -> (u8)Source_subborrow_u64
_subborrow_u64 :: proc(c_in: u8, a: u64, b: u64, out: ^u64) -> (u8)Source_tzcnt_u16
_tzcnt_u16 :: proc(a: u16) -> (u16)Source_tzcnt_u32
_tzcnt_u32 :: proc(a: u32) -> (u32)Source_tzcnt_u64
_tzcnt_u64 :: proc(a: u64) -> (u64)Sourcecmpxchg16b
cmpxchg16b :: proc(dst: ^u128, old: u128, new: u128, success: intrinsics.Atomic_Memory_Order, failure: intrinsics.Atomic_Memory_Order) -> (val: u128)Source