r223862 caused a regression; quoting:
The selection logic for vld/vst doesn't care about less-than-standard alignment attributes. In this case, the alignment of the loads is 1, but SelectVLD selected VLD1q64, because the result type was v2i64. It was obvious from the testcases I added in that commit, but I didn't register the wrongness.
This patch introduces bitcasts if necessary, and changes the vld/vst type to one whose standard alignment matches the original load/store alignment.
Looking just at the possible code path, one may wonder why we do not need to handle V(ST|LD)xDUP.
Add a comment saying that by construction those are assumed to be properly aligned, that is why we just need to test for regular load/store.