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 7define i32 @condbr(i1 %cond){ 8entry: 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 19define i32 @uncondbr(){ 20entry: 21; CHECK: br label %uncondLabel 22 br label %uncondLabel 23 24 uncondLabel: 25 ret i32 1 26} 27 28define i32 @indirectbr(i8* %Addr){ 29entry: 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 40define void @unreachable(){ 41entry: 42; CHECK: unreachable 43 unreachable 44 45 ret void 46} 47 48define i32 @retInstr(){ 49entry: 50; CHECK: ret i32 1 51 ret i32 1 52} 53 54define void @retInstr2(){ 55entry: 56; CHECK: ret void 57 ret void 58} 59 60define i32 @switchInstr(i32 %x){ 61entry: 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 ] 69label1: 70 ret i32 1 71label2: 72 ret i32 2 73label3: 74 ret i32 0 75} 76 77