; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 ; RUN: opt -S -passes=loop-deletion < %s | FileCheck %s define void @foo(ptr %P) #0 { ; CHECK-LABEL: define void @foo( ; CHECK-SAME: ptr [[P:%.*]]) #[[ATTR0:[0-9]+]] { ; CHECK-NEXT: [[BB:.*:]] ; CHECK-NEXT: [[P_PROMOTED2:%.*]] = load ptr, ptr [[P]], align 8 ; CHECK-NEXT: unreachable ; CHECK: [[MERGE:.*:]] ; CHECK-NEXT: store ptr poison, ptr [[P]], align 8 ; CHECK-NEXT: unreachable ; bb: %p.promoted2 = load ptr, ptr %P, align 8 br label %bb1 bb1: ; preds = %bb1.backedge, %bb %p.ph = phi ptr [ %P, %bb ], [ %p.promoted2, %bb1.backedge ] br label %bb1.backedge bb1.backedge: ; preds = %bb1, %merge br label %bb1 merge: ; No predecessors! store ptr %p.ph, ptr %P, align 8 br label %bb1.backedge } attributes #0 = { willreturn }