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