Skip to content

Commit c0130e2

Browse files
committed
[CVP] Add more tests. NFC.
1 parent 93b1587 commit c0130e2

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,42 @@ entry:
649649
ret i1 %cmp1
650650
}
651651

652+
define i1 @test_icmp_mod_commuted1(i64 noundef %x) {
653+
; CHECK-LABEL: @test_icmp_mod_commuted1(
654+
; CHECK-NEXT: entry:
655+
; CHECK-NEXT: [[REM:%.*]] = srem i64 [[X:%.*]], 86400
656+
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[REM]], 0
657+
; CHECK-NEXT: [[COND:%.*]] = select i1 [[CMP]], i64 86400, i64 0
658+
; CHECK-NEXT: [[ADD:%.*]] = add nsw i64 [[REM]], [[COND]]
659+
; CHECK-NEXT: ret i1 false
660+
;
661+
entry:
662+
%rem = srem i64 %x, 86400
663+
%cmp = icmp slt i64 %rem, 0
664+
%cond = select i1 %cmp, i64 86400, i64 0
665+
%add = add nsw i64 %rem, %cond
666+
%cmp1 = icmp ugt i64 %add, 86399
667+
ret i1 %cmp1
668+
}
669+
670+
define i1 @test_icmp_mod_commuted2(i64 noundef %x) {
671+
; CHECK-LABEL: @test_icmp_mod_commuted2(
672+
; CHECK-NEXT: entry:
673+
; CHECK-NEXT: [[REM:%.*]] = srem i64 [[X:%.*]], 86400
674+
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[REM]], -1
675+
; CHECK-NEXT: [[COND:%.*]] = select i1 [[CMP]], i64 0, i64 86400
676+
; CHECK-NEXT: [[ADD:%.*]] = add nsw i64 [[COND]], [[REM]]
677+
; CHECK-NEXT: ret i1 false
678+
;
679+
entry:
680+
%rem = srem i64 %x, 86400
681+
%cmp = icmp sgt i64 %rem, -1
682+
%cond = select i1 %cmp, i64 0, i64 86400
683+
%add = add nsw i64 %cond, %rem
684+
%cmp1 = icmp ugt i64 %add, 86399
685+
ret i1 %cmp1
686+
}
687+
652688
define i1 @test_icmp_mod_undef(i64 %x) {
653689
; CHECK-LABEL: @test_icmp_mod_undef(
654690
; CHECK-NEXT: entry:
@@ -667,3 +703,22 @@ entry:
667703
%cmp1 = icmp ugt i64 %add, 86399
668704
ret i1 %cmp1
669705
}
706+
707+
define i1 @test_icmp_mod_wrong_range(i64 noundef %x) {
708+
; CHECK-LABEL: @test_icmp_mod_wrong_range(
709+
; CHECK-NEXT: entry:
710+
; CHECK-NEXT: [[REM:%.*]] = srem i64 [[X:%.*]], 86400
711+
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[REM]], 0
712+
; CHECK-NEXT: [[COND:%.*]] = select i1 [[CMP]], i64 86401, i64 0
713+
; CHECK-NEXT: [[ADD:%.*]] = add nsw i64 [[COND]], [[REM]]
714+
; CHECK-NEXT: [[CMP1:%.*]] = icmp samesign ugt i64 [[ADD]], 86399
715+
; CHECK-NEXT: ret i1 [[CMP1]]
716+
;
717+
entry:
718+
%rem = srem i64 %x, 86400
719+
%cmp = icmp slt i64 %rem, 0
720+
%cond = select i1 %cmp, i64 86401, i64 0
721+
%add = add nsw i64 %cond, %rem
722+
%cmp1 = icmp ugt i64 %add, 86399
723+
ret i1 %cmp1
724+
}

0 commit comments

Comments
 (0)