Michael Meissner wrote: > > 32-bit GCC on x86 defines the alignment of long long to 4 bytes, while 64-bit > GCC on x86 defines the alignment to be 8 bytes. Unfortunately the 32 bit x86 > is also stuck with doubles being aligned on a 32-bit boundary, due to the fact > that the people creating the original ABI were using a 386 which did not need > higher alignments, and newer processors lose performance because it isn't > properly aligned. In x86 32-bit mode, long long continues to be implemented with pairs of int, so the performance problems with 4-byte alignment arise only for double and vectorizable types.