Testsuite test gcc.dg/tree-ssa/loop35.c fails for avr target for test3(). This test uses long array index. Tests with int or char index get hoisted as expected. void test3(unsigned long b) { unsigned i; /* And here. */ for (i = 0; i < 100; i++) { arr[b+8].X += i; arr[b+9].X += i; } } Richard Guenther indicates: > This is because the alias-oracle for store-motion doesn't handle conversions > to sizetype well in the offset disambiguation.
Confirmed. See also related XFAILs on LP64 targets.