; RUN: opt -passes='loop-mssa(simple-loop-unswitch<nontrivial>),verify<loops>' -verify-dom-info -verify-memoryssa -S %s | FileCheck %s
; RUN: opt -passes='loop-mssa(simple-loop-unswitch<nontrivial>),verify<loops>' -memssa-check-limit=3 -verify-dom-info -verify-memoryssa -S %s | FileCheck %s

declare void @clobber()

; Check that MemorySSA updating can deal with a clobbering access of a
; duplicated load being a MemoryPHI outside the loop.
define void @partial_unswitch_memssa_update(ptr noalias %ptr, i1 %c) {
; CHECK-LABEL: @partial_unswitch_memssa_update(
; CHECK-LABEL: loop.ph:
; CHECK-NEXT:    [[LV:%[a-z0-9]+]] = load i32, ptr %ptr, align 4
; CHECK-NEXT:    [[C:%[a-z0-9]+]] = icmp eq i32 [[LV]], 0
; CHECK-NEXT:    br i1 [[C]]
entry:
  br i1 %c, label %loop.ph, label %outside.clobber

outside.clobber:
  call void @clobber()
  br label %loop.ph

loop.ph:
  br label %loop.header

loop.header:
  %lv = load i32, ptr %ptr, align 4
  %hc = icmp eq i32 %lv, 0
  br i1 %hc, label %if, label %then

if:
  br label %loop.latch

then:
  br label %loop.latch

loop.latch:
  br i1 true, label %loop.header, label %exit

exit:
  ret void
}

; Check that MemorySSA updating can deal with skipping defining accesses in the
; loop body until it finds the first defining access outside the loop.
define void @partial_unswitch_inloop_stores_beteween_outside_defining_access(ptr noalias %ptr, ptr noalias %src) {
; CHECK-LABEL: @partial_unswitch_inloop_stores_beteween_outside_defining_access
; CHECK-LABEL: entry:
; CHECK-NEXT:    store i64 0, ptr %ptr, align 1
; CHECK-NEXT:    store i64 1, ptr %ptr, align 1
; CHECK-NEXT:    [[LV:%[a-z0-9]+]] = load i16, ptr %src, align 1
; CHECK-NEXT:    [[C:%[a-z0-9]+]] = icmp eq i16 [[LV]], 0
; CHECK-NEXT:    br i1 [[C]]
;
entry:
  store i64 0, ptr %ptr, align 1
  store i64 1, ptr %ptr, align 1
  br label %loop

loop:
  %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop.latch ]
  store i64 2, ptr %ptr, align 1
  %lv = load i16, ptr %src, align 1
  %invar.cond = icmp eq i16 %lv, 0
  br i1 %invar.cond, label %noclobber, label %loop.latch

noclobber:
  br label %loop.latch

loop.latch:
  %iv.next = add i32 %iv, 1
  %ec = icmp eq i32 %iv, 1000
  br i1 %ec, label %exit, label %loop

exit:
  ret void
}

