|  | ; RUN: opt < %s -loop-deletion -S | FileCheck %s | 
|  |  | 
|  | ; Checking that possible users of instruction from the loop in | 
|  | ; unreachable blocks are handled. | 
|  |  | 
|  | define i64 @foo() { | 
|  | entry: | 
|  | br label %invloop | 
|  | ; CHECK-LABEL-NOT: invloop | 
|  | invloop: | 
|  | %indvar1 = phi i64 [ 3, %entry ], [ %indvar2, %invloop_iter ] | 
|  | %check = icmp ult i64 %indvar1, 400 | 
|  | br i1 %check, label %invloop_iter, label %loopexit | 
|  | invloop_iter: | 
|  | %indvar2 = add i64 %indvar1, 1 | 
|  | %baddef = add i64 0, 0 | 
|  | br label %invloop | 
|  | loopexit: | 
|  | ret i64 0 | 
|  | deadcode: | 
|  | ; CHECK-LABEL: deadcode | 
|  | ; CHECK: ret i64 undef | 
|  | ret i64 %baddef | 
|  | } |