@@ -1709,37 +1709,23 @@ define void @ptr_induction_early_exit_eq_1_align_assumption_1(ptr %a, ptr %b, pt
17091709; CHECK-LABEL: 'ptr_induction_early_exit_eq_1_align_assumption_1'
17101710; CHECK-NEXT: Classifying expressions for: @ptr_induction_early_exit_eq_1_align_assumption_1
17111711; CHECK-NEXT: %a_ = load ptr, ptr %a, align 8
1712- ; CHECK-NEXT: --> %a_ U: full-set S: full-set
1712+ ; CHECK-NEXT: --> %a_ U: [0,-7) S: [-9223372036854775808,9223372036854775801)
17131713; CHECK-NEXT: %b_ = load ptr, ptr %b, align 8
1714- ; CHECK-NEXT: --> %b_ U: full-set S: full-set
1714+ ; CHECK-NEXT: --> %b_ U: [0,-7) S: [-9223372036854775808,9223372036854775801)
17151715; CHECK-NEXT: %ptr.iv = phi ptr [ %ptr.iv.next, %loop.inc ], [ %a_, %entry ]
1716- ; CHECK-NEXT: --> {%a_,+,8}<nuw><%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1716+ ; CHECK-NEXT: --> {%a_,+,8}<nuw><%loop> U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
17171717; CHECK-NEXT: %ld1 = load ptr, ptr %ptr.iv, align 8
17181718; CHECK-NEXT: --> %ld1 U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
17191719; CHECK-NEXT: %ptr.iv.next = getelementptr inbounds i8, ptr %ptr.iv, i64 8
1720- ; CHECK-NEXT: --> {(8 + %a_),+,8}<nw><%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1720+ ; CHECK-NEXT: --> {(8 + %a_),+,8}<nw><%loop> U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
17211721; CHECK-NEXT: Determining loop execution counts for: @ptr_induction_early_exit_eq_1_align_assumption_1
17221722; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
17231723; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
1724- ; CHECK-NEXT: exit count for loop.inc: ***COULDNOTCOMPUTE***
1725- ; CHECK-NEXT: predicated exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1726- ; CHECK-NEXT: Predicates:
1727- ; CHECK-NEXT: Equal predicate: (zext i3 ((trunc i64 (ptrtoint ptr %b_ to i64) to i3) + (-1 * (trunc i64 (ptrtoint ptr %a_ to i64) to i3))) to i64) == 0
1728- ; CHECK-EMPTY:
1729- ; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
1730- ; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
1724+ ; CHECK-NEXT: exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1725+ ; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 2305843009213693951
1726+ ; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
17311727; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
1732- ; CHECK-NEXT: symbolic max exit count for loop.inc: ***COULDNOTCOMPUTE***
1733- ; CHECK-NEXT: predicated symbolic max exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1734- ; CHECK-NEXT: Predicates:
1735- ; CHECK-NEXT: Equal predicate: (zext i3 ((trunc i64 (ptrtoint ptr %b_ to i64) to i3) + (-1 * (trunc i64 (ptrtoint ptr %a_ to i64) to i3))) to i64) == 0
1736- ; CHECK-EMPTY:
1737- ; CHECK-NEXT: Loop %loop: Predicated constant max backedge-taken count is i64 2305843009213693951
1738- ; CHECK-NEXT: Predicates:
1739- ; CHECK-NEXT: Equal predicate: (zext i3 ((trunc i64 (ptrtoint ptr %b_ to i64) to i3) + (-1 * (trunc i64 (ptrtoint ptr %a_ to i64) to i3))) to i64) == 0
1740- ; CHECK-NEXT: Loop %loop: Predicated symbolic max backedge-taken count is ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1741- ; CHECK-NEXT: Predicates:
1742- ; CHECK-NEXT: Equal predicate: (zext i3 ((trunc i64 (ptrtoint ptr %b_ to i64) to i3) + (-1 * (trunc i64 (ptrtoint ptr %a_ to i64) to i3))) to i64) == 0
1728+ ; CHECK-NEXT: symbolic max exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
17431729;
17441730entry:
17451731 %a_ = load ptr , ptr %a
@@ -1768,37 +1754,23 @@ define void @ptr_induction_early_exit_eq_1_align_assumption_2(ptr %a, ptr %b, pt
17681754; CHECK-LABEL: 'ptr_induction_early_exit_eq_1_align_assumption_2'
17691755; CHECK-NEXT: Classifying expressions for: @ptr_induction_early_exit_eq_1_align_assumption_2
17701756; CHECK-NEXT: %a_ = load ptr, ptr %a, align 8
1771- ; CHECK-NEXT: --> %a_ U: full-set S: full-set
1757+ ; CHECK-NEXT: --> %a_ U: [0,-7) S: [-9223372036854775808,9223372036854775801)
17721758; CHECK-NEXT: %b_ = load ptr, ptr %b, align 8
1773- ; CHECK-NEXT: --> %b_ U: full-set S: full-set
1759+ ; CHECK-NEXT: --> %b_ U: [0,-7) S: [-9223372036854775808,9223372036854775801)
17741760; CHECK-NEXT: %ptr.iv = phi ptr [ %ptr.iv.next, %loop.inc ], [ %a_, %entry ]
1775- ; CHECK-NEXT: --> {%a_,+,8}<nuw><%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1761+ ; CHECK-NEXT: --> {%a_,+,8}<nuw><%loop> U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
17761762; CHECK-NEXT: %ld1 = load ptr, ptr %ptr.iv, align 8
17771763; CHECK-NEXT: --> %ld1 U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
17781764; CHECK-NEXT: %ptr.iv.next = getelementptr inbounds i8, ptr %ptr.iv, i64 8
1779- ; CHECK-NEXT: --> {(8 + %a_),+,8}<nw><%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
1765+ ; CHECK-NEXT: --> {(8 + %a_),+,8}<nw><%loop> U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
17801766; CHECK-NEXT: Determining loop execution counts for: @ptr_induction_early_exit_eq_1_align_assumption_2
17811767; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
17821768; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
1783- ; CHECK-NEXT: exit count for loop.inc: ***COULDNOTCOMPUTE***
1784- ; CHECK-NEXT: predicated exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1785- ; CHECK-NEXT: Predicates:
1786- ; CHECK-NEXT: Equal predicate: (zext i3 ((trunc i64 (ptrtoint ptr %b_ to i64) to i3) + (-1 * (trunc i64 (ptrtoint ptr %a_ to i64) to i3))) to i64) == 0
1787- ; CHECK-EMPTY:
1788- ; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
1789- ; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
1769+ ; CHECK-NEXT: exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1770+ ; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 2305843009213693951
1771+ ; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
17901772; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
1791- ; CHECK-NEXT: symbolic max exit count for loop.inc: ***COULDNOTCOMPUTE***
1792- ; CHECK-NEXT: predicated symbolic max exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1793- ; CHECK-NEXT: Predicates:
1794- ; CHECK-NEXT: Equal predicate: (zext i3 ((trunc i64 (ptrtoint ptr %b_ to i64) to i3) + (-1 * (trunc i64 (ptrtoint ptr %a_ to i64) to i3))) to i64) == 0
1795- ; CHECK-EMPTY:
1796- ; CHECK-NEXT: Loop %loop: Predicated constant max backedge-taken count is i64 2305843009213693951
1797- ; CHECK-NEXT: Predicates:
1798- ; CHECK-NEXT: Equal predicate: (zext i3 ((trunc i64 (ptrtoint ptr %b_ to i64) to i3) + (-1 * (trunc i64 (ptrtoint ptr %a_ to i64) to i3))) to i64) == 0
1799- ; CHECK-NEXT: Loop %loop: Predicated symbolic max backedge-taken count is ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
1800- ; CHECK-NEXT: Predicates:
1801- ; CHECK-NEXT: Equal predicate: (zext i3 ((trunc i64 (ptrtoint ptr %b_ to i64) to i3) + (-1 * (trunc i64 (ptrtoint ptr %a_ to i64) to i3))) to i64) == 0
1773+ ; CHECK-NEXT: symbolic max exit count for loop.inc: ((-8 + (-1 * (ptrtoint ptr %a_ to i64)) + (ptrtoint ptr %b_ to i64)) /u 8)
18021774;
18031775entry:
18041776 %a_ = load ptr , ptr %a
0 commit comments