1; RUN: opt %loadNPMPolly -polly-ignore-inbounds '-passes=print<polly-simplify>' -disable-output < %s | FileCheck %s -match-full-lines 2; 3; Test scalability. 4; 5define void @func(i32 %n, ptr noalias nonnull %A, 6i32 %p0, i32 %p1, i32 %p2, i32 %p3, i32 %p4, i32 %p5, i32 %p6, i32 %p7, i32 %p8, i32 %p9, 7i32 %p10, i32 %p11, i32 %p12, i32 %p13, i32 %p14, i32 %p15, i32 %p16, i32 %p17, i32 %p18, i32 %p19, 8i32 %p20, i32 %p21, i32 %p22, i32 %p23, i32 %p24, i32 %p25, i32 %p26, i32 %p27, i32 %p28, i32 %p29, 9i32 %p30, i32 %p31, i32 %p32, i32 %p33, i32 %p34, i32 %p35, i32 %p36, i32 %p37, i32 %p38, i32 %p39, 10i32 %p40, i32 %p41, i32 %p42, i32 %p43, i32 %p44, i32 %p45, i32 %p46, i32 %p47, i32 %p48, i32 %p49, 11i32 %p50, i32 %p51, i32 %p52, i32 %p53, i32 %p54, i32 %p55, i32 %p56, i32 %p57, i32 %p58, i32 %p59) { 12entry: 13 br label %for 14 15for: 16 %j = phi i32 [0, %entry], [%j.inc, %inc] 17 %j.cmp = icmp slt i32 %j, %n 18 br i1 %j.cmp, label %body, label %exit 19 20 21 body: 22 %A0 = getelementptr inbounds double, ptr %A, i32 %p0 23 %A1 = getelementptr inbounds double, ptr %A, i32 %p1 24 %A2 = getelementptr inbounds double, ptr %A, i32 %p2 25 %A3 = getelementptr inbounds double, ptr %A, i32 %p3 26 %A4 = getelementptr inbounds double, ptr %A, i32 %p4 27 %A5 = getelementptr inbounds double, ptr %A, i32 %p5 28 %A6 = getelementptr inbounds double, ptr %A, i32 %p6 29 %A7 = getelementptr inbounds double, ptr %A, i32 %p7 30 %A8 = getelementptr inbounds double, ptr %A, i32 %p8 31 %A9 = getelementptr inbounds double, ptr %A, i32 %p9 32 %A10 = getelementptr inbounds double, ptr %A, i32 %p10 33 %A11 = getelementptr inbounds double, ptr %A, i32 %p11 34 %A12 = getelementptr inbounds double, ptr %A, i32 %p12 35 %A13 = getelementptr inbounds double, ptr %A, i32 %p13 36 %A14 = getelementptr inbounds double, ptr %A, i32 %p14 37 %A15 = getelementptr inbounds double, ptr %A, i32 %p15 38 %A16 = getelementptr inbounds double, ptr %A, i32 %p16 39 %A17 = getelementptr inbounds double, ptr %A, i32 %p17 40 %A18 = getelementptr inbounds double, ptr %A, i32 %p18 41 %A19 = getelementptr inbounds double, ptr %A, i32 %p19 42 %A20 = getelementptr inbounds double, ptr %A, i32 %p20 43 %A21 = getelementptr inbounds double, ptr %A, i32 %p21 44 %A22 = getelementptr inbounds double, ptr %A, i32 %p22 45 %A23 = getelementptr inbounds double, ptr %A, i32 %p23 46 %A24 = getelementptr inbounds double, ptr %A, i32 %p24 47 %A25 = getelementptr inbounds double, ptr %A, i32 %p25 48 %A26 = getelementptr inbounds double, ptr %A, i32 %p26 49 %A27 = getelementptr inbounds double, ptr %A, i32 %p27 50 %A28 = getelementptr inbounds double, ptr %A, i32 %p28 51 %A29 = getelementptr inbounds double, ptr %A, i32 %p29 52 %A30 = getelementptr inbounds double, ptr %A, i32 %p30 53 %A31 = getelementptr inbounds double, ptr %A, i32 %p31 54 %A32 = getelementptr inbounds double, ptr %A, i32 %p32 55 %A33 = getelementptr inbounds double, ptr %A, i32 %p33 56 %A34 = getelementptr inbounds double, ptr %A, i32 %p34 57 %A35 = getelementptr inbounds double, ptr %A, i32 %p35 58 %A36 = getelementptr inbounds double, ptr %A, i32 %p36 59 %A37 = getelementptr inbounds double, ptr %A, i32 %p37 60 %A38 = getelementptr inbounds double, ptr %A, i32 %p38 61 %A39 = getelementptr inbounds double, ptr %A, i32 %p39 62 %A40 = getelementptr inbounds double, ptr %A, i32 %p40 63 %A41 = getelementptr inbounds double, ptr %A, i32 %p41 64 %A42 = getelementptr inbounds double, ptr %A, i32 %p42 65 %A43 = getelementptr inbounds double, ptr %A, i32 %p43 66 %A44 = getelementptr inbounds double, ptr %A, i32 %p44 67 %A45 = getelementptr inbounds double, ptr %A, i32 %p45 68 %A46 = getelementptr inbounds double, ptr %A, i32 %p46 69 %A47 = getelementptr inbounds double, ptr %A, i32 %p47 70 %A48 = getelementptr inbounds double, ptr %A, i32 %p48 71 %A49 = getelementptr inbounds double, ptr %A, i32 %p49 72 %A50 = getelementptr inbounds double, ptr %A, i32 %p50 73 %A51 = getelementptr inbounds double, ptr %A, i32 %p51 74 %A52 = getelementptr inbounds double, ptr %A, i32 %p52 75 %A53 = getelementptr inbounds double, ptr %A, i32 %p53 76 %A54 = getelementptr inbounds double, ptr %A, i32 %p54 77 %A55 = getelementptr inbounds double, ptr %A, i32 %p55 78 %A56 = getelementptr inbounds double, ptr %A, i32 %p56 79 %A57 = getelementptr inbounds double, ptr %A, i32 %p57 80 %A58 = getelementptr inbounds double, ptr %A, i32 %p58 81 %A59 = getelementptr inbounds double, ptr %A, i32 %p59 82 83 %val0 = load double, ptr %A0 84 store double %val0, ptr %A1 85 86 %val2 = load double, ptr %A2 87 store double %val2, ptr %A3 88 89 %val4 = load double, ptr %A4 90 store double %val4, ptr %A5 91 92 %val6 = load double, ptr %A6 93 store double %val6, ptr %A7 94 95 %val8 = load double, ptr %A8 96 store double %val8, ptr %A9 97 98 %val10 = load double, ptr %A10 99 store double %val10, ptr %A11 100 101 %val12 = load double, ptr %A12 102 store double %val12, ptr %A13 103 104 %val13 = load double, ptr %A13 105 store double %val13, ptr %A15 106 107 %val16 = load double, ptr %A16 108 store double %val16, ptr %A17 109 110 %val18 = load double, ptr %A18 111 store double %val18, ptr %A19 112 113 %val20 = load double, ptr %A20 114 store double %val20, ptr %A21 115 116 %val22 = load double, ptr %A22 117 store double %val22, ptr %A23 118 119 %val24 = load double, ptr %A24 120 store double %val24, ptr %A25 121 122 %val26 = load double, ptr %A26 123 store double %val26, ptr %A27 124 125 %val28 = load double, ptr %A28 126 store double %val28, ptr %A29 127 128 %val30 = load double, ptr %A30 129 store double %val30, ptr %A31 130 131 %val32 = load double, ptr %A32 132 store double %val32, ptr %A33 133 134 %val34 = load double, ptr %A34 135 store double %val34, ptr %A35 136 137 %val36 = load double, ptr %A36 138 store double %val36, ptr %A37 139 140 %val38 = load double, ptr %A38 141 store double %val38, ptr %A39 142 143 %val40 = load double, ptr %A40 144 store double %val40, ptr %A41 145 146 %val42 = load double, ptr %A42 147 store double %val42, ptr %A43 148 149 %val44 = load double, ptr %A44 150 store double %val44, ptr %A45 151 152 %val46 = load double, ptr %A46 153 store double %val46, ptr %A47 154 155 %val48 = load double, ptr %A48 156 store double %val48, ptr %A49 157 158 %val50 = load double, ptr %A50 159 store double %val50, ptr %A51 160 161 %val52 = load double, ptr %A52 162 store double %val52, ptr %A53 163 164 %val54 = load double, ptr %A54 165 store double %val54, ptr %A55 166 167 %val56 = load double, ptr %A56 168 store double %val56, ptr %A57 169 170 %val58 = load double, ptr %A58 171 store double %val58, ptr %A59 172 173 br label %inc 174 175 176inc: 177 %j.inc = add nuw nsw i32 %j, 1 178 br label %for 179 180exit: 181 br label %return 182 183return: 184 ret void 185} 186 187 188; CHECK: SCoP could not be simplified 189