; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -S -globalopt < %s | FileCheck %s ; The global is stored once through a trivial GEP instruction (rather than ; GEP constant expression) here. We should still be able to optimize it. %s = type { i32 } @g = internal unnamed_addr global i32 undef ; CHECK-NOT: @g = define void @store() { ; CHECK-LABEL: @store( ; CHECK-NEXT: ret void ; %addr = getelementptr inbounds %s, %s* bitcast (i32* @g to %s*), i64 0, i32 0 store i32 1, i32* %addr, align 4 ret void } define i32 @load() { ; CHECK-LABEL: @load( ; CHECK-NEXT: call fastcc void @store() ; CHECK-NEXT: ret i32 1 ; call fastcc void @store() %v = load i32, i32* @g ret i32 %v }