GCC 4.0.x on s390{,x} aligned vector_size 1/2/4/8/64/128/... types to their size, just vector_size 16 and 32 has been 8 bytes aligned (BIGGEST_ALIGNMENT).It is just a side-effect of the 3.4/4.0 code - if there was a supported integer mode on the target for the requested size, then alignment of that mode was used (and mode alignments are at most BIGGEST_ALIGNMENT). If no integer mode was supported for that size, it would use the earlier alignment, i.e. vector_size. [...] We can document the incompatibility as a feature (after all, getting rid of that alignment anomaly on s390{,x} wouldn't be a bad thing I guess).
Capping the alignment of any vector type above vector_size(4) to 8 bytes could also be an idea.
Paolo
