Everything I've read about using C/C++ intrinsic types for SIMD capabilities like MMX and SSE indicate that you should use those as opaque types and not reference the internals directly.
However, when I look at many examples, they work by taking (explicitly aligned) pointers to raw data and reinterpreting them as pointers to the intrinsic types prior to doing the work. But, by using pointers to intrinsic types, and especially when aliasing other data as those types, are you not violating that rule?
unsigned char*
orvoid*
which has special rules when it comes to pointer aliasing. Once you have the actual intrinsic type, you'd use an intrinsic type pointer to reference it. - Tony The Lion