Ok, since i've already looked like an uneducated fool today and i'm grasping at straws...
Question: why do i get an unaligned array as soon as g++ (4.1.0 20050327, cygwin) finds out that it's static (i mean even if i try to fool it around a bit)? It seems to only happen with multidimensionnal arrays, or arrays large enough. color_t is a __m128 in disguise. color_t above[1024][2]; -> aligned static color_t above[1024][2]; -> unaligned I've tried countless alignement attribute variations and/or indirections but with the same result. Other statically allocated, but smaller, thingies in the same unit are properly aligned. Have i crossed some magic treshold?