Struct Arch

Source
pub struct Arch;
Expand description

🌐 Arch-related functionality.


Implementations that depend on: dep_safe_arch, (x86 or x86_64) and the respective target feature:

Implementations§

Source§

impl Arch

§Functions not requiring any target feature.


Source

pub fn byte_swap_i32(i: i32) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) only.

Swap the bytes of the given 32-bit value.

See: byte_swap_i32.

Source

pub fn byte_swap_i64(i: i64) -> i64

Available on crate feature dep_safe_arch and (x86 or x86-64) only.

Swap the bytes of the given 64-bit value.

See: byte_swap_i64.

Source

pub fn read_timestamp_counter() -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) only.

Reads the CPU’s timestamp counter value.

See: read_timestamp_counter.

Source

pub fn read_timestamp_counter_p(aux: &mut u32) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) only.

Reads the CPU’s timestamp counter value and store the processor signature.

See: read_timestamp_counter_p.

Source§

impl Arch

§Functions requiring the adx target feature.


See: https://en.wikipedia.org/wiki/Intel_ADX

Source

pub fn add_carry_u32(c_in: u8, a: u32, b: u32, out: &mut u32) -> u8

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature adx only.

Add two u32 with a carry value.

See: add_carry_u32.

Source

pub fn add_carry_u64(c_in: u8, a: u64, b: u64, out: &mut u64) -> u8

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature adx only.

Add two u64 with a carry value.

See: add_carry_u64.

Source§

impl Arch

§Functions requiring the aes target feature.


See: https://en.wikipedia.org/wiki/AES_instruction_set

Source

pub fn aes_decrypt_last_m128i(a: m128i, round_key: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature aes only.

Perform the last round of an AES decryption flow on a using the round_key.

See: aes_decrypt_last_m128i.

Source

pub fn aes_decrypt_m128i(a: m128i, round_key: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature aes only.

Perform one round of an AES decryption flow on a using the round_key.

See: aes_decrypt_m128i.

Source

pub fn aes_encrypt_last_m128i(a: m128i, round_key: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature aes only.

Perform the last round of an AES encryption flow on a using the round_key.

See: aes_encrypt_last_m128i.

Source

pub fn aes_encrypt_m128i(a: m128i, round_key: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature aes only.

Perform one round of an AES encryption flow on a using the round_key.

See: aes_encrypt_m128i.

Source

pub fn aes_inv_mix_columns_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature aes only.

Perform the InvMixColumns transform on a.

See: aes_inv_mix_columns_m128i.

Source

pub fn aes_key_gen_assist_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature aes only.

Assist in expanding an AES cipher key.

See: aes_key_gen_assist_m128i.

Source§

impl Arch

§Functions requiring the avx target feature.


See: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions

Source

pub fn add_horizontal_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Add adjacent f32 lanes.

See: add_horizontal_m256.

Source

pub fn add_horizontal_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Add adjacent f64 lanes.

See: add_horizontal_m256d.

Source

pub fn add_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise a + b with f32 lanes.

See: add_m256.

Source

pub fn add_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise a + b with f64 lanes.

See: add_m256d.

Source

pub fn addsub_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Alternately, from the top, add f32 then sub f32.

See: addsub_m256.

Source

pub fn addsub_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Alternately, from the top, add f64 then sub f64.

See: addsub_m256d.

Source

pub fn bitand_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bitwise a &amp; b.

See: bitand_m256.

Source

pub fn bitand_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bitwise a &amp; b.

See: bitand_m256d.

Source

pub fn bitandnot_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bitwise (!a) &amp; b.

See: bitandnot_m256.

Source

pub fn bitandnot_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bitwise (!a) &amp; b.

See: bitandnot_m256d.

Source

pub fn bitor_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bitwise a | b.

See: bitor_m256.

Source

pub fn bitor_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bitwise a | b.

See: bitor_m256d.

Source

pub fn bitxor_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bitwise a ^ b.

See: bitxor_m256.

Source

pub fn bitxor_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bitwise a ^ b.

See: bitxor_m256d.

Source

pub fn blend_m256<const IMM: i32>(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Blends the f32 lanes according to the immediate mask.

See: blend_m256.

Source

pub fn blend_m256d<const IMM: i32>(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Blends the f64 lanes according to the immediate mask.

See: blend_m256d.

Source

pub fn blend_varying_m256(a: m256, b: m256, mask: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Blend the lanes according to a runtime varying mask.

See: blend_varying_m256.

Source

pub fn blend_varying_m256d(a: m256d, b: m256d, mask: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Blend the lanes according to a runtime varying mask.

See: blend_varying_m256d.

Source

pub fn cast_to_m128_from_m256(a: m256) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m128 from m256.

See: cast_to_m128_from_m256.

Source

pub fn cast_to_m128d_from_m256d(a: m256d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m128d from m256d.

See: cast_to_m128d_from_m256d.

Source

pub fn cast_to_m128i_from_m256i(a: m256i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m128i from m256i.

See: cast_to_m128i_from_m256i.

Source

pub fn cast_to_m256_from_m256d(a: m256d) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m256 from m256d.

See: cast_to_m256_from_m256d.

Source

pub fn cast_to_m256_from_m256i(a: m256i) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m256 from m256i.

See: cast_to_m256_from_m256i.

Source

pub fn cast_to_m256d_from_m256(a: m256) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m256i from m256.

See: cast_to_m256d_from_m256.

Source

pub fn cast_to_m256d_from_m256i(a: m256i) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m256d from m256i.

See: cast_to_m256d_from_m256i.

Source

pub fn cast_to_m256i_from_m256(a: m256) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m256i from m256.

See: cast_to_m256i_from_m256.

Source

pub fn cast_to_m256i_from_m256d(a: m256d) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Bit-preserving cast to m256i from m256d.

See: cast_to_m256i_from_m256d.

Source

pub fn ceil_m256(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Round f32 lanes towards positive infinity.

See: ceil_m256.

Source

pub fn ceil_m256d(a: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Round f64 lanes towards positive infinity.

See: ceil_m256d.

Source

pub fn cmp_op_mask_m128<const OP: i32>(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compare f32 lanes according to the operation specified, mask output.

See: cmp_op_mask_m128.

Source

pub fn cmp_op_mask_m128_s<const OP: i32>(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compare f32 lanes according to the operation specified, mask output.

See: cmp_op_mask_m128_s.

Source

pub fn cmp_op_mask_m128d<const OP: i32>(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compare f64 lanes according to the operation specified, mask output.

See: cmp_op_mask_m128d.

Source

pub fn cmp_op_mask_m128d_s<const OP: i32>(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compare f64 lanes according to the operation specified, mask output.

See: cmp_op_mask_m128d_s.

Source

pub fn cmp_op_mask_m256<const OP: i32>(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compare f32 lanes according to the operation specified, mask output.

See: cmp_op_mask_m256.

Source

pub fn cmp_op_mask_m256d<const OP: i32>(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compare f64 lanes according to the operation specified, mask output.

See: cmp_op_mask_m256d.

Source

pub fn convert_to_f32_from_m256_s(a: m256) -> f32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert the lowest f32 lane to a single f32.

See: convert_to_f32_from_m256_s.

Source

pub fn convert_to_f64_from_m256d_s(a: m256d) -> f64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert the lowest f64 lane to a single f64.

See: convert_to_f64_from_m256d_s.

Source

pub fn convert_to_i32_from_m256i_s(a: m256i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert the lowest i32 lane to a single i32.

See: convert_to_i32_from_m256i_s.

Source

pub fn convert_to_i32_m128i_from_m256d(a: m256d) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert f64 lanes to be i32 lanes.

See: convert_to_i32_m128i_from_m256d.

Source

pub fn convert_to_i32_m256i_from_m256(a: m256) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert f32 lanes to be i32 lanes.

See: convert_to_i32_m256i_from_m256.

Source

pub fn convert_to_m128_from_m256d(a: m256d) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert f64 lanes to be f32 lanes.

See: convert_to_m128_from_m256d.

Source

pub fn convert_to_m256_from_i32_m256i(a: m256i) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert i32 lanes to be f32 lanes.

See: convert_to_m256_from_i32_m256i.

Source

pub fn convert_to_m256d_from_i32_m128i(a: m128i) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert i32 lanes to be f64 lanes.

See: convert_to_m256d_from_i32_m128i.

Source

pub fn convert_to_m256d_from_m128(a: m128) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert f32 lanes to be f64 lanes.

See: convert_to_m256d_from_m128.

Source

pub fn convert_truncate_to_i32_m128i_from_m256d(a: m256d) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert f64 lanes to i32 lanes with truncation.

See: convert_truncate_to_i32_m128i_from_m256d.

Source

pub fn convert_truncate_to_i32_m256i_from_m256(a: m256) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Convert f32 lanes to i32 lanes with truncation.

See: convert_truncate_to_i32_m256i_from_m256.

Source

pub fn div_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise a / b with f32.

See: div_m256.

Source

pub fn div_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise a / b with f64.

See: div_m256d.

Source

pub fn dot_product_m256<const IMM: i32>(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

This works like dot_product_m128, but twice as wide.

See: dot_product_m256.

Source

pub fn duplicate_even_lanes_m256(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Duplicate the even-indexed lanes to the odd lanes.

See: duplicate_even_lanes_m256.

Source

pub fn duplicate_odd_lanes_m256(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Duplicate the odd-indexed lanes to the even lanes.

See: duplicate_odd_lanes_m256.

Source

pub fn duplicate_odd_lanes_m256d(a: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Duplicate the odd-indexed lanes to the even lanes.

See: duplicate_odd_lanes_m256d.

Source

pub fn extract_i32_from_m256i<const IMM: i32>(a: m256i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Extracts an i32 lane from m256i

See: extract_i32_from_m256i.

Source

pub fn extract_i64_from_m256i<const IMM: i32>(a: m256i) -> i64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Extracts an i64 lane from m256i

See: extract_i64_from_m256i.

Source

pub fn extract_m128_from_m256<const IMM: i32>(a: m256) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Extracts an m128 from m256

See: extract_m128_from_m256.

Source

pub fn extract_m128d_from_m256d<const IMM: i32>(a: m256d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Extracts an m128d from m256d

See: extract_m128d_from_m256d.

Source

pub fn extract_m128i_from_m256i<const IMM: i32>(a: m256i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Extracts an m128i from m256i

See: extract_m128i_from_m256i.

Source

pub fn floor_m256(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Round f32 lanes towards negative infinity.

See: floor_m256.

Source

pub fn floor_m256d(a: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Round f64 lanes towards negative infinity.

See: floor_m256d.

Source

pub fn insert_i16_to_m256i<const IMM: i32>(a: m256i, i: i16) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Inserts an i16 to m256i

See: insert_i16_to_m256i.

Source

pub fn insert_i32_to_m256i<const IMM: i32>(a: m256i, i: i32) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Inserts an i32 to m256i

See: insert_i32_to_m256i.

Source

pub fn insert_i64_to_m256i<const IMM: i32>(a: m256i, i: i64) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Inserts an i64 to m256i

See: insert_i64_to_m256i.

Source

pub fn insert_i8_to_m256i<const IMM: i32>(a: m256i, i: i8) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Inserts an i8 to m256i

See: insert_i8_to_m256i.

Source

pub fn insert_m128_to_m256<const IMM: i32>(a: m256, b: m128) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Inserts an m128 to m256

See: insert_m128_to_m256.

Source

pub fn insert_m128d_to_m256d<const IMM: i32>(a: m256d, b: m128d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Inserts an m128d to m256d

See: insert_m128d_to_m256d.

Source

pub fn insert_m128i_to_m256i_slow_avx<const IMM: i32>( a: m256i, b: m128i, ) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Slowly inserts an m128i to m256i.

See: insert_m128i_to_m256i_slow_avx.

Source

pub fn load_f32_splat_m256(a: &f32) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load an f32 and splat it to all lanes of an m256d

See: load_f32_splat_m256.

Source

pub fn load_f64_splat_m256d(a: &f64) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load an f64 and splat it to all lanes of an m256d

See: load_f64_splat_m256d.

Source

pub fn load_m128_splat_m256(a: &m128) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load an m128 and splat it to the lower and upper half of an m256

See: load_m128_splat_m256.

Source

pub fn load_m128d_splat_m256d(a: &m128d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load an m128d and splat it to the lower and upper half of an m256d

See: load_m128d_splat_m256d.

Source

pub fn load_m256(a: &m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_m256.

Source

pub fn load_m256d(a: &m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_m256d.

Source

pub fn load_m256i(a: &m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_m256i.

Source

pub fn load_masked_m128(a: &m128, mask: m128i) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register according to a mask.

See: load_masked_m128.

Source

pub fn load_masked_m128d(a: &m128d, mask: m128i) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register according to a mask.

See: load_masked_m128d.

Source

pub fn load_masked_m256(a: &m256, mask: m256i) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register according to a mask.

See: load_masked_m256.

Source

pub fn load_masked_m256d(a: &m256d, mask: m256i) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register according to a mask.

See: load_masked_m256d.

Source

pub fn load_unaligned_hi_lo_m256(a: &[f32; 4], b: &[f32; 4]) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_unaligned_hi_lo_m256.

Source

pub fn load_unaligned_hi_lo_m256d(a: &[f64; 2], b: &[f64; 2]) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_unaligned_hi_lo_m256d.

Source

pub fn load_unaligned_hi_lo_m256i(a: &[i8; 16], b: &[i8; 16]) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_unaligned_hi_lo_m256i.

Source

pub fn load_unaligned_m256(a: &[f32; 8]) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_unaligned_m256.

Source

pub fn load_unaligned_m256d(a: &[f64; 4]) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_unaligned_m256d.

Source

pub fn load_unaligned_m256i(a: &[i8; 32]) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Load data from memory into a register.

See: load_unaligned_m256i.

Source

pub fn max_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise max(a, b).

See: max_m256.

Source

pub fn max_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise max(a, b).

See: max_m256d.

Source

pub fn min_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise min(a, b).

See: min_m256.

Source

pub fn min_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise min(a, b).

See: min_m256d.

Source

pub fn move_mask_m256(a: m256) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Collects the sign bit of each lane into a 4-bit value.

See: move_mask_m256.

Source

pub fn move_mask_m256d(a: m256d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Collects the sign bit of each lane into a 4-bit value.

See: move_mask_m256d.

Source

pub fn mul_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise a * b with f32 lanes.

See: mul_m256.

Source

pub fn mul_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise a * b with f64 lanes.

See: mul_m256d.

Source

pub fn permute2z_m256<const MASK: i32>(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle 128 bits of floating point data at a time from $a and $b using an immediate control value.

See: permute2z_m256.

Source

pub fn permute2z_m256d<const MASK: i32>(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle 128 bits of floating point data at a time from a and b using an immediate control value.

See: permute2z_m256d.

Source

pub fn permute2z_m256i<const MASK: i32>(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Slowly swizzle 128 bits of integer data from a and b using an immediate control value.

See: permute2z_m256i.

Source

pub fn permute_m128<const MASK: i32>(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle the f32 lanes from a using an immediate control value.

See: permute_m128.

Source

pub fn permute_m128d<const MASK: i32>(a: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle the f64 lanes in a using an immediate control value.

See: permute_m128d.

Source

pub fn permute_m256<const MASK: i32>(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle the f32 lanes in a using an immediate control value.

See: permute_m256.

Source

pub fn permute_m256d<const MASK: i32>(a: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle the f64 lanes from a together using an immediate control value.

See: permute_m256d.

Source

pub fn reciprocal_m256(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Reciprocal of f32 lanes.

See: reciprocal_m256.

Source

pub fn reciprocal_sqrt_m256(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Reciprocal of f32 lanes.

See: reciprocal_sqrt_m256.

Source

pub fn round_m256<const OP: i32>(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Rounds each lane in the style specified.

See: round_m256.

Source

pub fn round_m256d<const OP: i32>(a: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Rounds each lane in the style specified.

See: round_m256d.

Source

pub fn set_i16_m256i( e15: i16, e14: i16, e13: i16, e12: i16, e11: i16, e10: i16, e9: i16, e8: i16, e7: i16, e6: i16, e5: i16, e4: i16, e3: i16, e2: i16, e1: i16, e0: i16, ) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set i16 args into an m256i lane.

See: set_i16_m256i.

Source

pub fn set_i32_m256i( e7: i32, e6: i32, e5: i32, e4: i32, e3: i32, e2: i32, e1: i32, e0: i32, ) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set i32 args into an m256i lane.

See: set_i32_m256i.

Source

pub fn set_i64_m256i(e3: i64, e2: i64, e1: i64, e0: i64) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set i64 args into an m256i lane.

See: set_i64_m256i.

Source

pub fn set_i8_m256i( e31: i8, e30: i8, e29: i8, e28: i8, e27: i8, e26: i8, e25: i8, e24: i8, e23: i8, e22: i8, e21: i8, e20: i8, e19: i8, e18: i8, e17: i8, e16: i8, 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, ) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set i8 args into an m256i lane.

See: set_i8_m256i.

Source

pub fn set_m128_m256(high: m128, low: m128) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set m128 args into an m256.

See: set_m128_m256.

Source

pub fn set_m128d_m256d(high: m128d, low: m128d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set m128d args into an m256d.

See: set_m128d_m256d.

Source

pub fn set_m128i_m256i(hi: m128i, lo: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set m128i args into an m256i.

See: set_m128i_m256i.

Source

pub fn set_m256( e7: f32, e6: f32, e5: f32, e4: f32, e3: f32, e2: f32, e1: f32, e0: f32, ) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set f32 args into an m256 lane.

See: set_m256.

Source

pub fn set_m256d(e3: f64, e2: f64, e1: f64, e0: f64) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set f64 args into an m256d lane.

See: set_m256d.

Source

pub fn set_reversed_i16_m256i( e15: i16, e14: i16, e13: i16, e12: i16, e11: i16, e10: i16, e9: i16, e8: i16, e7: i16, e6: i16, e5: i16, e4: i16, e3: i16, e2: i16, e1: i16, e0: i16, ) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set i16 args into an m256i lane.

See: set_reversed_i16_m256i.

Source

pub fn set_reversed_i32_m256i( e7: i32, e6: i32, e5: i32, e4: i32, e3: i32, e2: i32, e1: i32, e0: i32, ) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set i32 args into an m256i lane.

See: set_reversed_i32_m256i.

Source

pub fn set_reversed_i64_m256i(e3: i64, e2: i64, e1: i64, e0: i64) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set i64 args into an m256i lane.

See: set_reversed_i64_m256i.

Source

pub fn set_reversed_i8_m256i( e31: i8, e30: i8, e29: i8, e28: i8, e27: i8, e26: i8, e25: i8, e24: i8, e23: i8, e22: i8, e21: i8, e20: i8, e19: i8, e18: i8, e17: i8, e16: i8, 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, ) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set i8 args into an m256i lane.

See: set_reversed_i8_m256i.

Source

pub fn set_reversed_m128_m256(hi: m128, lo: m128) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set m128 args into an m256.

See: set_reversed_m128_m256.

Source

pub fn set_reversed_m128d_m256d(hi: m128d, lo: m128d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set m128d args into an m256d.

See: set_reversed_m128d_m256d.

Source

pub fn set_reversed_m128i_m256i(hi: m128i, lo: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set m128i args into an m256i.

See: set_reversed_m128i_m256i.

Source

pub fn set_reversed_m256( e7: f32, e6: f32, e5: f32, e4: f32, e3: f32, e2: f32, e1: f32, e0: f32, ) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set f32 args into an m256 lane.

See: set_reversed_m256.

Source

pub fn set_reversed_m256d(e3: f64, e2: f64, e1: f64, e0: f64) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Set f64 args into an m256d lane.

See: set_reversed_m256d.

Source

pub fn set_splat_i16_m256i(i: i16) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Splat an i16 arg into an m256i lane.

See: set_splat_i16_m256i.

Source

pub fn set_splat_i32_m256i(i: i32) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Splat an i32 arg into an m256i lane.

See: set_splat_i32_m256i.

Source

pub fn set_splat_i64_m256i(i: i64) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Splat an i64 arg into an m256i lane.

See: set_splat_i64_m256i.

Source

pub fn set_splat_i8_m256i(i: i8) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Splat an i8 arg into an m256i lane.

See: set_splat_i8_m256i.

Source

pub fn set_splat_m256(f: f32) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Splat an f32 arg into an m256 lane.

See: set_splat_m256.

Source

pub fn set_splat_m256d(f: f64) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Splat an f64 arg into an m256d lane.

See: set_splat_m256d.

Source

pub fn shuffle_av_f32_all_m128(a: m128, v: m128i) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle f32 values in a using i32 values in v.

See: shuffle_av_f32_all_m128.

Source

pub fn shuffle_av_f32_half_m256(a: m256, v: m256i) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle f32 values in a using i32 values in v.

See: shuffle_av_f32_half_m256.

Source

pub fn shuffle_av_f64_all_m128d(a: m128d, v: m128i) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle f64 lanes in a using bit 1 of the i64 lanes in v

See: shuffle_av_f64_all_m128d.

Source

pub fn shuffle_av_f64_half_m256d(a: m256d, b: m256i) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle f64 lanes in a using bit 1 of the i64 lanes in v.

See: shuffle_av_f64_half_m256d.

Source

pub fn shuffle_m256<const IMM: i32>(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle the f32 lanes from a and b together using an immediate control value.

See: shuffle_m256.

Source

pub fn shuffle_m256d<const IMM: i32>(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Shuffle the f64 lanes from a and b together using an immediate control value.

See: shuffle_m256d.

Source

pub fn sqrt_m256(a: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise sqrt on f64 lanes.

See: sqrt_m256.

Source

pub fn sqrt_m256d(a: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise sqrt on f64 lanes.

See: sqrt_m256d.

Source

pub fn store_m256(addr: &mut m256, a: m256)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_m256.

Source

pub fn store_m256d(addr: &mut m256d, a: m256d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_m256d.

Source

pub fn store_m256i(addr: &mut m256i, a: m256i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_m256i.

Source

pub fn store_masked_m128(addr: &mut m128, mask: m128i, a: m128)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory according to a mask.

See: store_masked_m128.

Source

pub fn store_masked_m128d(addr: &mut m128d, mask: m128i, a: m128d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory according to a mask.

See: store_masked_m128d.

Source

pub fn store_masked_m256(addr: &mut m256, mask: m256i, a: m256)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory according to a mask.

See: store_masked_m256.

Source

pub fn store_masked_m256d(addr: &mut m256d, mask: m256i, a: m256d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory according to a mask.

See: store_masked_m256d.

Source

pub fn store_unaligned_hi_lo_m256( hi_addr: &mut [f32; 4], lo_addr: &mut [f32; 4], a: m256, )

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_unaligned_hi_lo_m256.

Source

pub fn store_unaligned_hi_lo_m256d( hi_addr: &mut [f64; 2], lo_addr: &mut [f64; 2], a: m256d, )

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_unaligned_hi_lo_m256d.

Source

pub fn store_unaligned_hi_lo_m256i( hi_addr: &mut [i8; 16], lo_addr: &mut [i8; 16], a: m256i, )

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_unaligned_hi_lo_m256i.

Source

pub fn store_unaligned_m256(addr: &mut [f32; 8], a: m256)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_unaligned_m256.

Source

pub fn store_unaligned_m256d(addr: &mut [f64; 4], a: m256d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_unaligned_m256d.

Source

pub fn store_unaligned_m256i(addr: &mut [i8; 32], a: m256i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Store data from a register into memory.

See: store_unaligned_m256i.

Source

pub fn sub_horizontal_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Subtract adjacent f32 lanes.

See: sub_horizontal_m256.

Source

pub fn sub_horizontal_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Subtract adjacent f64 lanes.

See: sub_horizontal_m256d.

Source

pub fn sub_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise a - b with f32 lanes.

See: sub_m256.

Source

pub fn sub_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Lanewise a - b with f64 lanes.

See: sub_m256d.

Source

pub fn testc_m128(a: m128, b: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compute the bitwise of sign bit NOT of a and then AND with b, returns 1 if the result is zero, otherwise 0.

See: testc_m128.

Source

pub fn testc_m128d(a: m128d, b: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compute the bitwise of sign bit NOT of a and then AND with b, returns 1 if the result is zero, otherwise 0.

See: testc_m128d.

Source

pub fn testc_m256(a: m256, b: m256) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compute the bitwise of sign bit NOT of a and then AND with b, returns 1 if the result is zero, otherwise 0.

See: testc_m256.

Source

pub fn testc_m256d(a: m256d, b: m256d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compute the bitwise of sign bit NOT of a and then AND with b, returns 1 if the result is zero, otherwise 0.

See: testc_m256d.

Source

pub fn testc_m256i(a: m256i, b: m256i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Compute the bitwise NOT of a and then AND with b, returns 1 if the result is zero, otherwise 0.

See: testc_m256i.

Source

pub fn testz_m128(a: m128, b: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Computes the bitwise AND of 256 bits in a and b, returns 1 if the result is zero, otherwise 0.

See: testz_m128.

Source

pub fn testz_m128d(a: m128d, b: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Computes the bitwise of sign bitAND of 256 bits in a and b, returns 1 if the result is zero, otherwise 0.

See: testz_m128d.

Source

pub fn testz_m256(a: m256, b: m256) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Computes the bitwise AND of 256 bits in a and b, returns 1 if the result is zero, otherwise 0.

See: testz_m256.

Source

pub fn testz_m256d(a: m256d, b: m256d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Computes the bitwise of sign bit AND of 256 bits in a and b, returns 1 if the result is zero, otherwise 0.

See: testz_m256d.

Source

pub fn testz_m256i(a: m256i, b: m256i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Computes the bitwise of sign bit AND of 256 bits in a and b, returns 1 if the result is zero, otherwise 0.

See: testz_m256i.

Source

pub fn unpack_hi_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Unpack and interleave the high lanes.

See: unpack_hi_m256.

Source

pub fn unpack_hi_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Unpack and interleave the high lanes.

See: unpack_hi_m256d.

Source

pub fn unpack_lo_m256(a: m256, b: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Unpack and interleave the high lanes.

See: unpack_lo_m256.

Source

pub fn unpack_lo_m256d(a: m256d, b: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Unpack and interleave the high lanes.

See: unpack_lo_m256d.

Source

pub fn zero_extend_m128(a: m128) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Zero extend an m128 to m256

See: zero_extend_m128.

Source

pub fn zero_extend_m128d(a: m128d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Zero extend an m128d to m256d

See: zero_extend_m128d.

Source

pub fn zero_extend_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

Zero extend an m128i to m256i

See: zero_extend_m128i.

Source

pub fn zeroed_m256() -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

A zeroed m256

See: zeroed_m256.

Source

pub fn zeroed_m256d() -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

A zeroed m256d

See: zeroed_m256d.

Source

pub fn zeroed_m256i() -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx only.

A zeroed m256i

See: zeroed_m256i.

Source§

impl Arch

§Functions requiring the avx2 target feature.


See: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions

Source

pub fn abs_i16_m256i(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Absolute value of i16 lanes.

See: abs_i16_m256i.

Source

pub fn abs_i32_m256i(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Absolute value of i32 lanes.

See: abs_i32_m256i.

Source

pub fn abs_i8_m256i(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Absolute value of i8 lanes.

See: abs_i8_m256i.

Source

pub fn add_horizontal_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Horizontal a + b with lanes as i16.

See: add_horizontal_i16_m256i.

Source

pub fn add_horizontal_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Horizontal a + b with lanes as i32.

See: add_horizontal_i32_m256i.

Source

pub fn add_horizontal_saturating_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Horizontal saturating a + b with lanes as i16.

See: add_horizontal_saturating_i16_m256i.

Source

pub fn add_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a + b with lanes as i16.

See: add_i16_m256i.

Source

pub fn add_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a + b with lanes as i32.

See: add_i32_m256i.

Source

pub fn add_i64_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a + b with lanes as i64.

See: add_i64_m256i.

Source

pub fn add_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a + b with lanes as i8.

See: add_i8_m256i.

Source

pub fn add_saturating_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise saturating a + b with lanes as i16.

See: add_saturating_i16_m256i.

Source

pub fn add_saturating_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise saturating a + b with lanes as i8.

See: add_saturating_i8_m256i.

Source

pub fn add_saturating_u16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise saturating a + b with lanes as u16.

See: add_saturating_u16_m256i.

Source

pub fn add_saturating_u8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise saturating a + b with lanes as u8.

See: add_saturating_u8_m256i.

Source

pub fn average_u16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Average u16 lanes.

See: average_u16_m256i.

Source

pub fn average_u8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Average u8 lanes.

See: average_u8_m256i.

Source

pub fn bitand_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Bitwise a &amp; b.

See: bitand_m256i.

Source

pub fn bitandnot_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Bitwise (!a) &amp; b.

See: bitandnot_m256i.

Source

pub fn bitor_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Bitwise a | b

See: bitor_m256i.

Source

pub fn bitxor_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Bitwise a ^ b.

See: bitxor_m256i.

Source

pub fn blend_imm_i16_m256i<const IMM: i32>(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Blends the i16 lanes according to the immediate value.

See: blend_imm_i16_m256i.

Source

pub fn blend_imm_i32_m128i<const IMM: i32>(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Blends the i32 lanes in a and b into a single value.

See: blend_imm_i32_m128i.

Source

pub fn blend_imm_i32_m256i<const IMM: i32>(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Blends the i32 lanes according to the immediate value.

See: blend_imm_i32_m256i.

Source

pub fn blend_varying_i8_m256i(a: m256i, b: m256i, mask: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Blend i8 lanes according to a runtime varying mask.

See: blend_varying_i8_m256i.

Source

pub fn byte_shl_imm_u128_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts each u128 lane left by a number of bytes.

See: byte_shl_imm_u128_m256i.

Source

pub fn byte_shr_imm_u128_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts each u128 lane right by a number of bytes.

See: byte_shr_imm_u128_m256i.

Source

pub fn cmp_eq_mask_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compare i16 lanes for equality, mask output.

See: cmp_eq_mask_i16_m256i.

Source

pub fn cmp_eq_mask_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compare i32 lanes for equality, mask output.

See: cmp_eq_mask_i32_m256i.

Source

pub fn cmp_eq_mask_i64_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compare i64 lanes for equality, mask output.

See: cmp_eq_mask_i64_m256i.

Source

pub fn cmp_eq_mask_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compare i8 lanes for equality, mask output.

See: cmp_eq_mask_i8_m256i.

Source

pub fn cmp_gt_mask_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compare i16 lanes for a &gt; b, mask output.

See: cmp_gt_mask_i16_m256i.

Source

pub fn cmp_gt_mask_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compare i32 lanes for a &gt; b, mask output.

See: cmp_gt_mask_i32_m256i.

Source

pub fn cmp_gt_mask_i64_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compare i64 lanes for a &gt; b, mask output.

See: cmp_gt_mask_i64_m256i.

Source

pub fn cmp_gt_mask_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compare i8 lanes for a &gt; b, mask output.

See: cmp_gt_mask_i8_m256i.

Source

pub fn combined_byte_shr_imm_m256i<const IMM: i32>(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Works like combined_byte_shr_imm_m128i, but twice as wide.

See: combined_byte_shr_imm_m256i.

Source

pub fn convert_to_i16_m256i_from_i8_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert i8 values to i16 values.

See: convert_to_i16_m256i_from_i8_m128i.

Source

pub fn convert_to_i16_m256i_from_lower4_u8_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert lower 4 u8 values to i16 values.

See: convert_to_i16_m256i_from_lower4_u8_m128i.

Source

pub fn convert_to_i16_m256i_from_lower8_u8_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert lower 8 u8 values to i16 values.

See: convert_to_i16_m256i_from_lower8_u8_m128i.

Source

pub fn convert_to_i16_m256i_from_u8_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert u8 values to i16 values.

See: convert_to_i16_m256i_from_u8_m128i.

Source

pub fn convert_to_i32_m256i_from_i16_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert i16 values to i32 values.

See: convert_to_i32_m256i_from_i16_m128i.

Source

pub fn convert_to_i32_m256i_from_lower8_i8_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert the lower 8 i8 values to i32 values.

See: convert_to_i32_m256i_from_lower8_i8_m128i.

Source

pub fn convert_to_i32_m256i_from_u16_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert u16 values to i32 values.

See: convert_to_i32_m256i_from_u16_m128i.

Source

pub fn convert_to_i64_m256i_from_i32_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert i32 values to i64 values.

See: convert_to_i64_m256i_from_i32_m128i.

Source

pub fn convert_to_i64_m256i_from_lower4_i16_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert i16 values to i64 values.

See: convert_to_i64_m256i_from_lower4_i16_m128i.

Source

pub fn convert_to_i64_m256i_from_lower4_i8_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert the lower 4 i8 values to i64 values.

See: convert_to_i64_m256i_from_lower4_i8_m128i.

Source

pub fn convert_to_i64_m256i_from_lower4_u16_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert u16 values to i64 values.

See: convert_to_i64_m256i_from_lower4_u16_m128i.

Source

pub fn convert_to_i64_m256i_from_u32_m128i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Convert u32 values to i64 values.

See: convert_to_i64_m256i_from_u32_m128i.

Source

pub fn extract_i16_as_i32_m256i<const LANE: i32>(a: m256i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Gets an i16 value out of an m256i, returns as i32.

See: extract_i16_as_i32_m256i.

Source

pub fn extract_i8_as_i32_m256i<const LANE: i32>(a: m256i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Gets an i8 value out of an m256i, returns as i32.

See: extract_i8_as_i32_m256i.

Source

pub fn extract_m128i_m256i<const LANE: i32>(a: m256i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Gets an m128i value out of an m256i.

See: extract_m128i_m256i.

Source

pub fn insert_m128i_to_m256i<const LANE: i32>(a: m256i, b: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Inserts an m128i to an m256i at the high or low position.

See: insert_m128i_to_m256i.

Source

pub fn load_masked_i32_m128i(a: &m128i, mask: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Loads the reference given and zeroes any i32 lanes not in the mask.

See: load_masked_i32_m128i.

Source

pub fn load_masked_i32_m256i(a: &m256i, mask: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Loads the reference given and zeroes any i32 lanes not in the mask.

See: load_masked_i32_m256i.

Source

pub fn load_masked_i64_m128i(a: &m128i, mask: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Loads the reference given and zeroes any i64 lanes not in the mask.

See: load_masked_i64_m128i.

Source

pub fn load_masked_i64_m256i(a: &m256i, mask: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Loads the reference given and zeroes any i64 lanes not in the mask.

See: load_masked_i64_m256i.

Source

pub fn max_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise max(a, b) with lanes as i16.

See: max_i16_m256i.

Source

pub fn max_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise max(a, b) with lanes as i32.

See: max_i32_m256i.

Source

pub fn max_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise max(a, b) with lanes as i8.

See: max_i8_m256i.

Source

pub fn max_u16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise max(a, b) with lanes as u16.

See: max_u16_m256i.

Source

pub fn max_u32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise max(a, b) with lanes as u32.

See: max_u32_m256i.

Source

pub fn max_u8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise max(a, b) with lanes as u8.

See: max_u8_m256i.

Source

pub fn min_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise min(a, b) with lanes as i16.

See: min_i16_m256i.

Source

pub fn min_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise min(a, b) with lanes as i32.

See: min_i32_m256i.

Source

pub fn min_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise min(a, b) with lanes as i8.

See: min_i8_m256i.

Source

pub fn min_u16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise min(a, b) with lanes as u16.

See: min_u16_m256i.

Source

pub fn min_u32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise min(a, b) with lanes as u32.

See: min_u32_m256i.

Source

pub fn min_u8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise min(a, b) with lanes as u8.

See: min_u8_m256i.

Source

pub fn move_mask_i8_m256i(a: m256i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Create an i32 mask of each sign bit in the i8 lanes.

See: move_mask_i8_m256i.

Source

pub fn mul_i16_horizontal_add_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Multiply i16 lanes producing i32 values, horizontal add pairs of i32 values to produce the final output.

See: mul_i16_horizontal_add_m256i.

Source

pub fn mul_i16_keep_high_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Multiply the i16 lanes and keep the high half of each 32-bit output.

See: mul_i16_keep_high_m256i.

Source

pub fn mul_i16_keep_low_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Multiply the i16 lanes and keep the low half of each 32-bit output.

See: mul_i16_keep_low_m256i.

Source

pub fn mul_i16_scale_round_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Multiply i16 lanes into i32 intermediates, keep the high 18 bits, round by adding 1, right shift by 1.

See: mul_i16_scale_round_m256i.

Source

pub fn mul_i32_keep_low_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Multiply the i32 lanes and keep the low half of each 64-bit output.

See: mul_i32_keep_low_m256i.

Source

pub fn mul_i64_low_bits_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Multiply the lower i32 within each i64 lane, i64 output.

See: mul_i64_low_bits_m256i.

Source

pub fn mul_u16_keep_high_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Multiply the u16 lanes and keep the high half of each 32-bit output.

See: mul_u16_keep_high_m256i.

Source

pub fn mul_u64_low_bits_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Multiply the lower u32 within each u64 lane, u64 output.

See: mul_u64_low_bits_m256i.

Source

pub fn mul_u8i8_add_horizontal_saturating_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

This is dumb and weird.

See: mul_u8i8_add_horizontal_saturating_m256i.

Source

pub fn multi_packed_sum_abs_diff_u8_m256i<const IMM: i32>( a: m256i, b: m256i, ) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Computes eight u16 “sum of absolute difference” values according to the bytes selected.

See: multi_packed_sum_abs_diff_u8_m256i.

Source

pub fn pack_i16_to_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Saturating convert i16 to i8, and pack the values.

See: pack_i16_to_i8_m256i.

Source

pub fn pack_i16_to_u8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Saturating convert i16 to u8, and pack the values.

See: pack_i16_to_u8_m256i.

Source

pub fn pack_i32_to_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Saturating convert i32 to i16, and pack the values.

See: pack_i32_to_i16_m256i.

Source

pub fn pack_i32_to_u16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Saturating convert i32 to u16, and pack the values.

See: pack_i32_to_u16_m256i.

Source

pub fn set_splat_i16_m128i_s_m256i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Sets the lowest i16 lane of an m128i as all lanes of an m256i.

See: set_splat_i16_m128i_s_m256i.

Source

pub fn set_splat_i32_m128i_s_m256i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Sets the lowest i32 lane of an m128i as all lanes of an m256i.

See: set_splat_i32_m128i_s_m256i.

Source

pub fn set_splat_i64_m128i_s_m256i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Sets the lowest i64 lane of an m128i as all lanes of an m256i.

See: set_splat_i64_m128i_s_m256i.

Source

pub fn set_splat_i8_m128i_s_m256i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Sets the lowest i8 lane of an m128i as all lanes of an m256i.

See: set_splat_i8_m128i_s_m256i.

Source

pub fn set_splat_m128_s_m256(a: m128) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Sets the lowest lane of an m128 as all lanes of an m256.

See: set_splat_m128_s_m256.

Source

pub fn set_splat_m128d_s_m256d(a: m128d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Sets the lowest lane of an m128d as all lanes of an m256d.

See: set_splat_m128d_s_m256d.

Source

pub fn shl_all_u16_m256i(a: m256i, count: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise u16 shift left by the lower u64 lane of count.

See: shl_all_u16_m256i.

Source

pub fn shl_all_u32_m256i(a: m256i, count: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shift all u32 lanes left by the lower u64 lane of count.

See: shl_all_u32_m256i.

Source

pub fn shl_all_u64_m256i(a: m256i, count: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shift all u64 lanes left by the lower u64 lane of count.

See: shl_all_u64_m256i.

Source

pub fn shl_each_u32_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shift u32 values to the left by count bits.

See: shl_each_u32_m128i.

Source

pub fn shl_each_u32_m256i(a: m256i, count: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise u32 shift left by the matching i32 lane in count.

See: shl_each_u32_m256i.

Source

pub fn shl_each_u64_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shift u64 values to the left by count bits.

See: shl_each_u64_m128i.

Source

pub fn shl_each_u64_m256i(a: m256i, count: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise u64 shift left by the matching u64 lane in count.

See: shl_each_u64_m256i.

Source

pub fn shl_imm_u16_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts all u16 lanes left by an immediate.

See: shl_imm_u16_m256i.

Source

pub fn shl_imm_u32_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts all u32 lanes left by an immediate.

See: shl_imm_u32_m256i.

Source

pub fn shl_imm_u64_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts all u64 lanes left by an immediate.

See: shl_imm_u64_m256i.

Source

pub fn shr_all_i16_m256i(a: m256i, count: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise i16 shift right by the lower i64 lane of count.

See: shr_all_i16_m256i.

Source

pub fn shr_all_i32_m256i(a: m256i, count: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise i32 shift right by the lower i64 lane of count.

See: shr_all_i32_m256i.

Source

pub fn shr_all_u16_m256i(a: m256i, count: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise u16 shift right by the lower u64 lane of count.

See: shr_all_u16_m256i.

Source

pub fn shr_all_u32_m256i(a: m256i, count: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise u32 shift right by the lower u64 lane of count.

See: shr_all_u32_m256i.

Source

pub fn shr_all_u64_m256i(a: m256i, count: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise u64 shift right by the lower u64 lane of count.

See: shr_all_u64_m256i.

Source

pub fn shr_each_i32_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shift i32 values to the right by count bits.

See: shr_each_i32_m128i.

Source

pub fn shr_each_i32_m256i(a: m256i, count: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise i32 shift right by the matching i32 lane in count.

See: shr_each_i32_m256i.

Source

pub fn shr_each_u32_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shift u32 values to the left by count bits.

See: shr_each_u32_m128i.

Source

pub fn shr_each_u32_m256i(a: m256i, count: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise u32 shift right by the matching u32 lane in count.

See: shr_each_u32_m256i.

Source

pub fn shr_each_u64_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shift u64 values to the left by count bits.

See: shr_each_u64_m128i.

Source

pub fn shr_each_u64_m256i(a: m256i, count: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise u64 shift right by the matching i64 lane in count.

See: shr_each_u64_m256i.

Source

pub fn shr_imm_i16_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts all i16 lanes left by an immediate.

See: shr_imm_i16_m256i.

Source

pub fn shr_imm_i32_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts all i32 lanes left by an immediate.

See: shr_imm_i32_m256i.

Source

pub fn shr_imm_u16_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts all u16 lanes right by an immediate.

See: shr_imm_u16_m256i.

Source

pub fn shr_imm_u32_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts all u32 lanes right by an immediate.

See: shr_imm_u32_m256i.

Source

pub fn shr_imm_u64_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shifts all u64 lanes right by an immediate.

See: shr_imm_u64_m256i.

Source

pub fn shuffle_abi_i128z_all_m256i<const MASK: i32>(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle 128 bits of integer data from $a and $b using an immediate control value.

See: shuffle_abi_i128z_all_m256i.

Source

pub fn shuffle_ai_f64_all_m256d<const IMM: i32>(a: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle the f64 lanes from $a using an immediate control value.

See: shuffle_ai_f64_all_m256d.

Source

pub fn shuffle_ai_i16_h64half_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle the high i16 lanes in $a using an immediate control value.

See: shuffle_ai_i16_h64half_m256i.

Source

pub fn shuffle_ai_i16_l64half_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle the low i16 lanes in $a using an immediate control value.

See: shuffle_ai_i16_l64half_m256i.

Source

pub fn shuffle_ai_i32_half_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle the i32 lanes in a using an immediate control value.

See: shuffle_ai_i32_half_m256i.

Source

pub fn shuffle_ai_i64_all_m256i<const IMM: i32>(a: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle the f64 lanes in $a using an immediate control value.

See: shuffle_ai_i64_all_m256i.

Source

pub fn shuffle_av_i32_all_m256(a: m256, v: m256i) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle f32 lanes in a using i32 values in v.

See: shuffle_av_i32_all_m256.

Source

pub fn shuffle_av_i32_all_m256i(a: m256i, v: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle i32 lanes in a using i32 values in v.

See: shuffle_av_i32_all_m256i.

Source

pub fn shuffle_av_i8z_half_m256i(a: m256i, v: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Shuffle i8 lanes in a using i8 values in v.

See: shuffle_av_i8z_half_m256i.

Source

pub fn sign_apply_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a * signum(b) with lanes as i16

See: sign_apply_i16_m256i.

Source

pub fn sign_apply_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a * signum(b) with lanes as i32

See: sign_apply_i32_m256i.

Source

pub fn sign_apply_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a * signum(b) with lanes as i8

See: sign_apply_i8_m256i.

Source

pub fn splat_i16_m128i_s_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Splat the lowest 16-bit lane across the entire 128 bits.

See: splat_i16_m128i_s_m128i.

Source

pub fn splat_i32_m128i_s_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Splat the lowest 32-bit lane across the entire 128 bits.

See: splat_i32_m128i_s_m128i.

Source

pub fn splat_i64_m128i_s_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Splat the lowest 64-bit lane across the entire 128 bits.

See: splat_i64_m128i_s_m128i.

Source

pub fn splat_i8_m128i_s_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Splat the lowest 8-bit lane across the entire 128 bits.

See: splat_i8_m128i_s_m128i.

Source

pub fn splat_m128_s_m128(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Splat the lowest f32 across all four lanes.

See: splat_m128_s_m128.

Source

pub fn splat_m128d_s_m128d(a: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Splat the lower f64 across both lanes of m128d.

See: splat_m128d_s_m128d.

Source

pub fn splat_m128i_m256i(a: m128i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Splat the 128-bits across 256-bits.

See: splat_m128i_m256i.

Source

pub fn store_masked_i32_m128i(addr: &mut m128i, mask: m128i, a: m128i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Stores the i32 masked lanes given to the reference.

See: store_masked_i32_m128i.

Source

pub fn store_masked_i32_m256i(addr: &mut m256i, mask: m256i, a: m256i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Stores the i32 masked lanes given to the reference.

See: store_masked_i32_m256i.

Source

pub fn store_masked_i64_m128i(addr: &mut m128i, mask: m128i, a: m128i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Stores the i32 masked lanes given to the reference.

See: store_masked_i64_m128i.

Source

pub fn store_masked_i64_m256i(addr: &mut m256i, mask: m256i, a: m256i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Stores the i32 masked lanes given to the reference.

See: store_masked_i64_m256i.

Source

pub fn sub_horizontal_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Horizontal a - b with lanes as i16.

See: sub_horizontal_i16_m256i.

Source

pub fn sub_horizontal_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Horizontal a - b with lanes as i32.

See: sub_horizontal_i32_m256i.

Source

pub fn sub_horizontal_saturating_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Horizontal saturating a - b with lanes as i16.

See: sub_horizontal_saturating_i16_m256i.

Source

pub fn sub_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a - b with lanes as i16.

See: sub_i16_m256i.

Source

pub fn sub_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a - b with lanes as i32.

See: sub_i32_m256i.

Source

pub fn sub_i64_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a - b with lanes as i64.

See: sub_i64_m256i.

Source

pub fn sub_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise a - b with lanes as i8.

See: sub_i8_m256i.

Source

pub fn sub_saturating_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise saturating a - b with lanes as i16.

See: sub_saturating_i16_m256i.

Source

pub fn sub_saturating_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise saturating a - b with lanes as i8.

See: sub_saturating_i8_m256i.

Source

pub fn sub_saturating_u16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise saturating a - b with lanes as u16.

See: sub_saturating_u16_m256i.

Source

pub fn sub_saturating_u8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Lanewise saturating a - b with lanes as u8.

See: sub_saturating_u8_m256i.

Source

pub fn sum_of_u8_abs_diff_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Compute “sum of u8 absolute differences”.

See: sum_of_u8_abs_diff_m256i.

Source

pub fn unpack_high_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Unpack and interleave high i16 lanes of a and b.

See: unpack_high_i16_m256i.

Source

pub fn unpack_high_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Unpack and interleave high i32 lanes of a and b.

See: unpack_high_i32_m256i.

Source

pub fn unpack_high_i64_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Unpack and interleave high i64 lanes of a and b.

See: unpack_high_i64_m256i.

Source

pub fn unpack_high_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Unpack and interleave high i8 lanes of a and b.

See: unpack_high_i8_m256i.

Source

pub fn unpack_low_i16_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Unpack and interleave low i16 lanes of a and b.

See: unpack_low_i16_m256i.

Source

pub fn unpack_low_i32_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Unpack and interleave low i32 lanes of a and b.

See: unpack_low_i32_m256i.

Source

pub fn unpack_low_i64_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Unpack and interleave low i64 lanes of a and b.

See: unpack_low_i64_m256i.

Source

pub fn unpack_low_i8_m256i(a: m256i, b: m256i) -> m256i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature avx2 only.

Unpack and interleave low i8 lanes of a and b.

See: unpack_low_i8_m256i.

Source§

impl Arch

Source

pub fn bit_extract2_u32(a: u32, control: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Extract a span of bits from the u32, control value style.

See: bit_extract2_u32.

Source

pub fn bit_extract2_u64(a: u64, control: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Extract a span of bits from the u64, control value style.

See: bit_extract2_u64.

Source

pub fn bit_extract_u32(a: u32, start: u32, len: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Extract a span of bits from the u32, start and len style.

See: bit_extract_u32.

Source

pub fn bit_extract_u64(a: u64, start: u32, len: u32) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Extract a span of bits from the u64, start and len style.

See: bit_extract_u64.

Source

pub fn bit_lowest_set_mask_u32(a: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Gets the mask of all bits up to and including the lowest set bit in a u32.

See: bit_lowest_set_mask_u32.

Source

pub fn bit_lowest_set_mask_u64(a: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Gets the mask of all bits up to and including the lowest set bit in a u64.

See: bit_lowest_set_mask_u64.

Source

pub fn bit_lowest_set_reset_u32(a: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Resets (clears) the lowest set bit.

See: bit_lowest_set_reset_u32.

Source

pub fn bit_lowest_set_reset_u64(a: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Resets (clears) the lowest set bit.

See: bit_lowest_set_reset_u64.

Source

pub fn bit_lowest_set_value_u32(a: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Gets the value of the lowest set bit in a u32.

See: bit_lowest_set_value_u32.

Source

pub fn bit_lowest_set_value_u64(a: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Gets the value of the lowest set bit in a u64.

See: bit_lowest_set_value_u64.

Source

pub fn bitandnot_u32(a: u32, b: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Bitwise (!a) &amp; b for u32

See: bitandnot_u32.

Source

pub fn bitandnot_u64(a: u64, b: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Bitwise (!a) &amp; b for u64

See: bitandnot_u64.

Source

pub fn trailing_zero_count_u32(a: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Counts the number of trailing zero bits in a u32.

See: trailing_zero_count_u32.

Source

pub fn trailing_zero_count_u64(a: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi1 only.

Counts the number of trailing zero bits in a u64.

See: trailing_zero_count_u64.

Source§

impl Arch

Source

pub fn bit_zero_high_index_u32(a: u32, index: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi2 only.

Zero out all high bits in a u32 starting at the index given.

See: bit_zero_high_index_u32.

Source

pub fn bit_zero_high_index_u64(a: u64, index: u32) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi2 only.

Zero out all high bits in a u64 starting at the index given.

See: bit_zero_high_index_u64.

Source

pub fn mul_extended_u32(a: u32, b: u32, extra: &mut u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi2 only.

Multiply two u32, outputting the low bits and storing the high bits in the reference.

See: mul_extended_u32.

Source

pub fn mul_extended_u64(a: u64, b: u64, extra: &mut u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi2 only.

Multiply two u64, outputting the low bits and storing the high bits in the reference.

See: mul_extended_u64.

Source

pub fn population_deposit_u32(a: u32, index: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi2 only.

Deposit contiguous low bits from a u32 according to a mask.

See: population_deposit_u32.

Source

pub fn population_deposit_u64(a: u64, index: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi2 only.

Deposit contiguous low bits from a u64 according to a mask.

See: population_deposit_u64.

Source

pub fn population_extract_u32(a: u32, index: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi2 only.

Extract bits from a u32 according to a mask.

See: population_extract_u32.

Source

pub fn population_extract_u64(a: u64, index: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature bmi2 only.

Extract bits from a u64 according to a mask.

See: population_extract_u64.

Source§

impl Arch

§Functions requiring the fma target feature.


See: https://en.wikipedia.org/wiki/FMA_instruction_set

Source

pub fn fused_mul_add_m128(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) + c

See: fused_mul_add_m128.

Source

pub fn fused_mul_add_m128_s(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Low lane fused (a * b) + c, other lanes unchanged

See: fused_mul_add_m128_s.

Source

pub fn fused_mul_add_m128d(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) + c

See: fused_mul_add_m128d.

Source

pub fn fused_mul_add_m128d_s(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Low lane fused (a * b) + c, other lanes unchanged

See: fused_mul_add_m128d_s.

Source

pub fn fused_mul_add_m256(a: m256, b: m256, c: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) + c

See: fused_mul_add_m256.

Source

pub fn fused_mul_add_m256d(a: m256d, b: m256d, c: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) + c

See: fused_mul_add_m256d.

Source

pub fn fused_mul_addsub_m128(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) addsub c (adds odd lanes and subtracts even lanes)

See: fused_mul_addsub_m128.

Source

pub fn fused_mul_addsub_m128d(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) addsub c (adds odd lanes and subtracts even lanes)

See: fused_mul_addsub_m128d.

Source

pub fn fused_mul_addsub_m256(a: m256, b: m256, c: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) addsub c (adds odd lanes and subtracts even lanes)

See: fused_mul_addsub_m256.

Source

pub fn fused_mul_addsub_m256d(a: m256d, b: m256d, c: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) addsub c (adds odd lanes and subtracts even lanes)

See: fused_mul_addsub_m256d.

Source

pub fn fused_mul_neg_add_m128(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused -(a * b) + c

See: fused_mul_neg_add_m128.

Source

pub fn fused_mul_neg_add_m128_s(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Low lane -(a * b) + c, other lanes unchanged.

See: fused_mul_neg_add_m128_s.

Source

pub fn fused_mul_neg_add_m128d(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused -(a * b) + c

See: fused_mul_neg_add_m128d.

Source

pub fn fused_mul_neg_add_m128d_s(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Low lane -(a * b) + c, other lanes unchanged.

See: fused_mul_neg_add_m128d_s.

Source

pub fn fused_mul_neg_add_m256(a: m256, b: m256, c: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused -(a * b) + c

See: fused_mul_neg_add_m256.

Source

pub fn fused_mul_neg_add_m256d(a: m256d, b: m256d, c: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused -(a * b) + c

See: fused_mul_neg_add_m256d.

Source

pub fn fused_mul_neg_sub_m128(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused -(a * b) - c

See: fused_mul_neg_sub_m128.

Source

pub fn fused_mul_neg_sub_m128_s(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Low lane fused -(a * b) - c, other lanes unchanged.

See: fused_mul_neg_sub_m128_s.

Source

pub fn fused_mul_neg_sub_m128d(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused -(a * b) - c

See: fused_mul_neg_sub_m128d.

Source

pub fn fused_mul_neg_sub_m128d_s(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Low lane fused -(a * b) - c, other lanes unchanged.

See: fused_mul_neg_sub_m128d_s.

Source

pub fn fused_mul_neg_sub_m256(a: m256, b: m256, c: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused -(a * b) - c

See: fused_mul_neg_sub_m256.

Source

pub fn fused_mul_neg_sub_m256d(a: m256d, b: m256d, c: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused -(a * b) - c

See: fused_mul_neg_sub_m256d.

Source

pub fn fused_mul_sub_m128(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) - c

See: fused_mul_sub_m128.

Source

pub fn fused_mul_sub_m128_s(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Low lane fused (a * b) - c, other lanes unchanged.

See: fused_mul_sub_m128_s.

Source

pub fn fused_mul_sub_m128d(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) - c

See: fused_mul_sub_m128d.

Source

pub fn fused_mul_sub_m128d_s(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Low lane fused (a * b) - c, other lanes unchanged.

See: fused_mul_sub_m128d_s.

Source

pub fn fused_mul_sub_m256(a: m256, b: m256, c: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) - c

See: fused_mul_sub_m256.

Source

pub fn fused_mul_sub_m256d(a: m256d, b: m256d, c: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) - c

See: fused_mul_sub_m256d.

Source

pub fn fused_mul_subadd_m128(a: m128, b: m128, c: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) subadd c (subtracts odd lanes and adds even lanes)

See: fused_mul_subadd_m128.

Source

pub fn fused_mul_subadd_m128d(a: m128d, b: m128d, c: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) subadd c (subtracts odd lanes and adds even lanes)

See: fused_mul_subadd_m128d.

Source

pub fn fused_mul_subadd_m256(a: m256, b: m256, c: m256) -> m256

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) subadd c (subtracts odd lanes and adds even lanes)

See: fused_mul_subadd_m256.

Source

pub fn fused_mul_subadd_m256d(a: m256d, b: m256d, c: m256d) -> m256d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature fma only.

Lanewise fused (a * b) subadd c (subtracts odd lanes and adds even lanes)

See: fused_mul_subadd_m256d.

Source§

impl Arch

Source

pub fn leading_zero_count_u32(a: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature lzcnt only.

Count the leading zeroes in a u32.

See: leading_zero_count_u32.

Source

pub fn leading_zero_count_u64(a: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature lzcnt only.

Count the leading zeroes in a u64.

See: leading_zero_count_u64.

Source§

impl Arch

§Functions requiring the pclmulqdq target feature.


See: https://en.wikipedia.org/wiki/CLMUL_instruction_set

Source

pub fn mul_i64_carryless_m128i<const IMM: i32>(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature pclmulqdq only.

Performs a “carryless” multiplication of two i64 values.

See: mul_i64_carryless_m128i.

Source§

impl Arch

Source

pub fn population_count_i32(a: i32) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature popcnt only.

Count the number of bits set within an i32

See: population_count_i32.

Source

pub fn population_count_i64(a: i64) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature popcnt only.

Count the number of bits set within an i64

See: population_count_i64.

Source§

impl Arch

§Functions requiring the rdrand target feature.


See: https://en.wikipedia.org/wiki/RDRAND

Source

pub fn rdrand_u16(out: &mut u16) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature rdrand only.

Try to obtain a random u16 from the hardware RNG.

See: rdrand_u16.

Source

pub fn rdrand_u32(out: &mut u32) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature rdrand only.

Try to obtain a random u32 from the hardware RNG.

See: rdrand_u32.

Source

pub fn rdrand_u64(out: &mut u64) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature rdrand only.

Try to obtain a random u64 from the hardware RNG.

See: rdrand_u64.

Source§

impl Arch

§Functions requiring the rdseed target feature.


See: https://en.wikipedia.org/wiki/RDRAND

Source

pub fn rdseed_u16(out: &mut u16) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature rdseed only.

Try to obtain a random u16 from the hardware RNG.

See: rdseed_u16.

Source

pub fn rdseed_u32(out: &mut u32) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature rdseed only.

Try to obtain a random u32 from the hardware RNG.

See: rdseed_u32.

Source

pub fn rdseed_u64(out: &mut u64) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature rdseed only.

Try to obtain a random u64 from the hardware RNG.

See: rdseed_u64.

Source§

impl Arch

§Functions requiring the sse target feature.


See: https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions

Source

pub fn add_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a + b.

See: add_m128.

Source

pub fn add_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a + b, other lanes unchanged.

See: add_m128_s.

Source

pub fn bitand_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Bitwise a &amp; b.

See: bitand_m128.

Source

pub fn bitandnot_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Bitwise (!a) &amp; b.

See: bitandnot_m128.

Source

pub fn bitor_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Bitwise a | b.

See: bitor_m128.

Source

pub fn bitxor_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Bitwise a ^ b.

See: bitxor_m128.

Source

pub fn cmp_eq_i32_m128_s(a: m128, b: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane equality.

See: cmp_eq_i32_m128_s.

Source

pub fn cmp_eq_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a == b.

See: cmp_eq_mask_m128.

Source

pub fn cmp_eq_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a == b, other lanes unchanged.

See: cmp_eq_mask_m128_s.

Source

pub fn cmp_ge_i32_m128_s(a: m128, b: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane greater than or equal to.

See: cmp_ge_i32_m128_s.

Source

pub fn cmp_ge_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a &gt;= b.

See: cmp_ge_mask_m128.

Source

pub fn cmp_ge_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a &gt;= b, other lanes unchanged.

See: cmp_ge_mask_m128_s.

Source

pub fn cmp_gt_i32_m128_s(a: m128, b: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane greater than.

See: cmp_gt_i32_m128_s.

Source

pub fn cmp_gt_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a &gt; b.

See: cmp_gt_mask_m128.

Source

pub fn cmp_gt_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a &gt; b, other lanes unchanged.

See: cmp_gt_mask_m128_s.

Source

pub fn cmp_le_i32_m128_s(a: m128, b: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane less than or equal to.

See: cmp_le_i32_m128_s.

Source

pub fn cmp_le_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a &lt;= b.

See: cmp_le_mask_m128.

Source

pub fn cmp_le_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a &lt;= b, other lanes unchanged.

See: cmp_le_mask_m128_s.

Source

pub fn cmp_lt_i32_m128_s(a: m128, b: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane less than.

See: cmp_lt_i32_m128_s.

Source

pub fn cmp_lt_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a &lt; b.

See: cmp_lt_mask_m128.

Source

pub fn cmp_lt_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a &lt; b, other lanes unchanged.

See: cmp_lt_mask_m128_s.

Source

pub fn cmp_neq_i32_m128_s(a: m128, b: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane not equal to.

See: cmp_neq_i32_m128_s.

Source

pub fn cmp_neq_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a != b.

See: cmp_neq_mask_m128.

Source

pub fn cmp_neq_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a != b, other lanes unchanged.

See: cmp_neq_mask_m128_s.

Source

pub fn cmp_nge_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise !(a &gt;= b).

See: cmp_nge_mask_m128.

Source

pub fn cmp_nge_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane !(a &gt;= b), other lanes unchanged.

See: cmp_nge_mask_m128_s.

Source

pub fn cmp_ngt_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise !(a &gt; b).

See: cmp_ngt_mask_m128.

Source

pub fn cmp_ngt_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane !(a &gt; b), other lanes unchanged.

See: cmp_ngt_mask_m128_s.

Source

pub fn cmp_nle_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise !(a &lt;= b).

See: cmp_nle_mask_m128.

Source

pub fn cmp_nle_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane !(a &lt;= b), other lanes unchanged.

See: cmp_nle_mask_m128_s.

Source

pub fn cmp_nlt_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise !(a &lt; b).

See: cmp_nlt_mask_m128.

Source

pub fn cmp_nlt_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane !(a &lt; b), other lanes unchanged.

See: cmp_nlt_mask_m128_s.

Source

pub fn cmp_ordered_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise (!a.is_nan()) &amp; (!b.is_nan()).

See: cmp_ordered_mask_m128.

Source

pub fn cmp_ordered_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane (!a.is_nan()) &amp; (!b.is_nan()), other lanes unchanged.

See: cmp_ordered_mask_m128_s.

Source

pub fn cmp_unord_mask_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a.is_nan() | b.is_nan().

See: cmp_unord_mask_m128.

Source

pub fn cmp_unord_mask_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a.is_nan() | b.is_nan(), other lanes unchanged.

See: cmp_unord_mask_m128_s.

Source

pub fn convert_i32_replace_m128_s(a: m128, i: i32) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Convert i32 to f32 and replace the low lane of the input.

See: convert_i32_replace_m128_s.

Source

pub fn div_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a / b.

See: div_m128.

Source

pub fn div_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a / b, other lanes unchanged.

See: div_m128_s.

Source

pub fn get_f32_from_m128_s(a: m128) -> f32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Gets the low lane as an individual f32 value.

See: get_f32_from_m128_s.

Source

pub fn get_i32_from_m128_s(a: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Converts the low lane to i32 and extracts as an individual value.

See: get_i32_from_m128_s.

Source

pub fn load_f32_m128_s(a: &f32) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Loads the f32 reference into the low lane of the register.

See: load_f32_m128_s.

Source

pub fn load_f32_splat_m128(a: &f32) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Loads the f32 reference into all lanes of a register.

See: load_f32_splat_m128.

Source

pub fn load_m128(a: &m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Loads the reference into a register.

See: load_m128.

Source

pub fn load_reverse_m128(a: &m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Loads the reference into a register with reversed order.

See: load_reverse_m128.

Source

pub fn load_unaligned_m128(a: &[f32; 4]) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Loads the reference into a register.

See: load_unaligned_m128.

Source

pub fn max_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise max(a, b).

See: max_m128.

Source

pub fn max_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane max(a, b), other lanes unchanged.

See: max_m128_s.

Source

pub fn min_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise min(a, b).

See: min_m128.

Source

pub fn min_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane min(a, b), other lanes unchanged.

See: min_m128_s.

Source

pub fn move_high_low_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Move the high lanes of b to the low lanes of a, other lanes unchanged.

See: move_high_low_m128.

Source

pub fn move_low_high_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Move the low lanes of b to the high lanes of a, other lanes unchanged.

See: move_low_high_m128.

Source

pub fn move_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Move the low lane of b to a, other lanes unchanged.

See: move_m128_s.

Source

pub fn move_mask_m128(a: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Gathers the sign bit of each lane.

See: move_mask_m128.

Source

pub fn mul_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a * b.

See: mul_m128.

Source

pub fn mul_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a * b, other lanes unchanged.

See: mul_m128_s.

Source

pub fn reciprocal_m128(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise 1.0 / a approximation.

See: reciprocal_m128.

Source

pub fn reciprocal_m128_s(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane 1.0 / a approximation, other lanes unchanged.

See: reciprocal_m128_s.

Source

pub fn reciprocal_sqrt_m128(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise 1.0 / sqrt(a) approximation.

See: reciprocal_sqrt_m128.

Source

pub fn reciprocal_sqrt_m128_s(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane 1.0 / sqrt(a) approximation, other lanes unchanged.

See: reciprocal_sqrt_m128_s.

Source

pub fn set_m128(three: f32, two: f32, one: f32, zero: f32) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Sets the args into an m128, first arg is the high lane.

See: set_m128.

Source

pub fn set_m128_s(low: f32) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Sets the args into an m128, first arg is the high lane.

See: set_m128_s.

Source

pub fn set_reversed_m128(zero: f32, one: f32, two: f32, three: f32) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Sets the args into an m128, first arg is the low lane.

See: set_reversed_m128.

Source

pub fn set_splat_m128(all: f32) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Splats the value to all lanes.

See: set_splat_m128.

Source

pub fn shuffle_abi_f32_all_m128<const MASK: i32>(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Shuffle the f32 lanes from $a and $b together using an immediate control value.

See: shuffle_abi_f32_all_m128.

Source

pub fn sqrt_m128(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise sqrt(a).

See: sqrt_m128.

Source

pub fn sqrt_m128_s(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane sqrt(a), other lanes unchanged.

See: sqrt_m128_s.

Source

pub fn store_m128(r: &mut m128, a: m128)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Stores the value to the reference given.

See: store_m128.

Source

pub fn store_m128_s(r: &mut f32, a: m128)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Stores the low lane value to the reference given.

See: store_m128_s.

Source

pub fn store_reverse_m128(r: &mut m128, a: m128)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Stores the value to the reference given in reverse order.

See: store_reverse_m128.

Source

pub fn store_splat_m128(r: &mut m128, a: m128)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Stores the low lane value to all lanes of the reference given.

See: store_splat_m128.

Source

pub fn store_unaligned_m128(r: &mut [f32; 4], a: m128)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Stores the value to the reference given.

See: store_unaligned_m128.

Source

pub fn sub_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Lanewise a - b.

See: sub_m128.

Source

pub fn sub_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Low lane a - b, other lanes unchanged.

See: sub_m128_s.

Source

pub fn transpose_four_m128( a: &mut m128, b: &mut m128, c: &mut m128, d: &mut m128, )

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Transpose four m128 as if they were a 4x4 matrix.

See: transpose_four_m128.

Source

pub fn unpack_high_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Unpack and interleave high lanes of a and b.

See: unpack_high_m128.

Source

pub fn unpack_low_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Unpack and interleave low lanes of a and b.

See: unpack_low_m128.

Source

pub fn zeroed_m128() -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

All lanes zero.

See: zeroed_m128.

Source§

impl Arch

§Generic functions requiring the sse target feature.


See: https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions

Source

pub fn prefetch_et0<T>(addr: &T)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Fetches the cache line containing addr into all levels of the cache hierarchy, anticipating write.

Source

pub fn prefetch_et1<T>(addr: &T)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Fetches into L2 and higher, anticipating write.

Source

pub fn prefetch_nta<T>(addr: &T)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Fetch data using the non-temporal access (NTA) hint.

It may be a place closer than main memory but outside of the cache hierarchy.

This is used to reduce access latency without polluting the cache.

Source

pub fn prefetch_t0<T>(addr: &T)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Fetches the cache line containing addr into all levels of the cache hierarchy.

Source

pub fn prefetch_t1<T>(addr: &T)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Fetches into L2 and higher.

Source

pub fn prefetch_t2<T>(addr: &T)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse only.

Fetches into L3 and higher or an implementation-specific choice (e.g., L2 if there is no L3).

Source§

impl Arch

§Functions requiring the sse2 target feature.


See: https://en.wikipedia.org/wiki/SSE2

Source

pub fn add_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a + b with lanes as i16.

See: add_i16_m128i.

Source

pub fn add_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a + b with lanes as i32.

See: add_i32_m128i.

Source

pub fn add_i64_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a + b with lanes as i64.

See: add_i64_m128i.

Source

pub fn add_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a + b with lanes as i8.

See: add_i8_m128i.

Source

pub fn add_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a + b.

See: add_m128d.

Source

pub fn add_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lowest lane a + b, high lane unchanged.

See: add_m128d_s.

Source

pub fn add_saturating_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise saturating a + b with lanes as i16.

See: add_saturating_i16_m128i.

Source

pub fn add_saturating_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise saturating a + b with lanes as i8.

See: add_saturating_i8_m128i.

Source

pub fn add_saturating_u16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise saturating a + b with lanes as u16.

See: add_saturating_u16_m128i.

Source

pub fn add_saturating_u8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise saturating a + b with lanes as u8.

See: add_saturating_u8_m128i.

Source

pub fn average_u16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise average of the u16 values.

See: average_u16_m128i.

Source

pub fn average_u8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise average of the u8 values.

See: average_u8_m128i.

Source

pub fn bitand_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bitwise a &amp; b.

See: bitand_m128d.

Source

pub fn bitand_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bitwise a &amp; b.

See: bitand_m128i.

Source

pub fn bitandnot_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bitwise (!a) &amp; b.

See: bitandnot_m128d.

Source

pub fn bitandnot_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bitwise (!a) &amp; b.

See: bitandnot_m128i.

Source

pub fn bitor_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bitwise a | b.

See: bitor_m128d.

Source

pub fn bitor_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bitwise a | b.

See: bitor_m128i.

Source

pub fn bitxor_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bitwise a ^ b.

See: bitxor_m128d.

Source

pub fn bitxor_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bitwise a ^ b.

See: bitxor_m128i.

Source

pub fn byte_shl_imm_u128_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts all bits in the entire register left by a number of bytes.

See: byte_shl_imm_u128_m128i.

Source

pub fn byte_shr_imm_u128_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts all bits in the entire register right by a number of bytes.

See: byte_shr_imm_u128_m128i.

Source

pub fn cast_to_m128_from_m128d(a: m128d) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bit-preserving cast to m128 from m128d

See: cast_to_m128_from_m128d.

Source

pub fn cast_to_m128_from_m128i(a: m128i) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bit-preserving cast to m128 from m128i

See: cast_to_m128_from_m128i.

Source

pub fn cast_to_m128d_from_m128(a: m128) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bit-preserving cast to m128d from m128

See: cast_to_m128d_from_m128.

Source

pub fn cast_to_m128d_from_m128i(a: m128i) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bit-preserving cast to m128d from m128i

See: cast_to_m128d_from_m128i.

Source

pub fn cast_to_m128i_from_m128(a: m128) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bit-preserving cast to m128i from m128

See: cast_to_m128i_from_m128.

Source

pub fn cast_to_m128i_from_m128d(a: m128d) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Bit-preserving cast to m128i from m128d

See: cast_to_m128i_from_m128d.

Source

pub fn cmp_eq_i32_m128d_s(a: m128d, b: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane f64 equal to.

See: cmp_eq_i32_m128d_s.

Source

pub fn cmp_eq_mask_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a == b with lanes as i16.

See: cmp_eq_mask_i16_m128i.

Source

pub fn cmp_eq_mask_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a == b with lanes as i32.

See: cmp_eq_mask_i32_m128i.

Source

pub fn cmp_eq_mask_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a == b with lanes as i8.

See: cmp_eq_mask_i8_m128i.

Source

pub fn cmp_eq_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a == b, mask output.

See: cmp_eq_mask_m128d.

Source

pub fn cmp_eq_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane a == b, other lanes unchanged.

See: cmp_eq_mask_m128d_s.

Source

pub fn cmp_ge_i32_m128d_s(a: m128d, b: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane f64 greater than or equal to.

See: cmp_ge_i32_m128d_s.

Source

pub fn cmp_ge_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &gt;= b.

See: cmp_ge_mask_m128d.

Source

pub fn cmp_ge_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane a &gt;= b, other lanes unchanged.

See: cmp_ge_mask_m128d_s.

Source

pub fn cmp_gt_i32_m128d_s(a: m128d, b: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane f64 greater than.

See: cmp_gt_i32_m128d_s.

Source

pub fn cmp_gt_mask_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &gt; b with lanes as i16.

See: cmp_gt_mask_i16_m128i.

Source

pub fn cmp_gt_mask_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &gt; b with lanes as i32.

See: cmp_gt_mask_i32_m128i.

Source

pub fn cmp_gt_mask_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &gt; b with lanes as i8.

See: cmp_gt_mask_i8_m128i.

Source

pub fn cmp_gt_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &gt; b.

See: cmp_gt_mask_m128d.

Source

pub fn cmp_gt_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane a &gt; b, other lanes unchanged.

See: cmp_gt_mask_m128d_s.

Source

pub fn cmp_le_i32_m128d_s(a: m128d, b: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane f64 less than or equal to.

See: cmp_le_i32_m128d_s.

Source

pub fn cmp_le_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &lt;= b.

See: cmp_le_mask_m128d.

Source

pub fn cmp_le_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane a &lt;= b, other lanes unchanged.

See: cmp_le_mask_m128d_s.

Source

pub fn cmp_lt_i32_m128d_s(a: m128d, b: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane f64 less than.

See: cmp_lt_i32_m128d_s.

Source

pub fn cmp_lt_mask_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &lt; b with lanes as i16.

See: cmp_lt_mask_i16_m128i.

Source

pub fn cmp_lt_mask_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &lt; b with lanes as i32.

See: cmp_lt_mask_i32_m128i.

Source

pub fn cmp_lt_mask_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &lt; b with lanes as i8.

See: cmp_lt_mask_i8_m128i.

Source

pub fn cmp_lt_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a &lt; b.

See: cmp_lt_mask_m128d.

Source

pub fn cmp_lt_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane a &lt; b, other lane unchanged.

See: cmp_lt_mask_m128d_s.

Source

pub fn cmp_neq_i32_m128d_s(a: m128d, b: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane f64 less than.

See: cmp_neq_i32_m128d_s.

Source

pub fn cmp_neq_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a != b.

See: cmp_neq_mask_m128d.

Source

pub fn cmp_neq_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane a != b, other lane unchanged.

See: cmp_neq_mask_m128d_s.

Source

pub fn cmp_nge_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise !(a &gt;= b).

See: cmp_nge_mask_m128d.

Source

pub fn cmp_nge_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane !(a &gt;= b), other lane unchanged.

See: cmp_nge_mask_m128d_s.

Source

pub fn cmp_ngt_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise !(a &gt; b).

See: cmp_ngt_mask_m128d.

Source

pub fn cmp_ngt_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane !(a &gt; b), other lane unchanged.

See: cmp_ngt_mask_m128d_s.

Source

pub fn cmp_nle_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise !(a &lt;= b).

See: cmp_nle_mask_m128d.

Source

pub fn cmp_nle_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane !(a &lt;= b), other lane unchanged.

See: cmp_nle_mask_m128d_s.

Source

pub fn cmp_nlt_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise !(a &lt; b).

See: cmp_nlt_mask_m128d.

Source

pub fn cmp_nlt_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane !(a &lt; b), other lane unchanged.

See: cmp_nlt_mask_m128d_s.

Source

pub fn cmp_ordered_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise (!a.is_nan()) &amp; (!b.is_nan()).

See: cmp_ordered_mask_m128d.

Source

pub fn cmp_ordered_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane (!a.is_nan()) &amp; (!b.is_nan()), other lane unchanged.

See: cmp_ordered_mask_m128d_s.

Source

pub fn cmp_unord_mask_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a.is_nan() | b.is_nan().

See: cmp_unord_mask_m128d.

Source

pub fn cmp_unord_mask_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane a.is_nan() | b.is_nan(), other lane unchanged.

See: cmp_unord_mask_m128d_s.

Source

pub fn convert_i32_replace_m128d_s(a: m128d, i: i32) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Convert i32 to f64 and replace the low lane of the input.

See: convert_i32_replace_m128d_s.

Source

pub fn convert_i64_replace_m128d_s(a: m128d, i: i64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Convert i64 to f64 and replace the low lane of the input.

See: convert_i64_replace_m128d_s.

Source

pub fn convert_m128_s_replace_m128d_s(a: m128d, b: m128) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Converts the lower f32 to f64 and replace the low lane of the input

See: convert_m128_s_replace_m128d_s.

Source

pub fn convert_m128d_s_replace_m128_s(a: m128, b: m128d) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Converts the low f64 to f32 and replaces the low lane of the input.

See: convert_m128d_s_replace_m128_s.

Source

pub fn convert_to_i32_m128i_from_m128(a: m128) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Rounds the f32 lanes to i32 lanes.

See: convert_to_i32_m128i_from_m128.

Source

pub fn convert_to_i32_m128i_from_m128d(a: m128d) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Rounds the two f64 lanes to the low two i32 lanes.

See: convert_to_i32_m128i_from_m128d.

Source

pub fn convert_to_m128_from_i32_m128i(a: m128i) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Rounds the four i32 lanes to four f32 lanes.

See: convert_to_m128_from_i32_m128i.

Source

pub fn convert_to_m128_from_m128d(a: m128d) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Rounds the two f64 lanes to the low two f32 lanes.

See: convert_to_m128_from_m128d.

Source

pub fn convert_to_m128d_from_lower2_i32_m128i(a: m128i) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Rounds the lower two i32 lanes to two f64 lanes.

See: convert_to_m128d_from_lower2_i32_m128i.

Source

pub fn convert_to_m128d_from_lower2_m128(a: m128) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Rounds the two f64 lanes to the low two f32 lanes.

See: convert_to_m128d_from_lower2_m128.

Source

pub fn copy_i64_m128i_s(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Copy the low i64 lane to a new register, upper bits 0.

See: copy_i64_m128i_s.

Source

pub fn copy_replace_low_f64_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Copies the a value and replaces the low lane with the low b value.

See: copy_replace_low_f64_m128d.

Source

pub fn div_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a / b.

See: div_m128d.

Source

pub fn div_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lowest lane a / b, high lane unchanged.

See: div_m128d_s.

Source

pub fn extract_i16_as_i32_m128i<const LANE: i32>(a: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Gets an i16 value out of an m128i, returns as i32.

See: extract_i16_as_i32_m128i.

Source

pub fn get_f64_from_m128d_s(a: m128d) -> f64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Gets the lower lane as an f64 value.

See: get_f64_from_m128d_s.

Source

pub fn get_i32_from_m128d_s(a: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Converts the lower lane to an i32 value.

See: get_i32_from_m128d_s.

Source

pub fn get_i32_from_m128i_s(a: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Converts the lower lane to an i32 value.

See: get_i32_from_m128i_s.

Source

pub fn get_i64_from_m128d_s(a: m128d) -> i64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Converts the lower lane to an i64 value.

See: get_i64_from_m128d_s.

Source

pub fn get_i64_from_m128i_s(a: m128i) -> i64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Converts the lower lane to an i64 value.

See: get_i64_from_m128i_s.

Source

pub fn insert_i16_from_i32_m128i<const LANE: i32>(a: m128i, i: i32) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Inserts the low 16 bits of an i32 value into an m128i.

See: insert_i16_from_i32_m128i.

Source

pub fn load_f64_m128d_s(a: &f64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the reference into the low lane of the register.

See: load_f64_m128d_s.

Source

pub fn load_f64_splat_m128d(a: &f64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the f64 reference into all lanes of a register.

See: load_f64_splat_m128d.

Source

pub fn load_i64_m128i_s(a: &m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the low i64 into a register.

See: load_i64_m128i_s.

Source

pub fn load_m128d(a: &m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the reference into a register.

See: load_m128d.

Source

pub fn load_m128i(a: &m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the reference into a register.

See: load_m128i.

Source

pub fn load_replace_high_m128d(a: m128d, b: &f64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the reference into a register, replacing the high lane.

See: load_replace_high_m128d.

Source

pub fn load_replace_low_m128d(a: m128d, b: &f64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the reference into a register, replacing the low lane.

See: load_replace_low_m128d.

Source

pub fn load_reverse_m128d(a: &m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the reference into a register with reversed order.

See: load_reverse_m128d.

Source

pub fn load_unaligned_m128d(a: &[f64; 2]) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the reference into a register.

See: load_unaligned_m128d.

Source

pub fn load_unaligned_m128i(a: &[u8; 16]) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Loads the reference into a register.

See: load_unaligned_m128i.

Source

pub fn max_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise max(a, b) with lanes as i16.

See: max_i16_m128i.

Source

pub fn max_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise max(a, b).

See: max_m128d.

Source

pub fn max_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane max(a, b), other lanes unchanged.

See: max_m128d_s.

Source

pub fn max_u8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise max(a, b) with lanes as u8.

See: max_u8_m128i.

Source

pub fn min_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise min(a, b) with lanes as i16.

See: min_i16_m128i.

Source

pub fn min_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise min(a, b).

See: min_m128d.

Source

pub fn min_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane min(a, b), other lanes unchanged.

See: min_m128d_s.

Source

pub fn min_u8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise min(a, b) with lanes as u8.

See: min_u8_m128i.

Source

pub fn move_mask_i8_m128i(a: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Gathers the i8 sign bit of each lane.

See: move_mask_i8_m128i.

Source

pub fn move_mask_m128d(a: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Gathers the sign bit of each lane.

See: move_mask_m128d.

Source

pub fn mul_i16_horizontal_add_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Multiply i16 lanes producing i32 values, horizontal add pairs of i32 values to produce the final output.

See: mul_i16_horizontal_add_m128i.

Source

pub fn mul_i16_keep_high_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a * b with lanes as i16, keep the high bits of the i32 intermediates.

See: mul_i16_keep_high_m128i.

Source

pub fn mul_i16_keep_low_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a * b with lanes as i16, keep the low bits of the i32 intermediates.

See: mul_i16_keep_low_m128i.

Source

pub fn mul_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a * b.

See: mul_m128d.

Source

pub fn mul_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lowest lane a * b, high lane unchanged.

See: mul_m128d_s.

Source

pub fn mul_u16_keep_high_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a * b with lanes as u16, keep the high bits of the u32 intermediates.

See: mul_u16_keep_high_m128i.

Source

pub fn mul_widen_u32_odd_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Multiplies the odd u32 lanes and gives the widened (u64) results.

See: mul_widen_u32_odd_m128i.

Source

pub fn pack_i16_to_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Saturating convert i16 to i8, and pack the values.

See: pack_i16_to_i8_m128i.

Source

pub fn pack_i16_to_u8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Saturating convert i16 to u8, and pack the values.

See: pack_i16_to_u8_m128i.

Source

pub fn pack_i32_to_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Saturating convert i32 to i16, and pack the values.

See: pack_i32_to_i16_m128i.

Source

pub fn set_i16_m128i( a: i16, b: i16, c: i16, d: i16, e: i16, f: i16, g: i16, h: i16, ) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128i, first arg is the high lane.

See: set_i16_m128i.

Source

pub fn set_i32_m128i(a: i32, b: i32, c: i32, d: i32) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128i, first arg is the high lane.

See: set_i32_m128i.

Source

pub fn set_i32_m128i_s(i: i32) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Set an i32 as the low 32-bit lane of an m128i, other lanes blank.

See: set_i32_m128i_s.

Source

pub fn set_i64_m128i(a: i64, b: i64) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128i, first arg is the high lane.

See: set_i64_m128i.

Source

pub fn set_i64_m128i_s(i: i64) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Set an i64 as the low 64-bit lane of an m128i, other lanes blank.

See: set_i64_m128i_s.

Source

pub fn set_i8_m128i( a: i8, b: i8, c: i8, d: i8, e: i8, f: i8, g: i8, h: i8, i: i8, j: i8, k: i8, l: i8, m: i8, n: i8, o: i8, p: i8, ) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128i, first arg is the high lane.

See: set_i8_m128i.

Source

pub fn set_m128d(a: f64, b: f64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128d, first arg is the high lane.

See: set_m128d.

Source

pub fn set_m128d_s(a: f64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into the low lane of a m128d.

See: set_m128d_s.

Source

pub fn set_reversed_i16_m128i( a: i16, b: i16, c: i16, d: i16, e: i16, f: i16, g: i16, h: i16, ) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128i, first arg is the low lane.

See: set_reversed_i16_m128i.

Source

pub fn set_reversed_i32_m128i(a: i32, b: i32, c: i32, d: i32) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128i, first arg is the low lane.

See: set_reversed_i32_m128i.

Source

pub fn set_reversed_i8_m128i( a: i8, b: i8, c: i8, d: i8, e: i8, f: i8, g: i8, h: i8, i: i8, j: i8, k: i8, l: i8, m: i8, n: i8, o: i8, p: i8, ) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128i, first arg is the low lane.

See: set_reversed_i8_m128i.

Source

pub fn set_reversed_m128d(a: f64, b: f64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Sets the args into an m128d, first arg is the low lane.

See: set_reversed_m128d.

Source

pub fn set_splat_i16_m128i(i: i16) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Splats the i16 to all lanes of the m128i.

See: set_splat_i16_m128i.

Source

pub fn set_splat_i32_m128i(i: i32) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Splats the i32 to all lanes of the m128i.

See: set_splat_i32_m128i.

Source

pub fn set_splat_i64_m128i(i: i64) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Splats the i64 to both lanes of the m128i.

See: set_splat_i64_m128i.

Source

pub fn set_splat_i8_m128i(i: i8) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Splats the i8 to all lanes of the m128i.

See: set_splat_i8_m128i.

Source

pub fn set_splat_m128d(a: f64) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Splats the args into both lanes of the m128d.

See: set_splat_m128d.

Source

pub fn shl_all_u16_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shift all u16 lanes to the left by the count in the lower u64 lane.

See: shl_all_u16_m128i.

Source

pub fn shl_all_u32_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shift all u32 lanes to the left by the count in the lower u64 lane.

See: shl_all_u32_m128i.

Source

pub fn shl_all_u64_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shift all u64 lanes to the left by the count in the lower u64 lane.

See: shl_all_u64_m128i.

Source

pub fn shl_imm_u16_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts all u16 lanes left by an immediate.

See: shl_imm_u16_m128i.

Source

pub fn shl_imm_u32_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts all u32 lanes left by an immediate.

See: shl_imm_u32_m128i.

Source

pub fn shl_imm_u64_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts both u64 lanes left by an immediate.

See: shl_imm_u64_m128i.

Source

pub fn shr_all_i16_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shift each i16 lane to the right by the count in the lower i64 lane.

See: shr_all_i16_m128i.

Source

pub fn shr_all_i32_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shift each i32 lane to the right by the count in the lower i64 lane.

See: shr_all_i32_m128i.

Source

pub fn shr_all_u16_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shift each u16 lane to the right by the count in the lower u64 lane.

See: shr_all_u16_m128i.

Source

pub fn shr_all_u32_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shift each u32 lane to the right by the count in the lower u64 lane.

See: shr_all_u32_m128i.

Source

pub fn shr_all_u64_m128i(a: m128i, count: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shift each u64 lane to the right by the count in the lower u64 lane.

See: shr_all_u64_m128i.

Source

pub fn shr_imm_i16_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts all i16 lanes right by an immediate.

See: shr_imm_i16_m128i.

Source

pub fn shr_imm_i32_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts all i32 lanes right by an immediate.

See: shr_imm_i32_m128i.

Source

pub fn shr_imm_u16_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts all u16 lanes right by an immediate.

See: shr_imm_u16_m128i.

Source

pub fn shr_imm_u32_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts all u32 lanes right by an immediate.

See: shr_imm_u32_m128i.

Source

pub fn shr_imm_u64_m128i<const IMM: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shifts both u64 lanes right by an immediate.

See: shr_imm_u64_m128i.

Source

pub fn shuffle_abi_f64_all_m128d<const MASK: i32>(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shuffle the f64 lanes from $a and $b together using an immediate control value.

See: shuffle_abi_f64_all_m128d.

Source

pub fn shuffle_ai_f32_all_m128i<const MASK: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shuffle the i32 lanes in $a using an immediate control value.

See: shuffle_ai_f32_all_m128i.

Source

pub fn shuffle_ai_i16_h64all_m128i<const MASK: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shuffle the high i16 lanes in $a using an immediate control value.

See: shuffle_ai_i16_h64all_m128i.

Source

pub fn shuffle_ai_i16_l64all_m128i<const MASK: i32>(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Shuffle the low i16 lanes in $a using an immediate control value.

See: shuffle_ai_i16_l64all_m128i.

Source

pub fn sqrt_m128d(a: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise sqrt(a).

See: sqrt_m128d.

Source

pub fn sqrt_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Low lane sqrt(b), upper lane is unchanged from a.

See: sqrt_m128d_s.

Source

pub fn store_high_m128d_s(r: &mut f64, a: m128d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the high lane value to the reference given.

See: store_high_m128d_s.

Source

pub fn store_i64_m128i_s(r: &mut i64, a: m128i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the value to the reference given.

See: store_i64_m128i_s.

Source

pub fn store_m128d(r: &mut m128d, a: m128d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the value to the reference given.

See: store_m128d.

Source

pub fn store_m128d_s(r: &mut f64, a: m128d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the low lane value to the reference given.

See: store_m128d_s.

Source

pub fn store_m128i(r: &mut m128i, a: m128i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the value to the reference given.

See: store_m128i.

Source

pub fn store_reversed_m128d(r: &mut m128d, a: m128d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the value to the reference given.

See: store_reversed_m128d.

Source

pub fn store_splat_m128d(r: &mut m128d, a: m128d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the low lane value to all lanes of the reference given.

See: store_splat_m128d.

Source

pub fn store_unaligned_m128d(r: &mut [f64; 2], a: m128d)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the value to the reference given.

See: store_unaligned_m128d.

Source

pub fn store_unaligned_m128i(r: &mut [u8; 16], a: m128i)

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Stores the value to the reference given.

See: store_unaligned_m128i.

Source

pub fn sub_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a - b with lanes as i16.

See: sub_i16_m128i.

Source

pub fn sub_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a - b with lanes as i32.

See: sub_i32_m128i.

Source

pub fn sub_i64_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a - b with lanes as i64.

See: sub_i64_m128i.

Source

pub fn sub_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a - b with lanes as i8.

See: sub_i8_m128i.

Source

pub fn sub_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise a - b.

See: sub_m128d.

Source

pub fn sub_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lowest lane a - b, high lane unchanged.

See: sub_m128d_s.

Source

pub fn sub_saturating_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise saturating a - b with lanes as i16.

See: sub_saturating_i16_m128i.

Source

pub fn sub_saturating_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise saturating a - b with lanes as i8.

See: sub_saturating_i8_m128i.

Source

pub fn sub_saturating_u16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise saturating a - b with lanes as u16.

See: sub_saturating_u16_m128i.

Source

pub fn sub_saturating_u8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Lanewise saturating a - b with lanes as u8.

See: sub_saturating_u8_m128i.

Source

pub fn sum_of_u8_abs_diff_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Compute “sum of u8 absolute differences”.

See: sum_of_u8_abs_diff_m128i.

Source

pub fn truncate_m128_to_m128i(a: m128) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Truncate the f32 lanes to i32 lanes.

See: truncate_m128_to_m128i.

Source

pub fn truncate_m128d_to_m128i(a: m128d) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Truncate the f64 lanes to the lower i32 lanes (upper i32 lanes 0).

See: truncate_m128d_to_m128i.

Source

pub fn truncate_to_i32_m128d_s(a: m128d) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Truncate the lower lane into an i32.

See: truncate_to_i32_m128d_s.

Source

pub fn truncate_to_i64_m128d_s(a: m128d) -> i64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Truncate the lower lane into an i64.

See: truncate_to_i64_m128d_s.

Source

pub fn unpack_high_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave high i16 lanes of a and b.

See: unpack_high_i16_m128i.

Source

pub fn unpack_high_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave high i32 lanes of a and b.

See: unpack_high_i32_m128i.

Source

pub fn unpack_high_i64_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave high i64 lanes of a and b.

See: unpack_high_i64_m128i.

Source

pub fn unpack_high_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave high i8 lanes of a and b.

See: unpack_high_i8_m128i.

Source

pub fn unpack_high_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave high lanes of a and b.

See: unpack_high_m128d.

Source

pub fn unpack_low_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave low i16 lanes of a and b.

See: unpack_low_i16_m128i.

Source

pub fn unpack_low_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave low i32 lanes of a and b.

See: unpack_low_i32_m128i.

Source

pub fn unpack_low_i64_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave low i64 lanes of a and b.

See: unpack_low_i64_m128i.

Source

pub fn unpack_low_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave low i8 lanes of a and b.

See: unpack_low_i8_m128i.

Source

pub fn unpack_low_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Unpack and interleave low lanes of a and b.

See: unpack_low_m128d.

Source

pub fn zeroed_m128d() -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

Both lanes zero.

See: zeroed_m128d.

Source

pub fn zeroed_m128i() -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse2 only.

All lanes zero.

See: zeroed_m128i.

Source§

impl Arch

§Functions requiring the sse3 target feature.


See: https://en.wikipedia.org/wiki/SSE3

Source

pub fn add_horizontal_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Add each lane horizontally, pack the outputs as a then b.

See: add_horizontal_m128.

Source

pub fn add_horizontal_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Add each lane horizontally, pack the outputs as a then b.

See: add_horizontal_m128d.

Source

pub fn addsub_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Alternately, from the top, add a lane and then subtract a lane.

See: addsub_m128.

Source

pub fn addsub_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Add the high lane and subtract the low lane.

See: addsub_m128d.

Source

pub fn duplicate_even_lanes_m128(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Duplicate the odd lanes to the even lanes.

See: duplicate_even_lanes_m128.

Source

pub fn duplicate_low_lane_m128d_s(a: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Copy the low lane of the input to both lanes of the output.

See: duplicate_low_lane_m128d_s.

Source

pub fn duplicate_odd_lanes_m128(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Duplicate the odd lanes to the even lanes.

See: duplicate_odd_lanes_m128.

Source

pub fn sub_horizontal_m128(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Subtract each lane horizontally, pack the outputs as a then b.

See: sub_horizontal_m128.

Source

pub fn sub_horizontal_m128d(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse3 only.

Subtract each lane horizontally, pack the outputs as a then b.

See: sub_horizontal_m128d.

Source§

impl Arch

§Functions requiring the sse4.1 target feature.


See: https://en.wikipedia.org/wiki/SSE4#SSE4.1

Source

pub fn blend_imm_i16_m128i<const IMM: i32>(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Blends the i16 lanes according to the immediate mask.

See: blend_imm_i16_m128i.

Source

pub fn blend_imm_m128<const IMM: i32>(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Blends the lanes according to the immediate mask.

See: blend_imm_m128.

Source

pub fn blend_imm_m128d<const IMM: i32>(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Blends the i16 lanes according to the immediate mask.

See: blend_imm_m128d.

Source

pub fn blend_varying_i8_m128i(a: m128i, b: m128i, mask: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Blend the i8 lanes according to a runtime varying mask.

See: blend_varying_i8_m128i.

Source

pub fn blend_varying_m128(a: m128, b: m128, mask: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Blend the lanes according to a runtime varying mask.

See: blend_varying_m128.

Source

pub fn blend_varying_m128d(a: m128d, b: m128d, mask: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Blend the lanes according to a runtime varying mask.

See: blend_varying_m128d.

Source

pub fn ceil_m128(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Round each lane to a whole number, towards positive infinity.

See: ceil_m128.

Source

pub fn ceil_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Round the low lane of b toward positive infinity, other lanes a.

See: ceil_m128_s.

Source

pub fn ceil_m128d(a: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Round each lane to a whole number, towards positive infinity.

See: ceil_m128d.

Source

pub fn ceil_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Round the low lane of b toward positive infinity, high lane is a.

See: ceil_m128d_s.

Source

pub fn cmp_eq_mask_i64_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise a == b with lanes as i64.

See: cmp_eq_mask_i64_m128i.

Source

pub fn convert_to_i16_m128i_from_lower2_i16_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower two i64 lanes to two i32 lanes.

See: convert_to_i16_m128i_from_lower2_i16_m128i.

Source

pub fn convert_to_i16_m128i_from_lower8_i8_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower eight i8 lanes to eight i16 lanes.

See: convert_to_i16_m128i_from_lower8_i8_m128i.

Source

pub fn convert_to_i32_m128i_from_lower4_i16_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower four i16 lanes to four i32 lanes.

See: convert_to_i32_m128i_from_lower4_i16_m128i.

Source

pub fn convert_to_i32_m128i_from_lower4_i8_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower four i8 lanes to four i32 lanes.

See: convert_to_i32_m128i_from_lower4_i8_m128i.

Source

pub fn convert_to_i64_m128i_from_lower2_i32_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower two i32 lanes to two i64 lanes.

See: convert_to_i64_m128i_from_lower2_i32_m128i.

Source

pub fn convert_to_i64_m128i_from_lower2_i8_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower two i8 lanes to two i64 lanes.

See: convert_to_i64_m128i_from_lower2_i8_m128i.

Source

pub fn convert_to_u16_m128i_from_lower8_u8_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower eight u8 lanes to eight u16 lanes.

See: convert_to_u16_m128i_from_lower8_u8_m128i.

Source

pub fn convert_to_u32_m128i_from_lower4_u16_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower four u16 lanes to four u32 lanes.

See: convert_to_u32_m128i_from_lower4_u16_m128i.

Source

pub fn convert_to_u32_m128i_from_lower4_u8_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower four u8 lanes to four u32 lanes.

See: convert_to_u32_m128i_from_lower4_u8_m128i.

Source

pub fn convert_to_u64_m128i_from_lower2_u16_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower two u16 lanes to two u64 lanes.

See: convert_to_u64_m128i_from_lower2_u16_m128i.

Source

pub fn convert_to_u64_m128i_from_lower2_u32_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower two u32 lanes to two u64 lanes.

See: convert_to_u64_m128i_from_lower2_u32_m128i.

Source

pub fn convert_to_u64_m128i_from_lower2_u8_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Convert the lower two u8 lanes to two u64 lanes.

See: convert_to_u64_m128i_from_lower2_u8_m128i.

Source

pub fn dot_product_m128<const IMM: i32>(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Performs a dot product of two m128 registers.

See: dot_product_m128.

Source

pub fn dot_product_m128d<const IMM: i32>(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Performs a dot product of two m128d registers.

See: dot_product_m128d.

Source

pub fn extract_f32_as_i32_bits_imm_m128<const IMM: i32>(a: m128) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Gets the f32 lane requested. Returns as an i32 bit pattern.

See: extract_f32_as_i32_bits_imm_m128.

Source

pub fn extract_i32_imm_m128i<const IMM: i32>(a: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Gets the i32 lane requested. Only the lowest 2 bits are considered.

See: extract_i32_imm_m128i.

Source

pub fn extract_i64_imm_m128i<const IMM: i32>(a: m128i) -> i64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Gets the i64 lane requested. Only the lowest bit is considered.

See: extract_i64_imm_m128i.

Source

pub fn extract_i8_as_i32_imm_m128i<const IMM: i32>(a: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Gets the i8 lane requested. Only the lowest 4 bits are considered.

See: extract_i8_as_i32_imm_m128i.

Source

pub fn floor_m128(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Round each lane to a whole number, towards negative infinity

See: floor_m128.

Source

pub fn floor_m128_s(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Round the low lane of b toward negative infinity, other lanes a.

See: floor_m128_s.

Source

pub fn floor_m128d(a: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Round each lane to a whole number, towards negative infinity

See: floor_m128d.

Source

pub fn floor_m128d_s(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Round the low lane of b toward negative infinity, high lane is a.

See: floor_m128d_s.

Source

pub fn insert_f32_imm_m128<const IMM: i32>(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Inserts a lane from $b into $a, optionally at a new position.

See: insert_f32_imm_m128.

Source

pub fn insert_i32_imm_m128i<const IMM: i32>(a: m128i, new: i32) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Inserts a new value for the i32 lane specified.

See: insert_i32_imm_m128i.

Source

pub fn insert_i64_imm_m128i<const IMM: i32>(a: m128i, new: i64) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Inserts a new value for the i64 lane specified.

See: insert_i64_imm_m128i.

Source

pub fn insert_i8_imm_m128i<const IMM: i32>(a: m128i, new: i32) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Inserts a new value for the i64 lane specified.

See: insert_i8_imm_m128i.

Source

pub fn max_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise max(a, b) with lanes as i32.

See: max_i32_m128i.

Source

pub fn max_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise max(a, b) with lanes as i8.

See: max_i8_m128i.

Source

pub fn max_u16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise max(a, b) with lanes as u16.

See: max_u16_m128i.

Source

pub fn max_u32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise max(a, b) with lanes as u32.

See: max_u32_m128i.

Source

pub fn min_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise min(a, b) with lanes as i32.

See: min_i32_m128i.

Source

pub fn min_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise min(a, b) with lanes as i8.

See: min_i8_m128i.

Source

pub fn min_position_u16_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Min u16 value, position, and other lanes zeroed.

See: min_position_u16_m128i.

Source

pub fn min_u16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise min(a, b) with lanes as u16.

See: min_u16_m128i.

Source

pub fn min_u32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise min(a, b) with lanes as u32.

See: min_u32_m128i.

Source

pub fn mul_32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Lanewise a * b with 32-bit lanes.

See: mul_32_m128i.

Source

pub fn mul_widen_i32_odd_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Multiplies the odd i32 lanes and gives the widened (i64) results.

See: mul_widen_i32_odd_m128i.

Source

pub fn multi_packed_sum_abs_diff_u8_m128i<const IMM: i32>( a: m128i, b: m128i, ) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Computes eight u16 “sum of absolute difference” values according to the bytes selected.

See: multi_packed_sum_abs_diff_u8_m128i.

Source

pub fn pack_i32_to_u16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Saturating convert i32 to u16, and pack the values.

See: pack_i32_to_u16_m128i.

Source

pub fn round_m128<const MODE: i32>(a: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Rounds each lane in the style specified.

See: round_m128.

Source

pub fn round_m128_s<const MODE: i32>(a: m128, b: m128) -> m128

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Rounds $b low as specified, other lanes use $a.

See: round_m128_s.

Source

pub fn round_m128d<const MODE: i32>(a: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Rounds each lane in the style specified.

See: round_m128d.

Source

pub fn round_m128d_s<const MODE: i32>(a: m128d, b: m128d) -> m128d

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Rounds $b low as specified, keeps $a high.

See: round_m128d_s.

Source

pub fn test_all_ones_m128i(a: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Tests if all bits are 1.

See: test_all_ones_m128i.

Source

pub fn test_all_zeroes_m128i(a: m128i, mask: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Returns if all masked bits are 0, (a &amp; mask) as u128 == 0

See: test_all_zeroes_m128i.

Source

pub fn test_mixed_ones_and_zeroes_m128i(a: m128i, mask: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Returns if, among the masked bits, there’s both 0s and 1s

See: test_mixed_ones_and_zeroes_m128i.

Source

pub fn testc_m128i(a: m128i, b: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Compute the bitwise NOT of a and then AND with b, returns 1 if the result is zero, otherwise 0.

See: testc_m128i.

Source

pub fn testz_m128i(a: m128i, b: m128i) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.1 only.

Computes the bitwise AND of 256 bits in a and b, returns 1 if the result is zero, otherwise 0.

See: testz_m128i.

Source§

impl Arch

§Functions requiring the sse4.2 target feature.


See: https://en.wikipedia.org/wiki/SSE4#SSE4.2

Source

pub fn cmp_gt_mask_i64_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Lanewise a &gt; b with lanes as i64.

See: cmp_gt_mask_i64_m128i.

Source

pub fn crc32_u16(crc: u32, v: u16) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Accumulates the u16 into a running CRC32 value.

See: crc32_u16.

Source

pub fn crc32_u32(crc: u32, v: u32) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Accumulates the u32 into a running CRC32 value.

See: crc32_u32.

Source

pub fn crc32_u64(crc: u64, v: u64) -> u64

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Accumulates the u64 into a running CRC32 value.

See: crc32_u64.

Source

pub fn crc32_u8(crc: u32, v: u8) -> u32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Accumulates the u8 into a running CRC32 value.

See: crc32_u8.

Source

pub fn search_explicit_str_for_index<const IMM: i32>( needle: m128i, needle_len: i32, haystack: m128i, haystack_len: i32, ) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Search for needle in `haystack, with explicit string length.

See: search_explicit_str_for_index.

Source

pub fn search_explicit_str_for_mask<const IMM: i32>( needle: m128i, needle_len: i32, haystack: m128i, haystack_len: i32, ) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Search for needle in `haystack, with explicit string length.

See: search_explicit_str_for_mask.

Source

pub fn search_implicit_str_for_index<const IMM: i32>( needle: m128i, haystack: m128i, ) -> i32

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Search for needle in `haystack, with implicit string length.

See: search_implicit_str_for_index.

Source

pub fn search_implicit_str_for_mask<const IMM: i32>( needle: m128i, haystack: m128i, ) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature sse4.2 only.

Search for needle in `haystack, with implicit string length.

See: search_implicit_str_for_mask.

Source§

impl Arch

§Functions requiring the ssse3 target feature.


See: https://en.wikipedia.org/wiki/SSSE3

Source

pub fn abs_i16_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Lanewise absolute value with lanes as i16.

See: abs_i16_m128i.

Source

pub fn abs_i32_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Lanewise absolute value with lanes as i32.

See: abs_i32_m128i.

Source

pub fn abs_i8_m128i(a: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Lanewise absolute value with lanes as i8.

See: abs_i8_m128i.

Source

pub fn add_horizontal_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Add horizontal pairs of i16 values, pack the outputs as a then b.

See: add_horizontal_i16_m128i.

Source

pub fn add_horizontal_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Add horizontal pairs of i32 values, pack the outputs as a then b.

See: add_horizontal_i32_m128i.

Source

pub fn add_horizontal_saturating_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Add horizontal pairs of i16 values, saturating, pack the outputs as a then b.

See: add_horizontal_saturating_i16_m128i.

Source

pub fn combined_byte_shr_imm_m128i<const IMM: i32>(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Counts $a as the high bytes and $b as the low bytes then performs a byte shift to the right by the immediate value.

See: combined_byte_shr_imm_m128i.

Source

pub fn mul_i16_scale_round_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Multiply i16 lanes into i32 intermediates, keep the high 18 bits, round by adding 1, right shift by 1.

See: mul_i16_scale_round_m128i.

Source

pub fn mul_u8i8_add_horizontal_saturating_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

This is dumb and weird.

See: mul_u8i8_add_horizontal_saturating_m128i.

Source

pub fn shuffle_av_i8z_all_m128i(a: m128i, v: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Shuffle i8 lanes in a using i8 values in v.

See: shuffle_av_i8z_all_m128i.

Source

pub fn sign_apply_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Applies the sign of i16 values in b to the values in a.

See: sign_apply_i16_m128i.

Source

pub fn sign_apply_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Applies the sign of i32 values in b to the values in a.

See: sign_apply_i32_m128i.

Source

pub fn sign_apply_i8_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Applies the sign of i8 values in b to the values in a.

See: sign_apply_i8_m128i.

Source

pub fn sub_horizontal_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Subtract horizontal pairs of i16 values, pack the outputs as a then b.

See: sub_horizontal_i16_m128i.

Source

pub fn sub_horizontal_i32_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Subtract horizontal pairs of i32 values, pack the outputs as a then b.

See: sub_horizontal_i32_m128i.

Source

pub fn sub_horizontal_saturating_i16_m128i(a: m128i, b: m128i) -> m128i

Available on crate feature dep_safe_arch and (x86 or x86-64) and target feature ssse3 only.

Subtract horizontal pairs of i16 values, saturating, pack the outputs as a then b.

See: sub_horizontal_saturating_i16_m128i.

Auto Trait Implementations§

§

impl Freeze for Arch

§

impl RefUnwindSafe for Arch

§

impl Send for Arch

§

impl Sync for Arch

§

impl Unpin for Arch

§

impl UnwindSafe for Arch

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ByteSized for T

Source§

const BYTE_ALIGN: usize = _

The alignment of this type in bytes.
Source§

const BYTE_SIZE: usize = _

The size of this type in bytes.
Source§

fn byte_align(&self) -> usize

Returns the alignment of this type in bytes.
Source§

fn byte_size(&self) -> usize

Returns the size of this type in bytes. Read more
Source§

fn ptr_size_ratio(&self) -> [usize; 2]

Returns the size ratio between Ptr::BYTES and BYTE_SIZE. Read more
Source§

impl<T, R> Chain<R> for T
where T: ?Sized,

Source§

fn chain<F>(self, f: F) -> R
where F: FnOnce(Self) -> R, Self: Sized,

Chain a function which takes the parameter by value.
Source§

fn chain_ref<F>(&self, f: F) -> R
where F: FnOnce(&Self) -> R,

Chain a function which takes the parameter by shared reference.
Source§

fn chain_mut<F>(&mut self, f: F) -> R
where F: FnOnce(&mut Self) -> R,

Chain a function which takes the parameter by exclusive reference.
Source§

impl<T> ExtAny for T
where T: Any + ?Sized,

Source§

fn type_id() -> TypeId

Returns the TypeId of Self. Read more
Source§

fn type_of(&self) -> TypeId

Returns the TypeId of self. Read more
Source§

fn type_name(&self) -> &'static str

Returns the type name of self. Read more
Source§

fn type_is<T: 'static>(&self) -> bool

Returns true if Self is of type T. Read more
Source§

fn type_hash(&self) -> u64

Returns a deterministic hash of the TypeId of Self.
Source§

fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64

Returns a deterministic hash of the TypeId of Self using a custom hasher.
Source§

fn as_any_ref(&self) -> &dyn Any
where Self: Sized,

Upcasts &self as &dyn Any. Read more
Source§

fn as_any_mut(&mut self) -> &mut dyn Any
where Self: Sized,

Upcasts &mut self as &mut dyn Any. Read more
Source§

fn as_any_box(self: Box<Self>) -> Box<dyn Any>
where Self: Sized,

Upcasts Box<self> as Box<dyn Any>. Read more
Source§

fn downcast_ref<T: 'static>(&self) -> Option<&T>

Available on crate feature unsafe_layout only.
Returns some shared reference to the inner value if it is of type T. Read more
Source§

fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T>

Available on crate feature unsafe_layout only.
Returns some exclusive reference to the inner value if it is of type T. Read more
Source§

impl<T> ExtMem for T
where T: ?Sized,

Source§

const NEEDS_DROP: bool = _

Know whether dropping values of this type matters, in compile-time.
Source§

fn mem_align_of<T>() -> usize

Returns the minimum alignment of the type in bytes. Read more
Source§

fn mem_align_of_val(&self) -> usize

Returns the alignment of the pointed-to value in bytes. Read more
Source§

fn mem_size_of<T>() -> usize

Returns the size of a type in bytes. Read more
Source§

fn mem_size_of_val(&self) -> usize

Returns the size of the pointed-to value in bytes. Read more
Source§

fn mem_copy(&self) -> Self
where Self: Copy,

Bitwise-copies a value. Read more
Source§

fn mem_needs_drop(&self) -> bool

Returns true if dropping values of this type matters. Read more
Source§

fn mem_drop(self)
where Self: Sized,

Drops self by running its destructor. Read more
Source§

fn mem_forget(self)
where Self: Sized,

Forgets about self without running its destructor. Read more
Source§

fn mem_replace(&mut self, other: Self) -> Self
where Self: Sized,

Replaces self with other, returning the previous value of self. Read more
Source§

fn mem_take(&mut self) -> Self
where Self: Default,

Replaces self with its default value, returning the previous value of self. Read more
Source§

fn mem_swap(&mut self, other: &mut Self)
where Self: Sized,

Swaps the value of self and other without deinitializing either one. Read more
Source§

unsafe fn mem_zeroed<T>() -> T

Available on crate feature unsafe_layout only.
Returns the value of type T represented by the all-zero byte-pattern. Read more
Source§

unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst

Available on crate feature unsafe_layout only.
Returns the value of type T represented by the all-zero byte-pattern. Read more
Source§

fn mem_as_bytes(&self) -> &[u8]
where Self: Sync + Unpin,

Available on crate feature unsafe_slice only.
View a Sync + Unpin self as &[u8]. Read more
Source§

fn mem_as_bytes_mut(&mut self) -> &mut [u8]
where Self: Sync + Unpin,

Available on crate feature unsafe_slice only.
View a Sync + Unpin self as &mut [u8]. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

Source§

impl<T> Hook for T

Source§

fn hook_ref<F>(self, f: F) -> Self
where F: FnOnce(&Self),

Applies a function which takes the parameter by shared reference, and then returns the (possibly) modified owned value. Read more
Source§

fn hook_mut<F>(self, f: F) -> Self
where F: FnOnce(&mut Self),

Applies a function which takes the parameter by exclusive reference, and then returns the (possibly) modified owned value. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

§

fn into_sample(self) -> T

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

§

impl<T> Ungil for T
where T: Send,