542 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<deps>' -polly-print-deps -disable-output < %s | FileCheck %s2 3; void manyreductions(long *A) {4; for (long i = 0; i < 1024; i++)5; for (long j = 0; j < 1024; j++)6; *A += 42;7;8; for (long i = 0; i < 1024; i++)9; for (long j = 0; j < 1024; j++)10; *A += 42;11;12; for (long i = 0; i < 1024; i++)13; for (long j = 0; j < 1024; j++)14; *A += 42;15;16; for (long i = 0; i < 1024; i++)17; for (long j = 0; j < 1024; j++)18; *A += 42;19;20; for (long i = 0; i < 1024; i++)21; for (long j = 0; j < 1024; j++)22; *A += 42;23;24; for (long i = 0; i < 1024; i++)25; for (long j = 0; j < 1024; j++)26; *A += 42;27;28; for (long i = 0; i < 1024; i++)29; for (long j = 0; j < 1024; j++)30; *A += 42;31;32; for (long i = 0; i < 1024; i++)33; for (long j = 0; j < 1024; j++)34; *A += 42;35;36; for (long i = 0; i < 1024; i++)37; for (long j = 0; j < 1024; j++)38; *A += 42;39;40; for (long i = 0; i < 1024; i++)41; for (long j = 0; j < 1024; j++)42; *A += 42;43;44; for (long i = 0; i < 1024; i++)45; for (long j = 0; j < 1024; j++)46; *A += 42;47;48; for (long i = 0; i < 1024; i++)49; for (long j = 0; j < 1024; j++)50; *A += 42;51;52; for (long i = 0; i < 1024; i++)53; for (long j = 0; j < 1024; j++)54; *A += 42;55;56; for (long i = 0; i < 1024; i++)57; for (long j = 0; j < 1024; j++)58; *A += 42;59; }60 61; CHECK: RAW dependences:62; 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] }63; CHECK-NEXT: WAR dependences:64; 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] }65; CHECK-NEXT: WAW dependences:66; 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] }67; CHECK-NEXT: Reduction dependences:68; 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 }69 70; CHECK-NEXT: Transitive closure of reduction dependences:71; 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)) }72 73;74target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"75 76define void @manyreductions(ptr %A) {77bb:78 br label %bb2879 80bb28: ; preds = %bb36, %bb81 %i.0 = phi i64 [ 0, %bb ], [ %tmp37, %bb36 ]82 %exitcond27 = icmp ne i64 %i.0, 102483 br i1 %exitcond27, label %bb29, label %bb3884 85bb29: ; preds = %bb2886 br label %bb3087 88bb30: ; preds = %bb33, %bb2989 %j.0 = phi i64 [ 0, %bb29 ], [ %tmp34, %bb33 ]90 %exitcond26 = icmp ne i64 %j.0, 102491 br i1 %exitcond26, label %bb31, label %bb3592 93bb31: ; preds = %bb3094 %tmp = load i64, ptr %A, align 895 %tmp32 = add nsw i64 %tmp, 4296 store i64 %tmp32, ptr %A, align 897 br label %bb3398 99bb33: ; preds = %bb31100 %tmp34 = add nuw nsw i64 %j.0, 1101 br label %bb30102 103bb35: ; preds = %bb30104 br label %bb36105 106bb36: ; preds = %bb35107 %tmp37 = add nuw nsw i64 %i.0, 1108 br label %bb28109 110bb38: ; preds = %bb28111 br label %bb39112 113bb39: ; preds = %bb48, %bb38114 %i1.0 = phi i64 [ 0, %bb38 ], [ %tmp49, %bb48 ]115 %exitcond25 = icmp ne i64 %i1.0, 1024116 br i1 %exitcond25, label %bb40, label %bb50117 118bb40: ; preds = %bb39119 br label %bb41120 121bb41: ; preds = %bb45, %bb40122 %j2.0 = phi i64 [ 0, %bb40 ], [ %tmp46, %bb45 ]123 %exitcond24 = icmp ne i64 %j2.0, 1024124 br i1 %exitcond24, label %bb42, label %bb47125 126bb42: ; preds = %bb41127 %tmp43 = load i64, ptr %A, align 8128 %tmp44 = add nsw i64 %tmp43, 42129 store i64 %tmp44, ptr %A, align 8130 br label %bb45131 132bb45: ; preds = %bb42133 %tmp46 = add nuw nsw i64 %j2.0, 1134 br label %bb41135 136bb47: ; preds = %bb41137 br label %bb48138 139bb48: ; preds = %bb47140 %tmp49 = add nuw nsw i64 %i1.0, 1141 br label %bb39142 143bb50: ; preds = %bb39144 br label %bb51145 146bb51: ; preds = %bb60, %bb50147 %i3.0 = phi i64 [ 0, %bb50 ], [ %tmp61, %bb60 ]148 %exitcond23 = icmp ne i64 %i3.0, 1024149 br i1 %exitcond23, label %bb52, label %bb62150 151bb52: ; preds = %bb51152 br label %bb53153 154bb53: ; preds = %bb57, %bb52155 %j4.0 = phi i64 [ 0, %bb52 ], [ %tmp58, %bb57 ]156 %exitcond22 = icmp ne i64 %j4.0, 1024157 br i1 %exitcond22, label %bb54, label %bb59158 159bb54: ; preds = %bb53160 %tmp55 = load i64, ptr %A, align 8161 %tmp56 = add nsw i64 %tmp55, 42162 store i64 %tmp56, ptr %A, align 8163 br label %bb57164 165bb57: ; preds = %bb54166 %tmp58 = add nuw nsw i64 %j4.0, 1167 br label %bb53168 169bb59: ; preds = %bb53170 br label %bb60171 172bb60: ; preds = %bb59173 %tmp61 = add nuw nsw i64 %i3.0, 1174 br label %bb51175 176bb62: ; preds = %bb51177 br label %bb63178 179bb63: ; preds = %bb72, %bb62180 %i5.0 = phi i64 [ 0, %bb62 ], [ %tmp73, %bb72 ]181 %exitcond21 = icmp ne i64 %i5.0, 1024182 br i1 %exitcond21, label %bb64, label %bb74183 184bb64: ; preds = %bb63185 br label %bb65186 187bb65: ; preds = %bb69, %bb64188 %j6.0 = phi i64 [ 0, %bb64 ], [ %tmp70, %bb69 ]189 %exitcond20 = icmp ne i64 %j6.0, 1024190 br i1 %exitcond20, label %bb66, label %bb71191 192bb66: ; preds = %bb65193 %tmp67 = load i64, ptr %A, align 8194 %tmp68 = add nsw i64 %tmp67, 42195 store i64 %tmp68, ptr %A, align 8196 br label %bb69197 198bb69: ; preds = %bb66199 %tmp70 = add nuw nsw i64 %j6.0, 1200 br label %bb65201 202bb71: ; preds = %bb65203 br label %bb72204 205bb72: ; preds = %bb71206 %tmp73 = add nuw nsw i64 %i5.0, 1207 br label %bb63208 209bb74: ; preds = %bb63210 br label %bb75211 212bb75: ; preds = %bb84, %bb74213 %i7.0 = phi i64 [ 0, %bb74 ], [ %tmp85, %bb84 ]214 %exitcond19 = icmp ne i64 %i7.0, 1024215 br i1 %exitcond19, label %bb76, label %bb86216 217bb76: ; preds = %bb75218 br label %bb77219 220bb77: ; preds = %bb81, %bb76221 %j8.0 = phi i64 [ 0, %bb76 ], [ %tmp82, %bb81 ]222 %exitcond18 = icmp ne i64 %j8.0, 1024223 br i1 %exitcond18, label %bb78, label %bb83224 225bb78: ; preds = %bb77226 %tmp79 = load i64, ptr %A, align 8227 %tmp80 = add nsw i64 %tmp79, 42228 store i64 %tmp80, ptr %A, align 8229 br label %bb81230 231bb81: ; preds = %bb78232 %tmp82 = add nuw nsw i64 %j8.0, 1233 br label %bb77234 235bb83: ; preds = %bb77236 br label %bb84237 238bb84: ; preds = %bb83239 %tmp85 = add nuw nsw i64 %i7.0, 1240 br label %bb75241 242bb86: ; preds = %bb75243 br label %bb87244 245bb87: ; preds = %bb96, %bb86246 %i9.0 = phi i64 [ 0, %bb86 ], [ %tmp97, %bb96 ]247 %exitcond17 = icmp ne i64 %i9.0, 1024248 br i1 %exitcond17, label %bb88, label %bb98249 250bb88: ; preds = %bb87251 br label %bb89252 253bb89: ; preds = %bb93, %bb88254 %j10.0 = phi i64 [ 0, %bb88 ], [ %tmp94, %bb93 ]255 %exitcond16 = icmp ne i64 %j10.0, 1024256 br i1 %exitcond16, label %bb90, label %bb95257 258bb90: ; preds = %bb89259 %tmp91 = load i64, ptr %A, align 8260 %tmp92 = add nsw i64 %tmp91, 42261 store i64 %tmp92, ptr %A, align 8262 br label %bb93263 264bb93: ; preds = %bb90265 %tmp94 = add nuw nsw i64 %j10.0, 1266 br label %bb89267 268bb95: ; preds = %bb89269 br label %bb96270 271bb96: ; preds = %bb95272 %tmp97 = add nuw nsw i64 %i9.0, 1273 br label %bb87274 275bb98: ; preds = %bb87276 br label %bb99277 278bb99: ; preds = %bb108, %bb98279 %i11.0 = phi i64 [ 0, %bb98 ], [ %tmp109, %bb108 ]280 %exitcond15 = icmp ne i64 %i11.0, 1024281 br i1 %exitcond15, label %bb100, label %bb110282 283bb100: ; preds = %bb99284 br label %bb101285 286bb101: ; preds = %bb105, %bb100287 %j12.0 = phi i64 [ 0, %bb100 ], [ %tmp106, %bb105 ]288 %exitcond14 = icmp ne i64 %j12.0, 1024289 br i1 %exitcond14, label %bb102, label %bb107290 291bb102: ; preds = %bb101292 %tmp103 = load i64, ptr %A, align 8293 %tmp104 = add nsw i64 %tmp103, 42294 store i64 %tmp104, ptr %A, align 8295 br label %bb105296 297bb105: ; preds = %bb102298 %tmp106 = add nuw nsw i64 %j12.0, 1299 br label %bb101300 301bb107: ; preds = %bb101302 br label %bb108303 304bb108: ; preds = %bb107305 %tmp109 = add nuw nsw i64 %i11.0, 1306 br label %bb99307 308bb110: ; preds = %bb99309 br label %bb111310 311bb111: ; preds = %bb120, %bb110312 %i13.0 = phi i64 [ 0, %bb110 ], [ %tmp121, %bb120 ]313 %exitcond13 = icmp ne i64 %i13.0, 1024314 br i1 %exitcond13, label %bb112, label %bb122315 316bb112: ; preds = %bb111317 br label %bb113318 319bb113: ; preds = %bb117, %bb112320 %j14.0 = phi i64 [ 0, %bb112 ], [ %tmp118, %bb117 ]321 %exitcond12 = icmp ne i64 %j14.0, 1024322 br i1 %exitcond12, label %bb114, label %bb119323 324bb114: ; preds = %bb113325 %tmp115 = load i64, ptr %A, align 8326 %tmp116 = add nsw i64 %tmp115, 42327 store i64 %tmp116, ptr %A, align 8328 br label %bb117329 330bb117: ; preds = %bb114331 %tmp118 = add nuw nsw i64 %j14.0, 1332 br label %bb113333 334bb119: ; preds = %bb113335 br label %bb120336 337bb120: ; preds = %bb119338 %tmp121 = add nuw nsw i64 %i13.0, 1339 br label %bb111340 341bb122: ; preds = %bb111342 br label %bb123343 344bb123: ; preds = %bb132, %bb122345 %i15.0 = phi i64 [ 0, %bb122 ], [ %tmp133, %bb132 ]346 %exitcond11 = icmp ne i64 %i15.0, 1024347 br i1 %exitcond11, label %bb124, label %bb134348 349bb124: ; preds = %bb123350 br label %bb125351 352bb125: ; preds = %bb129, %bb124353 %j16.0 = phi i64 [ 0, %bb124 ], [ %tmp130, %bb129 ]354 %exitcond10 = icmp ne i64 %j16.0, 1024355 br i1 %exitcond10, label %bb126, label %bb131356 357bb126: ; preds = %bb125358 %tmp127 = load i64, ptr %A, align 8359 %tmp128 = add nsw i64 %tmp127, 42360 store i64 %tmp128, ptr %A, align 8361 br label %bb129362 363bb129: ; preds = %bb126364 %tmp130 = add nuw nsw i64 %j16.0, 1365 br label %bb125366 367bb131: ; preds = %bb125368 br label %bb132369 370bb132: ; preds = %bb131371 %tmp133 = add nuw nsw i64 %i15.0, 1372 br label %bb123373 374bb134: ; preds = %bb123375 br label %bb135376 377bb135: ; preds = %bb144, %bb134378 %i17.0 = phi i64 [ 0, %bb134 ], [ %tmp145, %bb144 ]379 %exitcond9 = icmp ne i64 %i17.0, 1024380 br i1 %exitcond9, label %bb136, label %bb146381 382bb136: ; preds = %bb135383 br label %bb137384 385bb137: ; preds = %bb141, %bb136386 %j18.0 = phi i64 [ 0, %bb136 ], [ %tmp142, %bb141 ]387 %exitcond8 = icmp ne i64 %j18.0, 1024388 br i1 %exitcond8, label %bb138, label %bb143389 390bb138: ; preds = %bb137391 %tmp139 = load i64, ptr %A, align 8392 %tmp140 = add nsw i64 %tmp139, 42393 store i64 %tmp140, ptr %A, align 8394 br label %bb141395 396bb141: ; preds = %bb138397 %tmp142 = add nuw nsw i64 %j18.0, 1398 br label %bb137399 400bb143: ; preds = %bb137401 br label %bb144402 403bb144: ; preds = %bb143404 %tmp145 = add nuw nsw i64 %i17.0, 1405 br label %bb135406 407bb146: ; preds = %bb135408 br label %bb147409 410bb147: ; preds = %bb156, %bb146411 %i19.0 = phi i64 [ 0, %bb146 ], [ %tmp157, %bb156 ]412 %exitcond7 = icmp ne i64 %i19.0, 1024413 br i1 %exitcond7, label %bb148, label %bb158414 415bb148: ; preds = %bb147416 br label %bb149417 418bb149: ; preds = %bb153, %bb148419 %j20.0 = phi i64 [ 0, %bb148 ], [ %tmp154, %bb153 ]420 %exitcond6 = icmp ne i64 %j20.0, 1024421 br i1 %exitcond6, label %bb150, label %bb155422 423bb150: ; preds = %bb149424 %tmp151 = load i64, ptr %A, align 8425 %tmp152 = add nsw i64 %tmp151, 42426 store i64 %tmp152, ptr %A, align 8427 br label %bb153428 429bb153: ; preds = %bb150430 %tmp154 = add nuw nsw i64 %j20.0, 1431 br label %bb149432 433bb155: ; preds = %bb149434 br label %bb156435 436bb156: ; preds = %bb155437 %tmp157 = add nuw nsw i64 %i19.0, 1438 br label %bb147439 440bb158: ; preds = %bb147441 br label %bb159442 443bb159: ; preds = %bb168, %bb158444 %i21.0 = phi i64 [ 0, %bb158 ], [ %tmp169, %bb168 ]445 %exitcond5 = icmp ne i64 %i21.0, 1024446 br i1 %exitcond5, label %bb160, label %bb170447 448bb160: ; preds = %bb159449 br label %bb161450 451bb161: ; preds = %bb165, %bb160452 %j22.0 = phi i64 [ 0, %bb160 ], [ %tmp166, %bb165 ]453 %exitcond4 = icmp ne i64 %j22.0, 1024454 br i1 %exitcond4, label %bb162, label %bb167455 456bb162: ; preds = %bb161457 %tmp163 = load i64, ptr %A, align 8458 %tmp164 = add nsw i64 %tmp163, 42459 store i64 %tmp164, ptr %A, align 8460 br label %bb165461 462bb165: ; preds = %bb162463 %tmp166 = add nuw nsw i64 %j22.0, 1464 br label %bb161465 466bb167: ; preds = %bb161467 br label %bb168468 469bb168: ; preds = %bb167470 %tmp169 = add nuw nsw i64 %i21.0, 1471 br label %bb159472 473bb170: ; preds = %bb159474 br label %bb171475 476bb171: ; preds = %bb180, %bb170477 %i23.0 = phi i64 [ 0, %bb170 ], [ %tmp181, %bb180 ]478 %exitcond3 = icmp ne i64 %i23.0, 1024479 br i1 %exitcond3, label %bb172, label %bb182480 481bb172: ; preds = %bb171482 br label %bb173483 484bb173: ; preds = %bb177, %bb172485 %j24.0 = phi i64 [ 0, %bb172 ], [ %tmp178, %bb177 ]486 %exitcond2 = icmp ne i64 %j24.0, 1024487 br i1 %exitcond2, label %bb174, label %bb179488 489bb174: ; preds = %bb173490 %tmp175 = load i64, ptr %A, align 8491 %tmp176 = add nsw i64 %tmp175, 42492 store i64 %tmp176, ptr %A, align 8493 br label %bb177494 495bb177: ; preds = %bb174496 %tmp178 = add nuw nsw i64 %j24.0, 1497 br label %bb173498 499bb179: ; preds = %bb173500 br label %bb180501 502bb180: ; preds = %bb179503 %tmp181 = add nuw nsw i64 %i23.0, 1504 br label %bb171505 506bb182: ; preds = %bb171507 br label %bb183508 509bb183: ; preds = %bb192, %bb182510 %i25.0 = phi i64 [ 0, %bb182 ], [ %tmp193, %bb192 ]511 %exitcond1 = icmp ne i64 %i25.0, 1024512 br i1 %exitcond1, label %bb184, label %bb194513 514bb184: ; preds = %bb183515 br label %bb185516 517bb185: ; preds = %bb189, %bb184518 %j26.0 = phi i64 [ 0, %bb184 ], [ %tmp190, %bb189 ]519 %exitcond = icmp ne i64 %j26.0, 1024520 br i1 %exitcond, label %bb186, label %bb191521 522bb186: ; preds = %bb185523 %tmp187 = load i64, ptr %A, align 8524 %tmp188 = add nsw i64 %tmp187, 42525 store i64 %tmp188, ptr %A, align 8526 br label %bb189527 528bb189: ; preds = %bb186529 %tmp190 = add nuw nsw i64 %j26.0, 1530 br label %bb185531 532bb191: ; preds = %bb185533 br label %bb192534 535bb192: ; preds = %bb191536 %tmp193 = add nuw nsw i64 %i25.0, 1537 br label %bb183538 539bb194: ; preds = %bb183540 ret void541}542