xref: /llvm-project/llvm/test/Transforms/InstSimplify/invalid-load-operand-infinite-loop.ll (revision 04b944e23050e4e0c6ee983cc9bc17740315ea4f)
1; RUN: opt -passes=jump-threading -S < %s | FileCheck %s
2; CHECK: @main
3
4%struct.wobble = type { i8 }
5
6define i32 @main() local_unnamed_addr personality ptr undef {
7bb12:
8  br i1 false, label %bb13, label %bb28
9
10bb13:                                             ; preds = %bb12
11  br label %bb14
12
13bb14:                                             ; preds = %bb26, %bb13
14  %tmp15 = phi ptr [ %tmp27, %bb26 ], [ undef, %bb13 ]
15  %tmp16 = icmp slt i32 5, undef
16  %tmp17 = select i1 false, i1 true, i1 %tmp16
17  br label %bb18
18
19bb18:                                             ; preds = %bb14
20  br i1 %tmp17, label %bb19, label %bb21
21
22bb19:                                             ; preds = %bb18
23  %tmp20 = or i32 undef, 4
24  br label %bb21
25
26bb21:                                             ; preds = %bb19, %bb18
27  %tmp22 = load i8, ptr %tmp15, align 1
28  br label %bb23
29
30bb23:                                             ; preds = %bb21
31  br i1 %tmp17, label %bb24, label %bb25
32
33bb24:                                             ; preds = %bb23
34  br label %bb25
35
36bb25:                                             ; preds = %bb24, %bb23
37  invoke void undef(ptr undef, i32 0, i32 undef, i8 %tmp22)
38          to label %bb26 unwind label %bb33
39
40bb26:                                             ; preds = %bb25
41  %tmp27 = getelementptr inbounds i8, ptr %tmp15, i64 1
42  br label %bb14
43
44bb28:                                             ; preds = %bb12
45  unreachable
46
47bb33:                                             ; preds = %bb25
48  %tmp34 = landingpad { ptr, i32 }
49          cleanup
50  unreachable
51}
52