xref: /llvm-project/llvm/test/CodeGen/M68k/CodeModel/Large/Atomics/fence.ll (revision 4cce10743d2275710d3d2e0de8013386a9799092)
1*4cce1074Sknickish; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2*4cce1074Sknickish; RUN: llc -mtriple=m68k-linux-gnu --code-model=large < %s | FileCheck %s
3*4cce1074Sknickish; RUN: llc -mtriple=m68k-linux-gnu --code-model=large --relocation-model=pic < %s | FileCheck %s --check-prefix=PIC
4*4cce1074Sknickish
5*4cce1074Sknickish; M68k's libgcc does NOT have __sync_synchronize so we shouldn't
6*4cce1074Sknickish; lower to that.
7*4cce1074Sknickish
8*4cce1074Sknickishdefine void @atomic_fence() {
9*4cce1074Sknickish; CHECK-LABEL: atomic_fence:
10*4cce1074Sknickish; CHECK:         .cfi_startproc
11*4cce1074Sknickish; CHECK-NEXT:  ; %bb.0: ; %entry
12*4cce1074Sknickish; CHECK-NEXT:    ;APP
13*4cce1074Sknickish; CHECK-NEXT:    ;NO_APP
14*4cce1074Sknickish; CHECK-NEXT:    ;APP
15*4cce1074Sknickish; CHECK-NEXT:    ;NO_APP
16*4cce1074Sknickish; CHECK-NEXT:    ;APP
17*4cce1074Sknickish; CHECK-NEXT:    ;NO_APP
18*4cce1074Sknickish; CHECK-NEXT:    ;APP
19*4cce1074Sknickish; CHECK-NEXT:    ;NO_APP
20*4cce1074Sknickish; CHECK-NEXT:    rts
21*4cce1074Sknickish;
22*4cce1074Sknickish; PIC-LABEL: atomic_fence:
23*4cce1074Sknickish; PIC:         .cfi_startproc
24*4cce1074Sknickish; PIC-NEXT:  ; %bb.0: ; %entry
25*4cce1074Sknickish; PIC-NEXT:    ;APP
26*4cce1074Sknickish; PIC-NEXT:    ;NO_APP
27*4cce1074Sknickish; PIC-NEXT:    ;APP
28*4cce1074Sknickish; PIC-NEXT:    ;NO_APP
29*4cce1074Sknickish; PIC-NEXT:    ;APP
30*4cce1074Sknickish; PIC-NEXT:    ;NO_APP
31*4cce1074Sknickish; PIC-NEXT:    ;APP
32*4cce1074Sknickish; PIC-NEXT:    ;NO_APP
33*4cce1074Sknickish; PIC-NEXT:    rts
34*4cce1074Sknickishentry:
35*4cce1074Sknickish  fence acquire
36*4cce1074Sknickish  fence release
37*4cce1074Sknickish  fence acq_rel
38*4cce1074Sknickish  fence seq_cst
39*4cce1074Sknickish  ret void
40*4cce1074Sknickish}
41*4cce1074Sknickish
42