Chris Lattner | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 1 | implementation |
| 2 | |
| 3 | void "test function"(int %i0, int %j0) |
Chris Lattner | fe5e584 | 2001-10-03 01:48:04 +0000 | [diff] [blame^] | 4 | %x = const int 1 |
Chris Lattner | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 5 | begin |
| 6 | Startup: ; Basic block #0 |
| 7 | %i1 = add int %i0, 1 |
| 8 | %j1 = add int %j0, 1 |
| 9 | %x = setle int %i1, %j1 |
| 10 | br bool %x, label %Increment, label %Decrement |
| 11 | |
| 12 | Merge: ; Basic block #3 |
Chris Lattner | a6b1f53 | 2001-06-11 15:05:02 +0000 | [diff] [blame] | 13 | %i4 = phi int [%i2, %Increment], [%i3,%Decrement] ; Forward ref vars... |
Chris Lattner | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 14 | %j2 = add int %j1, %i4 |
| 15 | ret void |
| 16 | |
| 17 | Increment: ; Basic block #1 |
| 18 | %i2 = add int %i1, 1 |
| 19 | br label %Merge |
| 20 | |
| 21 | Decrement: ; Basic block #2 |
| 22 | %i3 = sub int %i1, %x |
| 23 | br label %Merge |
| 24 | end |
| 25 | |
| 26 | |
| 27 | ; Test "stripped" format where nothing is symbolic... this is how the bytecode |
| 28 | ; format looks anyways (except for negative vs positive offsets)... |
| 29 | ; |
| 30 | void "void"(int, int) ; Def %0, %1 |
Chris Lattner | fe5e584 | 2001-10-03 01:48:04 +0000 | [diff] [blame^] | 31 | const int 0 ; Def 2 |
| 32 | const int -4 ; Def 3 |
Chris Lattner | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 33 | begin |
| 34 | add int %0, %1 ; Def 4 |
| 35 | sub int %4, %3 ; Def 5 |
| 36 | setle int %5, %2 ; Def 0 - bool plane |
| 37 | br bool %0, label %1, label %0 |
| 38 | |
| 39 | add int %0, %1 ; Def 6 |
| 40 | sub int %4, %3 ; Def 7 |
| 41 | setle int %7, %2 ; Def 1 - bool plane |
| 42 | ret void |
| 43 | end |
| 44 | |
| 45 | ; This function always returns zero |
| 46 | int "zarro"() |
Chris Lattner | fe5e584 | 2001-10-03 01:48:04 +0000 | [diff] [blame^] | 47 | const uint 4000000000 ; Def 0 - uint plane |
| 48 | const int 0 ; Def 0 - int plane |
Chris Lattner | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 49 | begin |
| 50 | Startup: |
| 51 | ret int %0 |
| 52 | end |
| 53 | |