30 lines
		
	
	
		
			788 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			788 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu -verify-machineinstrs | FileCheck %s
 | |
| ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -verify-machineinstrs | FileCheck %s
 | |
| ; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu -mcpu=440 | FileCheck %s --check-prefix=PPC440
 | |
| ; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu -mcpu=e500 | FileCheck %s --check-prefix=PPC440
 | |
| 
 | |
| ; Fences
 | |
| define void @fence_acquire() {
 | |
| ; CHECK-LABEL: fence_acquire
 | |
| ; CHECK: lwsync
 | |
| ; PPC440-NOT: lwsync
 | |
| ; PPC440: msync
 | |
|   fence acquire
 | |
|   ret void
 | |
| }
 | |
| define void @fence_release() {
 | |
| ; CHECK-LABEL: fence_release
 | |
| ; CHECK: lwsync
 | |
| ; PPC440-NOT: lwsync
 | |
| ; PPC440: msync
 | |
|   fence release
 | |
|   ret void
 | |
| }
 | |
| define void @fence_seq_cst() {
 | |
| ; CHECK-LABEL: fence_seq_cst
 | |
| ; CHECK: sync
 | |
| ; PPC440: msync
 | |
|   fence seq_cst
 | |
|   ret void
 | |
| }
 |