[test] Testing write access to llvm
[oota-llvm.git] / test / Bitcode / terminatorInstructions.3.2.ll
1 ; RUN:  llvm-dis < %s.bc| FileCheck %s
2
3 ; TerminatorOperations.3.2.ll.bc was generated by passing this file to llvm-as-3.2.
4 ; The test checks that LLVM does not misread terminator instructions from
5 ; older bitcode files.
6
7 define i32 @condbr(i1 %cond){
8 entry:
9 ; CHECK: br i1 %cond, label %TrueLabel, label %FalseLabel
10   br i1 %cond, label %TrueLabel, label %FalseLabel
11   
12   TrueLabel:
13   ret i32 1
14   
15   FalseLabel:
16   ret i32 0
17 }
18
19 define i32 @uncondbr(){
20 entry:
21 ; CHECK: br label %uncondLabel
22   br label %uncondLabel
23   
24   uncondLabel:
25   ret i32 1
26 }
27
28 define i32 @indirectbr(i8* %Addr){
29 entry:
30 ; CHECK: indirectbr i8* %Addr, [label %bb1, label %bb2]
31   indirectbr i8* %Addr, [ label %bb1, label %bb2 ]
32   
33   bb1:
34   ret i32 1
35   
36   bb2:
37   ret i32 0
38 }
39
40 define void @unreachable(){
41 entry:
42 ; CHECK: unreachable
43   unreachable
44   
45   ret void
46 }
47
48 define i32 @retInstr(){
49 entry:
50 ; CHECK: ret i32 1 
51   ret i32 1 
52 }
53
54 define void @retInstr2(){
55 entry:
56 ; CHECK: ret void 
57   ret void
58 }
59
60 define i32 @switchInstr(i32 %x){
61 entry:
62 ; CHECK: switch i32 %x, label %label3 [
63   switch i32 %x, label %label3 [
64 ; CHECK-NEXT: i32 1, label %label1   
65   i32 1, label %label1
66 ; CHECK-NEXT: i32 2, label %label2  
67   i32 2, label %label2
68   ]
69 label1:
70   ret i32 1
71 label2:
72   ret i32 2
73 label3:
74   ret i32 0
75 }
76