55 lines · plain
1; RUN: opt -S < %s -passes=jump-threading | FileCheck %s2; CHECK-LABEL: @foo3; CHECK: bb6:4; CHECK-NEXT: ret void5; CHECK: bb3:6; CHECK: br label %bb37define void @foo() {8entry:9 br i1 true, label %bb6, label %bb310 11bb3:12 %x0 = phi i32 [ undef, %entry ], [ %x1, %bb5 ]13 %y = and i64 undef, 114 %p = icmp ne i64 %y, 015 br i1 %p, label %bb4, label %bb516 17bb4:18 br label %bb519 20bb5:21 %x1 = phi i32 [ %x0, %bb3 ], [ %x0, %bb4 ]22 %z = phi i32 [ 0, %bb3 ], [ 1, %bb4 ]23 %q = icmp eq i32 %z, 024 br i1 %q, label %bb3, label %bb625 26bb6:27 ret void28}29 30; CHECK-LABEL: @bar31; Just check that we don't crash on this test.32define void @bar(i1 %p) {33entry:34 br i1 false, label %bb2, label %exit35 36bb2:37 %x0 = phi i32 [ undef, %entry ], [ %x1, %bb5 ]38 br i1 %p, label %bb3, label %bb439 40bb3:41 br label %bb542 43bb4:44 br label %bb545 46bb5:47 %x1 = phi i32 [ %x0, %bb3 ], [ 0, %bb4 ]48 switch i32 %x1, label %exit [49 i32 10, label %bb250 ]51 52exit:53 ret void54}55