forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			19 lines
		
	
	
		
			495 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			495 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llc < %s -mtriple=armv7-apple-darwin -verify-machineinstrs   | FileCheck %s -check-prefix=ARM
 | 
						|
; RUN: llc < %s -mtriple=thumbv7-apple-darwin -verify-machineinstrs | FileCheck %s -check-prefix=T2
 | 
						|
; rdar://8964854
 | 
						|
 | 
						|
define i8 @t(i8* %a, i8 %b, i8 %c) nounwind {
 | 
						|
; ARM-LABEL: t:
 | 
						|
; ARM: ldrexb
 | 
						|
; ARM: strexb
 | 
						|
; ARM: clrex
 | 
						|
 | 
						|
; T2-LABEL: t:
 | 
						|
; T2: strexb
 | 
						|
; T2: ldrexb
 | 
						|
; T2: clrex
 | 
						|
  %tmp0 = cmpxchg i8* %a, i8 %b, i8 %c monotonic monotonic
 | 
						|
  %tmp1 = extractvalue { i8, i1 } %tmp0, 0
 | 
						|
  ret i8 %tmp1
 | 
						|
}
 |