[polly] r295549 - [test] Add reduction sequence test case [NFC]

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 18 08:38:58 PST 2017


Author: grosser
Date: Sat Feb 18 10:38:58 2017
New Revision: 295549

URL: http://llvm.org/viewvc/llvm-project?rev=295549&view=rev
Log:
[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.

Added:
    polly/trunk/test/DependenceInfo/reduction_sequence.ll

Added: polly/trunk/test/DependenceInfo/reduction_sequence.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/DependenceInfo/reduction_sequence.ll?rev=295549&view=auto
==============================================================================
--- polly/trunk/test/DependenceInfo/reduction_sequence.ll (added)
+++ polly/trunk/test/DependenceInfo/reduction_sequence.ll Sat Feb 18 10:38:58 2017
@@ -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; Stm
 t_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 <= 10
 48574 - 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; Stm
 t_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 <= 10
 48574 - 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 <= 102
 3 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
+}




More information about the llvm-commits mailing list