; 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 }