; RUN: opt -passes=licm -verify-memoryssa -S < %s | FileCheck %s
; REQUIRES: asserts

target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64"

; CHECK-LABEL: @e()
define void @e() {
entry:
  br label %g

g:                                                ; preds = %cleanup, %entry
  %0 = load i32, ptr null, align 4
  %and = and i32 %0, undef
  store i32 %and, ptr null, align 4
  br i1 undef, label %if.end8, label %if.then

if.then:                                          ; preds = %g
  br i1 undef, label %k, label %cleanup

k:                                                ; preds = %if.end8, %if.then
  br i1 undef, label %if.end8, label %cleanup

if.end8:                                          ; preds = %k, %g
  br i1 undef, label %for.cond.preheader, label %k

for.cond.preheader:                               ; preds = %if.end8
  unreachable

cleanup:                                          ; preds = %k, %if.then
  br label %g
}

