summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2017-02-18 16:38:58 +0000
committerTobias Grosser <tobias@grosser.es>2017-02-18 16:38:58 +0000
commit41f0d81b314f50846846ec89a8ae65c965af1ece (patch)
tree9f7f6d84d54a39d5dcf0fa7d2f7b98fe53fbff00
parentdc53b680cb735687eb6f7e7a3e2bef321a2fa494 (diff)
downloadbcm5719-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.ll539
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
+}
OpenPOWER on IntegriCloud