Chris Lattner | f7d11a9 | 2001-06-20 23:05:53 +0000 | [diff] [blame] | 1 | implementation |
| 2 | |
| 3 | ;; This is a simple nested loop to test interval construction |
| 4 | |
| 5 | int "loop test"(int %i, int %j) |
| 6 | begin |
| 7 | Start: |
| 8 | %j1 = add int 0, 0 |
| 9 | br label %L1Header |
| 10 | |
| 11 | L1Header: |
| 12 | %j2 = phi int [%j1, %Start], [%j3, %L2Done] |
| 13 | |
| 14 | %i1 = add int 0, 0 ; %i1 = 0 |
| 15 | br label %L2Body |
| 16 | L2Body: |
Chris Lattner | 4ea5513 | 2001-06-24 04:06:23 +0000 | [diff] [blame] | 17 | %wl = phi int [%j, %L1Header], [%wl, %L2Body] ;; Useless PHI |
Chris Lattner | f7d11a9 | 2001-06-20 23:05:53 +0000 | [diff] [blame] | 18 | %i2 = phi int [%i1, %L1Header], [%i3, %L2Body] |
| 19 | %i3 = add int %i2, 1 |
| 20 | %L2Done = seteq int %i3, 10 |
| 21 | br bool %L2Done, label %L2Done, label %L2Body |
| 22 | L2Done: |
| 23 | %j3 = add int %j2, %i3 |
| 24 | %L1Done = seteq int %j3, 100 |
| 25 | br bool %L1Done, label %L1Done, label %L1Header |
| 26 | |
| 27 | L1Done: |
| 28 | ret int %j3 |
| 29 | end |
| 30 | |