|  | ; 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 | 
|  | } | 
|  |  |