xref: /aosp_15_r20/external/llvm/test/Transforms/GlobalOpt/atomic.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -globalopt < %s -S -o - | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker@GV1 = internal global i64 1
4*9880d681SAndroid Build Coastguard Worker@GV2 = internal global i32 0
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; CHECK: @GV1 = internal unnamed_addr constant i64 1
7*9880d681SAndroid Build Coastguard Worker; CHECK: @GV2 = internal unnamed_addr global i32 0
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerdefine void @test1() {
10*9880d681SAndroid Build Coastguard Workerentry:
11*9880d681SAndroid Build Coastguard Worker  %0 = load atomic i8, i8* bitcast (i64* @GV1 to i8*) acquire, align 8
12*9880d681SAndroid Build Coastguard Worker  ret void
13*9880d681SAndroid Build Coastguard Worker}
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker; PR17163
16*9880d681SAndroid Build Coastguard Workerdefine void @test2a() {
17*9880d681SAndroid Build Coastguard Workerentry:
18*9880d681SAndroid Build Coastguard Worker  store atomic i32 10, i32* @GV2 seq_cst, align 4
19*9880d681SAndroid Build Coastguard Worker  ret void
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Workerdefine i32 @test2b() {
22*9880d681SAndroid Build Coastguard Workerentry:
23*9880d681SAndroid Build Coastguard Worker  %atomic-load = load atomic i32, i32* @GV2 seq_cst, align 4
24*9880d681SAndroid Build Coastguard Worker  ret i32 %atomic-load
25*9880d681SAndroid Build Coastguard Worker}
26