blob: 6684fe346992d3d42b97deae8bea757e83914e06 [file] [log] [blame]
Eric Christopher0bbe4b12011-07-28 00:11:03 +00001// RUN: %clang_cc1 -triple x86_64-apple-darwin -Os -S -g -o - %s | FileCheck %s
Eli Friedman55a7ba02011-11-01 03:48:36 +00002// REQUIRES: x86-registered-target
Devang Patel070c2152011-07-05 21:48:46 +00003
4int calculate(int);
5static void test_indvars(int *Array1, int Array2[100][200]) {
6 unsigned i, j;
7 Array1[1] = Array2[3][6] = 12345;
8
9 for (i = 0; i < 100; i+=2)
10 Array1[i] = i; /* Step by non unit amount */
11
12 for (i = 3; i < 103; i++)
13 Array1[i] = i+4; /* Step with an offset */
14
15 for (i = 13; i < 100; i++)
16 for (j = 0; j < 100; j+=3) /* 2d array access */
17 Array2[i][j/3] = Array2[i][i];
Eric Christopher0bbe4b12011-07-28 00:11:03 +000018}
Devang Patel070c2152011-07-05 21:48:46 +000019
20
21int main() {
22 int Array[100][200], i, j;
23 double sum = 0.0;
Eric Christopher0bbe4b12011-07-28 00:11:03 +000024
Devang Patel070c2152011-07-05 21:48:46 +000025 for (i=0; i < 100; i+=2)
26 for (j=0; j < 200; j++)
27 Array[i][j] = 0;
28 test_indvars(Array[0], Array);
29
Eli Friedman885011b2011-11-01 04:46:08 +000030//CHECK: .loc 2 31 8
Devang Patel070c2152011-07-05 21:48:46 +000031 for (i=0; i < 100; i+=2)
32 for (j=0; j < 200; j++)
33 sum += Array[i][j];
Eric Christopher0bbe4b12011-07-28 00:11:03 +000034
Devang Patel070c2152011-07-05 21:48:46 +000035 return calculate(sum);
36}