; RUN: opt -tbaa -gvn -S < %s | FileCheck %s

%struct.t = type { i32* }

; The loaded address and the location of the address itself are not aliased,
; so the second reload is not necessary. Check that it can be eliminated.
; CHECK-LABEL: test1
; CHECK: load
; CHECK-NOT: load
define void @test1(%struct.t* nocapture readonly %p, i32 %v) #0 {
entry:
  %m = getelementptr inbounds %struct.t, %struct.t* %p, i32 0, i32 0
  %0 = load i32*, i32** %m, align 4, !tbaa !1
  store volatile i32 %v, i32* %0, align 4, !tbaa !6
  %1 = load i32*, i32** %m, align 4, !tbaa !1
  store volatile i32 %v, i32* %1, align 4, !tbaa !6
  ret void
}

; The store via the loaded address may overwrite the address itself.
; Make sure that both loads remain.
; CHECK-LABEL: test2
; CHECK: load
; CHECK: store
; CHECK: load
define void @test2(%struct.t* nocapture readonly %p, i32 %v) #0 {
entry:
  %m = getelementptr inbounds %struct.t, %struct.t* %p, i32 0, i32 0
  %0 = load i32*, i32** %m, align 4, !tbaa !1
  store volatile i32 %v, i32* %0, align 4, !tbaa !1
  %1 = load i32*, i32** %m, align 4, !tbaa !1
  store volatile i32 %v, i32* %1, align 4, !tbaa !1
  ret void
}

; The loads are ordered and non-monotonic. Although they are not aliased to
; the stores, make sure both are preserved.
; CHECK-LABEL: test3
; CHECK: load
; CHECK: store
; CHECK: load
define void @test3(%struct.t* nocapture readonly %p, i32 %v) #0 {
entry:
  %m = getelementptr inbounds %struct.t, %struct.t* %p, i32 0, i32 0
  %0 = load atomic i32*, i32** %m acquire, align 4, !tbaa !1
  store volatile i32 %v, i32* %0, align 4, !tbaa !6
  %1 = load atomic i32*, i32** %m acquire, align 4, !tbaa !1
  store volatile i32 %v, i32* %1, align 4, !tbaa !6
  ret void
}

attributes #0 = { norecurse nounwind }

!1 = !{!2, !3, i64 0}
!2 = !{!"", !3, i64 0}
!3 = !{!"any pointer", !4, i64 0}
!4 = !{!"omnipotent char", !5, i64 0}
!5 = !{!"Simple C/C++ TBAA"}
!6 = !{!7, !7, i64 0}
!7 = !{!"int", !4, i64 0}

