extern crate simd;
use simd::x86::sse2::*;
//use simd::x86::ssse3::*;
use simd::u8x16;

#[inline(never)]
pub fn foo(x: u64x2) -> u64x2 {
    (x << 3) | (x >> (64 - 3))
}

fn main() {
    let v =  (0u8..16).collect::<Vec<_>>();
    let a = u8x16::load(&v, 0);
    let b = u8x16::splat(!0);

    println!("{:?}", b.move_mask());
    println!("{:?}", foo(u64x2::splat(1)) + foo(u64x2::splat(2)));
}
