; RUN: opt -partial-inliner -S < %s | FileCheck %s ; Checks that valid costs are computed for intrinsic calls. ; https://bugs.llvm.org/show_bug.cgi?id=45932 @emit_notes = external global i8, align 2 ; CHECK: var_reg_delete ; CHECK-NEXT: bb ; CHECK-NEXT: tail call void @delete_variable_part() ; CHECK-NEXT: ret void define void @var_reg_delete() { bb: tail call void @delete_variable_part() ret void } ; CHECK: delete_variable_part ; CHECK-NEXT: bb ; CHECK-NEXT: %tmp1.i = tail call i32 @find_variable_location_part() ; CHECK-NEXT: %tmp3.i = icmp sgt i32 %tmp1.i, -1 ; CHECK-NEXT: br i1 %tmp3.i, label %bb4.i, label %delete_slot_part.exit ; CHECK: bb4.i ; CHECK-NEXT: %tmp.i.i = load i8, i8* @emit_notes ; CHECK-NEXT: %tmp1.i.i = icmp ne i8 %tmp.i.i, 0 ; CHECK-NEXT: tail call void @llvm.assume(i1 %tmp1.i.i) ; CHECK-NEXT: unreachable ; CHECK: delete_slot_part.exit ; CHECK-NEXT: ret void define void @delete_variable_part() { bb: %tmp1.i = tail call i32 @find_variable_location_part() %tmp3.i = icmp sgt i32 %tmp1.i, -1 br i1 %tmp3.i, label %bb4.i, label %delete_slot_part.exit bb4.i: %tmp.i.i = load i8, i8* @emit_notes, align 2 %tmp1.i.i = icmp ne i8 %tmp.i.i, 0 tail call void @llvm.assume(i1 %tmp1.i.i) unreachable delete_slot_part.exit: ret void } ; CHECK: declare i32 @find_variable_location_part declare i32 @find_variable_location_part() ; CHECK: declare void @llvm.assume(i1 noundef) declare void @llvm.assume(i1 noundef)