Updates to support
[oota-llvm.git] / test / Feature / basictest.ll
1 implementation
2
3 void "test function"(int %i0, int %j0)
4         %x = int 1
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
13         %i4 = phi int [%i2, %Increment], [%i3,%Decrement] ; Forward ref vars...
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
31         int 0          ; Def 2
32         int -4         ; Def 3
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"()
47         uint 4000000000        ; Def 0 - uint plane
48         int 0                  ; Def 0 - int plane
49 begin
50 Startup:
51         ret int %0
52 end
53