pulp/core_arch/x86/
sse41.rs

1use super::*;
2
3impl Sse4_1 {
4	delegate!({
5		fn _mm_blendv_epi8(a: __m128i, b: __m128i, mask: __m128i) -> __m128i;
6		fn _mm_blend_epi16<const IMM8: i32>(a: __m128i, b: __m128i) -> __m128i;
7		fn _mm_blendv_pd(a: __m128d, b: __m128d, mask: __m128d) -> __m128d;
8		fn _mm_blendv_ps(a: __m128, b: __m128, mask: __m128) -> __m128;
9		fn _mm_blend_pd<const IMM2: i32>(a: __m128d, b: __m128d) -> __m128d;
10		fn _mm_blend_ps<const IMM4: i32>(a: __m128, b: __m128) -> __m128;
11		fn _mm_extract_ps<const IMM8: i32>(a: __m128) -> i32;
12		fn _mm_extract_epi8<const IMM8: i32>(a: __m128i) -> i32;
13		fn _mm_extract_epi32<const IMM8: i32>(a: __m128i) -> i32;
14		fn _mm_insert_ps<const IMM8: i32>(a: __m128, b: __m128) -> __m128;
15		fn _mm_insert_epi8<const IMM8: i32>(a: __m128i, i: i32) -> __m128i;
16		fn _mm_insert_epi32<const IMM8: i32>(a: __m128i, i: i32) -> __m128i;
17		fn _mm_max_epi8(a: __m128i, b: __m128i) -> __m128i;
18		fn _mm_max_epu16(a: __m128i, b: __m128i) -> __m128i;
19		fn _mm_max_epi32(a: __m128i, b: __m128i) -> __m128i;
20		fn _mm_max_epu32(a: __m128i, b: __m128i) -> __m128i;
21		fn _mm_min_epi8(a: __m128i, b: __m128i) -> __m128i;
22		fn _mm_min_epu16(a: __m128i, b: __m128i) -> __m128i;
23		fn _mm_min_epi32(a: __m128i, b: __m128i) -> __m128i;
24		fn _mm_min_epu32(a: __m128i, b: __m128i) -> __m128i;
25		fn _mm_packus_epi32(a: __m128i, b: __m128i) -> __m128i;
26		fn _mm_cmpeq_epi64(a: __m128i, b: __m128i) -> __m128i;
27		fn _mm_cvtepi8_epi16(a: __m128i) -> __m128i;
28		fn _mm_cvtepi8_epi32(a: __m128i) -> __m128i;
29		fn _mm_cvtepi8_epi64(a: __m128i) -> __m128i;
30		fn _mm_cvtepi16_epi32(a: __m128i) -> __m128i;
31		fn _mm_cvtepi16_epi64(a: __m128i) -> __m128i;
32		fn _mm_cvtepi32_epi64(a: __m128i) -> __m128i;
33		fn _mm_cvtepu8_epi16(a: __m128i) -> __m128i;
34		fn _mm_cvtepu8_epi32(a: __m128i) -> __m128i;
35		fn _mm_cvtepu8_epi64(a: __m128i) -> __m128i;
36		fn _mm_cvtepu16_epi32(a: __m128i) -> __m128i;
37		fn _mm_cvtepu16_epi64(a: __m128i) -> __m128i;
38		fn _mm_cvtepu32_epi64(a: __m128i) -> __m128i;
39		fn _mm_dp_pd<const IMM8: i32>(a: __m128d, b: __m128d) -> __m128d;
40		fn _mm_dp_ps<const IMM8: i32>(a: __m128, b: __m128) -> __m128;
41		fn _mm_floor_pd(a: __m128d) -> __m128d;
42		fn _mm_floor_ps(a: __m128) -> __m128;
43		fn _mm_floor_sd(a: __m128d, b: __m128d) -> __m128d;
44		fn _mm_floor_ss(a: __m128, b: __m128) -> __m128;
45		fn _mm_ceil_pd(a: __m128d) -> __m128d;
46		fn _mm_ceil_ps(a: __m128) -> __m128;
47		fn _mm_ceil_sd(a: __m128d, b: __m128d) -> __m128d;
48		fn _mm_ceil_ss(a: __m128, b: __m128) -> __m128;
49		fn _mm_round_pd<const ROUNDING: i32>(a: __m128d) -> __m128d;
50		fn _mm_round_ps<const ROUNDING: i32>(a: __m128) -> __m128;
51		fn _mm_round_sd<const ROUNDING: i32>(a: __m128d, b: __m128d) -> __m128d;
52		fn _mm_round_ss<const ROUNDING: i32>(a: __m128, b: __m128) -> __m128;
53		fn _mm_minpos_epu16(a: __m128i) -> __m128i;
54		fn _mm_mul_epi32(a: __m128i, b: __m128i) -> __m128i;
55		fn _mm_mullo_epi32(a: __m128i, b: __m128i) -> __m128i;
56		fn _mm_mpsadbw_epu8<const IMM8: i32>(a: __m128i, b: __m128i) -> __m128i;
57		fn _mm_testz_si128(a: __m128i, mask: __m128i) -> i32;
58		fn _mm_testc_si128(a: __m128i, mask: __m128i) -> i32;
59		fn _mm_testnzc_si128(a: __m128i, mask: __m128i) -> i32;
60		fn _mm_test_all_zeros(a: __m128i, mask: __m128i) -> i32;
61		fn _mm_test_all_ones(a: __m128i) -> i32;
62		fn _mm_test_mix_ones_zeros(a: __m128i, mask: __m128i) -> i32;
63	});
64}