1234567891011121314151617181920212223242526272829303132333435363738394041 |
- ; RUN: opt < %s -S -loop-unswitch -verify-loop-info -verify-dom-info | FileCheck %s
- ; PR12343: -loop-unswitch crash on indirect branch
- ; CHECK: %0 = icmp eq i64 undef, 0
- ; CHECK-NEXT: br i1 %0, label %"5", label %"4"
- ; CHECK: "5": ; preds = %entry
- ; CHECK-NEXT: br label %"16"
- ; CHECK: "16": ; preds = %"22", %"5"
- ; CHECK-NEXT: indirectbr i8* undef, [label %"22", label %"33"]
- ; CHECK: "22": ; preds = %"16"
- ; CHECK-NEXT: br i1 %0, label %"16", label %"26"
- ; CHECK: "26": ; preds = %"22"
- ; CHECK-NEXT: unreachable
- define void @foo() {
- entry:
- %0 = icmp eq i64 undef, 0
- br i1 %0, label %"5", label %"4"
- "4": ; preds = %entry
- unreachable
- "5": ; preds = %entry
- br label %"16"
- "16": ; preds = %"22", %"5"
- indirectbr i8* undef, [label %"22", label %"33"]
- "22": ; preds = %"16"
- br i1 %0, label %"16", label %"26"
- "26": ; preds = %"22"
- unreachable
- "33": ; preds = %"16"
- unreachable
- }
|