--- Comment #1 from dann at godzilla dot ics dot uci dot edu 2009-02-02
14:50 ---
This code:
unsigned short a[1];
void test()
{
int i;
for (i = 0; i 1; ++i) a[i] = 5;
}
will be vectorized with -O3 -march=core2 to this:
.L2:
movdqa %xmm0, a(%eax)
addl
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-02-02 14:53 ---
The ABI does not guarantee alignment bigger than 2 for the external array. The
vectorizer adjusts the alignment for the internal one.
--
rguenth at gcc dot gnu dot org changed:
What|Removed
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-02-02 14:55 ---
Err, it seems at least the x86_64 ABI guarantees alignment of 16 bytes for
arrays bigger than 16 bytes (including variable length arrays).
--
rguenth at gcc dot gnu dot org changed:
What|Removed