Procs
func cvtmask64_u64(a: mmask64): uint64 {.importc: "_cvtmask64_u64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_add_epi8(a, b: m256i): m256i {.importc: "_mm256_add_epi8", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_add_epi16(a, b: m256i): m256i {.importc: "_mm256_add_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_add_epi32(a, b: m256i): m256i {.importc: "_mm256_add_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_add_epi64(a, b: m256i): m256i {.importc: "_mm256_add_epi64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_add_pd(a, b: m256d): m256d {.importc: "_mm256_add_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_add_ps(a, b: m256): m256 {.importc: "_mm256_add_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_and_ps(a, b: m256): m256 {.importc: "_mm256_and_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Bitwise and Source Edit
func mm256_and_si256(a, b: m256i): m256i {.importc: "_mm256_and_si256", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Bitwise and Source Edit
func mm256_castps256_ps128(a: m256): m128 {.importc: "_mm256_castps256_ps128", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Returns the lower part of a m256 in a m128 Source Edit
func mm256_castps_si256(a: m256): m256i {.importc: "_mm256_castps_si256", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Cast a float32x8 vectors into a 256-bit int vector with the same bit pattern Source Edit
func mm256_castsi256_ps(a: m256i): m256 {.importc: "_mm256_castsi256_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Cast a 256-bit int vector into a float32x8 vector with the same bit pattern Source Edit
func mm256_cmpgt_epi32(a, b: m256i): m256i {.importc: "_mm256_cmpgt_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Compare a greater than b Source Edit
func mm256_cvtepi32_ps(a: m256i): m256 {.importc: "_mm256_cvtepi32_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Convert a int32x8 to float32x8 Source Edit
func mm256_cvtps_epi32(a: m256): m256i {.importc: "_mm256_cvtps_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Convert a float32x8 to int32x8 Source Edit
func mm256_extractf128_ps(v: m256; m: cint{lit}): m128 {. importc: "_mm256_extractf128_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Extracts the low part (m = 0) or high part (m = 1) of a m256 into a m128 m must be a literal Source Edit
func mm256_fmadd_pd(a, b, c: m256d): m256d {.importc: "_mm256_fmadd_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_fmadd_ps(a, b, c: m256): m256 {.importc: "_mm256_fmadd_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_i32gather_epi32(m: ptr (uint32 or int32); i: m256i; s: int32): m256i {. importc: "_mm256_i32gather_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_load_pd(aligned_mem_addr: ptr float64): m256d {. importc: "_mm256_load_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_load_ps(aligned_mem_addr: ptr float32): m256 {. importc: "_mm256_load_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_load_si256(mem_addr: ptr m256i): m256i {. importc: "_mm256_load_si256", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_loadu_pd(mem_addr: ptr float64): m256d {.importc: "_mm256_loadu_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_loadu_ps(mem_addr: ptr float32): m256 {.importc: "_mm256_loadu_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_loadu_si256(mem_addr: ptr m256i): m256i {. importc: "_mm256_loadu_si256", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_max_ps(a, b: m256): m256 {.importc: "_mm256_max_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_min_ps(a, b: m256): m256 {.importc: "_mm256_min_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_movemask_epi8(a: m256i): int32 {.importc: "_mm256_movemask_epi8", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Returns the most significant bit of each 8-bit elements in a Source Edit
func mm256_mul_epu32(a: m256i; b: m256i): m256i {.importc: "_mm256_mul_epu32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
-
From a = {a3_hi, a3_lo, a2_hi, a2_lo, a1_hi, a1_lo, a0_hi, a0_lo} with a3, a2, a1, a0 being 64-bit number and b = {b3_hi, b3_lo, b2_hi, b2_lo, b1_hi, b1_lo, b0_hi, b0_lo}
Result = {a3_lo * b3_lo, a2_lo * b2_lo, a1_lo * b1_lo, a0_lo * b0_lo}. This is an extended precision multiplication 32x32 -> 64
Source Edit func mm256_mul_pd(a, b: m256d): m256d {.importc: "_mm256_mul_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_mul_ps(a, b: m256): m256 {.importc: "_mm256_mul_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_mullo_epi16(a, b: m256i): m256i {.importc: "_mm256_mullo_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Multiply element-wise 2 vectors of 16 16-bit ints into intermediate 16 32-bit ints, and keep the low 16-bit parts Source Edit
func mm256_mullo_epi32(a, b: m256i): m256i {.importc: "_mm256_mullo_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Multiply element-wise 2 vectors of 8x 32-bit ints into intermediate 8x 64-bit ints, and keep the low 32-bit parts Source Edit
func mm256_or_ps(a, b: m256): m256 {.importc: "_mm256_or_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_set1_epi8(a: int8 or uint8): m256i {.importc: "_mm256_set1_epi8", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_set1_epi16(a: int16 or uint16): m256i {.importc: "_mm256_set1_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_set1_epi32(a: int32 or uint32): m256i {.importc: "_mm256_set1_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_set1_epi64x(a: int64 or uint64): m256i {. importc: "_mm256_set1_epi64x", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_set1_pd(a: float64): m256d {.importc: "_mm256_set1_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_set1_ps(a: float32): m256 {.importc: "_mm256_set1_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_setzero_pd(): m256d {.importc: "_mm256_setzero_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_setzero_ps(): m256 {.importc: "_mm256_setzero_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_setzero_si256(): m256i {.importc: "_mm256_setzero_si256", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_shuffle_epi32(a: m256i; imm8: cint): m256i {. importc: "_mm256_shuffle_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Shuffle 32-bit integers in a according to the control in imm8 Formula is in big endian representation a = {hi[a7, a6, a5, a4, loa3, a2, a1, a0} dst = {d7, d6, d5, d4, d3, d2, d1, d0} imm8 = {bits76, bits54, bits32, bits10} d0 will refer a.lobits10 d1 a.lobits32 ... d4 will refer a.hibits10 d5 a.hibits32 Source Edit
func mm256_slli_epi32(a: m256i; count: int32): m256i {. importc: "_mm256_slli_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_srli_epi32(a: m256i; count: int32): m256i {. importc: "_mm256_srli_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_srli_epi64(a: m256i; imm8: cint): m256i {. importc: "_mm256_srli_epi64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Logical right shift Source Edit
func mm256_store_pd(mem_addr: ptr float64; a: m256d) {. importc: "_mm256_store_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_store_ps(mem_addr: ptr float32; a: m256) {. importc: "_mm256_store_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_storeu_pd(mem_addr: ptr float64; a: m256d) {. importc: "_mm256_storeu_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_storeu_ps(mem_addr: ptr float32; a: m256) {. importc: "_mm256_storeu_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_storeu_si256(mem_addr: ptr m256i; a: m256i) {. importc: "_mm256_storeu_si256", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm256_sub_ps(a, b: m256): m256 {.importc: "_mm256_sub_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_add_epi8(a, b: m512i): m512i {.importc: "_mm512_add_epi8", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_add_epi16(a, b: m512i): m512i {.importc: "_mm512_add_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_add_epi32(a, b: m512i): m512i {.importc: "_mm512_add_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_add_epi64(a, b: m512i): m512i {.importc: "_mm512_add_epi64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_add_pd(a, b: m512d): m512d {.importc: "_mm512_add_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_add_ps(a, b: m512): m512 {.importc: "_mm512_add_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_and_si512(a, b: m512i): m512i {.importc: "_mm512_and_si512", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Bitwise and Source Edit
func mm512_castps_si512(a: m512): m512i {.importc: "_mm512_castps_si512", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Cast a float32x16 vectors into a 512-bit int vector with the same bit pattern Source Edit
func mm512_castsi512_ps(a: m512i): m512 {.importc: "_mm512_castsi512_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Cast a 512-bit int vector into a float32x16 vector with the same bit pattern Source Edit
func mm512_cmpgt_epi32_mask(a, b: m512i): mmask16 {. importc: "_mm512_cmpgt_epi32_mask", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Compare a greater than b, returns a 16-bit mask Source Edit
func mm512_cvtepi32_ps(a: m512i): m512 {.importc: "_mm512_cvtepi32_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Convert a int32x8 to float32x16 Source Edit
func mm512_cvtps_epi32(a: m512): m512i {.importc: "_mm512_cvtps_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Convert a float32x16 to int32x8 Source Edit
func mm512_fmadd_pd(a, b, c: m512d): m512d {.importc: "_mm512_fmadd_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_fmadd_ps(a, b, c: m512): m512 {.importc: "_mm512_fmadd_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_i32gather_epi32(i: m512i; m: ptr (uint32 or int32); s: int32): m512i {. importc: "_mm512_i32gather_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Â Warning âš : Argument are switched compared to mm256_i32gather_epi32 Source Edit
func mm512_load_pd(aligned_mem_addr: ptr float64): m512d {. importc: "_mm512_load_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_load_ps(aligned_mem_addr: ptr float32): m512 {. importc: "_mm512_load_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_load_si512(mem_addr: ptr SomeInteger): m512i {. importc: "_mm512_load_si512", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_loadu_pd(mem_addr: ptr float64): m512d {.importc: "_mm512_loadu_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_loadu_ps(mem_addr: ptr float32): m512 {.importc: "_mm512_loadu_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_loadu_si512(mem_addr: ptr SomeInteger): m512i {. importc: "_mm512_loadu_si512", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_maskz_set1_epi32(k: mmask16; a: cint): m512i {. importc: "_mm512_maskz_set1_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Compare a greater than b Broadcast 32-bit integer a to all elements of dst using zeromask k (elements are zeroed out when the corresponding mask bit is not set). Source Edit
func mm512_max_ps(a, b: m512): m512 {.importc: "_mm512_max_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_min_ps(a, b: m512): m512 {.importc: "_mm512_min_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_movepi8_mask(a: m512i): mmask64 {.importc: "_mm512_movepi8_mask", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Returns the most significant bit of each 8-bit elements in a Source Edit
func mm512_movm_epi32(a: mmask16): m512i {.importc: "_mm512_movm_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_mul_pd(a, b: m512d): m512d {.importc: "_mm512_mul_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_mul_ps(a, b: m512): m512 {.importc: "_mm512_mul_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_mullo_epi32(a, b: m512i): m512i {.importc: "_mm512_mullo_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Multiply element-wise 2 vectors of 16 32-bit ints into intermediate 16 32-bit ints, and keep the low 32-bit parts Source Edit
func mm512_mullo_epi64(a, b: m512i): m512i {.importc: "_mm512_mullo_epi64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Multiply element-wise 2 vectors of 8x 64-bit ints into intermediate 8x 64-bit ints, and keep the low 64-bit parts Source Edit
func mm512_or_ps(a, b: m512): m512 {.importc: "_mm512_or_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_set1_epi8(a: int8 or uint8): m512i {.importc: "_mm512_set1_epi8", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_set1_epi16(a: int16 or uint16): m512i {.importc: "_mm512_set1_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_set1_epi32(a: int32 or uint32): m512i {.importc: "_mm512_set1_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_set1_epi64(a: int64 or uint64): m512i {.importc: "_mm512_set1_epi64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_set1_pd(a: float64): m512d {.importc: "_mm512_set1_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_set1_ps(a: float32): m512 {.importc: "_mm512_set1_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_setzero_pd(): m512d {.importc: "_mm512_setzero_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_setzero_ps(): m512 {.importc: "_mm512_setzero_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_setzero_si512(): m512i {.importc: "_mm512_setzero_si512", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_slli_epi32(a: m512i; count: int32): m512i {. importc: "_mm512_slli_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_srli_epi32(a: m512i; count: int32): m512i {. importc: "_mm512_srli_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_store_pd(mem_addr: ptr float64; a: m512d) {. importc: "_mm512_store_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_store_ps(mem_addr: ptr float32; a: m512) {. importc: "_mm512_store_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_storeu_pd(mem_addr: ptr float64; a: m512d) {. importc: "_mm512_storeu_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_storeu_ps(mem_addr: ptr float32; a: m512) {. importc: "_mm512_storeu_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_storeu_si512(mem_addr: ptr SomeInteger; a: m512i) {. importc: "_mm512_storeu_si512", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm512_sub_ps(a, b: m512): m512 {.importc: "_mm512_sub_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_add_epi8(a, b: m128i): m128i {.importc: "_mm_add_epi8", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_add_epi16(a, b: m128i): m128i {.importc: "_mm_add_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_add_epi32(a, b: m128i): m128i {.importc: "_mm_add_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_add_epi64(a, b: m128i): m128i {.importc: "_mm_add_epi64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_and_si128(a, b: m128i): m128i {.importc: "_mm_and_si128", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_castps_si128(a: m128): m128i {.importc: "_mm_castps_si128", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Cast a float32x4 vectors into a 128-bit int vector with the same bit pattern Source Edit
func mm_castsi128_ps(a: m128i): m128 {.importc: "_mm_castsi128_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Cast a 128-bit int vector into a float32x8 vector with the same bit pattern Source Edit
func mm_cmpgt_epi32(a, b: m128i): m128i {.importc: "_mm_cmpgt_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Compare a greater than b Source Edit
func mm_cvtepi32_ps(a: m128i): m128 {.importc: "_mm_cvtepi32_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Convert a int32x4 to float32x4 Source Edit
func mm_cvtps_epi32(a: m128): m128i {.importc: "_mm_cvtps_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Convert a float32x4 to int32x4 Source Edit
func mm_cvtsi128_si32(a: m128i): cint {.importc: "_mm_cvtsi128_si32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Copy the low part of a to int32 Source Edit
func mm_cvtss_f32(a: m128): float32 {.importc: "_mm_cvtss_f32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Extract the low part of the input Input: { A0, A1, A2, A3 } Result: A0 Source Edit
func mm_extract_epi16(a: m128i; imm8: cint): cint {. importc: "_mm_extract_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Extract an int16 from a, selected with imm8 Â and store it in the lower part of destination (padded with zeroes) Source Edit
func mm_i32gather_epi32(m: ptr (uint32 or int32); i: m128i; s: int32): m128i {. importc: "_mm_i32gather_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_load_pd(aligned_mem_addr: ptr float64): m128d {.importc: "_mm_load_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_load_ps(aligned_mem_addr: ptr float32): m128 {.importc: "_mm_load_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_load_si128(mem_addr: ptr m128i): m128i {.importc: "_mm_load_si128", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_load_ss(aligned_mem_addr: ptr float32): m128 {.importc: "_mm_load_ss", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_loadu_pd(mem_addr: ptr float64): m128d {.importc: "_mm_loadu_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_loadu_ps(data: ptr float32): m128 {.importc: "_mm_loadu_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_loadu_si128(mem_addr: ptr m128i): m128i {.importc: "_mm_loadu_si128", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_movehdup_ps(a: m128): m128 {.importc: "_mm_movehdup_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Duplicates high parts of the input Input: { A0, A1, A2, A3 } Result: { A1, A1, A3, A3 } Source Edit
func mm_movehl_ps(a, b: m128): m128 {.importc: "_mm_movehl_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Input: { A0, A1, A2, A3 }, { B0, B1, B2, B3 } Result: { B2, B3, A2, A3 } Source Edit
func mm_moveldup_ps(a: m128): m128 {.importc: "_mm_moveldup_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Duplicates low parts of the input Input: { A0, A1, A2, A3 } Result: { A0, A0, A2, A2 } Source Edit
func mm_movelh_ps(a, b: m128): m128 {.importc: "_mm_movelh_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Input: { A0, A1, A2, A3 }, { B0, B1, B2, B3 } Result: { A0, A1, B0, B1 } Source Edit
func mm_movemask_epi8(a: m128i): int32 {.importc: "_mm_movemask_epi8", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Returns the most significant bit  of each 8-bit elements in a Source Edit
func mm_mul_epu32(a: m128i; b: m128i): m128i {.importc: "_mm_mul_epu32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
-
From a = {a1_hi, a1_lo, a0_hi, a0_lo} with a1 and a0 being 64-bit number and b = {b1_hi, b1_lo, b0_hi, b0_lo}
Result = {a1_lo * b1_lo, a0_lo * b0_lo}. This is an extended precision multiplication 32x32 -> 64
Source Edit func mm_mullo_epi16(a, b: m128i): m128i {.importc: "_mm_mullo_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Multiply element-wise 2 vectors of 8 16-bit ints into intermediate 8 32-bit ints, and keep the low 16-bit parts Source Edit
func mm_mullo_epi32(a, b: m128i): m128i {.importc: "_mm_mullo_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Multiply element-wise 2 vectors of 4 32-bit ints into intermediate 4 64-bit ints, and keep the low 32-bit parts Source Edit
func mm_or_si128(a, b: m128i): m128i {.importc: "_mm_or_si128", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_set1_epi8(a: int8 or uint8): m128i {.importc: "_mm_set1_epi8", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_set1_epi16(a: int16 or uint16): m128i {.importc: "_mm_set1_epi16", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_set1_epi32(a: int32 or uint32): m128i {.importc: "_mm_set1_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_set1_epi64x(a: int64 or uint64): m128i {.importc: "_mm_set1_epi64x", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_set1_pd(a: float64): m128d {.importc: "_mm_set1_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_set1_ps(a: float32): m128 {.importc: "_mm_set1_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_set_epi32(e3, e2, e1, e0: cint): m128i {.importc: "_mm_set_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Initialize m128i with {e3, e2, e1, e0} (big endian order) Storing it will yield e0, e1, e2, e3 Source Edit
func mm_setzero_pd(): m128d {.importc: "_mm_setzero_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_setzero_ps(): m128 {.importc: "_mm_setzero_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_setzero_si128(): m128i {.importc: "_mm_setzero_si128", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_shuffle_epi32(a: m128i; imm8: cint): m128i {. importc: "_mm_shuffle_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Shuffle 32-bit integers in a according to the control in imm8 Formula is in big endian representation a = {a3, a2, a1, a0} dst = {d3, d2, d1, d0} imm8 = {bits76, bits54, bits32, bits10} d0 will refer abits10 d1 abits32 Source Edit
func mm_slli_epi32(a: m128i; count: int32): m128i {.importc: "_mm_slli_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_slli_epi64(a: m128i; imm8: cint): m128i {.importc: "_mm_slli_epi64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Shift 2xint64 left Source Edit
func mm_srli_epi32(a: m128i; count: int32): m128i {.importc: "_mm_srli_epi32", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_srli_epi64(a: m128i; imm8: cint): m128i {.importc: "_mm_srli_epi64", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Shift 2xint64 right Source Edit
func mm_store_pd(mem_addr: ptr float64; a: m128d) {.importc: "_mm_store_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_store_ps(mem_addr: ptr float32; a: m128) {.importc: "_mm_store_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_storeu_pd(mem_addr: ptr float64; a: m128d) {.importc: "_mm_storeu_pd", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_storeu_ps(mem_addr: ptr float32; a: m128) {.importc: "_mm_storeu_ps", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit
func mm_storeu_si128(mem_addr: ptr m128i; a: m128i) {. importc: "_mm_storeu_si128", nodecl, header: "<x86intrin.h>", ...raises: [], tags: [], forbids: [].}
- Source Edit