Skip to content

Commit db39ef9

Browse files
committed
[GVN] Add additional tests for inverted condition propagation (NFC)
1 parent 7e6d277 commit db39ef9

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

llvm/test/Transforms/GVN/condprop.ll

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,66 @@ different:
321321
ret i1 %cmp3
322322
}
323323

324+
define i1 @test6_phi1(i1 %c, i32 %x, i32 %y) {
325+
; CHECK-LABEL: @test6_phi1(
326+
; CHECK-NEXT: entry:
327+
; CHECK-NEXT: [[CMP_NOT:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
328+
; CHECK-NEXT: br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]
329+
; CHECK: bb1:
330+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], [[Y]]
331+
; CHECK-NEXT: br i1 [[CMP]], label [[BB2]], label [[BB3:%.*]]
332+
; CHECK: bb2:
333+
; CHECK-NEXT: [[PHI:%.*]] = phi i1 [ false, [[BB1]] ], [ true, [[ENTRY:%.*]] ]
334+
; CHECK-NEXT: ret i1 [[PHI]]
335+
; CHECK: bb3:
336+
; CHECK-NEXT: ret i1 false
337+
;
338+
entry:
339+
%cmp.not = icmp ne i32 %x, %y
340+
br i1 %c, label %bb1, label %bb2
341+
342+
bb1:
343+
%cmp = icmp eq i32 %x, %y
344+
br i1 %cmp, label %bb2, label %bb3
345+
346+
bb2:
347+
%phi = phi i1 [ %cmp.not, %bb1 ], [ true, %entry ]
348+
ret i1 %phi
349+
350+
bb3:
351+
ret i1 false
352+
}
353+
354+
define i1 @test6_phi2(i1 %c, i32 %x, i32 %y) {
355+
; CHECK-LABEL: @test6_phi2(
356+
; CHECK-NEXT: entry:
357+
; CHECK-NEXT: br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]
358+
; CHECK: bb1:
359+
; CHECK-NEXT: [[CMP_NOT:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
360+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], [[Y]]
361+
; CHECK-NEXT: br i1 [[CMP]], label [[BB2]], label [[BB3:%.*]]
362+
; CHECK: bb2:
363+
; CHECK-NEXT: [[PHI:%.*]] = phi i1 [ [[CMP_NOT]], [[BB1]] ], [ true, [[ENTRY:%.*]] ]
364+
; CHECK-NEXT: ret i1 [[PHI]]
365+
; CHECK: bb3:
366+
; CHECK-NEXT: ret i1 false
367+
;
368+
entry:
369+
br i1 %c, label %bb1, label %bb2
370+
371+
bb1:
372+
%cmp.not = icmp ne i32 %x, %y
373+
%cmp = icmp eq i32 %x, %y
374+
br i1 %cmp, label %bb2, label %bb3
375+
376+
bb2:
377+
%phi = phi i1 [ %cmp.not, %bb1 ], [ true, %entry ]
378+
ret i1 %phi
379+
380+
bb3:
381+
ret i1 false
382+
}
383+
324384
define i1 @test7(i32 %x, i32 %y) {
325385
; CHECK-LABEL: @test7(
326386
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[X:%.*]], [[Y:%.*]]

0 commit comments

Comments
 (0)