Skip to content

Commit b167a5a

Browse files
committed
Add test following llvm-project/llvm/test/Transforms/IRCE/pr89959.ll
1 parent 785d00e commit b167a5a

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

llvm/test/Transforms/IRCE/undef.ll

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2+
; RUN: opt -passes=irce -S < %s 2>&1 | FileCheck %s
3+
4+
; Make sure we don't crash.
5+
define swiftcc void @wombat() {
6+
; CHECK-LABEL: define swiftcc void @wombat() {
7+
; CHECK-NEXT: [[BB:.*]]:
8+
; CHECK-NEXT: br label %[[BB1:.*]]
9+
; CHECK: [[BB1]]:
10+
; CHECK-NEXT: [[PHI:%.*]] = phi i64 [ [[ADD:%.*]], %[[BB7:.*]] ], [ 1, %[[BB]] ]
11+
; CHECK-NEXT: [[ICMP:%.*]] = icmp ult i64 [[PHI]], undef
12+
; CHECK-NEXT: br i1 [[ICMP]], label %[[BB3:.*]], label %[[BB2:.*]]
13+
; CHECK: [[BB2]]:
14+
; CHECK-NEXT: unreachable
15+
; CHECK: [[BB3]]:
16+
; CHECK-NEXT: [[CALL5:%.*]] = call token (...) @llvm.gc_preserve_begin(ptr null)
17+
; CHECK-NEXT: br i1 true, label %[[BB7]], label %[[BB6:.*]]
18+
; CHECK: [[BB6]]:
19+
; CHECK-NEXT: call void @llvm.gc_preserve_end(token [[CALL5]])
20+
; CHECK-NEXT: unreachable
21+
; CHECK: [[BB7]]:
22+
; CHECK-NEXT: [[ICMP8:%.*]] = icmp eq i64 [[PHI]], 1
23+
; CHECK-NEXT: [[ADD]] = add i64 [[PHI]], 1
24+
; CHECK-NEXT: br i1 [[ICMP8]], label %[[BB9:.*]], label %[[BB1]]
25+
; CHECK: [[BB9]]:
26+
; CHECK-NEXT: unreachable
27+
;
28+
bb:
29+
br label %bb1
30+
31+
bb1: ; preds = %bb7, %bb
32+
%phi = phi i64 [ %add, %bb7 ], [ 1, %bb ]
33+
%icmp = icmp ult i64 %phi, undef
34+
br i1 %icmp, label %bb3, label %bb2
35+
36+
bb2: ; preds = %bb1
37+
unreachable
38+
39+
bb3: ; preds = %bb1
40+
%call5 = call token (...) @llvm.gc_preserve_begin(ptr null)
41+
br i1 false, label %bb6, label %bb7
42+
43+
bb6: ; preds = %bb3
44+
call void @llvm.gc_preserve_end(token %call5)
45+
unreachable
46+
47+
bb7: ; preds = %bb3
48+
%icmp8 = icmp eq i64 %phi, 1
49+
%add = add i64 %phi, 1
50+
br i1 %icmp8, label %bb9, label %bb1
51+
52+
bb9: ; preds = %bb7
53+
unreachable
54+
}
55+
56+
declare token @llvm.gc_preserve_begin(...)
57+
58+
declare void @llvm.gc_preserve_end(token)

0 commit comments

Comments
 (0)