AMDGPU: Fix warnings introduced by r310336
[llvm-project.git] / polly / test / DependenceInfo / reduction_sequence.ll
blob05d86970267dde22d624f0cad5add891da6f362e
1 ; RUN: opt %loadPolly -polly-dependences -analyze < %s | FileCheck %s
3 ;    void manyreductions(long *A) {
4 ;      for (long i = 0; i < 1024; i++)
5 ;        for (long j = 0; j < 1024; j++)
6 ;          *A += 42;
8 ;      for (long i = 0; i < 1024; i++)
9 ;        for (long j = 0; j < 1024; j++)
10 ;          *A += 42;
12 ;      for (long i = 0; i < 1024; i++)
13 ;        for (long j = 0; j < 1024; j++)
14 ;          *A += 42;
16 ;      for (long i = 0; i < 1024; i++)
17 ;        for (long j = 0; j < 1024; j++)
18 ;          *A += 42;
20 ;      for (long i = 0; i < 1024; i++)
21 ;        for (long j = 0; j < 1024; j++)
22 ;          *A += 42;
24 ;      for (long i = 0; i < 1024; i++)
25 ;        for (long j = 0; j < 1024; j++)
26 ;          *A += 42;
28 ;      for (long i = 0; i < 1024; i++)
29 ;        for (long j = 0; j < 1024; j++)
30 ;          *A += 42;
32 ;      for (long i = 0; i < 1024; i++)
33 ;        for (long j = 0; j < 1024; j++)
34 ;          *A += 42;
36 ;      for (long i = 0; i < 1024; i++)
37 ;        for (long j = 0; j < 1024; j++)
38 ;          *A += 42;
40 ;      for (long i = 0; i < 1024; i++)
41 ;        for (long j = 0; j < 1024; j++)
42 ;          *A += 42;
44 ;      for (long i = 0; i < 1024; i++)
45 ;        for (long j = 0; j < 1024; j++)
46 ;          *A += 42;
48 ;      for (long i = 0; i < 1024; i++)
49 ;        for (long j = 0; j < 1024; j++)
50 ;          *A += 42;
52 ;      for (long i = 0; i < 1024; i++)
53 ;        for (long j = 0; j < 1024; j++)
54 ;          *A += 42;
56 ;      for (long i = 0; i < 1024; i++)
57 ;        for (long j = 0; j < 1024; j++)
58 ;          *A += 42;
59 ;    }
61 ; CHECK:        RAW dependences:
62 ; CHECK-NEXT:           { Stmt_bb150[1023, 1023] -> Stmt_bb162[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb150[i0, i1] -> Stmt_bb162[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb150[1023, 1023] -> Stmt_bb162[0, 0]; Stmt_bb174[1023, 1023] -> Stmt_bb186[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb174[i0, i1] -> Stmt_bb186[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb174[1023, 1023] -> Stmt_bb186[0, 0]; Stmt_bb102[1023, 1023] -> Stmt_bb114[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb102[i0, i1] -> Stmt_bb114[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb102[1023, 1023] -> Stmt_bb114[0, 0]; Stmt_bb42[1023, 1023] -> Stmt_bb54[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb42[i0, i1] -> Stmt_bb54[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb42[1023, 1023] -> Stmt_bb54[0, 0]; Stmt_bb54[1023, 1023] -> Stmt_bb66[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb54[i0, i1] -> Stmt_bb66[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb54[1023, 1023] -> Stmt_bb66[0, 0]; Stmt_bb31[1023, 1023] -> Stmt_bb42[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb31[i0, i1] -> Stmt_bb42[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb31[1023, 1023] -> Stmt_bb42[0, 0]; Stmt_bb162[1023, 1023] -> Stmt_bb174[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb162[i0, i1] -> Stmt_bb174[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb162[1023, 1023] -> Stmt_bb174[0, 0]; Stmt_bb126[1023, 1023] -> Stmt_bb138[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb126[i0, i1] -> Stmt_bb138[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb126[1023, 1023] -> Stmt_bb138[0, 0]; Stmt_bb90[1023, 1023] -> Stmt_bb102[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb90[i0, i1] -> Stmt_bb102[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb90[1023, 1023] -> Stmt_bb102[0, 0]; Stmt_bb138[1023, 1023] -> Stmt_bb150[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb138[i0, i1] -> Stmt_bb150[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb138[1023, 1023] -> Stmt_bb150[0, 0]; Stmt_bb66[1023, 1023] -> Stmt_bb78[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb66[i0, i1] -> Stmt_bb78[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb66[1023, 1023] -> Stmt_bb78[0, 0]; Stmt_bb78[1023, 1023] -> Stmt_bb90[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb78[i0, i1] -> Stmt_bb90[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb78[1023, 1023] -> Stmt_bb90[0, 0]; Stmt_bb114[1023, 1023] -> Stmt_bb126[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb114[i0, i1] -> Stmt_bb126[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb114[1023, 1023] -> Stmt_bb126[0, 0] }
63 ; CHECK-NEXT:   WAR dependences:
64 ; CHECK-NEXT:     { Stmt_bb150[1023, 1023] -> Stmt_bb162[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb150[i0, i1] -> Stmt_bb162[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb150[1023, 1023] -> Stmt_bb162[0, 0]; Stmt_bb174[1023, 1023] -> Stmt_bb186[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb174[i0, i1] -> Stmt_bb186[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb174[1023, 1023] -> Stmt_bb186[0, 0]; Stmt_bb102[1023, 1023] -> Stmt_bb114[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb102[i0, i1] -> Stmt_bb114[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb102[1023, 1023] -> Stmt_bb114[0, 0]; Stmt_bb42[1023, 1023] -> Stmt_bb54[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb42[i0, i1] -> Stmt_bb54[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb42[1023, 1023] -> Stmt_bb54[0, 0]; Stmt_bb54[1023, 1023] -> Stmt_bb66[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb54[i0, i1] -> Stmt_bb66[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb54[1023, 1023] -> Stmt_bb66[0, 0]; Stmt_bb31[1023, 1023] -> Stmt_bb42[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb31[i0, i1] -> Stmt_bb42[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb31[1023, 1023] -> Stmt_bb42[0, 0]; Stmt_bb162[1023, 1023] -> Stmt_bb174[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb162[i0, i1] -> Stmt_bb174[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb162[1023, 1023] -> Stmt_bb174[0, 0]; Stmt_bb126[1023, 1023] -> Stmt_bb138[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb126[i0, i1] -> Stmt_bb138[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb126[1023, 1023] -> Stmt_bb138[0, 0]; Stmt_bb90[1023, 1023] -> Stmt_bb102[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb90[i0, i1] -> Stmt_bb102[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb90[1023, 1023] -> Stmt_bb102[0, 0]; Stmt_bb138[1023, 1023] -> Stmt_bb150[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb138[i0, i1] -> Stmt_bb150[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb138[1023, 1023] -> Stmt_bb150[0, 0]; Stmt_bb66[1023, 1023] -> Stmt_bb78[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb66[i0, i1] -> Stmt_bb78[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb66[1023, 1023] -> Stmt_bb78[0, 0]; Stmt_bb78[1023, 1023] -> Stmt_bb90[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb78[i0, i1] -> Stmt_bb90[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb78[1023, 1023] -> Stmt_bb90[0, 0]; Stmt_bb114[1023, 1023] -> Stmt_bb126[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb114[i0, i1] -> Stmt_bb126[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb114[1023, 1023] -> Stmt_bb126[0, 0] }
65 ; CHECK-NEXT:   WAW dependences:
66 ; CHECK-NEXT:           { Stmt_bb150[1023, 1023] -> Stmt_bb162[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb150[i0, i1] -> Stmt_bb162[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb150[1023, 1023] -> Stmt_bb162[0, 0]; Stmt_bb174[1023, 1023] -> Stmt_bb186[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb174[i0, i1] -> Stmt_bb186[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb174[1023, 1023] -> Stmt_bb186[0, 0]; Stmt_bb102[1023, 1023] -> Stmt_bb114[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb102[i0, i1] -> Stmt_bb114[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb102[1023, 1023] -> Stmt_bb114[0, 0]; Stmt_bb42[1023, 1023] -> Stmt_bb54[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb42[i0, i1] -> Stmt_bb54[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb42[1023, 1023] -> Stmt_bb54[0, 0]; Stmt_bb54[1023, 1023] -> Stmt_bb66[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb54[i0, i1] -> Stmt_bb66[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb54[1023, 1023] -> Stmt_bb66[0, 0]; Stmt_bb31[1023, 1023] -> Stmt_bb42[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb31[i0, i1] -> Stmt_bb42[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb31[1023, 1023] -> Stmt_bb42[0, 0]; Stmt_bb162[1023, 1023] -> Stmt_bb174[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb162[i0, i1] -> Stmt_bb174[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb162[1023, 1023] -> Stmt_bb174[0, 0]; Stmt_bb126[1023, 1023] -> Stmt_bb138[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb126[i0, i1] -> Stmt_bb138[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb126[1023, 1023] -> Stmt_bb138[0, 0]; Stmt_bb90[1023, 1023] -> Stmt_bb102[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb90[i0, i1] -> Stmt_bb102[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb90[1023, 1023] -> Stmt_bb102[0, 0]; Stmt_bb138[1023, 1023] -> Stmt_bb150[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb138[i0, i1] -> Stmt_bb150[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb138[1023, 1023] -> Stmt_bb150[0, 0]; Stmt_bb66[1023, 1023] -> Stmt_bb78[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb66[i0, i1] -> Stmt_bb78[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb66[1023, 1023] -> Stmt_bb78[0, 0]; Stmt_bb78[1023, 1023] -> Stmt_bb90[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb78[i0, i1] -> Stmt_bb90[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb78[1023, 1023] -> Stmt_bb90[0, 0]; Stmt_bb114[1023, 1023] -> Stmt_bb126[o0, o1] : o0 <= 1023 and o1 >= 0 and -1024o0 < o1 <= 1023; Stmt_bb114[i0, i1] -> Stmt_bb126[0, 0] : i0 >= 0 and 0 <= i1 <= 1048574 - 1024i0 and i1 <= 1023; Stmt_bb114[1023, 1023] -> Stmt_bb126[0, 0] }
67 ; CHECK-NEXT:   Reduction dependences:
68 ; CHECK-NEXT:           { Stmt_bb102[i0, i1] -> Stmt_bb102[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb102[i0, 1023] -> Stmt_bb102[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb90[i0, i1] -> Stmt_bb90[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb90[i0, 1023] -> Stmt_bb90[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb186[i0, i1] -> Stmt_bb186[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb186[i0, 1023] -> Stmt_bb186[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb66[i0, i1] -> Stmt_bb66[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb66[i0, 1023] -> Stmt_bb66[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb31[i0, i1] -> Stmt_bb31[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb31[i0, 1023] -> Stmt_bb31[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb138[i0, i1] -> Stmt_bb138[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb138[i0, 1023] -> Stmt_bb138[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb126[i0, i1] -> Stmt_bb126[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb126[i0, 1023] -> Stmt_bb126[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb42[i0, i1] -> Stmt_bb42[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb42[i0, 1023] -> Stmt_bb42[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb150[i0, i1] -> Stmt_bb150[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb150[i0, 1023] -> Stmt_bb150[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb78[i0, i1] -> Stmt_bb78[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb78[i0, 1023] -> Stmt_bb78[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb174[i0, i1] -> Stmt_bb174[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb174[i0, 1023] -> Stmt_bb174[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb114[i0, i1] -> Stmt_bb114[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb114[i0, 1023] -> Stmt_bb114[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb162[i0, i1] -> Stmt_bb162[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb162[i0, 1023] -> Stmt_bb162[1 + i0, 0] : 0 <= i0 <= 1022; Stmt_bb54[i0, i1] -> Stmt_bb54[i0, 1 + i1] : 0 <= i0 <= 1023 and 0 <= i1 <= 1022; Stmt_bb54[i0, 1023] -> Stmt_bb54[1 + i0, 0] : 0 <= i0 <= 1022 }
70 ; CHECK-NEXT:   Transitive closure of reduction dependences:
71 ; CHECK-NEXT:  { Stmt_bb102[i0, i1] -> Stmt_bb102[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb90[i0, i1] -> Stmt_bb90[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb186[i0, i1] -> Stmt_bb186[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb66[i0, i1] -> Stmt_bb66[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb31[i0, i1] -> Stmt_bb31[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb138[i0, i1] -> Stmt_bb138[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb126[i0, i1] -> Stmt_bb126[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb42[i0, i1] -> Stmt_bb42[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb150[i0, i1] -> Stmt_bb150[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb78[i0, i1] -> Stmt_bb78[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb174[i0, i1] -> Stmt_bb174[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb114[i0, i1] -> Stmt_bb114[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb162[i0, i1] -> Stmt_bb162[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)); Stmt_bb54[i0, i1] -> Stmt_bb54[o0, o1] : 0 <= i1 <= 1023 and 0 <= o1 <= 1023 and ((i0 >= 0 and o0 <= 1023 and o1 > 1024i0 + i1 - 1024o0) or (i0 <= 1023 and o0 >= 0 and o1 < 1024i0 + i1 - 1024o0)) }
74 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
76 define void @manyreductions(i64* %A) {
77 bb:
78   br label %bb28
80 bb28:                                             ; preds = %bb36, %bb
81   %i.0 = phi i64 [ 0, %bb ], [ %tmp37, %bb36 ]
82   %exitcond27 = icmp ne i64 %i.0, 1024
83   br i1 %exitcond27, label %bb29, label %bb38
85 bb29:                                             ; preds = %bb28
86   br label %bb30
88 bb30:                                             ; preds = %bb33, %bb29
89   %j.0 = phi i64 [ 0, %bb29 ], [ %tmp34, %bb33 ]
90   %exitcond26 = icmp ne i64 %j.0, 1024
91   br i1 %exitcond26, label %bb31, label %bb35
93 bb31:                                             ; preds = %bb30
94   %tmp = load i64, i64* %A, align 8
95   %tmp32 = add nsw i64 %tmp, 42
96   store i64 %tmp32, i64* %A, align 8
97   br label %bb33
99 bb33:                                             ; preds = %bb31
100   %tmp34 = add nuw nsw i64 %j.0, 1
101   br label %bb30
103 bb35:                                             ; preds = %bb30
104   br label %bb36
106 bb36:                                             ; preds = %bb35
107   %tmp37 = add nuw nsw i64 %i.0, 1
108   br label %bb28
110 bb38:                                             ; preds = %bb28
111   br label %bb39
113 bb39:                                             ; preds = %bb48, %bb38
114   %i1.0 = phi i64 [ 0, %bb38 ], [ %tmp49, %bb48 ]
115   %exitcond25 = icmp ne i64 %i1.0, 1024
116   br i1 %exitcond25, label %bb40, label %bb50
118 bb40:                                             ; preds = %bb39
119   br label %bb41
121 bb41:                                             ; preds = %bb45, %bb40
122   %j2.0 = phi i64 [ 0, %bb40 ], [ %tmp46, %bb45 ]
123   %exitcond24 = icmp ne i64 %j2.0, 1024
124   br i1 %exitcond24, label %bb42, label %bb47
126 bb42:                                             ; preds = %bb41
127   %tmp43 = load i64, i64* %A, align 8
128   %tmp44 = add nsw i64 %tmp43, 42
129   store i64 %tmp44, i64* %A, align 8
130   br label %bb45
132 bb45:                                             ; preds = %bb42
133   %tmp46 = add nuw nsw i64 %j2.0, 1
134   br label %bb41
136 bb47:                                             ; preds = %bb41
137   br label %bb48
139 bb48:                                             ; preds = %bb47
140   %tmp49 = add nuw nsw i64 %i1.0, 1
141   br label %bb39
143 bb50:                                             ; preds = %bb39
144   br label %bb51
146 bb51:                                             ; preds = %bb60, %bb50
147   %i3.0 = phi i64 [ 0, %bb50 ], [ %tmp61, %bb60 ]
148   %exitcond23 = icmp ne i64 %i3.0, 1024
149   br i1 %exitcond23, label %bb52, label %bb62
151 bb52:                                             ; preds = %bb51
152   br label %bb53
154 bb53:                                             ; preds = %bb57, %bb52
155   %j4.0 = phi i64 [ 0, %bb52 ], [ %tmp58, %bb57 ]
156   %exitcond22 = icmp ne i64 %j4.0, 1024
157   br i1 %exitcond22, label %bb54, label %bb59
159 bb54:                                             ; preds = %bb53
160   %tmp55 = load i64, i64* %A, align 8
161   %tmp56 = add nsw i64 %tmp55, 42
162   store i64 %tmp56, i64* %A, align 8
163   br label %bb57
165 bb57:                                             ; preds = %bb54
166   %tmp58 = add nuw nsw i64 %j4.0, 1
167   br label %bb53
169 bb59:                                             ; preds = %bb53
170   br label %bb60
172 bb60:                                             ; preds = %bb59
173   %tmp61 = add nuw nsw i64 %i3.0, 1
174   br label %bb51
176 bb62:                                             ; preds = %bb51
177   br label %bb63
179 bb63:                                             ; preds = %bb72, %bb62
180   %i5.0 = phi i64 [ 0, %bb62 ], [ %tmp73, %bb72 ]
181   %exitcond21 = icmp ne i64 %i5.0, 1024
182   br i1 %exitcond21, label %bb64, label %bb74
184 bb64:                                             ; preds = %bb63
185   br label %bb65
187 bb65:                                             ; preds = %bb69, %bb64
188   %j6.0 = phi i64 [ 0, %bb64 ], [ %tmp70, %bb69 ]
189   %exitcond20 = icmp ne i64 %j6.0, 1024
190   br i1 %exitcond20, label %bb66, label %bb71
192 bb66:                                             ; preds = %bb65
193   %tmp67 = load i64, i64* %A, align 8
194   %tmp68 = add nsw i64 %tmp67, 42
195   store i64 %tmp68, i64* %A, align 8
196   br label %bb69
198 bb69:                                             ; preds = %bb66
199   %tmp70 = add nuw nsw i64 %j6.0, 1
200   br label %bb65
202 bb71:                                             ; preds = %bb65
203   br label %bb72
205 bb72:                                             ; preds = %bb71
206   %tmp73 = add nuw nsw i64 %i5.0, 1
207   br label %bb63
209 bb74:                                             ; preds = %bb63
210   br label %bb75
212 bb75:                                             ; preds = %bb84, %bb74
213   %i7.0 = phi i64 [ 0, %bb74 ], [ %tmp85, %bb84 ]
214   %exitcond19 = icmp ne i64 %i7.0, 1024
215   br i1 %exitcond19, label %bb76, label %bb86
217 bb76:                                             ; preds = %bb75
218   br label %bb77
220 bb77:                                             ; preds = %bb81, %bb76
221   %j8.0 = phi i64 [ 0, %bb76 ], [ %tmp82, %bb81 ]
222   %exitcond18 = icmp ne i64 %j8.0, 1024
223   br i1 %exitcond18, label %bb78, label %bb83
225 bb78:                                             ; preds = %bb77
226   %tmp79 = load i64, i64* %A, align 8
227   %tmp80 = add nsw i64 %tmp79, 42
228   store i64 %tmp80, i64* %A, align 8
229   br label %bb81
231 bb81:                                             ; preds = %bb78
232   %tmp82 = add nuw nsw i64 %j8.0, 1
233   br label %bb77
235 bb83:                                             ; preds = %bb77
236   br label %bb84
238 bb84:                                             ; preds = %bb83
239   %tmp85 = add nuw nsw i64 %i7.0, 1
240   br label %bb75
242 bb86:                                             ; preds = %bb75
243   br label %bb87
245 bb87:                                             ; preds = %bb96, %bb86
246   %i9.0 = phi i64 [ 0, %bb86 ], [ %tmp97, %bb96 ]
247   %exitcond17 = icmp ne i64 %i9.0, 1024
248   br i1 %exitcond17, label %bb88, label %bb98
250 bb88:                                             ; preds = %bb87
251   br label %bb89
253 bb89:                                             ; preds = %bb93, %bb88
254   %j10.0 = phi i64 [ 0, %bb88 ], [ %tmp94, %bb93 ]
255   %exitcond16 = icmp ne i64 %j10.0, 1024
256   br i1 %exitcond16, label %bb90, label %bb95
258 bb90:                                             ; preds = %bb89
259   %tmp91 = load i64, i64* %A, align 8
260   %tmp92 = add nsw i64 %tmp91, 42
261   store i64 %tmp92, i64* %A, align 8
262   br label %bb93
264 bb93:                                             ; preds = %bb90
265   %tmp94 = add nuw nsw i64 %j10.0, 1
266   br label %bb89
268 bb95:                                             ; preds = %bb89
269   br label %bb96
271 bb96:                                             ; preds = %bb95
272   %tmp97 = add nuw nsw i64 %i9.0, 1
273   br label %bb87
275 bb98:                                             ; preds = %bb87
276   br label %bb99
278 bb99:                                             ; preds = %bb108, %bb98
279   %i11.0 = phi i64 [ 0, %bb98 ], [ %tmp109, %bb108 ]
280   %exitcond15 = icmp ne i64 %i11.0, 1024
281   br i1 %exitcond15, label %bb100, label %bb110
283 bb100:                                            ; preds = %bb99
284   br label %bb101
286 bb101:                                            ; preds = %bb105, %bb100
287   %j12.0 = phi i64 [ 0, %bb100 ], [ %tmp106, %bb105 ]
288   %exitcond14 = icmp ne i64 %j12.0, 1024
289   br i1 %exitcond14, label %bb102, label %bb107
291 bb102:                                            ; preds = %bb101
292   %tmp103 = load i64, i64* %A, align 8
293   %tmp104 = add nsw i64 %tmp103, 42
294   store i64 %tmp104, i64* %A, align 8
295   br label %bb105
297 bb105:                                            ; preds = %bb102
298   %tmp106 = add nuw nsw i64 %j12.0, 1
299   br label %bb101
301 bb107:                                            ; preds = %bb101
302   br label %bb108
304 bb108:                                            ; preds = %bb107
305   %tmp109 = add nuw nsw i64 %i11.0, 1
306   br label %bb99
308 bb110:                                            ; preds = %bb99
309   br label %bb111
311 bb111:                                            ; preds = %bb120, %bb110
312   %i13.0 = phi i64 [ 0, %bb110 ], [ %tmp121, %bb120 ]
313   %exitcond13 = icmp ne i64 %i13.0, 1024
314   br i1 %exitcond13, label %bb112, label %bb122
316 bb112:                                            ; preds = %bb111
317   br label %bb113
319 bb113:                                            ; preds = %bb117, %bb112
320   %j14.0 = phi i64 [ 0, %bb112 ], [ %tmp118, %bb117 ]
321   %exitcond12 = icmp ne i64 %j14.0, 1024
322   br i1 %exitcond12, label %bb114, label %bb119
324 bb114:                                            ; preds = %bb113
325   %tmp115 = load i64, i64* %A, align 8
326   %tmp116 = add nsw i64 %tmp115, 42
327   store i64 %tmp116, i64* %A, align 8
328   br label %bb117
330 bb117:                                            ; preds = %bb114
331   %tmp118 = add nuw nsw i64 %j14.0, 1
332   br label %bb113
334 bb119:                                            ; preds = %bb113
335   br label %bb120
337 bb120:                                            ; preds = %bb119
338   %tmp121 = add nuw nsw i64 %i13.0, 1
339   br label %bb111
341 bb122:                                            ; preds = %bb111
342   br label %bb123
344 bb123:                                            ; preds = %bb132, %bb122
345   %i15.0 = phi i64 [ 0, %bb122 ], [ %tmp133, %bb132 ]
346   %exitcond11 = icmp ne i64 %i15.0, 1024
347   br i1 %exitcond11, label %bb124, label %bb134
349 bb124:                                            ; preds = %bb123
350   br label %bb125
352 bb125:                                            ; preds = %bb129, %bb124
353   %j16.0 = phi i64 [ 0, %bb124 ], [ %tmp130, %bb129 ]
354   %exitcond10 = icmp ne i64 %j16.0, 1024
355   br i1 %exitcond10, label %bb126, label %bb131
357 bb126:                                            ; preds = %bb125
358   %tmp127 = load i64, i64* %A, align 8
359   %tmp128 = add nsw i64 %tmp127, 42
360   store i64 %tmp128, i64* %A, align 8
361   br label %bb129
363 bb129:                                            ; preds = %bb126
364   %tmp130 = add nuw nsw i64 %j16.0, 1
365   br label %bb125
367 bb131:                                            ; preds = %bb125
368   br label %bb132
370 bb132:                                            ; preds = %bb131
371   %tmp133 = add nuw nsw i64 %i15.0, 1
372   br label %bb123
374 bb134:                                            ; preds = %bb123
375   br label %bb135
377 bb135:                                            ; preds = %bb144, %bb134
378   %i17.0 = phi i64 [ 0, %bb134 ], [ %tmp145, %bb144 ]
379   %exitcond9 = icmp ne i64 %i17.0, 1024
380   br i1 %exitcond9, label %bb136, label %bb146
382 bb136:                                            ; preds = %bb135
383   br label %bb137
385 bb137:                                            ; preds = %bb141, %bb136
386   %j18.0 = phi i64 [ 0, %bb136 ], [ %tmp142, %bb141 ]
387   %exitcond8 = icmp ne i64 %j18.0, 1024
388   br i1 %exitcond8, label %bb138, label %bb143
390 bb138:                                            ; preds = %bb137
391   %tmp139 = load i64, i64* %A, align 8
392   %tmp140 = add nsw i64 %tmp139, 42
393   store i64 %tmp140, i64* %A, align 8
394   br label %bb141
396 bb141:                                            ; preds = %bb138
397   %tmp142 = add nuw nsw i64 %j18.0, 1
398   br label %bb137
400 bb143:                                            ; preds = %bb137
401   br label %bb144
403 bb144:                                            ; preds = %bb143
404   %tmp145 = add nuw nsw i64 %i17.0, 1
405   br label %bb135
407 bb146:                                            ; preds = %bb135
408   br label %bb147
410 bb147:                                            ; preds = %bb156, %bb146
411   %i19.0 = phi i64 [ 0, %bb146 ], [ %tmp157, %bb156 ]
412   %exitcond7 = icmp ne i64 %i19.0, 1024
413   br i1 %exitcond7, label %bb148, label %bb158
415 bb148:                                            ; preds = %bb147
416   br label %bb149
418 bb149:                                            ; preds = %bb153, %bb148
419   %j20.0 = phi i64 [ 0, %bb148 ], [ %tmp154, %bb153 ]
420   %exitcond6 = icmp ne i64 %j20.0, 1024
421   br i1 %exitcond6, label %bb150, label %bb155
423 bb150:                                            ; preds = %bb149
424   %tmp151 = load i64, i64* %A, align 8
425   %tmp152 = add nsw i64 %tmp151, 42
426   store i64 %tmp152, i64* %A, align 8
427   br label %bb153
429 bb153:                                            ; preds = %bb150
430   %tmp154 = add nuw nsw i64 %j20.0, 1
431   br label %bb149
433 bb155:                                            ; preds = %bb149
434   br label %bb156
436 bb156:                                            ; preds = %bb155
437   %tmp157 = add nuw nsw i64 %i19.0, 1
438   br label %bb147
440 bb158:                                            ; preds = %bb147
441   br label %bb159
443 bb159:                                            ; preds = %bb168, %bb158
444   %i21.0 = phi i64 [ 0, %bb158 ], [ %tmp169, %bb168 ]
445   %exitcond5 = icmp ne i64 %i21.0, 1024
446   br i1 %exitcond5, label %bb160, label %bb170
448 bb160:                                            ; preds = %bb159
449   br label %bb161
451 bb161:                                            ; preds = %bb165, %bb160
452   %j22.0 = phi i64 [ 0, %bb160 ], [ %tmp166, %bb165 ]
453   %exitcond4 = icmp ne i64 %j22.0, 1024
454   br i1 %exitcond4, label %bb162, label %bb167
456 bb162:                                            ; preds = %bb161
457   %tmp163 = load i64, i64* %A, align 8
458   %tmp164 = add nsw i64 %tmp163, 42
459   store i64 %tmp164, i64* %A, align 8
460   br label %bb165
462 bb165:                                            ; preds = %bb162
463   %tmp166 = add nuw nsw i64 %j22.0, 1
464   br label %bb161
466 bb167:                                            ; preds = %bb161
467   br label %bb168
469 bb168:                                            ; preds = %bb167
470   %tmp169 = add nuw nsw i64 %i21.0, 1
471   br label %bb159
473 bb170:                                            ; preds = %bb159
474   br label %bb171
476 bb171:                                            ; preds = %bb180, %bb170
477   %i23.0 = phi i64 [ 0, %bb170 ], [ %tmp181, %bb180 ]
478   %exitcond3 = icmp ne i64 %i23.0, 1024
479   br i1 %exitcond3, label %bb172, label %bb182
481 bb172:                                            ; preds = %bb171
482   br label %bb173
484 bb173:                                            ; preds = %bb177, %bb172
485   %j24.0 = phi i64 [ 0, %bb172 ], [ %tmp178, %bb177 ]
486   %exitcond2 = icmp ne i64 %j24.0, 1024
487   br i1 %exitcond2, label %bb174, label %bb179
489 bb174:                                            ; preds = %bb173
490   %tmp175 = load i64, i64* %A, align 8
491   %tmp176 = add nsw i64 %tmp175, 42
492   store i64 %tmp176, i64* %A, align 8
493   br label %bb177
495 bb177:                                            ; preds = %bb174
496   %tmp178 = add nuw nsw i64 %j24.0, 1
497   br label %bb173
499 bb179:                                            ; preds = %bb173
500   br label %bb180
502 bb180:                                            ; preds = %bb179
503   %tmp181 = add nuw nsw i64 %i23.0, 1
504   br label %bb171
506 bb182:                                            ; preds = %bb171
507   br label %bb183
509 bb183:                                            ; preds = %bb192, %bb182
510   %i25.0 = phi i64 [ 0, %bb182 ], [ %tmp193, %bb192 ]
511   %exitcond1 = icmp ne i64 %i25.0, 1024
512   br i1 %exitcond1, label %bb184, label %bb194
514 bb184:                                            ; preds = %bb183
515   br label %bb185
517 bb185:                                            ; preds = %bb189, %bb184
518   %j26.0 = phi i64 [ 0, %bb184 ], [ %tmp190, %bb189 ]
519   %exitcond = icmp ne i64 %j26.0, 1024
520   br i1 %exitcond, label %bb186, label %bb191
522 bb186:                                            ; preds = %bb185
523   %tmp187 = load i64, i64* %A, align 8
524   %tmp188 = add nsw i64 %tmp187, 42
525   store i64 %tmp188, i64* %A, align 8
526   br label %bb189
528 bb189:                                            ; preds = %bb186
529   %tmp190 = add nuw nsw i64 %j26.0, 1
530   br label %bb185
532 bb191:                                            ; preds = %bb185
533   br label %bb192
535 bb192:                                            ; preds = %bb191
536   %tmp193 = add nuw nsw i64 %i25.0, 1
537   br label %bb183
539 bb194:                                            ; preds = %bb183
540   ret void