
Always read bitcode according to the -opaque-pointers mode. Do not perform auto-detection to implicitly switch to typed pointers. This is a step towards removing typed pointer support, and also eliminates the class of problems where linking may fail if a typed pointer module is loaded before an opaque pointer module. (The latest place where this was encountered is D139924, but this has previously been fixed in other places doing bitcode linking as well.) Differential Revision: https://reviews.llvm.org/D139940
18 lines
885 B
LLVM
18 lines
885 B
LLVM
; RUN: llvm-dis -o - %s.bc | FileCheck %s
|
|
|
|
; Backwards compatibility test: make sure we can process bitcode without
|
|
; synchronization scope names encoded in it.
|
|
|
|
; CHECK: load atomic i32, ptr %x unordered, align 4
|
|
; CHECK: load atomic volatile i32, ptr %x syncscope("singlethread") acquire, align 4
|
|
; CHECK: store atomic i32 3, ptr %x release, align 4
|
|
; CHECK: store atomic volatile i32 3, ptr %x syncscope("singlethread") monotonic, align 4
|
|
; CHECK: cmpxchg ptr %x, i32 1, i32 0 syncscope("singlethread") monotonic monotonic
|
|
; CHECK: cmpxchg volatile ptr %x, i32 0, i32 1 acq_rel acquire
|
|
; CHECK: cmpxchg ptr %x, i32 42, i32 0 acq_rel monotonic
|
|
; CHECK: cmpxchg weak ptr %x, i32 13, i32 0 seq_cst monotonic
|
|
; CHECK: atomicrmw add ptr %x, i32 10 seq_cst
|
|
; CHECK: atomicrmw volatile xchg ptr %x, i32 10 monotonic
|
|
; CHECK: fence syncscope("singlethread") release
|
|
; CHECK: fence seq_cst
|