xref: /aosp_15_r20/external/llvm/test/Analysis/BasicAA/cas.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker@flag0 = internal global i32 zeroinitializer
4*9880d681SAndroid Build Coastguard Worker@turn = internal global i32 zeroinitializer
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; CHECK: ret i32 0
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine i32 @main() {
9*9880d681SAndroid Build Coastguard Worker  %a = load i32, i32* @flag0
10*9880d681SAndroid Build Coastguard Worker  %b = atomicrmw xchg i32* @turn, i32 1 monotonic
11*9880d681SAndroid Build Coastguard Worker  %c = load i32, i32* @flag0
12*9880d681SAndroid Build Coastguard Worker  %d = sub i32 %a, %c
13*9880d681SAndroid Build Coastguard Worker  ret i32 %d
14*9880d681SAndroid Build Coastguard Worker}
15