When BasicAA can determine that two pointers have the same base but
[oota-llvm.git] / test / Analysis / BasicAA / cas.ll
1 ; RUN: opt < %s -basicaa -gvn -instcombine -S | grep {ret i32 0}
2
3 @flag0 = internal global i32 zeroinitializer
4 @turn = internal global i32 zeroinitializer
5
6
7 define i32 @main() {
8   %a = load i32* @flag0
9   %b = tail call i32 @llvm.atomic.swap.i32.p0i32(i32* @turn, i32 1)
10   %c = load i32* @flag0
11   %d = sub i32 %a, %c
12   ret i32 %d
13 }
14
15 declare i32 @llvm.atomic.swap.i32.p0i32(i32*, i32) nounwind