; 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
}
