forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
; 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
 | 
						|
}
 | 
						|
 |