1- ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-comments
1+ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-inst- comments
22; RUN: opt -passes=print-predicateinfo -disable-output < %s 2>&1 | FileCheck %s
33
44@a = external global i32 ; <ptr> [#uses=7]
@@ -98,19 +98,14 @@ 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-NEXT: ; Has predicate info
102101; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[Z]] = and i1 [[XZ]], [[YZ]] Edge: [label [[TMP0:%.*]],label %nope], RenamedOp: [[Z]] }
103102; CHECK-NEXT: [[Z_0:%.*]] = bitcast i1 [[Z]] to i1
104- ; CHECK-NEXT: ; Has predicate info
105103; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[XZ]] = icmp eq i32 [[X]], 0 Edge: [label [[TMP0]],label %both_zero], RenamedOp: [[XZ]] }
106104; CHECK-NEXT: [[XZ_0:%.*]] = bitcast i1 [[XZ]] to i1
107- ; CHECK-NEXT: ; Has predicate info
108105; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[XZ]] = icmp eq i32 [[X]], 0 Edge: [label [[TMP0]],label %both_zero], RenamedOp: [[X]] }
109106; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
110- ; CHECK-NEXT: ; Has predicate info
111107; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[YZ]] = icmp eq i32 [[Y]], 0 Edge: [label [[TMP0]],label %both_zero], RenamedOp: [[YZ]] }
112108; CHECK-NEXT: [[YZ_0:%.*]] = bitcast i1 [[YZ]] to i1
113- ; CHECK-NEXT: ; Has predicate info
114109; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[YZ]] = icmp eq i32 [[Y]], 0 Edge: [label [[TMP0]],label %both_zero], RenamedOp: [[Y]] }
115110; CHECK-NEXT: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
116111; CHECK-NEXT: br i1 [[Z]], label [[BOTH_ZERO:%.*]], label [[NOPE:%.*]]
@@ -143,7 +138,6 @@ define void @test4(i1 %b, i32 %x) {
143138; CHECK-LABEL: @test4(
144139; CHECK-NEXT: br i1 [[B:%.*]], label [[SW:%.*]], label [[CASE3:%.*]]
145140; CHECK: sw:
146- ; CHECK-NEXT: ; Has predicate info
147141; CHECK-NEXT: ; switch predicate info { CaseValue: i32 1 Edge: [label [[SW]],label %case1], RenamedOp: [[X:%.*]] }
148142; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
149143; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT:%.*]] [
@@ -192,16 +186,12 @@ case3:
192186define i1 @test5 (i32 %x , i32 %y ) {
193187; CHECK-LABEL: @test5(
194188; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
195- ; CHECK-NEXT: ; Has predicate info
196189; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], [[Y]] Edge: [label [[TMP0:%.*]],label %same], RenamedOp: [[X]] }
197190; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
198- ; CHECK-NEXT: ; Has predicate info
199191; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[X]] }
200192; CHECK-NEXT: [[X_1:%.*]] = bitcast i32 [[X]] to i32
201- ; CHECK-NEXT: ; Has predicate info
202193; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %same], RenamedOp: [[Y]] }
203194; CHECK-NEXT: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
204- ; CHECK-NEXT: ; Has predicate info
205195; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[Y]] }
206196; CHECK-NEXT: [[Y_1:%.*]] = bitcast i32 [[Y]] to i32
207197; CHECK-NEXT: br i1 [[CMP]], label [[SAME:%.*]], label [[DIFFERENT:%.*]]
@@ -273,16 +263,12 @@ different:
273263define i1 @test7 (i32 %x , i32 %y ) {
274264; CHECK-LABEL: @test7(
275265; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[X:%.*]], [[Y:%.*]]
276- ; CHECK-NEXT: ; Has predicate info
277266; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp sgt i32 [[X]], [[Y]] Edge: [label [[TMP0:%.*]],label %same], RenamedOp: [[X]] }
278267; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
279- ; CHECK-NEXT: ; Has predicate info
280268; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp sgt i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[X]] }
281269; CHECK-NEXT: [[X_1:%.*]] = bitcast i32 [[X]] to i32
282- ; CHECK-NEXT: ; Has predicate info
283270; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp sgt i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %same], RenamedOp: [[Y]] }
284271; CHECK-NEXT: [[Y_0:%.*]] = bitcast i32 [[Y]] to i32
285- ; CHECK-NEXT: ; Has predicate info
286272; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp sgt i32 [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[Y]] }
287273; CHECK-NEXT: [[Y_1:%.*]] = bitcast i32 [[Y]] to i32
288274; CHECK-NEXT: br i1 [[CMP]], label [[SAME:%.*]], label [[DIFFERENT:%.*]]
@@ -308,16 +294,12 @@ different:
308294define i1 @test7_fp (float %x , float %y ) {
309295; CHECK-LABEL: @test7_fp(
310296; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[X:%.*]], [[Y:%.*]]
311- ; CHECK-NEXT: ; Has predicate info
312297; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = fcmp ogt float [[X]], [[Y]] Edge: [label [[TMP0:%.*]],label %same], RenamedOp: [[X]] }
313298; CHECK-NEXT: [[X_0:%.*]] = bitcast float [[X]] to float
314- ; CHECK-NEXT: ; Has predicate info
315299; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = fcmp ogt float [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[X]] }
316300; CHECK-NEXT: [[X_1:%.*]] = bitcast float [[X]] to float
317- ; CHECK-NEXT: ; Has predicate info
318301; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = fcmp ogt float [[X]], [[Y]] Edge: [label [[TMP0]],label %same], RenamedOp: [[Y]] }
319302; CHECK-NEXT: [[Y_0:%.*]] = bitcast float [[Y]] to float
320- ; CHECK-NEXT: ; Has predicate info
321303; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = fcmp ogt float [[X]], [[Y]] Edge: [label [[TMP0]],label %different], RenamedOp: [[Y]] }
322304; CHECK-NEXT: [[Y_1:%.*]] = bitcast float [[Y]] to float
323305; CHECK-NEXT: br i1 [[CMP]], label [[SAME:%.*]], label [[DIFFERENT:%.*]]
@@ -389,10 +371,8 @@ different:
389371define i32 @test9 (i32 %i , i32 %j ) {
390372; CHECK-LABEL: @test9(
391373; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[I:%.*]], [[J:%.*]]
392- ; CHECK-NEXT: ; Has predicate info
393374; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[I]], [[J]] Edge: [label [[TMP0:%.*]],label %cond_true], RenamedOp: [[I]] }
394375; CHECK-NEXT: [[I_0:%.*]] = bitcast i32 [[I]] to i32
395- ; CHECK-NEXT: ; Has predicate info
396376; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[I]], [[J]] Edge: [label [[TMP0]],label %cond_true], RenamedOp: [[J]] }
397377; CHECK-NEXT: [[J_0:%.*]] = bitcast i32 [[J]] to i32
398378; CHECK-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[RET:%.*]]
@@ -416,10 +396,8 @@ ret:
416396define i32 @test10 (i32 %j , i32 %i ) {
417397; CHECK-LABEL: @test10(
418398; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[I:%.*]], [[J:%.*]]
419- ; CHECK-NEXT: ; Has predicate info
420399; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[I]], [[J]] Edge: [label [[TMP0:%.*]],label %cond_true], RenamedOp: [[I]] }
421400; CHECK-NEXT: [[I_0:%.*]] = bitcast i32 [[I]] to i32
422- ; CHECK-NEXT: ; Has predicate info
423401; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[I]], [[J]] Edge: [label [[TMP0]],label %cond_true], RenamedOp: [[J]] }
424402; CHECK-NEXT: [[J_0:%.*]] = bitcast i32 [[J]] to i32
425403; CHECK-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[RET:%.*]]
@@ -447,18 +425,15 @@ define i32 @test11(i32 %x) {
447425; CHECK-NEXT: [[V0:%.*]] = call i32 @yogibar()
448426; CHECK-NEXT: [[V1:%.*]] = call i32 @yogibar()
449427; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[V0]], [[V1]]
450- ; CHECK-NEXT: ; Has predicate info
451428; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[V0]], [[V1]] Edge: [label [[TMP0:%.*]],label %next], RenamedOp: [[V0]] }
452429; CHECK-NEXT: [[V0_0:%.*]] = bitcast i32 [[V0]] to i32
453- ; CHECK-NEXT: ; Has predicate info
454430; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[V0]], [[V1]] Edge: [label [[TMP0]],label %cond_true], RenamedOp: [[V1]] }
455431; CHECK-NEXT: [[V1_0:%.*]] = bitcast i32 [[V1]] to i32
456432; CHECK-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[NEXT:%.*]]
457433; CHECK: cond_true:
458434; CHECK-NEXT: ret i32 [[V1_0]]
459435; CHECK: next:
460436; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i32 [[X:%.*]], [[V0_0]]
461- ; CHECK-NEXT: ; Has predicate info
462437; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP2]] = icmp eq i32 [[X]], [[V0_0]] Edge: [label [[NEXT]],label %cond_true2], RenamedOp: [[V0_0]] }
463438; CHECK-NEXT: [[V0_0_1:%.*]] = bitcast i32 [[V0_0]] to i32
464439; CHECK-NEXT: br i1 [[CMP2]], label [[COND_TRUE2:%.*]], label [[NEXT2:%.*]]
@@ -489,10 +464,8 @@ next2:
489464define i32 @test12 (i32 %x ) {
490465; CHECK-LABEL: @test12(
491466; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X:%.*]], 0
492- ; CHECK-NEXT: ; Has predicate info
493467; CHECK-NEXT: ; branch predicate info { TrueEdge: 1 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[TMP0:%.*]],label %cond_true], RenamedOp: [[X]] }
494468; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
495- ; CHECK-NEXT: ; Has predicate info
496469; CHECK-NEXT: ; branch predicate info { TrueEdge: 0 Comparison: [[CMP]] = icmp eq i32 [[X]], 0 Edge: [label [[TMP0]],label %cond_false], RenamedOp: [[X]] }
497470; CHECK-NEXT: [[X_1:%.*]] = bitcast i32 [[X]] to i32
498471; CHECK-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[COND_FALSE:%.*]]
0 commit comments