1 use x86::avx::*; 2 3 #[allow(dead_code)] 4 extern "platform-intrinsic" { x86_mm256_abs_epi8(x: i8x32) -> i8x325 fn x86_mm256_abs_epi8(x: i8x32) -> i8x32; x86_mm256_abs_epi16(x: i16x16) -> i16x166 fn x86_mm256_abs_epi16(x: i16x16) -> i16x16; x86_mm256_abs_epi32(x: i32x8) -> i32x87 fn x86_mm256_abs_epi32(x: i32x8) -> i32x8; x86_mm256_adds_epi8(x: i8x32, y: i8x32) -> i8x328 fn x86_mm256_adds_epi8(x: i8x32, y: i8x32) -> i8x32; x86_mm256_adds_epu8(x: u8x32, y: u8x32) -> u8x329 fn x86_mm256_adds_epu8(x: u8x32, y: u8x32) -> u8x32; x86_mm256_adds_epi16(x: i16x16, y: i16x16) -> i16x1610 fn x86_mm256_adds_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_adds_epu16(x: u16x16, y: u16x16) -> u16x1611 fn x86_mm256_adds_epu16(x: u16x16, y: u16x16) -> u16x16; x86_mm256_avg_epu8(x: u8x32, y: u8x32) -> u8x3212 fn x86_mm256_avg_epu8(x: u8x32, y: u8x32) -> u8x32; x86_mm256_avg_epu16(x: u16x16, y: u16x16) -> u16x1613 fn x86_mm256_avg_epu16(x: u16x16, y: u16x16) -> u16x16; x86_mm256_hadd_epi16(x: i16x16, y: i16x16) -> i16x1614 fn x86_mm256_hadd_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_hadd_epi32(x: i32x8, y: i32x8) -> i32x815 fn x86_mm256_hadd_epi32(x: i32x8, y: i32x8) -> i32x8; x86_mm256_hadds_epi16(x: i16x16, y: i16x16) -> i16x1616 fn x86_mm256_hadds_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_hsub_epi16(x: i16x16, y: i16x16) -> i16x1617 fn x86_mm256_hsub_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_hsub_epi32(x: i32x8, y: i32x8) -> i32x818 fn x86_mm256_hsub_epi32(x: i32x8, y: i32x8) -> i32x8; x86_mm256_hsubs_epi16(x: i16x16, y: i16x16) -> i16x1619 fn x86_mm256_hsubs_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_madd_epi16(x: i16x16, y: i16x16) -> i32x820 fn x86_mm256_madd_epi16(x: i16x16, y: i16x16) -> i32x8; x86_mm256_maddubs_epi16(x: i8x32, y: i8x32) -> i16x1621 fn x86_mm256_maddubs_epi16(x: i8x32, y: i8x32) -> i16x16; x86_mm256_max_epi8(x: i8x32, y: i8x32) -> i8x3222 fn x86_mm256_max_epi8(x: i8x32, y: i8x32) -> i8x32; x86_mm256_max_epu8(x: u8x32, y: u8x32) -> u8x3223 fn x86_mm256_max_epu8(x: u8x32, y: u8x32) -> u8x32; x86_mm256_max_epi16(x: i16x16, y: i16x16) -> i16x1624 fn x86_mm256_max_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_max_epu16(x: u16x16, y: u16x16) -> u16x1625 fn x86_mm256_max_epu16(x: u16x16, y: u16x16) -> u16x16; x86_mm256_max_epi32(x: i32x8, y: i32x8) -> i32x826 fn x86_mm256_max_epi32(x: i32x8, y: i32x8) -> i32x8; x86_mm256_max_epu32(x: u32x8, y: u32x8) -> u32x827 fn x86_mm256_max_epu32(x: u32x8, y: u32x8) -> u32x8; x86_mm256_min_epi8(x: i8x32, y: i8x32) -> i8x3228 fn x86_mm256_min_epi8(x: i8x32, y: i8x32) -> i8x32; x86_mm256_min_epu8(x: u8x32, y: u8x32) -> u8x3229 fn x86_mm256_min_epu8(x: u8x32, y: u8x32) -> u8x32; x86_mm256_min_epi16(x: i16x16, y: i16x16) -> i16x1630 fn x86_mm256_min_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_min_epu16(x: u16x16, y: u16x16) -> u16x1631 fn x86_mm256_min_epu16(x: u16x16, y: u16x16) -> u16x16; x86_mm256_min_epi32(x: i32x8, y: i32x8) -> i32x832 fn x86_mm256_min_epi32(x: i32x8, y: i32x8) -> i32x8; x86_mm256_min_epu32(x: u32x8, y: u32x8) -> u32x833 fn x86_mm256_min_epu32(x: u32x8, y: u32x8) -> u32x8; x86_mm256_mul_epi64(x: i32x8, y: i32x8) -> i64x434 fn x86_mm256_mul_epi64(x: i32x8, y: i32x8) -> i64x4; x86_mm256_mul_epu64(x: u32x8, y: u32x8) -> u64x435 fn x86_mm256_mul_epu64(x: u32x8, y: u32x8) -> u64x4; x86_mm256_mulhi_epi16(x: i16x16, y: i16x16) -> i16x1636 fn x86_mm256_mulhi_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_mulhi_epu16(x: u16x16, y: u16x16) -> u16x1637 fn x86_mm256_mulhi_epu16(x: u16x16, y: u16x16) -> u16x16; x86_mm256_mulhrs_epi16(x: i16x16, y: i16x16) -> i16x1638 fn x86_mm256_mulhrs_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_packs_epi16(x: i16x16, y: i16x16) -> i8x3239 fn x86_mm256_packs_epi16(x: i16x16, y: i16x16) -> i8x32; x86_mm256_packus_epi16(x: i16x16, y: i16x16) -> u8x3240 fn x86_mm256_packus_epi16(x: i16x16, y: i16x16) -> u8x32; x86_mm256_packs_epi32(x: i32x8, y: i32x8) -> i16x1641 fn x86_mm256_packs_epi32(x: i32x8, y: i32x8) -> i16x16; x86_mm256_packus_epi32(x: i32x8, y: i32x8) -> u16x1642 fn x86_mm256_packus_epi32(x: i32x8, y: i32x8) -> u16x16; x86_mm256_permutevar8x32_epi32(x: i32x8, y: i32x8) -> i32x843 fn x86_mm256_permutevar8x32_epi32(x: i32x8, y: i32x8) -> i32x8; x86_mm256_permutevar8x32_ps(x: f32x8, y: i32x8) -> f32x844 fn x86_mm256_permutevar8x32_ps(x: f32x8, y: i32x8) -> f32x8; x86_mm256_sad_epu8(x: u8x32, y: u8x32) -> u64x445 fn x86_mm256_sad_epu8(x: u8x32, y: u8x32) -> u64x4; x86_mm256_shuffle_epi8(x: i8x32, y: i8x32) -> i8x3246 fn x86_mm256_shuffle_epi8(x: i8x32, y: i8x32) -> i8x32; x86_mm256_sign_epi8(x: i8x32, y: i8x32) -> i8x3247 fn x86_mm256_sign_epi8(x: i8x32, y: i8x32) -> i8x32; x86_mm256_sign_epi16(x: i16x16, y: i16x16) -> i16x1648 fn x86_mm256_sign_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_sign_epi32(x: i32x8, y: i32x8) -> i32x849 fn x86_mm256_sign_epi32(x: i32x8, y: i32x8) -> i32x8; x86_mm256_subs_epi8(x: i8x32, y: i8x32) -> i8x3250 fn x86_mm256_subs_epi8(x: i8x32, y: i8x32) -> i8x32; x86_mm256_subs_epu8(x: u8x32, y: u8x32) -> u8x3251 fn x86_mm256_subs_epu8(x: u8x32, y: u8x32) -> u8x32; x86_mm256_subs_epi16(x: i16x16, y: i16x16) -> i16x1652 fn x86_mm256_subs_epi16(x: i16x16, y: i16x16) -> i16x16; x86_mm256_subs_epu16(x: u16x16, y: u16x16) -> u16x1653 fn x86_mm256_subs_epu16(x: u16x16, y: u16x16) -> u16x16; 54 } 55 56 // broken on rustc 1.7.0-nightly (1ddaf8bdf 2015-12-12) 57 // pub trait Avx2F32x8 { 58 // fn permutevar(self, other: i32x8) -> f32x8; 59 // } 60 // 61 // impl Avx2F32x8 for f32x8 { 62 // fn permutevar(self, other: i32x8) -> f32x8 { 63 // unsafe { x86_mm256_permutevar8x32_ps(self, other) } 64 // } 65 // } 66