Skip to content

Commit 53ce1d1

Browse files
committed
Regenerate the related tests
1 parent 0dd5709 commit 53ce1d1

File tree

7 files changed

+506
-195
lines changed

7 files changed

+506
-195
lines changed

llvm/test/Transforms/Util/PredicateInfo/branch-on-same-cond.ll

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-comments
22
; RUN: opt -S -passes=print-predicateinfo < %s 2>&1 >/dev/null | FileCheck %s
33

44
; FIXME: RenamedOp should be %cmp or %x in all cases here,
@@ -9,24 +9,31 @@ define i32 @test(i32 %x) {
99
; CHECK-NEXT: br label [[BB1:%.*]]
1010
; CHECK: bb1:
1111
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X:%.*]], 0
12-
; CHECK: RenamedOp: [[CMP]]
13-
; CHECK: [[CMP_0:%.*]] = bitcast i1 [[CMP]] to i1
14-
; CHECK: RenamedOp: [[X]]
15-
; CHECK: [[X_0:%.*]] = bitcast i32 [[X]] to i32
12+
; CHECK-NEXT: ; Has predicate info
13+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[BB1]],label %bb2], RenamedOp: [[CMP]] }
14+
; CHECK-NEXT: [[CMP_0:%.*]] = bitcast i1 [[CMP]] to i1
15+
; CHECK-NEXT: ; Has predicate info
16+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[BB1]],label %bb2], RenamedOp: [[X]] }
17+
; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
1618
; CHECK-NEXT: br i1 [[CMP]], label [[BB2:%.*]], label [[EXIT1:%.*]]
1719
; CHECK: bb2:
18-
; CHECK: RenamedOp: [[CMP_0]]
19-
; CHECK: [[CMP_0_1:%.*]] = bitcast i1 [[CMP_0]] to i1
20-
; CHECK: RenamedOp: [[X]]
21-
; CHECK: [[X_0_1:%.*]] = bitcast i32 [[X_0]] to i32
22-
; CHECK: RenamedOp: [[X_0]]
23-
; CHECK: [[X_0_4:%.*]] = bitcast i32 [[X_0]] to i32
20+
; CHECK-NEXT: ; Has predicate info
21+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[BB2]],label %bb3], RenamedOp: [[CMP_0]] }
22+
; CHECK-NEXT: [[CMP_0_1:%.*]] = bitcast i1 [[CMP_0]] to i1
23+
; CHECK-NEXT: ; Has predicate info
24+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[BB2]],label %bb3], RenamedOp: [[X]] }
25+
; CHECK-NEXT: [[X_0_1:%.*]] = bitcast i32 [[X_0]] to i32
26+
; CHECK-NEXT: ; Has predicate info
27+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[BB2]],label %exit2], RenamedOp: [[X_0]] }
28+
; CHECK-NEXT: [[X_0_4:%.*]] = bitcast i32 [[X_0]] to i32
2429
; CHECK-NEXT: br i1 [[CMP_0]], label [[BB3:%.*]], label [[EXIT2:%.*]]
2530
; CHECK: bb3:
26-
; CHECK: RenamedOp: [[X]]
27-
; CHECK: [[X_0_1_2:%.*]] = bitcast i32 [[X_0_1]] to i32
28-
; CHECK: RenamedOp: [[X_0_1]]
29-
; CHECK: [[X_0_1_3:%.*]] = bitcast i32 [[X_0_1]] to i32
31+
; CHECK-NEXT: ; Has predicate info
32+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[BB3]],label %exit3], RenamedOp: [[X]] }
33+
; CHECK-NEXT: [[X_0_1_2:%.*]] = bitcast i32 [[X_0_1]] to i32
34+
; CHECK-NEXT: ; Has predicate info
35+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[BB3]],label %exit4], RenamedOp: [[X_0_1]] }
36+
; CHECK-NEXT: [[X_0_1_3:%.*]] = bitcast i32 [[X_0_1]] to i32
3037
; CHECK-NEXT: br i1 [[CMP_0_1]], label [[EXIT3:%.*]], label [[EXIT4:%.*]]
3138
; CHECK: exit1:
3239
; CHECK-NEXT: ret i32 0

llvm/test/Transforms/Util/PredicateInfo/condprop.ll

Lines changed: 82 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-comments
22
; RUN: opt -passes=print-predicateinfo -disable-output < %s 2>&1 | FileCheck %s
33

44
@a = external global i32 ; <ptr> [#uses=7]
@@ -98,11 +98,21 @@ define void @test3(i32 %x, i32 %y) {
9898
; CHECK-NEXT: [[XZ:%.*]] = icmp eq i32 [[X:%.*]], 0
9999
; CHECK-NEXT: [[YZ:%.*]] = icmp eq i32 [[Y:%.*]], 0
100100
; CHECK-NEXT: [[Z:%.*]] = and i1 [[XZ]], [[YZ]]
101-
; CHECK: [[Z_0:%.*]] = bitcast i1 [[Z]] to i1
102-
; CHECK: [[XZ_0:%.*]] = bitcast i1 [[XZ]] to i1
103-
; CHECK: [[X_0:%.*]] = bitcast i32 [[X]] to i32
104-
; CHECK: [[YZ_0:%.*]] = bitcast i1 [[YZ]] to i1
105-
; CHECK: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
101+
; CHECK-NEXT: ; Has predicate info
102+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[Z]] = and i1 [[XZ]], [[YZ]] Edge: [label [[TMP0:%.*]],label %nope], RenamedOp: [[Z]] }
103+
; CHECK-NEXT: [[Z_0:%.*]] = bitcast i1 [[Z]] to i1
104+
; CHECK-NEXT: ; Has predicate info
105+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[XZ]] = icmp eq i32 [[X]], 0 Edge: [label [[TMP0]],label %both_zero], RenamedOp: [[XZ]] }
106+
; CHECK-NEXT: [[XZ_0:%.*]] = bitcast i1 [[XZ]] to i1
107+
; CHECK-NEXT: ; Has predicate info
108+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[XZ]] = icmp eq i32 [[X]], 0 Edge: [label [[TMP0]],label %both_zero], RenamedOp: [[X]] }
109+
; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
110+
; CHECK-NEXT: ; Has predicate info
111+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[YZ]] = icmp eq i32 [[Y]], 0 Edge: [label [[TMP0]],label %both_zero], RenamedOp: [[YZ]] }
112+
; CHECK-NEXT: [[YZ_0:%.*]] = bitcast i1 [[YZ]] to i1
113+
; CHECK-NEXT: ; Has predicate info
114+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[YZ]] = icmp eq i32 [[Y]], 0 Edge: [label [[TMP0]],label %both_zero], RenamedOp: [[Y]] }
115+
; CHECK-NEXT: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
106116
; CHECK-NEXT: br i1 [[Z]], label [[BOTH_ZERO:%.*]], label [[NOPE:%.*]]
107117
; CHECK: both_zero:
108118
; CHECK-NEXT: call void @foo(i1 [[XZ_0]])
@@ -133,7 +143,9 @@ define void @test4(i1 %b, i32 %x) {
133143
; CHECK-LABEL: @test4(
134144
; CHECK-NEXT: br i1 [[B:%.*]], label [[SW:%.*]], label [[CASE3:%.*]]
135145
; CHECK: sw:
136-
; CHECK: [[X_0:%.*]] = bitcast i32 [[X:%.*]] to i32
146+
; CHECK-NEXT: ; Has predicate info
147+
; CHECK-NEXT: ; switch predicate info { CaseValue: i32 1 Edge: [label [[SW]],label %case1], RenamedOp: [[X:%.*]] }
148+
; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
137149
; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT:%.*]] [
138150
; CHECK-NEXT: i32 0, label [[CASE0:%.*]]
139151
; CHECK-NEXT: i32 1, label [[CASE1:%.*]]
@@ -180,10 +192,18 @@ case3:
180192
define i1 @test5(i32 %x, i32 %y) {
181193
; CHECK-LABEL: @test5(
182194
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
183-
; CHECK: [[X_0:%.*]] = bitcast i32 [[X]] to i32
184-
; CHECK: [[X_1:%.*]] = bitcast i32 [[X]] to i32
185-
; CHECK: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
186-
; CHECK: [[Y_1:%.*]] = bitcast i32 [[Y]] to i32
195+
; CHECK-NEXT: ; Has predicate info
196+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], [[Y]] Edge: [label [[TMP0:%.*]],label %same], RenamedOp: [[X]] }
197+
; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
198+
; CHECK-NEXT: ; Has predicate info
199+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[X]] }
200+
; CHECK-NEXT: [[X_1:%.*]] = bitcast i32 [[X]] to i32
201+
; CHECK-NEXT: ; Has predicate info
202+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %same], RenamedOp: [[Y]] }
203+
; CHECK-NEXT: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
204+
; CHECK-NEXT: ; Has predicate info
205+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[Y]] }
206+
; CHECK-NEXT: [[Y_1:%.*]] = bitcast i32 [[Y]] to i32
187207
; CHECK-NEXT: br i1 [[CMP]], label [[SAME:%.*]], label [[DIFFERENT:%.*]]
188208
; CHECK: same:
189209
; CHECK-NEXT: [[CMP2:%.*]] = icmp ne i32 [[X_0]], [[Y_0]]
@@ -253,10 +273,18 @@ different:
253273
define i1 @test7(i32 %x, i32 %y) {
254274
; CHECK-LABEL: @test7(
255275
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[X:%.*]], [[Y:%.*]]
256-
; CHECK: [[X_0:%.*]] = bitcast i32 [[X]] to i32
257-
; CHECK: [[X_1:%.*]] = bitcast i32 [[X]] to i32
258-
; CHECK: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
259-
; CHECK: [[Y_1:%.*]] = bitcast i32 [[Y]] to i32
276+
; CHECK-NEXT: ; Has predicate info
277+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp sgt i32 [[X]], [[Y]] Edge: [label [[TMP0:%.*]],label %same], RenamedOp: [[X]] }
278+
; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
279+
; CHECK-NEXT: ; Has predicate info
280+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp sgt i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[X]] }
281+
; CHECK-NEXT: [[X_1:%.*]] = bitcast i32 [[X]] to i32
282+
; CHECK-NEXT: ; Has predicate info
283+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp sgt i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %same], RenamedOp: [[Y]] }
284+
; CHECK-NEXT: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
285+
; CHECK-NEXT: ; Has predicate info
286+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp sgt i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[Y]] }
287+
; CHECK-NEXT: [[Y_1:%.*]] = bitcast i32 [[Y]] to i32
260288
; CHECK-NEXT: br i1 [[CMP]], label [[SAME:%.*]], label [[DIFFERENT:%.*]]
261289
; CHECK: same:
262290
; CHECK-NEXT: [[CMP2:%.*]] = icmp sle i32 [[X_0]], [[Y_0]]
@@ -280,10 +308,18 @@ different:
280308
define i1 @test7_fp(float %x, float %y) {
281309
; CHECK-LABEL: @test7_fp(
282310
; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[X:%.*]], [[Y:%.*]]
283-
; CHECK: [[X_0:%.*]] = bitcast float [[X]] to float
284-
; CHECK: [[X_1:%.*]] = bitcast float [[X]] to float
285-
; CHECK: [[Y_0:%.*]] = bitcast float [[Y]] to float
286-
; CHECK: [[Y_1:%.*]] = bitcast float [[Y]] to float
311+
; CHECK-NEXT: ; Has predicate info
312+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = fcmp ogt float [[X]], [[Y]] Edge: [label [[TMP0:%.*]],label %same], RenamedOp: [[X]] }
313+
; CHECK-NEXT: [[X_0:%.*]] = bitcast float [[X]] to float
314+
; CHECK-NEXT: ; Has predicate info
315+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = fcmp ogt float [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[X]] }
316+
; CHECK-NEXT: [[X_1:%.*]] = bitcast float [[X]] to float
317+
; CHECK-NEXT: ; Has predicate info
318+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = fcmp ogt float [[X]], [[Y]] Edge: [label [[TMP0]],label %same], RenamedOp: [[Y]] }
319+
; CHECK-NEXT: [[Y_0:%.*]] = bitcast float [[Y]] to float
320+
; CHECK-NEXT: ; Has predicate info
321+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = fcmp ogt float [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[Y]] }
322+
; CHECK-NEXT: [[Y_1:%.*]] = bitcast float [[Y]] to float
287323
; CHECK-NEXT: br i1 [[CMP]], label [[SAME:%.*]], label [[DIFFERENT:%.*]]
288324
; CHECK: same:
289325
; CHECK-NEXT: [[CMP2:%.*]] = fcmp ule float [[X_0]], [[Y_0]]
@@ -353,8 +389,12 @@ different:
353389
define i32 @test9(i32 %i, i32 %j) {
354390
; CHECK-LABEL: @test9(
355391
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[I:%.*]], [[J:%.*]]
356-
; CHECK: [[I_0:%.*]] = bitcast i32 [[I]] to i32
357-
; CHECK: [[J_0:%.*]] = bitcast i32 [[J]] to i32
392+
; CHECK-NEXT: ; Has predicate info
393+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[I]], [[J]] Edge: [label [[TMP0:%.*]],label %cond_true], RenamedOp: [[I]] }
394+
; CHECK-NEXT: [[I_0:%.*]] = bitcast i32 [[I]] to i32
395+
; CHECK-NEXT: ; Has predicate info
396+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[I]], [[J]] Edge: [label [[TMP0]],label %cond_true], RenamedOp: [[J]] }
397+
; CHECK-NEXT: [[J_0:%.*]] = bitcast i32 [[J]] to i32
358398
; CHECK-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[RET:%.*]]
359399
; CHECK: cond_true:
360400
; CHECK-NEXT: [[DIFF:%.*]] = sub i32 [[I_0]], [[J_0]]
@@ -376,8 +416,12 @@ ret:
376416
define i32 @test10(i32 %j, i32 %i) {
377417
; CHECK-LABEL: @test10(
378418
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[I:%.*]], [[J:%.*]]
379-
; CHECK: [[I_0:%.*]] = bitcast i32 [[I]] to i32
380-
; CHECK: [[J_0:%.*]] = bitcast i32 [[J]] to i32
419+
; CHECK-NEXT: ; Has predicate info
420+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[I]], [[J]] Edge: [label [[TMP0:%.*]],label %cond_true], RenamedOp: [[I]] }
421+
; CHECK-NEXT: [[I_0:%.*]] = bitcast i32 [[I]] to i32
422+
; CHECK-NEXT: ; Has predicate info
423+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[I]], [[J]] Edge: [label [[TMP0]],label %cond_true], RenamedOp: [[J]] }
424+
; CHECK-NEXT: [[J_0:%.*]] = bitcast i32 [[J]] to i32
381425
; CHECK-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[RET:%.*]]
382426
; CHECK: cond_true:
383427
; CHECK-NEXT: [[DIFF:%.*]] = sub i32 [[I_0]], [[J_0]]
@@ -403,14 +447,20 @@ define i32 @test11(i32 %x) {
403447
; CHECK-NEXT: [[V0:%.*]] = call i32 @yogibar()
404448
; CHECK-NEXT: [[V1:%.*]] = call i32 @yogibar()
405449
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[V0]], [[V1]]
406-
; CHECK: [[V0_0:%.*]] = bitcast i32 [[V0]] to i32
407-
; CHECK: [[V1_0:%.*]] = bitcast i32 [[V1]] to i32
450+
; CHECK-NEXT: ; Has predicate info
451+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[V0]], [[V1]] Edge: [label [[TMP0:%.*]],label %next], RenamedOp: [[V0]] }
452+
; CHECK-NEXT: [[V0_0:%.*]] = bitcast i32 [[V0]] to i32
453+
; CHECK-NEXT: ; Has predicate info
454+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[V0]], [[V1]] Edge: [label [[TMP0]],label %cond_true], RenamedOp: [[V1]] }
455+
; CHECK-NEXT: [[V1_0:%.*]] = bitcast i32 [[V1]] to i32
408456
; CHECK-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[NEXT:%.*]]
409457
; CHECK: cond_true:
410458
; CHECK-NEXT: ret i32 [[V1_0]]
411459
; CHECK: next:
412460
; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i32 [[X:%.*]], [[V0_0]]
413-
; CHECK: [[V0_0_1:%.*]] = bitcast i32 [[V0_0]] to i32
461+
; CHECK-NEXT: ; Has predicate info
462+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP2]] = icmp eq i32 [[X]], [[V0_0]] Edge: [label [[NEXT]],label %cond_true2], RenamedOp: [[V0_0]] }
463+
; CHECK-NEXT: [[V0_0_1:%.*]] = bitcast i32 [[V0_0]] to i32
414464
; CHECK-NEXT: br i1 [[CMP2]], label [[COND_TRUE2:%.*]], label [[NEXT2:%.*]]
415465
; CHECK: cond_true2:
416466
; CHECK-NEXT: ret i32 [[V0_0_1]]
@@ -439,8 +489,12 @@ next2:
439489
define i32 @test12(i32 %x) {
440490
; CHECK-LABEL: @test12(
441491
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X:%.*]], 0
442-
; CHECK: [[X_0:%.*]] = bitcast i32 [[X]] to i32
443-
; CHECK: [[X_1:%.*]] = bitcast i32 [[X]] to i32
492+
; CHECK-NEXT: ; Has predicate info
493+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[TMP0:%.*]],label %cond_true], RenamedOp: [[X]] }
494+
; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
495+
; CHECK-NEXT: ; Has predicate info
496+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[TMP0]],label %cond_false], RenamedOp: [[X]] }
497+
; CHECK-NEXT: [[X_1:%.*]] = bitcast i32 [[X]] to i32
444498
; CHECK-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[COND_FALSE:%.*]]
445499
; CHECK: cond_true:
446500
; CHECK-NEXT: br label [[RET:%.*]]

llvm/test/Transforms/Util/PredicateInfo/diamond.ll

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2-
; RUN: opt -passes=print-predicateinfo < %s 2>&1 | FileCheck %s
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-comments
2+
; RUN: opt -passes=print-predicateinfo -disable-output < %s 2>&1 | FileCheck %s
33
define i1 @f(i32 %x, i1 %y) {
44
; CHECK-LABEL: @f(
55
; CHECK-NEXT: br i1 [[Y:%.*]], label [[BB0:%.*]], label [[BB1:%.*]]
66
; CHECK: bb0:
77
; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[X:%.*]], 0
8-
; CHECK: [[X_0:%.*]] = bitcast i32 [[X]] to i32
8+
; CHECK-NEXT: ; Has predicate info
9+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp sge i32 [[X]], 0 Edge: [label [[BB0]],label %bb2], RenamedOp: [[X]] }
10+
; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
911
; CHECK-NEXT: br i1 [[CMP]], label [[BB2:%.*]], label [[BB3:%.*]]
1012
; CHECK: bb1:
1113
; CHECK-NEXT: [[X2:%.*]] = add nuw nsw i32 [[X]], 1
1214
; CHECK-NEXT: [[CMP2:%.*]] = icmp sge i32 [[X2]], 2
13-
; CHECK: [[X2_0:%.*]] = bitcast i32 [[X2]] to i32
15+
; CHECK-NEXT: ; Has predicate info
16+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP2]] = icmp sge i32 [[X2]], 2 Edge: [label [[BB1]],label %bb2], RenamedOp: [[X2]] }
17+
; CHECK-NEXT: [[X2_0:%.*]] = bitcast i32 [[X2]] to i32
1418
; CHECK-NEXT: br i1 [[CMP2]], label [[BB2]], label [[BB3]]
1519
; CHECK: bb2:
1620
; CHECK-NEXT: [[X3:%.*]] = phi i32 [ [[X_0]], [[BB0]] ], [ [[X2_0]], [[BB1]] ]
@@ -38,12 +42,16 @@ define i1 @g(i32 %x, i1 %y) {
3842
; CHECK-NEXT: br i1 [[Y:%.*]], label [[BB0:%.*]], label [[BB1:%.*]]
3943
; CHECK: bb0:
4044
; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[X:%.*]], 0
41-
; CHECK: [[X_0:%.*]] = bitcast i32 [[X]] to i32
45+
; CHECK-NEXT: ; Has predicate info
46+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp sge i32 [[X]], 0 Edge: [label [[BB0]],label %bb2], RenamedOp: [[X]] }
47+
; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
4248
; CHECK-NEXT: br i1 [[CMP]], label [[BB3:%.*]], label [[BB2:%.*]]
4349
; CHECK: bb1:
4450
; CHECK-NEXT: [[X2:%.*]] = add nuw nsw i32 [[X]], 1
4551
; CHECK-NEXT: [[CMP2:%.*]] = icmp sge i32 [[X2]], 2
46-
; CHECK: [[X2_0:%.*]] = bitcast i32 [[X2]] to i32
52+
; CHECK-NEXT: ; Has predicate info
53+
; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP2]] = icmp sge i32 [[X2]], 2 Edge: [label [[BB1]],label %bb2], RenamedOp: [[X2]] }
54+
; CHECK-NEXT: [[X2_0:%.*]] = bitcast i32 [[X2]] to i32
4755
; CHECK-NEXT: br i1 [[CMP2]], label [[BB3]], label [[BB2]]
4856
; CHECK: bb2:
4957
; CHECK-NEXT: [[X3:%.*]] = phi i32 [ [[X_0]], [[BB0]] ], [ [[X2_0]], [[BB1]] ]

0 commit comments

Comments
 (0)