/* { dg-do compile } */ /* { dg-options "-O2" } */ /* volatile references should not produce load pair. */ /* { dg-final { scan-assembler-not "ldp\t" } } */ int f0(volatile int *a) { int b = a[0]; int c = a[1]; int d = a[2]; int e = a[3]; return b + c + d + e; } int f1(volatile int *a) { int b = a[1]; int c = a[0]; int d = a[2]; int e = a[3]; return b + c + d + e; } int f2(volatile int *a) { int b = a[1]; int c = a[0]; int d = a[3]; int e = a[2]; return b + c + d + e; } int f3(volatile int *a) { int b = a[1]; int c = a[3]; int d = a[0]; int e = a[2]; return b + c + d + e; } int f4(volatile int *a) { int b = a[1]; int c = a[3]; int d = a[2]; int e = a[0]; return b + c + d + e; }