The LangRef states, for the alignments determined by datalayout:
If no match is found, and the type sought is a vector type, then the largest vector type
that is smaller than the sought vector type will be used as a fall back. This happens
because <128 x double> can be implemented in terms of 64 <2 x double>, for example.
However, the implementation only uses vector alignments from
datalayout if they match exactly.
If no exact match is found, "natural alignment" is used (align =
A comment also states "This is consistent with what clang and llvm-gcc do".
Is the implementation correct, and if so, should the LangRef be updated?