1; RUN: opt %loadNPMPolly '-passes=print<polly-dependences>' -disable-output < %s | FileCheck %s 2 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 %bb28 79 80bb28: ; preds = %bb36, %bb 81 %i.0 = phi i64 [ 0, %bb ], [ %tmp37, %bb36 ] 82 %exitcond27 = icmp ne i64 %i.0, 1024 83 br i1 %exitcond27, label %bb29, label %bb38 84 85bb29: ; preds = %bb28 86 br label %bb30 87 88bb30: ; preds = %bb33, %bb29 89 %j.0 = phi i64 [ 0, %bb29 ], [ %tmp34, %bb33 ] 90 %exitcond26 = icmp ne i64 %j.0, 1024 91 br i1 %exitcond26, label %bb31, label %bb35 92 93bb31: ; preds = %bb30 94 %tmp = load i64, ptr %A, align 8 95 %tmp32 = add nsw i64 %tmp, 42 96 store i64 %tmp32, ptr %A, align 8 97 br label %bb33 98 99bb33: ; preds = %bb31 100 %tmp34 = add nuw nsw i64 %j.0, 1 101 br label %bb30 102 103bb35: ; preds = %bb30 104 br label %bb36 105 106bb36: ; preds = %bb35 107 %tmp37 = add nuw nsw i64 %i.0, 1 108 br label %bb28 109 110bb38: ; preds = %bb28 111 br label %bb39 112 113bb39: ; preds = %bb48, %bb38 114 %i1.0 = phi i64 [ 0, %bb38 ], [ %tmp49, %bb48 ] 115 %exitcond25 = icmp ne i64 %i1.0, 1024 116 br i1 %exitcond25, label %bb40, label %bb50 117 118bb40: ; preds = %bb39 119 br label %bb41 120 121bb41: ; preds = %bb45, %bb40 122 %j2.0 = phi i64 [ 0, %bb40 ], [ %tmp46, %bb45 ] 123 %exitcond24 = icmp ne i64 %j2.0, 1024 124 br i1 %exitcond24, label %bb42, label %bb47 125 126bb42: ; preds = %bb41 127 %tmp43 = load i64, ptr %A, align 8 128 %tmp44 = add nsw i64 %tmp43, 42 129 store i64 %tmp44, ptr %A, align 8 130 br label %bb45 131 132bb45: ; preds = %bb42 133 %tmp46 = add nuw nsw i64 %j2.0, 1 134 br label %bb41 135 136bb47: ; preds = %bb41 137 br label %bb48 138 139bb48: ; preds = %bb47 140 %tmp49 = add nuw nsw i64 %i1.0, 1 141 br label %bb39 142 143bb50: ; preds = %bb39 144 br label %bb51 145 146bb51: ; preds = %bb60, %bb50 147 %i3.0 = phi i64 [ 0, %bb50 ], [ %tmp61, %bb60 ] 148 %exitcond23 = icmp ne i64 %i3.0, 1024 149 br i1 %exitcond23, label %bb52, label %bb62 150 151bb52: ; preds = %bb51 152 br label %bb53 153 154bb53: ; preds = %bb57, %bb52 155 %j4.0 = phi i64 [ 0, %bb52 ], [ %tmp58, %bb57 ] 156 %exitcond22 = icmp ne i64 %j4.0, 1024 157 br i1 %exitcond22, label %bb54, label %bb59 158 159bb54: ; preds = %bb53 160 %tmp55 = load i64, ptr %A, align 8 161 %tmp56 = add nsw i64 %tmp55, 42 162 store i64 %tmp56, ptr %A, align 8 163 br label %bb57 164 165bb57: ; preds = %bb54 166 %tmp58 = add nuw nsw i64 %j4.0, 1 167 br label %bb53 168 169bb59: ; preds = %bb53 170 br label %bb60 171 172bb60: ; preds = %bb59 173 %tmp61 = add nuw nsw i64 %i3.0, 1 174 br label %bb51 175 176bb62: ; preds = %bb51 177 br label %bb63 178 179bb63: ; preds = %bb72, %bb62 180 %i5.0 = phi i64 [ 0, %bb62 ], [ %tmp73, %bb72 ] 181 %exitcond21 = icmp ne i64 %i5.0, 1024 182 br i1 %exitcond21, label %bb64, label %bb74 183 184bb64: ; preds = %bb63 185 br label %bb65 186 187bb65: ; preds = %bb69, %bb64 188 %j6.0 = phi i64 [ 0, %bb64 ], [ %tmp70, %bb69 ] 189 %exitcond20 = icmp ne i64 %j6.0, 1024 190 br i1 %exitcond20, label %bb66, label %bb71 191 192bb66: ; preds = %bb65 193 %tmp67 = load i64, ptr %A, align 8 194 %tmp68 = add nsw i64 %tmp67, 42 195 store i64 %tmp68, ptr %A, align 8 196 br label %bb69 197 198bb69: ; preds = %bb66 199 %tmp70 = add nuw nsw i64 %j6.0, 1 200 br label %bb65 201 202bb71: ; preds = %bb65 203 br label %bb72 204 205bb72: ; preds = %bb71 206 %tmp73 = add nuw nsw i64 %i5.0, 1 207 br label %bb63 208 209bb74: ; preds = %bb63 210 br label %bb75 211 212bb75: ; preds = %bb84, %bb74 213 %i7.0 = phi i64 [ 0, %bb74 ], [ %tmp85, %bb84 ] 214 %exitcond19 = icmp ne i64 %i7.0, 1024 215 br i1 %exitcond19, label %bb76, label %bb86 216 217bb76: ; preds = %bb75 218 br label %bb77 219 220bb77: ; preds = %bb81, %bb76 221 %j8.0 = phi i64 [ 0, %bb76 ], [ %tmp82, %bb81 ] 222 %exitcond18 = icmp ne i64 %j8.0, 1024 223 br i1 %exitcond18, label %bb78, label %bb83 224 225bb78: ; preds = %bb77 226 %tmp79 = load i64, ptr %A, align 8 227 %tmp80 = add nsw i64 %tmp79, 42 228 store i64 %tmp80, ptr %A, align 8 229 br label %bb81 230 231bb81: ; preds = %bb78 232 %tmp82 = add nuw nsw i64 %j8.0, 1 233 br label %bb77 234 235bb83: ; preds = %bb77 236 br label %bb84 237 238bb84: ; preds = %bb83 239 %tmp85 = add nuw nsw i64 %i7.0, 1 240 br label %bb75 241 242bb86: ; preds = %bb75 243 br label %bb87 244 245bb87: ; preds = %bb96, %bb86 246 %i9.0 = phi i64 [ 0, %bb86 ], [ %tmp97, %bb96 ] 247 %exitcond17 = icmp ne i64 %i9.0, 1024 248 br i1 %exitcond17, label %bb88, label %bb98 249 250bb88: ; preds = %bb87 251 br label %bb89 252 253bb89: ; preds = %bb93, %bb88 254 %j10.0 = phi i64 [ 0, %bb88 ], [ %tmp94, %bb93 ] 255 %exitcond16 = icmp ne i64 %j10.0, 1024 256 br i1 %exitcond16, label %bb90, label %bb95 257 258bb90: ; preds = %bb89 259 %tmp91 = load i64, ptr %A, align 8 260 %tmp92 = add nsw i64 %tmp91, 42 261 store i64 %tmp92, ptr %A, align 8 262 br label %bb93 263 264bb93: ; preds = %bb90 265 %tmp94 = add nuw nsw i64 %j10.0, 1 266 br label %bb89 267 268bb95: ; preds = %bb89 269 br label %bb96 270 271bb96: ; preds = %bb95 272 %tmp97 = add nuw nsw i64 %i9.0, 1 273 br label %bb87 274 275bb98: ; preds = %bb87 276 br label %bb99 277 278bb99: ; preds = %bb108, %bb98 279 %i11.0 = phi i64 [ 0, %bb98 ], [ %tmp109, %bb108 ] 280 %exitcond15 = icmp ne i64 %i11.0, 1024 281 br i1 %exitcond15, label %bb100, label %bb110 282 283bb100: ; preds = %bb99 284 br label %bb101 285 286bb101: ; preds = %bb105, %bb100 287 %j12.0 = phi i64 [ 0, %bb100 ], [ %tmp106, %bb105 ] 288 %exitcond14 = icmp ne i64 %j12.0, 1024 289 br i1 %exitcond14, label %bb102, label %bb107 290 291bb102: ; preds = %bb101 292 %tmp103 = load i64, ptr %A, align 8 293 %tmp104 = add nsw i64 %tmp103, 42 294 store i64 %tmp104, ptr %A, align 8 295 br label %bb105 296 297bb105: ; preds = %bb102 298 %tmp106 = add nuw nsw i64 %j12.0, 1 299 br label %bb101 300 301bb107: ; preds = %bb101 302 br label %bb108 303 304bb108: ; preds = %bb107 305 %tmp109 = add nuw nsw i64 %i11.0, 1 306 br label %bb99 307 308bb110: ; preds = %bb99 309 br label %bb111 310 311bb111: ; preds = %bb120, %bb110 312 %i13.0 = phi i64 [ 0, %bb110 ], [ %tmp121, %bb120 ] 313 %exitcond13 = icmp ne i64 %i13.0, 1024 314 br i1 %exitcond13, label %bb112, label %bb122 315 316bb112: ; preds = %bb111 317 br label %bb113 318 319bb113: ; preds = %bb117, %bb112 320 %j14.0 = phi i64 [ 0, %bb112 ], [ %tmp118, %bb117 ] 321 %exitcond12 = icmp ne i64 %j14.0, 1024 322 br i1 %exitcond12, label %bb114, label %bb119 323 324bb114: ; preds = %bb113 325 %tmp115 = load i64, ptr %A, align 8 326 %tmp116 = add nsw i64 %tmp115, 42 327 store i64 %tmp116, ptr %A, align 8 328 br label %bb117 329 330bb117: ; preds = %bb114 331 %tmp118 = add nuw nsw i64 %j14.0, 1 332 br label %bb113 333 334bb119: ; preds = %bb113 335 br label %bb120 336 337bb120: ; preds = %bb119 338 %tmp121 = add nuw nsw i64 %i13.0, 1 339 br label %bb111 340 341bb122: ; preds = %bb111 342 br label %bb123 343 344bb123: ; preds = %bb132, %bb122 345 %i15.0 = phi i64 [ 0, %bb122 ], [ %tmp133, %bb132 ] 346 %exitcond11 = icmp ne i64 %i15.0, 1024 347 br i1 %exitcond11, label %bb124, label %bb134 348 349bb124: ; preds = %bb123 350 br label %bb125 351 352bb125: ; preds = %bb129, %bb124 353 %j16.0 = phi i64 [ 0, %bb124 ], [ %tmp130, %bb129 ] 354 %exitcond10 = icmp ne i64 %j16.0, 1024 355 br i1 %exitcond10, label %bb126, label %bb131 356 357bb126: ; preds = %bb125 358 %tmp127 = load i64, ptr %A, align 8 359 %tmp128 = add nsw i64 %tmp127, 42 360 store i64 %tmp128, ptr %A, align 8 361 br label %bb129 362 363bb129: ; preds = %bb126 364 %tmp130 = add nuw nsw i64 %j16.0, 1 365 br label %bb125 366 367bb131: ; preds = %bb125 368 br label %bb132 369 370bb132: ; preds = %bb131 371 %tmp133 = add nuw nsw i64 %i15.0, 1 372 br label %bb123 373 374bb134: ; preds = %bb123 375 br label %bb135 376 377bb135: ; preds = %bb144, %bb134 378 %i17.0 = phi i64 [ 0, %bb134 ], [ %tmp145, %bb144 ] 379 %exitcond9 = icmp ne i64 %i17.0, 1024 380 br i1 %exitcond9, label %bb136, label %bb146 381 382bb136: ; preds = %bb135 383 br label %bb137 384 385bb137: ; preds = %bb141, %bb136 386 %j18.0 = phi i64 [ 0, %bb136 ], [ %tmp142, %bb141 ] 387 %exitcond8 = icmp ne i64 %j18.0, 1024 388 br i1 %exitcond8, label %bb138, label %bb143 389 390bb138: ; preds = %bb137 391 %tmp139 = load i64, ptr %A, align 8 392 %tmp140 = add nsw i64 %tmp139, 42 393 store i64 %tmp140, ptr %A, align 8 394 br label %bb141 395 396bb141: ; preds = %bb138 397 %tmp142 = add nuw nsw i64 %j18.0, 1 398 br label %bb137 399 400bb143: ; preds = %bb137 401 br label %bb144 402 403bb144: ; preds = %bb143 404 %tmp145 = add nuw nsw i64 %i17.0, 1 405 br label %bb135 406 407bb146: ; preds = %bb135 408 br label %bb147 409 410bb147: ; preds = %bb156, %bb146 411 %i19.0 = phi i64 [ 0, %bb146 ], [ %tmp157, %bb156 ] 412 %exitcond7 = icmp ne i64 %i19.0, 1024 413 br i1 %exitcond7, label %bb148, label %bb158 414 415bb148: ; preds = %bb147 416 br label %bb149 417 418bb149: ; preds = %bb153, %bb148 419 %j20.0 = phi i64 [ 0, %bb148 ], [ %tmp154, %bb153 ] 420 %exitcond6 = icmp ne i64 %j20.0, 1024 421 br i1 %exitcond6, label %bb150, label %bb155 422 423bb150: ; preds = %bb149 424 %tmp151 = load i64, ptr %A, align 8 425 %tmp152 = add nsw i64 %tmp151, 42 426 store i64 %tmp152, ptr %A, align 8 427 br label %bb153 428 429bb153: ; preds = %bb150 430 %tmp154 = add nuw nsw i64 %j20.0, 1 431 br label %bb149 432 433bb155: ; preds = %bb149 434 br label %bb156 435 436bb156: ; preds = %bb155 437 %tmp157 = add nuw nsw i64 %i19.0, 1 438 br label %bb147 439 440bb158: ; preds = %bb147 441 br label %bb159 442 443bb159: ; preds = %bb168, %bb158 444 %i21.0 = phi i64 [ 0, %bb158 ], [ %tmp169, %bb168 ] 445 %exitcond5 = icmp ne i64 %i21.0, 1024 446 br i1 %exitcond5, label %bb160, label %bb170 447 448bb160: ; preds = %bb159 449 br label %bb161 450 451bb161: ; preds = %bb165, %bb160 452 %j22.0 = phi i64 [ 0, %bb160 ], [ %tmp166, %bb165 ] 453 %exitcond4 = icmp ne i64 %j22.0, 1024 454 br i1 %exitcond4, label %bb162, label %bb167 455 456bb162: ; preds = %bb161 457 %tmp163 = load i64, ptr %A, align 8 458 %tmp164 = add nsw i64 %tmp163, 42 459 store i64 %tmp164, ptr %A, align 8 460 br label %bb165 461 462bb165: ; preds = %bb162 463 %tmp166 = add nuw nsw i64 %j22.0, 1 464 br label %bb161 465 466bb167: ; preds = %bb161 467 br label %bb168 468 469bb168: ; preds = %bb167 470 %tmp169 = add nuw nsw i64 %i21.0, 1 471 br label %bb159 472 473bb170: ; preds = %bb159 474 br label %bb171 475 476bb171: ; preds = %bb180, %bb170 477 %i23.0 = phi i64 [ 0, %bb170 ], [ %tmp181, %bb180 ] 478 %exitcond3 = icmp ne i64 %i23.0, 1024 479 br i1 %exitcond3, label %bb172, label %bb182 480 481bb172: ; preds = %bb171 482 br label %bb173 483 484bb173: ; preds = %bb177, %bb172 485 %j24.0 = phi i64 [ 0, %bb172 ], [ %tmp178, %bb177 ] 486 %exitcond2 = icmp ne i64 %j24.0, 1024 487 br i1 %exitcond2, label %bb174, label %bb179 488 489bb174: ; preds = %bb173 490 %tmp175 = load i64, ptr %A, align 8 491 %tmp176 = add nsw i64 %tmp175, 42 492 store i64 %tmp176, ptr %A, align 8 493 br label %bb177 494 495bb177: ; preds = %bb174 496 %tmp178 = add nuw nsw i64 %j24.0, 1 497 br label %bb173 498 499bb179: ; preds = %bb173 500 br label %bb180 501 502bb180: ; preds = %bb179 503 %tmp181 = add nuw nsw i64 %i23.0, 1 504 br label %bb171 505 506bb182: ; preds = %bb171 507 br label %bb183 508 509bb183: ; preds = %bb192, %bb182 510 %i25.0 = phi i64 [ 0, %bb182 ], [ %tmp193, %bb192 ] 511 %exitcond1 = icmp ne i64 %i25.0, 1024 512 br i1 %exitcond1, label %bb184, label %bb194 513 514bb184: ; preds = %bb183 515 br label %bb185 516 517bb185: ; preds = %bb189, %bb184 518 %j26.0 = phi i64 [ 0, %bb184 ], [ %tmp190, %bb189 ] 519 %exitcond = icmp ne i64 %j26.0, 1024 520 br i1 %exitcond, label %bb186, label %bb191 521 522bb186: ; preds = %bb185 523 %tmp187 = load i64, ptr %A, align 8 524 %tmp188 = add nsw i64 %tmp187, 42 525 store i64 %tmp188, ptr %A, align 8 526 br label %bb189 527 528bb189: ; preds = %bb186 529 %tmp190 = add nuw nsw i64 %j26.0, 1 530 br label %bb185 531 532bb191: ; preds = %bb185 533 br label %bb192 534 535bb192: ; preds = %bb191 536 %tmp193 = add nuw nsw i64 %i25.0, 1 537 br label %bb183 538 539bb194: ; preds = %bb183 540 ret void 541} 542