xref: /llvm-project/llvm/test/Transforms/GVN/pr49193.ll (revision 23abf931386002fb9d2c11d026846475c224c641)
1; RUN: opt -passes=gvn -S < %s | FileCheck %s
2
3@a = external local_unnamed_addr global i32, align 4
4@b = external local_unnamed_addr global i32, align 4
5
6; Function Attrs: nounwind readnone
7declare ptr @j() local_unnamed_addr #0
8
9; CHECK: define {{.*}}@k()
10
11define i64 @k() local_unnamed_addr {
12bb:
13  br i1 undef, label %bb10.preheader, label %bb3
14
15bb10.preheader:                                   ; preds = %bb
16  br label %bb13
17
18bb3:                                              ; preds = %bb
19  %i4 = load i32, ptr @a, align 4
20  %i5.not = icmp eq i32 %i4, 0
21  br label %bb7
22
23bb7:                                              ; preds = %bb3
24  %i8 = tail call ptr @j()
25  br label %bb37
26
27bb13:                                             ; preds = %bb34, %bb10.preheader
28  br i1 undef, label %bb30thread-pre-split, label %bb16
29
30bb16:                                             ; preds = %bb13
31  %i17 = tail call ptr @j()
32  br i1 undef, label %bb22thread-pre-split, label %bb37.loopexit
33
34bb22thread-pre-split:                             ; preds = %bb16
35  br label %bb27
36
37bb27:                                             ; preds = %bb22thread-pre-split
38  br i1 undef, label %bb30thread-pre-split, label %bb37.loopexit
39
40bb30thread-pre-split:                             ; preds = %bb27, %bb13
41  %i31.pr = load i32, ptr @a, align 4
42  %i32.not2 = icmp eq i32 %i31.pr, 0
43  br label %bb34
44
45bb34:                                             ; preds = %bb30thread-pre-split
46  br i1 undef, label %bb37.loopexit, label %bb13
47
48bb37.loopexit:                                    ; preds = %bb34, %bb27, %bb16
49  br label %bb37
50
51bb37:                                             ; preds = %bb37.loopexit, %bb7
52  %i38 = load i32, ptr @a, align 4
53  store i32 %i38, ptr @b, align 4
54  %i39 = tail call ptr @j()
55  unreachable
56}
57
58attributes #0 = { nounwind readnone }
59