xref: /llvm-project/llvm/test/Bitcode/atomic-no-syncscope.ll (revision e45cf479231fc144b4e1eb8b3e3bd2f578b6907d)
1; RUN: llvm-dis -o - %s.bc | FileCheck %s
2
3; Backwards compatibility test: make sure we can process bitcode without
4; synchronization scope names encoded in it.
5
6; CHECK: load atomic i32, ptr %x unordered, align 4
7; CHECK: load atomic volatile i32, ptr %x syncscope("singlethread") acquire, align 4
8; CHECK: store atomic i32 3, ptr %x release, align 4
9; CHECK: store atomic volatile i32 3, ptr %x syncscope("singlethread") monotonic, align 4
10; CHECK: cmpxchg ptr %x, i32 1, i32 0 syncscope("singlethread") monotonic monotonic
11; CHECK: cmpxchg volatile ptr %x, i32 0, i32 1 acq_rel acquire
12; CHECK: cmpxchg ptr %x, i32 42, i32 0 acq_rel monotonic
13; CHECK: cmpxchg weak ptr %x, i32 13, i32 0 seq_cst monotonic
14; CHECK: atomicrmw add ptr %x, i32 10 seq_cst
15; CHECK: atomicrmw volatile xchg  ptr %x, i32 10 monotonic
16; CHECK: fence syncscope("singlethread") release
17; CHECK: fence seq_cst
18