• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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