auroranockert OpenCL-style SIMD vectors
d3709e3 Jul 16, 2013
OpenCL-style SIMD vectors
This implements OpenCL-style SIMD vectors, that map down to LLVM vectors
of matching type.

This means you can do cool stuff like,

  let a = [1.0f32, 2.0f32, 3.0f32, 4.0f32] as f32x4;
  let b = a.even + a.odd;
  let c = a.s3210;
  let mut d = a;
  d.even = d.odd;

and other similarly amazing tomfoolery.

This doesn't replace the struct-based SIMD types that Rust currently
supports, but it should. The reason being that you need to be able to
generate anonymous SIMD types.

For example, x.xy is a <2 x T> vector, which may not have been declared,
but we still need to be able to pretty-print it.
d3709e3