blob: ac429fa7e0d42d350c1dd9ed773da7724b25d689 [file] [log] [blame]
Chris Lattner00950542001-06-06 20:29:01 +00001implementation
2
3void "test function"(int %i0, int %j0)
Chris Lattnerfe5e5842001-10-03 01:48:04 +00004 %x = const int 1
Chris Lattner00950542001-06-06 20:29:01 +00005begin
6Startup: ; 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
12Merge: ; Basic block #3
Chris Lattnera6b1f532001-06-11 15:05:02 +000013 %i4 = phi int [%i2, %Increment], [%i3,%Decrement] ; Forward ref vars...
Chris Lattner00950542001-06-06 20:29:01 +000014 %j2 = add int %j1, %i4
15 ret void
16
17Increment: ; Basic block #1
18 %i2 = add int %i1, 1
19 br label %Merge
20
21Decrement: ; Basic block #2
22 %i3 = sub int %i1, %x
23 br label %Merge
24end
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;
30void "void"(int, int) ; Def %0, %1
Chris Lattnerfe5e5842001-10-03 01:48:04 +000031 const int 0 ; Def 2
32 const int -4 ; Def 3
Chris Lattner00950542001-06-06 20:29:01 +000033begin
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
43end
44
45; This function always returns zero
46int "zarro"()
Chris Lattnerfe5e5842001-10-03 01:48:04 +000047 const uint 4000000000 ; Def 0 - uint plane
48 const int 0 ; Def 0 - int plane
Chris Lattner00950542001-06-06 20:29:01 +000049begin
50Startup:
51 ret int %0
52end
53