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