| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py | 
 | ; RUN: opt -passes=dse -S < %s | FileCheck %s | 
 |  | 
 | @global = external constant i8 | 
 |  | 
 | define void @f() { | 
 | ; CHECK-LABEL: @f( | 
 | ; CHECK-NEXT:    [[TMP1:%.*]] = call noalias ptr @_Znwm(i64 32) | 
 | ; CHECK-NEXT:    [[TMP2:%.*]] = icmp ugt ptr [[TMP1]], @global | 
 | ; CHECK-NEXT:    call void @llvm.assume(i1 [[TMP2]]) | 
 | ; CHECK-NEXT:    ret void | 
 | ; | 
 |   %tmp1 = call noalias ptr @_Znwm(i64 32) | 
 |   %tmp2 = icmp ugt ptr %tmp1, @global | 
 |   call void @llvm.assume(i1 %tmp2) | 
 |   store i8 0, ptr %tmp1, align 1 | 
 |   ret void | 
 | } | 
 |  | 
 | define void @f2() { | 
 | ; CHECK-LABEL: @f2( | 
 | ; CHECK-NEXT:    [[TMP1:%.*]] = call noalias ptr @_Znwm(i64 32) | 
 | ; CHECK-NEXT:    [[TMP2:%.*]] = icmp ugt ptr [[TMP1]], @global | 
 | ; CHECK-NEXT:    call void @llvm.assume(i1 [[TMP2]]) | 
 | ; CHECK-NEXT:    call void @quux(ptr @global) | 
 | ; CHECK-NEXT:    ret void | 
 | ; | 
 |   %tmp1 = call noalias ptr @_Znwm(i64 32) | 
 |   %tmp2 = icmp ugt ptr %tmp1, @global | 
 |   call void @llvm.assume(i1 %tmp2) | 
 |   store i8 0, ptr %tmp1, align 1 | 
 |   call void @quux(ptr @global) | 
 |   ret void | 
 | } | 
 |  | 
 | declare ptr @_Znwm(i64) | 
 |  | 
 | declare void @llvm.assume(i1) | 
 |  | 
 | declare void @quux(ptr) |