; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -passes=simplifycfg %s | FileCheck %s

define void @call_null_as0() {
; CHECK-LABEL: @call_null_as0(
; CHECK-NEXT:    unreachable
;
  call addrspace(0) void null()
  ret void
}

define void @call_null_as0_null_pointer_defined() null_pointer_is_valid {
; CHECK-LABEL: @call_null_as0_null_pointer_defined(
; CHECK-NEXT:    call void null()
; CHECK-NEXT:    ret void
;
  call addrspace(0) void null()
  ret void
}

define void @call_null_as1() {
; CHECK-LABEL: @call_null_as1(
; CHECK-NEXT:    call addrspace(1) void null()
; CHECK-NEXT:    ret void
;
  call addrspace(1) void null()
  ret void
}

define void @call_poison_as0() {
; CHECK-LABEL: @call_poison_as0(
; CHECK-NEXT:    unreachable
;
  call addrspace(0) void poison()
  ret void
}

define void @call_poison_as0_poison_pointer_defined() null_pointer_is_valid {
; CHECK-LABEL: @call_poison_as0_poison_pointer_defined(
; CHECK-NEXT:    unreachable
;
  call addrspace(0) void poison()
  ret void
}

define void @call_poison_as1() {
; CHECK-LABEL: @call_poison_as1(
; CHECK-NEXT:    unreachable
;
  call addrspace(1) void poison()
  ret void
}
