| ; 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_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_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_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_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_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_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_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]; 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_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_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_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_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_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] } |
| ; CHECK-NEXT: WAR dependences: |
| ; CHECK-NEXT: { 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_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_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_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_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_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_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]; 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_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_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_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_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_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] } |
| ; CHECK-NEXT: WAW dependences: |
| ; CHECK-NEXT: { 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_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_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_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_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_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_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]; 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_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_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_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_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_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] } |
| ; CHECK-NEXT: Reduction dependences: |
| ; CHECK-NEXT: { 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_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_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_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_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_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_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; 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_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_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_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_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 } |
| |
| ; CHECK-NEXT: Transitive closure of reduction dependences: |
| ; CHECK-NEXT: { 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_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_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_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_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_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_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)); 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_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_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_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_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)) } |
| |
| ; |
| 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 |
| } |