[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / Transforms / NewGVN / pr33014.ll
blobf6e919770d6c6265ffedbe5bf6443e43dd858a77
1 ; Make sure we don't end up in an infinite recursion in singleReachablePHIPath().
2 ; RUN: opt < %s -passes=newgvn -S | FileCheck %s
4 @c = external global i64, align 8
6 ; CHECK-LABEL: define void @tinkywinky() {
7 ; CHECK: entry:
8 ; CHECK-NEXT:   br i1 undef, label %l2, label %if.then
9 ; CHECK: if.then:                                          ; preds = %entry
10 ; CHECK-NEXT:   br label %for.body
11 ; CHECK: ph:                                               ; preds = %back, %ontrue
12 ; CHECK-NEXT:   br label %for.body
13 ; CHECK: for.body:                                         ; preds = %ph, %if.then
14 ; CHECK-NEXT:   br i1 undef, label %ontrue, label %onfalse
15 ; CHECK: onfalse:                                          ; preds = %for.body
16 ; CHECK-NEXT:   %patatino = load i64, ptr @c
17 ; CHECK-NEXT:   ret void
18 ; CHECK: ontrue:                                           ; preds = %for.body
19 ; CHECK-NEXT:   %dipsy = load i64, ptr @c
20 ; CHECK-NEXT:   br label %ph
21 ; CHECK: back:                                             ; preds = %l2
22 ; CHECK-NEXT:   store i8 poison, ptr null
23 ; CHECK-NEXT:   br label %ph
24 ; CHECK: end:                                              ; preds = %l2
25 ; CHECK-NEXT:   ret void
26 ; CHECK: l2:                                               ; preds = %entry
27 ; CHECK-NEXT:   br i1 false, label %back, label %end
28 ; CHECK-NEXT: }
30 define void @tinkywinky() {
31 entry:
32   br i1 undef, label %l2, label %if.then
33 if.then:
34   br label %for.body
35 ph:
36   br label %for.body
37 for.body:
38   br i1 undef, label %ontrue, label %onfalse
39 onfalse:
40   %patatino = load i64, ptr @c
41   store i64 %patatino, ptr @c
42   ret void
43 ontrue:
44   %dipsy = load i64, ptr @c
45   store i64 %dipsy, ptr @c
46   br label %ph
47 back:
48   br label %ph
49 end:
50   ret void
51 l2:
52   br i1 false, label %back, label %end