Eric Christopher | 0bbe4b1 | 2011-07-28 00:11:03 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin -Os -S -g -o - %s | FileCheck %s |
Eli Friedman | 55a7ba0 | 2011-11-01 03:48:36 +0000 | [diff] [blame] | 2 | // REQUIRES: x86-registered-target |
Devang Patel | 070c215 | 2011-07-05 21:48:46 +0000 | [diff] [blame] | 3 | |
| 4 | int calculate(int); |
| 5 | static 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 Christopher | 0bbe4b1 | 2011-07-28 00:11:03 +0000 | [diff] [blame] | 18 | } |
Devang Patel | 070c215 | 2011-07-05 21:48:46 +0000 | [diff] [blame] | 19 | |
| 20 | |
| 21 | int main() { |
| 22 | int Array[100][200], i, j; |
| 23 | double sum = 0.0; |
Eric Christopher | 0bbe4b1 | 2011-07-28 00:11:03 +0000 | [diff] [blame] | 24 | |
Devang Patel | 070c215 | 2011-07-05 21:48:46 +0000 | [diff] [blame] | 25 | 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 Friedman | 885011b | 2011-11-01 04:46:08 +0000 | [diff] [blame] | 30 | //CHECK: .loc 2 31 8 |
Devang Patel | 070c215 | 2011-07-05 21:48:46 +0000 | [diff] [blame] | 31 | for (i=0; i < 100; i+=2) |
| 32 | for (j=0; j < 200; j++) |
| 33 | sum += Array[i][j]; |
Eric Christopher | 0bbe4b1 | 2011-07-28 00:11:03 +0000 | [diff] [blame] | 34 | |
Devang Patel | 070c215 | 2011-07-05 21:48:46 +0000 | [diff] [blame] | 35 | return calculate(sum); |
| 36 | } |