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