; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
; RUN: opt -passes='early-cse<memssa>' -S < %s | FileCheck %s

declare void @use(i1)
declare void @use.ptr(i32, ptr) memory(read)

define void @load_first_noalias_addrspace(ptr %p) {
; CHECK-LABEL: define void @load_first_noalias_addrspace(
; CHECK-SAME: ptr [[P:%.*]]) {
; CHECK-NEXT:    [[V1:%.*]] = load ptr, ptr [[P]], align 8, !nonnull [[META0:![0-9]+]], !noundef [[META0]], !noalias.addrspace [[META1:![0-9]+]]
; CHECK-NEXT:    call void @use.ptr(i32 0, ptr [[V1]])
; CHECK-NEXT:    call void @use.ptr(i32 1, ptr [[V1]])
; CHECK-NEXT:    ret void
;
  %v1 = load ptr, ptr %p, !nonnull !{}, !noundef !{}, !noalias.addrspace !0
  call void @use.ptr(i32 0, ptr %v1)
  %v2 = load ptr, ptr %p
  call void @use.ptr(i32 1, ptr %v2)
  ret void
}

define void @load_both_same_noalias_addrspace(ptr %p) {
; CHECK-LABEL: define void @load_both_same_noalias_addrspace(
; CHECK-SAME: ptr [[P:%.*]]) {
; CHECK-NEXT:    [[V1:%.*]] = load ptr, ptr [[P]], align 8, !nonnull [[META0]], !noundef [[META0]], !noalias.addrspace [[META1]]
; CHECK-NEXT:    call void @use.ptr(i32 0, ptr [[V1]])
; CHECK-NEXT:    call void @use.ptr(i32 1, ptr [[V1]])
; CHECK-NEXT:    ret void
;
  %v1 = load ptr, ptr %p, !nonnull !{}, !noundef !{}, !noalias.addrspace !0
  call void @use.ptr(i32 0, ptr %v1)
  %v2 = load ptr, ptr %p, !noalias.addrspace !0
  call void @use.ptr(i32 1, ptr %v2)
  ret void
}

define void @load_both_disjoint_noalias_addrspace(ptr %p) {
; CHECK-LABEL: define void @load_both_disjoint_noalias_addrspace(
; CHECK-SAME: ptr [[P:%.*]]) {
; CHECK-NEXT:    [[V1:%.*]] = load ptr, ptr [[P]], align 8, !nonnull [[META0]], !noundef [[META0]], !noalias.addrspace [[META1]]
; CHECK-NEXT:    call void @use.ptr(i32 0, ptr [[V1]])
; CHECK-NEXT:    call void @use.ptr(i32 1, ptr [[V1]])
; CHECK-NEXT:    ret void
;
  %v1 = load ptr, ptr %p, !nonnull !{}, !noundef !{}, !noalias.addrspace !0
  call void @use.ptr(i32 0, ptr %v1)
  %v2 = load ptr, ptr %p, !noalias.addrspace !1
  call void @use.ptr(i32 1, ptr %v2)
  ret void
}

define void @load_both_overlap_noalias_addrspace(ptr %p) {
; CHECK-LABEL: define void @load_both_overlap_noalias_addrspace(
; CHECK-SAME: ptr [[P:%.*]]) {
; CHECK-NEXT:    [[V1:%.*]] = load ptr, ptr [[P]], align 8, !nonnull [[META0]], !noundef [[META0]], !noalias.addrspace [[META1]]
; CHECK-NEXT:    call void @use.ptr(i32 0, ptr [[V1]])
; CHECK-NEXT:    call void @use.ptr(i32 1, ptr [[V1]])
; CHECK-NEXT:    ret void
;
  %v1 = load ptr, ptr %p, !nonnull !{}, !noundef !{}, !noalias.addrspace !0
  call void @use.ptr(i32 0, ptr %v1)
  %v2 = load ptr, ptr %p, !noalias.addrspace !2
  call void @use.ptr(i32 1, ptr %v2)
  ret void
}

!0 = !{i32 5, i32 6}
!1 = !{i32 7, i32 8}
!2 = !{i32 5, i32 7}
;.
; CHECK: [[META0]] = !{}
; CHECK: [[META1]] = !{i32 5, i32 6}
;.
