; RUN: opt -basicaa -dse -S < %s | FileCheck %s

%t = type { i32 }

@g = global i32 42

define void @test1(%t* noalias %pp) {
  %p = getelementptr inbounds %t* %pp, i32 0, i32 0

  store i32 1, i32* %p; <-- This is dead
  %x = load i32* inttoptr (i32 12345 to i32*)
  store i32 %x, i32* %p
  ret void
; CHECK: define void @test1
; CHECK: store
; CHECK-NOT: store
; CHECK: ret void
}

define void @test3() {
  store i32 1, i32* @g; <-- This is dead.
  store i32 42, i32* @g
  ret void
; CHECK: define void @test3
; CHECK: store
; CHECK-NOT: store
; CHECK: ret void
}

define void @test4(i32* %p) {
  store i32 1, i32* %p
  %x = load i32* @g; <-- %p and @g could alias
  store i32 %x, i32* %p
  ret void
; CHECK: define void @test4
; CHECK: store
; CHECK: store
; CHECK: ret void
}
