The [std::mem::transmute docs](http://doc.rust-lang.org/std/mem/fn.transmute.html) says: > Both types must have the same size and alignment, and this guarantee is enforced at compile-time. Experimentally, this function does not care about alignment: ``` rust #![feature(core)] use std::simd::*; use std::mem; fn main() { let _ = unsafe { mem::transmute::<_,(u64,u64)>(u64x2(1,2)) }; // compiles just fine } ```