22 lines
		
	
	
		
			645 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			645 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llc < %s -O0 -mtriple=armv4t--linux-eabi-android
 | 
						|
; RUN: llc < %s -O0 -mtriple=armv4t-unknown-linux
 | 
						|
; RUN: llc < %s -O0 -mtriple=armv5-unknown-linux
 | 
						|
 | 
						|
; See http://llvm.org/bugs/show_bug.cgi?id=16178
 | 
						|
; ARMFastISel used to fail emitting sext/zext in pre-ARMv6.
 | 
						|
 | 
						|
; Function Attrs: nounwind
 | 
						|
define arm_aapcscc void @f2(i8 signext %a) #0 {
 | 
						|
entry:
 | 
						|
  %a.addr = alloca i8, align 1
 | 
						|
  store i8 %a, i8* %a.addr, align 1
 | 
						|
  %0 = load i8, i8* %a.addr, align 1
 | 
						|
  %conv = sext i8 %0 to i32
 | 
						|
  %shr = ashr i32 %conv, 56
 | 
						|
  %conv1 = trunc i32 %shr to i8
 | 
						|
  call arm_aapcscc void @f1(i8 signext %conv1)
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
declare arm_aapcscc void @f1(i8 signext) #1
 |