You are writing convoluted code and hoping that your compiler will figure it out and convert it internally to the form I posted. Sometimes it does, sometimes it doesn't. In this case it generates reasonable code but doesn't vectorize it for some reason. WTF.
I prefer to just add alignment specification and move on, assuming I don't care about portability. If portability matters, reread my original post ;)