https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65709
--- Comment #16 from Jeffrey Walton <noloader at gmail dot com> --- (In reply to Jakub Jelinek from comment #15) > I'm saying that if the program does not trigger undefined behavior (e.g. by > accessing misaligned integers without telling the compiler about it (by > using memcpy, or packed attribute or pragma), then it would be a compiler > bug to use an instruction requiring higher alignment than guaranteed in the > source, without ensuring such alignment (through realigning arrays, > introducing a loop for aligning pointers before the vectorized loop, peeling > a few iterations needed to align the pointer(s), or using instructions that > don't require such high alignment). > No testcase has been provided here without having undefined behavior in them > that would show a bug on the compiler side. OK, so you'll have to forgive my ignorance again. So you are saying that it may be a bug to use vmovdqa if the source and/or destination are not 16-byte aligned; but all the user code you have seen has undefined behavior so you're not going to answer. Is that correct? (My apologies if its too sharp a point. I'm just trying to figure out what the preconditions are for vmovdqa, and if it should be used when source or destination is 8-byte aligned).