@@ -1777,23 +1777,23 @@ define void @ptr_induction_early_exit_eq_1_align_assumption_1(ptr %a, ptr %b, pt
1777
1777
; CHECK-LABEL: 'ptr_induction_early_exit_eq_1_align_assumption_1'
1778
1778
; CHECK-NEXT: Classifying expressions for: @ptr_induction_early_exit_eq_1_align_assumption_1
1779
1779
; CHECK-NEXT: %a_ = load ptr, ptr %a, align 8
1780
- ; CHECK-NEXT: --> %a_ U: full-set S: full-set
1780
+ ; CHECK-NEXT: --> %a_ U: [0,-7) S: [-9223372036854775808,9223372036854775801)
1781
1781
; CHECK-NEXT: %b_ = load ptr, ptr %b, align 8
1782
- ; CHECK-NEXT: --> %b_ U: full-set S: full-set
1782
+ ; CHECK-NEXT: --> %b_ U: [0,-7) S: [-9223372036854775808,9223372036854775801)
1783
1783
; CHECK-NEXT: %ptr.iv = phi ptr [ %ptr.iv.next, %loop.inc ], [ %a_, %entry ]
1784
- ; CHECK-NEXT: --> {%a_,+,8}<nuw><%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1784
+ ; CHECK-NEXT: --> {%a_,+,8}<nuw><%loop> U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1785
1785
; CHECK-NEXT: %ld1 = load ptr, ptr %ptr.iv, align 8
1786
1786
; CHECK-NEXT: --> %ld1 U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
1787
1787
; CHECK-NEXT: %ptr.iv.next = getelementptr inbounds i8, ptr %ptr.iv, i64 8
1788
- ; CHECK-NEXT: --> {(8 + %a_),+,8}<nw><%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1788
+ ; CHECK-NEXT: --> {(8 + %a_),+,8}<nw><%loop> U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1789
1789
; CHECK-NEXT: Determining loop execution counts for: @ptr_induction_early_exit_eq_1_align_assumption_1
1790
1790
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
1791
1791
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
1792
- ; CHECK-NEXT: exit count for loop.inc: ***COULDNOTCOMPUTE***
1793
- ; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
1794
- ; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
1792
+ ; CHECK-NEXT: exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1793
+ ; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 2305843009213693951
1794
+ ; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1795
1795
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
1796
- ; CHECK-NEXT: symbolic max exit count for loop.inc: ***COULDNOTCOMPUTE***
1796
+ ; CHECK-NEXT: symbolic max exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1797
1797
;
1798
1798
entry:
1799
1799
%a_ = load ptr , ptr %a
@@ -1822,23 +1822,23 @@ define void @ptr_induction_early_exit_eq_1_align_assumption_2(ptr %a, ptr %b, pt
1822
1822
; CHECK-LABEL: 'ptr_induction_early_exit_eq_1_align_assumption_2'
1823
1823
; CHECK-NEXT: Classifying expressions for: @ptr_induction_early_exit_eq_1_align_assumption_2
1824
1824
; CHECK-NEXT: %a_ = load ptr, ptr %a, align 8
1825
- ; CHECK-NEXT: --> %a_ U: full-set S: full-set
1825
+ ; CHECK-NEXT: --> %a_ U: [0,-7) S: [-9223372036854775808,9223372036854775801)
1826
1826
; CHECK-NEXT: %b_ = load ptr, ptr %b, align 8
1827
- ; CHECK-NEXT: --> %b_ U: full-set S: full-set
1827
+ ; CHECK-NEXT: --> %b_ U: [0,-7) S: [-9223372036854775808,9223372036854775801)
1828
1828
; CHECK-NEXT: %ptr.iv = phi ptr [ %ptr.iv.next, %loop.inc ], [ %a_, %entry ]
1829
- ; CHECK-NEXT: --> {%a_,+,8}<nuw><%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1829
+ ; CHECK-NEXT: --> {%a_,+,8}<nuw><%loop> U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1830
1830
; CHECK-NEXT: %ld1 = load ptr, ptr %ptr.iv, align 8
1831
1831
; CHECK-NEXT: --> %ld1 U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
1832
1832
; CHECK-NEXT: %ptr.iv.next = getelementptr inbounds i8, ptr %ptr.iv, i64 8
1833
- ; CHECK-NEXT: --> {(8 + %a_),+,8}<nw><%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1833
+ ; CHECK-NEXT: --> {(8 + %a_),+,8}<nw><%loop> U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1834
1834
; CHECK-NEXT: Determining loop execution counts for: @ptr_induction_early_exit_eq_1_align_assumption_2
1835
1835
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
1836
1836
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
1837
- ; CHECK-NEXT: exit count for loop.inc: ***COULDNOTCOMPUTE***
1838
- ; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
1839
- ; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
1837
+ ; CHECK-NEXT: exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1838
+ ; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 2305843009213693951
1839
+ ; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1840
1840
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
1841
- ; CHECK-NEXT: symbolic max exit count for loop.inc: ***COULDNOTCOMPUTE***
1841
+ ; CHECK-NEXT: symbolic max exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1842
1842
;
1843
1843
entry:
1844
1844
%a_ = load ptr , ptr %a
0 commit comments