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