diff options
author | Tobias Grosser <tobias@grosser.es> | 2017-02-18 16:38:58 +0000 |
---|---|---|
committer | Tobias Grosser <tobias@grosser.es> | 2017-02-18 16:38:58 +0000 |
commit | 41f0d81b314f50846846ec89a8ae65c965af1ece (patch) | |
tree | 9f7f6d84d54a39d5dcf0fa7d2f7b98fe53fbff00 | |
parent | dc53b680cb735687eb6f7e7a3e2bef321a2fa494 (diff) | |
download | bcm5719-llvm-41f0d81b314f50846846ec89a8ae65c965af1ece.tar.gz bcm5719-llvm-41f0d81b314f50846846ec89a8ae65c965af1ece.zip |
[test] Add reduction sequence test case [NFC]
This test case is a mini performance test case that shows the time needed for a
couple of simple reductions. It takes today about 325ms on my machine to run
this test case through 'opt' with scop construction and reduction detection. It
can be used as mini-proxy for further tuning of the reduction code.
Generally we do not commit performance test cases, but as this is very
small and also very fast it seems OK to keep it in the lit test suite.
This test case will also help to verify that future changes to the reduction
code will not affect the ordering of the reduction sets and will consequently
not cause spurious performance changes that only result from reordering of
dependences in the reduction set.
llvm-svn: 295549
-rw-r--r-- | polly/test/DependenceInfo/reduction_sequence.ll | 539 |
1 files changed, 539 insertions, 0 deletions
diff --git a/polly/test/DependenceInfo/reduction_sequence.ll b/polly/test/DependenceInfo/reduction_sequence.ll new file mode 100644 index 00000000000..e0d0a886ac1 --- /dev/null +++ b/polly/test/DependenceInfo/reduction_sequence.ll @@ -0,0 +1,539 @@ +; RUN: opt %loadPolly -polly-dependences -analyze < %s | FileCheck %s + +; void manyreductions(long *A) { +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; +; for (long i = 0; i < 1024; i++) +; for (long j = 0; j < 1024; j++) +; *A += 42; +; } + +; CHECK: RAW dependences: +; 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] } +; CHECK-NEXT: WAR dependences: +; CHECK-NEXT: { } +; CHECK-NEXT: WAW dependences: +; 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] } +; CHECK-NEXT: Reduction dependences: +; 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_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_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_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_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_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_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_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_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_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 } +; CHECK-NEXT: Transitive closure of reduction dependences: +; 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_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_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_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_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_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_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_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_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_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)) } +; +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" + +define void @manyreductions(i64* %A) { +bb: + br label %bb28 + +bb28: ; preds = %bb36, %bb + %i.0 = phi i64 [ 0, %bb ], [ %tmp37, %bb36 ] + %exitcond27 = icmp ne i64 %i.0, 1024 + br i1 %exitcond27, label %bb29, label %bb38 + +bb29: ; preds = %bb28 + br label %bb30 + +bb30: ; preds = %bb33, %bb29 + %j.0 = phi i64 [ 0, %bb29 ], [ %tmp34, %bb33 ] + %exitcond26 = icmp ne i64 %j.0, 1024 + br i1 %exitcond26, label %bb31, label %bb35 + +bb31: ; preds = %bb30 + %tmp = load i64, i64* %A, align 8 + %tmp32 = add nsw i64 %tmp, 42 + store i64 %tmp32, i64* %A, align 8 + br label %bb33 + +bb33: ; preds = %bb31 + %tmp34 = add nuw nsw i64 %j.0, 1 + br label %bb30 + +bb35: ; preds = %bb30 + br label %bb36 + +bb36: ; preds = %bb35 + %tmp37 = add nuw nsw i64 %i.0, 1 + br label %bb28 + +bb38: ; preds = %bb28 + br label %bb39 + +bb39: ; preds = %bb48, %bb38 + %i1.0 = phi i64 [ 0, %bb38 ], [ %tmp49, %bb48 ] + %exitcond25 = icmp ne i64 %i1.0, 1024 + br i1 %exitcond25, label %bb40, label %bb50 + +bb40: ; preds = %bb39 + br label %bb41 + +bb41: ; preds = %bb45, %bb40 + %j2.0 = phi i64 [ 0, %bb40 ], [ %tmp46, %bb45 ] + %exitcond24 = icmp ne i64 %j2.0, 1024 + br i1 %exitcond24, label %bb42, label %bb47 + +bb42: ; preds = %bb41 + %tmp43 = load i64, i64* %A, align 8 + %tmp44 = add nsw i64 %tmp43, 42 + store i64 %tmp44, i64* %A, align 8 + br label %bb45 + +bb45: ; preds = %bb42 + %tmp46 = add nuw nsw i64 %j2.0, 1 + br label %bb41 + +bb47: ; preds = %bb41 + br label %bb48 + +bb48: ; preds = %bb47 + %tmp49 = add nuw nsw i64 %i1.0, 1 + br label %bb39 + +bb50: ; preds = %bb39 + br label %bb51 + +bb51: ; preds = %bb60, %bb50 + %i3.0 = phi i64 [ 0, %bb50 ], [ %tmp61, %bb60 ] + %exitcond23 = icmp ne i64 %i3.0, 1024 + br i1 %exitcond23, label %bb52, label %bb62 + +bb52: ; preds = %bb51 + br label %bb53 + +bb53: ; preds = %bb57, %bb52 + %j4.0 = phi i64 [ 0, %bb52 ], [ %tmp58, %bb57 ] + %exitcond22 = icmp ne i64 %j4.0, 1024 + br i1 %exitcond22, label %bb54, label %bb59 + +bb54: ; preds = %bb53 + %tmp55 = load i64, i64* %A, align 8 + %tmp56 = add nsw i64 %tmp55, 42 + store i64 %tmp56, i64* %A, align 8 + br label %bb57 + +bb57: ; preds = %bb54 + %tmp58 = add nuw nsw i64 %j4.0, 1 + br label %bb53 + +bb59: ; preds = %bb53 + br label %bb60 + +bb60: ; preds = %bb59 + %tmp61 = add nuw nsw i64 %i3.0, 1 + br label %bb51 + +bb62: ; preds = %bb51 + br label %bb63 + +bb63: ; preds = %bb72, %bb62 + %i5.0 = phi i64 [ 0, %bb62 ], [ %tmp73, %bb72 ] + %exitcond21 = icmp ne i64 %i5.0, 1024 + br i1 %exitcond21, label %bb64, label %bb74 + +bb64: ; preds = %bb63 + br label %bb65 + +bb65: ; preds = %bb69, %bb64 + %j6.0 = phi i64 [ 0, %bb64 ], [ %tmp70, %bb69 ] + %exitcond20 = icmp ne i64 %j6.0, 1024 + br i1 %exitcond20, label %bb66, label %bb71 + +bb66: ; preds = %bb65 + %tmp67 = load i64, i64* %A, align 8 + %tmp68 = add nsw i64 %tmp67, 42 + store i64 %tmp68, i64* %A, align 8 + br label %bb69 + +bb69: ; preds = %bb66 + %tmp70 = add nuw nsw i64 %j6.0, 1 + br label %bb65 + +bb71: ; preds = %bb65 + br label %bb72 + +bb72: ; preds = %bb71 + %tmp73 = add nuw nsw i64 %i5.0, 1 + br label %bb63 + +bb74: ; preds = %bb63 + br label %bb75 + +bb75: ; preds = %bb84, %bb74 + %i7.0 = phi i64 [ 0, %bb74 ], [ %tmp85, %bb84 ] + %exitcond19 = icmp ne i64 %i7.0, 1024 + br i1 %exitcond19, label %bb76, label %bb86 + +bb76: ; preds = %bb75 + br label %bb77 + +bb77: ; preds = %bb81, %bb76 + %j8.0 = phi i64 [ 0, %bb76 ], [ %tmp82, %bb81 ] + %exitcond18 = icmp ne i64 %j8.0, 1024 + br i1 %exitcond18, label %bb78, label %bb83 + +bb78: ; preds = %bb77 + %tmp79 = load i64, i64* %A, align 8 + %tmp80 = add nsw i64 %tmp79, 42 + store i64 %tmp80, i64* %A, align 8 + br label %bb81 + +bb81: ; preds = %bb78 + %tmp82 = add nuw nsw i64 %j8.0, 1 + br label %bb77 + +bb83: ; preds = %bb77 + br label %bb84 + +bb84: ; preds = %bb83 + %tmp85 = add nuw nsw i64 %i7.0, 1 + br label %bb75 + +bb86: ; preds = %bb75 + br label %bb87 + +bb87: ; preds = %bb96, %bb86 + %i9.0 = phi i64 [ 0, %bb86 ], [ %tmp97, %bb96 ] + %exitcond17 = icmp ne i64 %i9.0, 1024 + br i1 %exitcond17, label %bb88, label %bb98 + +bb88: ; preds = %bb87 + br label %bb89 + +bb89: ; preds = %bb93, %bb88 + %j10.0 = phi i64 [ 0, %bb88 ], [ %tmp94, %bb93 ] + %exitcond16 = icmp ne i64 %j10.0, 1024 + br i1 %exitcond16, label %bb90, label %bb95 + +bb90: ; preds = %bb89 + %tmp91 = load i64, i64* %A, align 8 + %tmp92 = add nsw i64 %tmp91, 42 + store i64 %tmp92, i64* %A, align 8 + br label %bb93 + +bb93: ; preds = %bb90 + %tmp94 = add nuw nsw i64 %j10.0, 1 + br label %bb89 + +bb95: ; preds = %bb89 + br label %bb96 + +bb96: ; preds = %bb95 + %tmp97 = add nuw nsw i64 %i9.0, 1 + br label %bb87 + +bb98: ; preds = %bb87 + br label %bb99 + +bb99: ; preds = %bb108, %bb98 + %i11.0 = phi i64 [ 0, %bb98 ], [ %tmp109, %bb108 ] + %exitcond15 = icmp ne i64 %i11.0, 1024 + br i1 %exitcond15, label %bb100, label %bb110 + +bb100: ; preds = %bb99 + br label %bb101 + +bb101: ; preds = %bb105, %bb100 + %j12.0 = phi i64 [ 0, %bb100 ], [ %tmp106, %bb105 ] + %exitcond14 = icmp ne i64 %j12.0, 1024 + br i1 %exitcond14, label %bb102, label %bb107 + +bb102: ; preds = %bb101 + %tmp103 = load i64, i64* %A, align 8 + %tmp104 = add nsw i64 %tmp103, 42 + store i64 %tmp104, i64* %A, align 8 + br label %bb105 + +bb105: ; preds = %bb102 + %tmp106 = add nuw nsw i64 %j12.0, 1 + br label %bb101 + +bb107: ; preds = %bb101 + br label %bb108 + +bb108: ; preds = %bb107 + %tmp109 = add nuw nsw i64 %i11.0, 1 + br label %bb99 + +bb110: ; preds = %bb99 + br label %bb111 + +bb111: ; preds = %bb120, %bb110 + %i13.0 = phi i64 [ 0, %bb110 ], [ %tmp121, %bb120 ] + %exitcond13 = icmp ne i64 %i13.0, 1024 + br i1 %exitcond13, label %bb112, label %bb122 + +bb112: ; preds = %bb111 + br label %bb113 + +bb113: ; preds = %bb117, %bb112 + %j14.0 = phi i64 [ 0, %bb112 ], [ %tmp118, %bb117 ] + %exitcond12 = icmp ne i64 %j14.0, 1024 + br i1 %exitcond12, label %bb114, label %bb119 + +bb114: ; preds = %bb113 + %tmp115 = load i64, i64* %A, align 8 + %tmp116 = add nsw i64 %tmp115, 42 + store i64 %tmp116, i64* %A, align 8 + br label %bb117 + +bb117: ; preds = %bb114 + %tmp118 = add nuw nsw i64 %j14.0, 1 + br label %bb113 + +bb119: ; preds = %bb113 + br label %bb120 + +bb120: ; preds = %bb119 + %tmp121 = add nuw nsw i64 %i13.0, 1 + br label %bb111 + +bb122: ; preds = %bb111 + br label %bb123 + +bb123: ; preds = %bb132, %bb122 + %i15.0 = phi i64 [ 0, %bb122 ], [ %tmp133, %bb132 ] + %exitcond11 = icmp ne i64 %i15.0, 1024 + br i1 %exitcond11, label %bb124, label %bb134 + +bb124: ; preds = %bb123 + br label %bb125 + +bb125: ; preds = %bb129, %bb124 + %j16.0 = phi i64 [ 0, %bb124 ], [ %tmp130, %bb129 ] + %exitcond10 = icmp ne i64 %j16.0, 1024 + br i1 %exitcond10, label %bb126, label %bb131 + +bb126: ; preds = %bb125 + %tmp127 = load i64, i64* %A, align 8 + %tmp128 = add nsw i64 %tmp127, 42 + store i64 %tmp128, i64* %A, align 8 + br label %bb129 + +bb129: ; preds = %bb126 + %tmp130 = add nuw nsw i64 %j16.0, 1 + br label %bb125 + +bb131: ; preds = %bb125 + br label %bb132 + +bb132: ; preds = %bb131 + %tmp133 = add nuw nsw i64 %i15.0, 1 + br label %bb123 + +bb134: ; preds = %bb123 + br label %bb135 + +bb135: ; preds = %bb144, %bb134 + %i17.0 = phi i64 [ 0, %bb134 ], [ %tmp145, %bb144 ] + %exitcond9 = icmp ne i64 %i17.0, 1024 + br i1 %exitcond9, label %bb136, label %bb146 + +bb136: ; preds = %bb135 + br label %bb137 + +bb137: ; preds = %bb141, %bb136 + %j18.0 = phi i64 [ 0, %bb136 ], [ %tmp142, %bb141 ] + %exitcond8 = icmp ne i64 %j18.0, 1024 + br i1 %exitcond8, label %bb138, label %bb143 + +bb138: ; preds = %bb137 + %tmp139 = load i64, i64* %A, align 8 + %tmp140 = add nsw i64 %tmp139, 42 + store i64 %tmp140, i64* %A, align 8 + br label %bb141 + +bb141: ; preds = %bb138 + %tmp142 = add nuw nsw i64 %j18.0, 1 + br label %bb137 + +bb143: ; preds = %bb137 + br label %bb144 + +bb144: ; preds = %bb143 + %tmp145 = add nuw nsw i64 %i17.0, 1 + br label %bb135 + +bb146: ; preds = %bb135 + br label %bb147 + +bb147: ; preds = %bb156, %bb146 + %i19.0 = phi i64 [ 0, %bb146 ], [ %tmp157, %bb156 ] + %exitcond7 = icmp ne i64 %i19.0, 1024 + br i1 %exitcond7, label %bb148, label %bb158 + +bb148: ; preds = %bb147 + br label %bb149 + +bb149: ; preds = %bb153, %bb148 + %j20.0 = phi i64 [ 0, %bb148 ], [ %tmp154, %bb153 ] + %exitcond6 = icmp ne i64 %j20.0, 1024 + br i1 %exitcond6, label %bb150, label %bb155 + +bb150: ; preds = %bb149 + %tmp151 = load i64, i64* %A, align 8 + %tmp152 = add nsw i64 %tmp151, 42 + store i64 %tmp152, i64* %A, align 8 + br label %bb153 + +bb153: ; preds = %bb150 + %tmp154 = add nuw nsw i64 %j20.0, 1 + br label %bb149 + +bb155: ; preds = %bb149 + br label %bb156 + +bb156: ; preds = %bb155 + %tmp157 = add nuw nsw i64 %i19.0, 1 + br label %bb147 + +bb158: ; preds = %bb147 + br label %bb159 + +bb159: ; preds = %bb168, %bb158 + %i21.0 = phi i64 [ 0, %bb158 ], [ %tmp169, %bb168 ] + %exitcond5 = icmp ne i64 %i21.0, 1024 + br i1 %exitcond5, label %bb160, label %bb170 + +bb160: ; preds = %bb159 + br label %bb161 + +bb161: ; preds = %bb165, %bb160 + %j22.0 = phi i64 [ 0, %bb160 ], [ %tmp166, %bb165 ] + %exitcond4 = icmp ne i64 %j22.0, 1024 + br i1 %exitcond4, label %bb162, label %bb167 + +bb162: ; preds = %bb161 + %tmp163 = load i64, i64* %A, align 8 + %tmp164 = add nsw i64 %tmp163, 42 + store i64 %tmp164, i64* %A, align 8 + br label %bb165 + +bb165: ; preds = %bb162 + %tmp166 = add nuw nsw i64 %j22.0, 1 + br label %bb161 + +bb167: ; preds = %bb161 + br label %bb168 + +bb168: ; preds = %bb167 + %tmp169 = add nuw nsw i64 %i21.0, 1 + br label %bb159 + +bb170: ; preds = %bb159 + br label %bb171 + +bb171: ; preds = %bb180, %bb170 + %i23.0 = phi i64 [ 0, %bb170 ], [ %tmp181, %bb180 ] + %exitcond3 = icmp ne i64 %i23.0, 1024 + br i1 %exitcond3, label %bb172, label %bb182 + +bb172: ; preds = %bb171 + br label %bb173 + +bb173: ; preds = %bb177, %bb172 + %j24.0 = phi i64 [ 0, %bb172 ], [ %tmp178, %bb177 ] + %exitcond2 = icmp ne i64 %j24.0, 1024 + br i1 %exitcond2, label %bb174, label %bb179 + +bb174: ; preds = %bb173 + %tmp175 = load i64, i64* %A, align 8 + %tmp176 = add nsw i64 %tmp175, 42 + store i64 %tmp176, i64* %A, align 8 + br label %bb177 + +bb177: ; preds = %bb174 + %tmp178 = add nuw nsw i64 %j24.0, 1 + br label %bb173 + +bb179: ; preds = %bb173 + br label %bb180 + +bb180: ; preds = %bb179 + %tmp181 = add nuw nsw i64 %i23.0, 1 + br label %bb171 + +bb182: ; preds = %bb171 + br label %bb183 + +bb183: ; preds = %bb192, %bb182 + %i25.0 = phi i64 [ 0, %bb182 ], [ %tmp193, %bb192 ] + %exitcond1 = icmp ne i64 %i25.0, 1024 + br i1 %exitcond1, label %bb184, label %bb194 + +bb184: ; preds = %bb183 + br label %bb185 + +bb185: ; preds = %bb189, %bb184 + %j26.0 = phi i64 [ 0, %bb184 ], [ %tmp190, %bb189 ] + %exitcond = icmp ne i64 %j26.0, 1024 + br i1 %exitcond, label %bb186, label %bb191 + +bb186: ; preds = %bb185 + %tmp187 = load i64, i64* %A, align 8 + %tmp188 = add nsw i64 %tmp187, 42 + store i64 %tmp188, i64* %A, align 8 + br label %bb189 + +bb189: ; preds = %bb186 + %tmp190 = add nuw nsw i64 %j26.0, 1 + br label %bb185 + +bb191: ; preds = %bb185 + br label %bb192 + +bb192: ; preds = %bb191 + %tmp193 = add nuw nsw i64 %i25.0, 1 + br label %bb183 + +bb194: ; preds = %bb183 + ret void +} |