1 #define N 10 2 void foo(float A[restrict], double B[restrict], char C[restrict], 3 int D[restrict], long E[restrict]) { 4 for (long i = 0; i < N; i++) 5 A[i] += B[i] + C[i] + D[i] + E[i]; 6 } 7 8 int main() { 9 float A[N]; 10 double B[N]; 11 char C[N]; 12 int D[N]; 13 long E[N]; 14 15 for (long i = 0; i < N; i++) { 16 __sync_synchronize(); 17 A[i] = B[i] = C[i] = D[i] = E[i] = 42; 18 } 19 20 foo(A, B, C, D, E); 21 22 return A[8]; 23 } 24