32 lines
		
	
	
		
			781 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			781 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc -march=x86-64 < %s | FileCheck %s
 | |
| @sc8 = external global i8
 | |
| 
 | |
| define void @atomic_maxmin_i8() {
 | |
| ; CHECK: atomic_maxmin_i8
 | |
|   %1 = atomicrmw max  i8* @sc8, i8 5 acquire
 | |
| ; CHECK: [[LABEL1:\.?LBB[0-9]+_[0-9]+]]:
 | |
| ; CHECK: cmpb
 | |
| ; CHECK: jg
 | |
| ; CHECK: lock cmpxchgb
 | |
| ; CHECK: jne [[LABEL1]]
 | |
|   %2 = atomicrmw min  i8* @sc8, i8 6 acquire
 | |
| ; CHECK: [[LABEL3:\.?LBB[0-9]+_[0-9]+]]:
 | |
| ; CHECK: cmpb
 | |
| ; CHECK: jl
 | |
| ; CHECK: lock cmpxchgb
 | |
| ; CHECK: jne [[LABEL3]]
 | |
|   %3 = atomicrmw umax i8* @sc8, i8 7 acquire
 | |
| ; CHECK: [[LABEL5:\.?LBB[0-9]+_[0-9]+]]:
 | |
| ; CHECK: cmpb
 | |
| ; CHECK: ja
 | |
| ; CHECK: lock cmpxchgb
 | |
| ; CHECK: jne [[LABEL5]]
 | |
|   %4 = atomicrmw umin i8* @sc8, i8 8 acquire
 | |
| ; CHECK: [[LABEL7:\.?LBB[0-9]+_[0-9]+]]:
 | |
| ; CHECK: cmpb
 | |
| ; CHECK: jb
 | |
| ; CHECK: lock cmpxchgb
 | |
| ; CHECK: jne [[LABEL7]]
 | |
|   ret void
 | |
| }
 |