|  | ; RUN:  llvm-dis < %s.bc| FileCheck %s | 
|  |  | 
|  | ; TerminatorOperations.3.2.ll.bc was generated by passing this file to llvm-as-3.2. | 
|  | ; The test checks that LLVM does not misread terminator instructions from | 
|  | ; older bitcode files. | 
|  |  | 
|  | define i32 @condbr(i1 %cond){ | 
|  | entry: | 
|  | ; CHECK: br i1 %cond, label %TrueLabel, label %FalseLabel | 
|  | br i1 %cond, label %TrueLabel, label %FalseLabel | 
|  |  | 
|  | TrueLabel: | 
|  | ret i32 1 | 
|  |  | 
|  | FalseLabel: | 
|  | ret i32 0 | 
|  | } | 
|  |  | 
|  | define i32 @uncondbr(){ | 
|  | entry: | 
|  | ; CHECK: br label %uncondLabel | 
|  | br label %uncondLabel | 
|  |  | 
|  | uncondLabel: | 
|  | ret i32 1 | 
|  | } | 
|  |  | 
|  | define i32 @indirectbr(i8* %Addr){ | 
|  | entry: | 
|  | ; CHECK: indirectbr i8* %Addr, [label %bb1, label %bb2] | 
|  | indirectbr i8* %Addr, [ label %bb1, label %bb2 ] | 
|  |  | 
|  | bb1: | 
|  | ret i32 1 | 
|  |  | 
|  | bb2: | 
|  | ret i32 0 | 
|  | } | 
|  |  | 
|  | define void @unreachable(){ | 
|  | entry: | 
|  | ; CHECK: unreachable | 
|  | unreachable | 
|  |  | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define i32 @retInstr(){ | 
|  | entry: | 
|  | ; CHECK: ret i32 1 | 
|  | ret i32 1 | 
|  | } | 
|  |  | 
|  | define void @retInstr2(){ | 
|  | entry: | 
|  | ; CHECK: ret void | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define i32 @switchInstr(i32 %x){ | 
|  | entry: | 
|  | ; CHECK: switch i32 %x, label %label3 [ | 
|  | switch i32 %x, label %label3 [ | 
|  | ; CHECK-NEXT: i32 1, label %label1 | 
|  | i32 1, label %label1 | 
|  | ; CHECK-NEXT: i32 2, label %label2 | 
|  | i32 2, label %label2 | 
|  | ] | 
|  | label1: | 
|  | ret i32 1 | 
|  | label2: | 
|  | ret i32 2 | 
|  | label3: | 
|  | ret i32 0 | 
|  | } | 
|  |  |