[sanitizer] Improve FreeBSD ASLR detection
[llvm-project.git] / llvm / test / Transforms / GlobalOpt / stored-once-through-gep.ll
blobdae4435f445be3f2f0f30db0f6f520f466c2d10e
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -globalopt < %s | FileCheck %s
4 ; The global is stored once through a trivial GEP instruction (rather than
5 ; GEP constant expression) here. We should still be able to optimize it.
7 %s = type { i32 }
9 @g = internal unnamed_addr global i32 undef
11 ; CHECK-NOT: @g =
13 define void @store() {
14 ; CHECK-LABEL: @store(
15 ; CHECK-NEXT:    ret void
17   %addr = getelementptr inbounds %s, %s* bitcast (i32* @g to %s*), i64 0, i32 0
18   store i32 1, i32* %addr, align 4
19   ret void
22 define i32 @load() {
23 ; CHECK-LABEL: @load(
24 ; CHECK-NEXT:    call fastcc void @store()
25 ; CHECK-NEXT:    ret i32 1
27   call fastcc void @store()
28   %v = load i32, i32* @g
29   ret i32 %v