[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / Transforms / GlobalOpt / stored-once-through-gep.ll
blobbb83f38d1046fda32e97e7b5ff84f48ca7804f68
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -passes=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   store i32 1, ptr @g, align 4
18   ret void
21 define i32 @load() {
22 ; CHECK-LABEL: @load(
23 ; CHECK-NEXT:    call fastcc void @store()
24 ; CHECK-NEXT:    ret i32 1
26   call fastcc void @store()
27   %v = load i32, ptr @g
28   ret i32 %v