1; RUN: opt < %s -S -loop-unswitch -enable-new-pm=0 -verify-loop-info -verify-dom-info | FileCheck %s 2; RUN: opt < %s -S -loop-unswitch -enable-new-pm=0 -verify-loop-info -verify-dom-info -enable-mssa-loop-dependency=true -verify-memoryssa | FileCheck %s 3; PR12343: -loop-unswitch -enable-new-pm=0 crash on indirect branch 4 5; CHECK: %0 = icmp eq i64 undef, 0 6; CHECK-NEXT: br i1 %0, label %"5", label %"4" 7 8; CHECK: "5": ; preds = %entry 9; CHECK-NEXT: br label %"16" 10 11; CHECK: "16": ; preds = %"22", %"5" 12; CHECK-NEXT: indirectbr i8* undef, [label %"22", label %"33"] 13 14; CHECK: "22": ; preds = %"16" 15; CHECK-NEXT: br i1 %0, label %"16", label %"26" 16 17; CHECK: "26": ; preds = %"22" 18; CHECK-NEXT: unreachable 19 20define void @foo() { 21entry: 22 %0 = icmp eq i64 undef, 0 23 br i1 %0, label %"5", label %"4" 24 25"4": ; preds = %entry 26 unreachable 27 28"5": ; preds = %entry 29 br label %"16" 30 31"16": ; preds = %"22", %"5" 32 indirectbr i8* undef, [label %"22", label %"33"] 33 34"22": ; preds = %"16" 35 br i1 %0, label %"16", label %"26" 36 37"26": ; preds = %"22" 38 unreachable 39 40"33": ; preds = %"16" 41 unreachable 42} 43