------- Comment #7 from stevenj at alum dot mit dot edu 2007-02-02 02:06 ------- > Well the C standard mentions there can be non standard integer types so that > exists for x86_64, __int128_t which has normally aligned 16bytes so again this > is a bug in glibc.
First, 16-byte alignment for SIMD instructions is needed on 32-bit x86 machines as well, and also on 32-bit PowerPC (with AltiVec), and on both of these __int128_t is not supported by gcc. Second, as far as I can tell __int128_t works perfectly fine on 8-byte aligned data (I just tried it with gcc 4.1, CoreDuo), nor can I find any documentation that says it *must* be 16-byte aligned. (This doesn't seem too surprising: if you look at the generated assembly, it just uses a sequence of 64-bit int instructions, which only require 8-byte alignment.) What is the evidence that 8-byte alignment is a bug in malloc, then? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24261