llvm-6502/test/CodeGen/X86/atomic-pointer.ll
Eli Friedman fd45fa1503 Make atomic load and store of pointers work. Tighten verification of atomic operations
so other unexpected operations don't slip through.  Based on patch by Logan Chien.
PR11786/PR13186.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162146 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-17 23:24:29 +00:00

23 lines
454 B
LLVM

; RUN: llc < %s -mtriple=i686-none-linux | FileCheck %s
define i32* @test_atomic_ptr_load(i32** %a0) {
; CHECK: test_atomic_ptr_load
; CHECK: movl
; CHECK: movl
; CHECK: ret
0:
%0 = load atomic i32** %a0 seq_cst, align 4
ret i32* %0
}
define void @test_atomic_ptr_store(i32* %a0, i32** %a1) {
; CHECK: test_atomic_ptr_store
; CHECK: movl
; CHECK: movl
; CHECK: xchgl
; CHECK: ret
0:
store atomic i32* %a0, i32** %a1 seq_cst, align 4
ret void
}