xref: /llvm-project/llvm/test/Analysis/ScalarEvolution/huge_expression_limit.ll (revision 50153213c80286c6c91da4612aaf234cc6438c63)
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2; RUN: opt < %s -disable-output "-passes=print<scalar-evolution>" -scalar-evolution-huge-expr-threshold=1 2>&1 | FileCheck %s
3
4define void @test(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f) {
5; CHECK-LABEL: 'test'
6; CHECK-NEXT:  Classifying expressions for: @test
7; CHECK-NEXT:    %add1 = add i32 %a, %b
8; CHECK-NEXT:    --> (%a + %b) U: full-set S: full-set
9; CHECK-NEXT:    %add2 = add i32 %add1, %c
10; CHECK-NEXT:    --> ((%a + %b) + %c) U: full-set S: full-set
11; CHECK-NEXT:    %add3 = add i32 %add2, %d
12; CHECK-NEXT:    --> (((%a + %b) + %c) + %d) U: full-set S: full-set
13; CHECK-NEXT:    %add4 = add i32 %add3, %e
14; CHECK-NEXT:    --> ((((%a + %b) + %c) + %d) + %e) U: full-set S: full-set
15; CHECK-NEXT:    %add5 = add i32 %add4, %f
16; CHECK-NEXT:    --> (((((%a + %b) + %c) + %d) + %e) + %f) U: full-set S: full-set
17; CHECK-NEXT:    %mul1 = mul i32 %a, %b
18; CHECK-NEXT:    --> (%a * %b) U: full-set S: full-set
19; CHECK-NEXT:    %mul2 = mul i32 %mul1, %c
20; CHECK-NEXT:    --> ((%a * %b) * %c) U: full-set S: full-set
21; CHECK-NEXT:    %mul3 = mul i32 %mul2, %d
22; CHECK-NEXT:    --> (((%a * %b) * %c) * %d) U: full-set S: full-set
23; CHECK-NEXT:    %mul4 = mul i32 %mul3, %e
24; CHECK-NEXT:    --> ((((%a * %b) * %c) * %d) * %e) U: full-set S: full-set
25; CHECK-NEXT:    %mul5 = mul i32 %mul4, %f
26; CHECK-NEXT:    --> (((((%a * %b) * %c) * %d) * %e) * %f) U: full-set S: full-set
27; CHECK-NEXT:  Determining loop execution counts for: @test
28;
29  %add1 = add i32 %a, %b
30  %add2 = add i32 %add1, %c
31  %add3 = add i32 %add2, %d
32  %add4 = add i32 %add3, %e
33  %add5 = add i32 %add4, %f
34
35  %mul1 = mul i32 %a, %b
36  %mul2 = mul i32 %mul1, %c
37  %mul3 = mul i32 %mul2, %d
38  %mul4 = mul i32 %mul3, %e
39  %mul5 = mul i32 %mul4, %f
40  ret void
41}
42