xref: /llvm-project/llvm/test/CodeGen/LoongArch/ir-instruction/fence.ll (revision 9d4f7f44b64d87d1068859906f43b7ce03a7388b)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc --mtriple=loongarch32 -mattr=+d < %s | FileCheck %s --check-prefix=LA32
3; RUN: llc --mtriple=loongarch64 -mattr=+d < %s | FileCheck %s --check-prefix=LA64
4
5define void @fence_acquire() nounwind {
6; LA32-LABEL: fence_acquire:
7; LA32:       # %bb.0:
8; LA32-NEXT:    dbar 20
9; LA32-NEXT:    ret
10;
11; LA64-LABEL: fence_acquire:
12; LA64:       # %bb.0:
13; LA64-NEXT:    dbar 20
14; LA64-NEXT:    ret
15  fence acquire
16  ret void
17}
18
19define void @fence_release() nounwind {
20; LA32-LABEL: fence_release:
21; LA32:       # %bb.0:
22; LA32-NEXT:    dbar 18
23; LA32-NEXT:    ret
24;
25; LA64-LABEL: fence_release:
26; LA64:       # %bb.0:
27; LA64-NEXT:    dbar 18
28; LA64-NEXT:    ret
29  fence release
30  ret void
31}
32
33define void @fence_acq_rel() nounwind {
34; LA32-LABEL: fence_acq_rel:
35; LA32:       # %bb.0:
36; LA32-NEXT:    dbar 16
37; LA32-NEXT:    ret
38;
39; LA64-LABEL: fence_acq_rel:
40; LA64:       # %bb.0:
41; LA64-NEXT:    dbar 16
42; LA64-NEXT:    ret
43  fence acq_rel
44  ret void
45}
46
47define void @fence_seq_cst() nounwind {
48; LA32-LABEL: fence_seq_cst:
49; LA32:       # %bb.0:
50; LA32-NEXT:    dbar 16
51; LA32-NEXT:    ret
52;
53; LA64-LABEL: fence_seq_cst:
54; LA64:       # %bb.0:
55; LA64-NEXT:    dbar 16
56; LA64-NEXT:    ret
57  fence seq_cst
58  ret void
59}
60