; 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 i8* @_Znwm(i64 32) ; CHECK-NEXT: [[TMP2:%.*]] = icmp ugt i8* [[TMP1]], @global ; CHECK-NEXT: call void @llvm.assume(i1 [[TMP2]]) ; CHECK-NEXT: ret void ; %tmp1 = call noalias i8* @_Znwm(i64 32) %tmp2 = icmp ugt i8* %tmp1, @global call void @llvm.assume(i1 %tmp2) store i8 0, i8* %tmp1, align 1 ret void } define void @f2() { ; CHECK-LABEL: @f2( ; CHECK-NEXT: [[TMP1:%.*]] = call noalias i8* @_Znwm(i64 32) ; CHECK-NEXT: [[TMP2:%.*]] = icmp ugt i8* [[TMP1]], @global ; CHECK-NEXT: call void @llvm.assume(i1 [[TMP2]]) ; CHECK-NEXT: call void @quux(i8* @global) ; CHECK-NEXT: ret void ; %tmp1 = call noalias i8* @_Znwm(i64 32) %tmp2 = icmp ugt i8* %tmp1, @global call void @llvm.assume(i1 %tmp2) store i8 0, i8* %tmp1, align 1 call void @quux(i8* @global) ret void } declare i8* @_Znwm(i64) declare void @llvm.assume(i1) declare void @quux(i8*)