If a data layout specifies a vector alignment that is less than the
alignment of the element type, prefer the element alignment.
This alters the vector ABI alignment so that vector elements are always
aligned appropriately for their type.
This oddity of data layout doesn't seem to happen in any existing
backends, but does in DirectX where vector alignment has a lower bound
of the element type. For example < 4 x float > requires 32-bit
alignment, and < 2 x double > requires 64.
Shouldn't this capture the preferred alignment value for use in the maxAlignment, or return if not vector? Or is this mechanism intended to only apply to ABI alignment and not preferred alignment?