This is an interesting story about how type punning on non-SIMD types can cause autovectorization to choke at run time:
http://pzemtsov.github.io/2016/11/06/bug-story-alignment-on-x86.html We use plenty of type punning, but I haven't checked to see if our use of -fno-strict-aliasing prevents this kind of thing.