xref: /llvm-project/llvm/test/CodeGen/X86/atomic-pointer.ll (revision b33aeee3e3766191ba7ffe2f7b60016ba1fddff2)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=i686-none-linux -verify-machineinstrs | FileCheck %s
3
4define ptr @test_atomic_ptr_load(ptr %a0) {
5; CHECK-LABEL: test_atomic_ptr_load:
6; CHECK:       # %bb.0: # %entry
7; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
8; CHECK-NEXT:    movl (%eax), %eax
9; CHECK-NEXT:    retl
10entry:
11  %0 = load atomic ptr, ptr %a0 seq_cst, align 4
12  ret ptr %0
13}
14
15define void @test_atomic_ptr_store(ptr %a0, ptr %a1) {
16; CHECK-LABEL: test_atomic_ptr_store:
17; CHECK:       # %bb.0: # %entry
18; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
19; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %ecx
20; CHECK-NEXT:    xchgl %ecx, (%eax)
21; CHECK-NEXT:    retl
22entry:
23store atomic ptr %a0, ptr %a1 seq_cst, align 4
24  ret void
25}
26