Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / LoopDeletion / use-in-unreachable.ll
blobee7540e640ca2362970e04ff50c3a380a1f181ec
1 ; RUN: opt < %s -passes=loop-deletion -S | FileCheck %s
3 ; Checking that possible users of instruction from the loop in
4 ; unreachable blocks are handled.
6 define i64 @foo() {
7 entry:
8   br label %invloop
9 ; CHECK-LABEL-NOT: invloop
10 invloop:
11   %indvar1 = phi i64 [ 3, %entry ], [ %indvar2, %invloop_iter ]
12   %check = icmp ult i64 %indvar1, 400
13   br i1 %check, label %invloop_iter, label %loopexit
14 invloop_iter:
15   %indvar2 = add i64 %indvar1, 1
16   %baddef = add i64 0, 0
17   br label %invloop
18 loopexit:
19   ret i64 0
20 deadcode:
21 ; CHECK-LABEL: deadcode
22 ; CHECK: ret i64 poison
23   ret i64 %baddef