declare i32 @getint() declare float @getfloat() declare i32 @getarray(i32* %arg.a) declare i32 @getfarray(float* %arg.a) declare i32 @getch() declare void @putint(i32 %arg.x) declare void @putfloat(float %arg.x) declare void @putarray(i32 %arg.n, i32* %arg.a) declare void @putfarray(i32 %arg.n, float* %arg.a) declare void @putch(i32 %arg.x) declare void @starttime() declare void @stoptime() define i32 @MAX(i32 %arg.a, i32 %arg.b) { entry: %t0 = alloca i32 store i32 %arg.a, i32* %t0 %t1 = alloca i32 store i32 %arg.b, i32* %t1 %t2 = load i32, i32* %t0 %t3 = load i32, i32* %t1 %t4 = icmp eq i32 %t2, %t3 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %if.then.1, label %if.else.2 if.then.1: %t7 = load i32, i32* %t0 ret i32 %t7 if.else.2: %t8 = load i32, i32* %t0 %t9 = load i32, i32* %t1 %t10 = icmp sgt i32 %t8, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %if.then.4, label %if.else.5 if.end.3: ret i32 0 if.then.4: %t13 = load i32, i32* %t0 ret i32 %t13 if.else.5: %t14 = load i32, i32* %t1 ret i32 %t14 if.end.6: ret i32 0 } define i32 @max_sum_nonadjacent(i32* %arg.arr, i32 %arg.n) { entry: %t16 = alloca i32, i32 16 %t42 = alloca i32 %t15 = alloca i32 store i32 %arg.n, i32* %t15 %t17 = getelementptr inbounds i32, i32* %t16, i32 0 store i32 0, i32* %t17 %t18 = getelementptr inbounds i32, i32* %t16, i32 1 store i32 0, i32* %t18 %t19 = getelementptr inbounds i32, i32* %t16, i32 2 store i32 0, i32* %t19 %t20 = getelementptr inbounds i32, i32* %t16, i32 3 store i32 0, i32* %t20 %t21 = getelementptr inbounds i32, i32* %t16, i32 4 store i32 0, i32* %t21 %t22 = getelementptr inbounds i32, i32* %t16, i32 5 store i32 0, i32* %t22 %t23 = getelementptr inbounds i32, i32* %t16, i32 6 store i32 0, i32* %t23 %t24 = getelementptr inbounds i32, i32* %t16, i32 7 store i32 0, i32* %t24 %t25 = getelementptr inbounds i32, i32* %t16, i32 8 store i32 0, i32* %t25 %t26 = getelementptr inbounds i32, i32* %t16, i32 9 store i32 0, i32* %t26 %t27 = getelementptr inbounds i32, i32* %t16, i32 10 store i32 0, i32* %t27 %t28 = getelementptr inbounds i32, i32* %t16, i32 11 store i32 0, i32* %t28 %t29 = getelementptr inbounds i32, i32* %t16, i32 12 store i32 0, i32* %t29 %t30 = getelementptr inbounds i32, i32* %t16, i32 13 store i32 0, i32* %t30 %t31 = getelementptr inbounds i32, i32* %t16, i32 14 store i32 0, i32* %t31 %t32 = getelementptr inbounds i32, i32* %t16, i32 15 store i32 0, i32* %t32 %t33 = getelementptr inbounds i32, i32* %t16, i32 0 %t34 = getelementptr inbounds i32, i32* %arg.arr, i32 0 %t35 = load i32, i32* %t34 store i32 %t35, i32* %t33 %t36 = getelementptr inbounds i32, i32* %t16, i32 1 %t37 = getelementptr inbounds i32, i32* %arg.arr, i32 0 %t38 = load i32, i32* %t37 %t39 = getelementptr inbounds i32, i32* %arg.arr, i32 1 %t40 = load i32, i32* %t39 %t41 = call i32 @MAX(i32 %t38, i32 %t40) store i32 %t41, i32* %t36 store i32 2, i32* %t42 br label %while.cond.7 while.cond.7: %t43 = load i32, i32* %t42 %t44 = load i32, i32* %t15 %t45 = icmp slt i32 %t43, %t44 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %while.body.8, label %while.end.9 while.body.8: %t48 = load i32, i32* %t42 %t49 = getelementptr inbounds i32, i32* %t16, i32 %t48 %t50 = load i32, i32* %t42 %t51 = sub i32 %t50, 2 %t52 = getelementptr inbounds i32, i32* %t16, i32 %t51 %t53 = load i32, i32* %t52 %t54 = load i32, i32* %t42 %t55 = getelementptr inbounds i32, i32* %arg.arr, i32 %t54 %t56 = load i32, i32* %t55 %t57 = add i32 %t53, %t56 %t58 = load i32, i32* %t42 %t59 = sub i32 %t58, 1 %t60 = getelementptr inbounds i32, i32* %t16, i32 %t59 %t61 = load i32, i32* %t60 %t62 = call i32 @MAX(i32 %t57, i32 %t61) store i32 %t62, i32* %t49 %t63 = load i32, i32* %t42 %t64 = add i32 %t63, 1 store i32 %t64, i32* %t42 br label %while.cond.7 while.end.9: %t65 = load i32, i32* %t15 %t66 = sub i32 %t65, 1 %t67 = getelementptr inbounds i32, i32* %t16, i32 %t66 %t68 = load i32, i32* %t67 ret i32 %t68 } define i32 @longest_common_subseq(i32* %arg.arr1, i32 %arg.len1, i32* %arg.arr2, i32 %arg.len2) { entry: %t71 = alloca i32, i32 256 %t328 = alloca i32 %t329 = alloca i32 %t69 = alloca i32 store i32 %arg.len1, i32* %t69 %t70 = alloca i32 store i32 %arg.len2, i32* %t70 %t72 = getelementptr inbounds i32, i32* %t71, i32 0 store i32 0, i32* %t72 %t73 = getelementptr inbounds i32, i32* %t71, i32 1 store i32 0, i32* %t73 %t74 = getelementptr inbounds i32, i32* %t71, i32 2 store i32 0, i32* %t74 %t75 = getelementptr inbounds i32, i32* %t71, i32 3 store i32 0, i32* %t75 %t76 = getelementptr inbounds i32, i32* %t71, i32 4 store i32 0, i32* %t76 %t77 = getelementptr inbounds i32, i32* %t71, i32 5 store i32 0, i32* %t77 %t78 = getelementptr inbounds i32, i32* %t71, i32 6 store i32 0, i32* %t78 %t79 = getelementptr inbounds i32, i32* %t71, i32 7 store i32 0, i32* %t79 %t80 = getelementptr inbounds i32, i32* %t71, i32 8 store i32 0, i32* %t80 %t81 = getelementptr inbounds i32, i32* %t71, i32 9 store i32 0, i32* %t81 %t82 = getelementptr inbounds i32, i32* %t71, i32 10 store i32 0, i32* %t82 %t83 = getelementptr inbounds i32, i32* %t71, i32 11 store i32 0, i32* %t83 %t84 = getelementptr inbounds i32, i32* %t71, i32 12 store i32 0, i32* %t84 %t85 = getelementptr inbounds i32, i32* %t71, i32 13 store i32 0, i32* %t85 %t86 = getelementptr inbounds i32, i32* %t71, i32 14 store i32 0, i32* %t86 %t87 = getelementptr inbounds i32, i32* %t71, i32 15 store i32 0, i32* %t87 %t88 = getelementptr inbounds i32, i32* %t71, i32 16 store i32 0, i32* %t88 %t89 = getelementptr inbounds i32, i32* %t71, i32 17 store i32 0, i32* %t89 %t90 = getelementptr inbounds i32, i32* %t71, i32 18 store i32 0, i32* %t90 %t91 = getelementptr inbounds i32, i32* %t71, i32 19 store i32 0, i32* %t91 %t92 = getelementptr inbounds i32, i32* %t71, i32 20 store i32 0, i32* %t92 %t93 = getelementptr inbounds i32, i32* %t71, i32 21 store i32 0, i32* %t93 %t94 = getelementptr inbounds i32, i32* %t71, i32 22 store i32 0, i32* %t94 %t95 = getelementptr inbounds i32, i32* %t71, i32 23 store i32 0, i32* %t95 %t96 = getelementptr inbounds i32, i32* %t71, i32 24 store i32 0, i32* %t96 %t97 = getelementptr inbounds i32, i32* %t71, i32 25 store i32 0, i32* %t97 %t98 = getelementptr inbounds i32, i32* %t71, i32 26 store i32 0, i32* %t98 %t99 = getelementptr inbounds i32, i32* %t71, i32 27 store i32 0, i32* %t99 %t100 = getelementptr inbounds i32, i32* %t71, i32 28 store i32 0, i32* %t100 %t101 = getelementptr inbounds i32, i32* %t71, i32 29 store i32 0, i32* %t101 %t102 = getelementptr inbounds i32, i32* %t71, i32 30 store i32 0, i32* %t102 %t103 = getelementptr inbounds i32, i32* %t71, i32 31 store i32 0, i32* %t103 %t104 = getelementptr inbounds i32, i32* %t71, i32 32 store i32 0, i32* %t104 %t105 = getelementptr inbounds i32, i32* %t71, i32 33 store i32 0, i32* %t105 %t106 = getelementptr inbounds i32, i32* %t71, i32 34 store i32 0, i32* %t106 %t107 = getelementptr inbounds i32, i32* %t71, i32 35 store i32 0, i32* %t107 %t108 = getelementptr inbounds i32, i32* %t71, i32 36 store i32 0, i32* %t108 %t109 = getelementptr inbounds i32, i32* %t71, i32 37 store i32 0, i32* %t109 %t110 = getelementptr inbounds i32, i32* %t71, i32 38 store i32 0, i32* %t110 %t111 = getelementptr inbounds i32, i32* %t71, i32 39 store i32 0, i32* %t111 %t112 = getelementptr inbounds i32, i32* %t71, i32 40 store i32 0, i32* %t112 %t113 = getelementptr inbounds i32, i32* %t71, i32 41 store i32 0, i32* %t113 %t114 = getelementptr inbounds i32, i32* %t71, i32 42 store i32 0, i32* %t114 %t115 = getelementptr inbounds i32, i32* %t71, i32 43 store i32 0, i32* %t115 %t116 = getelementptr inbounds i32, i32* %t71, i32 44 store i32 0, i32* %t116 %t117 = getelementptr inbounds i32, i32* %t71, i32 45 store i32 0, i32* %t117 %t118 = getelementptr inbounds i32, i32* %t71, i32 46 store i32 0, i32* %t118 %t119 = getelementptr inbounds i32, i32* %t71, i32 47 store i32 0, i32* %t119 %t120 = getelementptr inbounds i32, i32* %t71, i32 48 store i32 0, i32* %t120 %t121 = getelementptr inbounds i32, i32* %t71, i32 49 store i32 0, i32* %t121 %t122 = getelementptr inbounds i32, i32* %t71, i32 50 store i32 0, i32* %t122 %t123 = getelementptr inbounds i32, i32* %t71, i32 51 store i32 0, i32* %t123 %t124 = getelementptr inbounds i32, i32* %t71, i32 52 store i32 0, i32* %t124 %t125 = getelementptr inbounds i32, i32* %t71, i32 53 store i32 0, i32* %t125 %t126 = getelementptr inbounds i32, i32* %t71, i32 54 store i32 0, i32* %t126 %t127 = getelementptr inbounds i32, i32* %t71, i32 55 store i32 0, i32* %t127 %t128 = getelementptr inbounds i32, i32* %t71, i32 56 store i32 0, i32* %t128 %t129 = getelementptr inbounds i32, i32* %t71, i32 57 store i32 0, i32* %t129 %t130 = getelementptr inbounds i32, i32* %t71, i32 58 store i32 0, i32* %t130 %t131 = getelementptr inbounds i32, i32* %t71, i32 59 store i32 0, i32* %t131 %t132 = getelementptr inbounds i32, i32* %t71, i32 60 store i32 0, i32* %t132 %t133 = getelementptr inbounds i32, i32* %t71, i32 61 store i32 0, i32* %t133 %t134 = getelementptr inbounds i32, i32* %t71, i32 62 store i32 0, i32* %t134 %t135 = getelementptr inbounds i32, i32* %t71, i32 63 store i32 0, i32* %t135 %t136 = getelementptr inbounds i32, i32* %t71, i32 64 store i32 0, i32* %t136 %t137 = getelementptr inbounds i32, i32* %t71, i32 65 store i32 0, i32* %t137 %t138 = getelementptr inbounds i32, i32* %t71, i32 66 store i32 0, i32* %t138 %t139 = getelementptr inbounds i32, i32* %t71, i32 67 store i32 0, i32* %t139 %t140 = getelementptr inbounds i32, i32* %t71, i32 68 store i32 0, i32* %t140 %t141 = getelementptr inbounds i32, i32* %t71, i32 69 store i32 0, i32* %t141 %t142 = getelementptr inbounds i32, i32* %t71, i32 70 store i32 0, i32* %t142 %t143 = getelementptr inbounds i32, i32* %t71, i32 71 store i32 0, i32* %t143 %t144 = getelementptr inbounds i32, i32* %t71, i32 72 store i32 0, i32* %t144 %t145 = getelementptr inbounds i32, i32* %t71, i32 73 store i32 0, i32* %t145 %t146 = getelementptr inbounds i32, i32* %t71, i32 74 store i32 0, i32* %t146 %t147 = getelementptr inbounds i32, i32* %t71, i32 75 store i32 0, i32* %t147 %t148 = getelementptr inbounds i32, i32* %t71, i32 76 store i32 0, i32* %t148 %t149 = getelementptr inbounds i32, i32* %t71, i32 77 store i32 0, i32* %t149 %t150 = getelementptr inbounds i32, i32* %t71, i32 78 store i32 0, i32* %t150 %t151 = getelementptr inbounds i32, i32* %t71, i32 79 store i32 0, i32* %t151 %t152 = getelementptr inbounds i32, i32* %t71, i32 80 store i32 0, i32* %t152 %t153 = getelementptr inbounds i32, i32* %t71, i32 81 store i32 0, i32* %t153 %t154 = getelementptr inbounds i32, i32* %t71, i32 82 store i32 0, i32* %t154 %t155 = getelementptr inbounds i32, i32* %t71, i32 83 store i32 0, i32* %t155 %t156 = getelementptr inbounds i32, i32* %t71, i32 84 store i32 0, i32* %t156 %t157 = getelementptr inbounds i32, i32* %t71, i32 85 store i32 0, i32* %t157 %t158 = getelementptr inbounds i32, i32* %t71, i32 86 store i32 0, i32* %t158 %t159 = getelementptr inbounds i32, i32* %t71, i32 87 store i32 0, i32* %t159 %t160 = getelementptr inbounds i32, i32* %t71, i32 88 store i32 0, i32* %t160 %t161 = getelementptr inbounds i32, i32* %t71, i32 89 store i32 0, i32* %t161 %t162 = getelementptr inbounds i32, i32* %t71, i32 90 store i32 0, i32* %t162 %t163 = getelementptr inbounds i32, i32* %t71, i32 91 store i32 0, i32* %t163 %t164 = getelementptr inbounds i32, i32* %t71, i32 92 store i32 0, i32* %t164 %t165 = getelementptr inbounds i32, i32* %t71, i32 93 store i32 0, i32* %t165 %t166 = getelementptr inbounds i32, i32* %t71, i32 94 store i32 0, i32* %t166 %t167 = getelementptr inbounds i32, i32* %t71, i32 95 store i32 0, i32* %t167 %t168 = getelementptr inbounds i32, i32* %t71, i32 96 store i32 0, i32* %t168 %t169 = getelementptr inbounds i32, i32* %t71, i32 97 store i32 0, i32* %t169 %t170 = getelementptr inbounds i32, i32* %t71, i32 98 store i32 0, i32* %t170 %t171 = getelementptr inbounds i32, i32* %t71, i32 99 store i32 0, i32* %t171 %t172 = getelementptr inbounds i32, i32* %t71, i32 100 store i32 0, i32* %t172 %t173 = getelementptr inbounds i32, i32* %t71, i32 101 store i32 0, i32* %t173 %t174 = getelementptr inbounds i32, i32* %t71, i32 102 store i32 0, i32* %t174 %t175 = getelementptr inbounds i32, i32* %t71, i32 103 store i32 0, i32* %t175 %t176 = getelementptr inbounds i32, i32* %t71, i32 104 store i32 0, i32* %t176 %t177 = getelementptr inbounds i32, i32* %t71, i32 105 store i32 0, i32* %t177 %t178 = getelementptr inbounds i32, i32* %t71, i32 106 store i32 0, i32* %t178 %t179 = getelementptr inbounds i32, i32* %t71, i32 107 store i32 0, i32* %t179 %t180 = getelementptr inbounds i32, i32* %t71, i32 108 store i32 0, i32* %t180 %t181 = getelementptr inbounds i32, i32* %t71, i32 109 store i32 0, i32* %t181 %t182 = getelementptr inbounds i32, i32* %t71, i32 110 store i32 0, i32* %t182 %t183 = getelementptr inbounds i32, i32* %t71, i32 111 store i32 0, i32* %t183 %t184 = getelementptr inbounds i32, i32* %t71, i32 112 store i32 0, i32* %t184 %t185 = getelementptr inbounds i32, i32* %t71, i32 113 store i32 0, i32* %t185 %t186 = getelementptr inbounds i32, i32* %t71, i32 114 store i32 0, i32* %t186 %t187 = getelementptr inbounds i32, i32* %t71, i32 115 store i32 0, i32* %t187 %t188 = getelementptr inbounds i32, i32* %t71, i32 116 store i32 0, i32* %t188 %t189 = getelementptr inbounds i32, i32* %t71, i32 117 store i32 0, i32* %t189 %t190 = getelementptr inbounds i32, i32* %t71, i32 118 store i32 0, i32* %t190 %t191 = getelementptr inbounds i32, i32* %t71, i32 119 store i32 0, i32* %t191 %t192 = getelementptr inbounds i32, i32* %t71, i32 120 store i32 0, i32* %t192 %t193 = getelementptr inbounds i32, i32* %t71, i32 121 store i32 0, i32* %t193 %t194 = getelementptr inbounds i32, i32* %t71, i32 122 store i32 0, i32* %t194 %t195 = getelementptr inbounds i32, i32* %t71, i32 123 store i32 0, i32* %t195 %t196 = getelementptr inbounds i32, i32* %t71, i32 124 store i32 0, i32* %t196 %t197 = getelementptr inbounds i32, i32* %t71, i32 125 store i32 0, i32* %t197 %t198 = getelementptr inbounds i32, i32* %t71, i32 126 store i32 0, i32* %t198 %t199 = getelementptr inbounds i32, i32* %t71, i32 127 store i32 0, i32* %t199 %t200 = getelementptr inbounds i32, i32* %t71, i32 128 store i32 0, i32* %t200 %t201 = getelementptr inbounds i32, i32* %t71, i32 129 store i32 0, i32* %t201 %t202 = getelementptr inbounds i32, i32* %t71, i32 130 store i32 0, i32* %t202 %t203 = getelementptr inbounds i32, i32* %t71, i32 131 store i32 0, i32* %t203 %t204 = getelementptr inbounds i32, i32* %t71, i32 132 store i32 0, i32* %t204 %t205 = getelementptr inbounds i32, i32* %t71, i32 133 store i32 0, i32* %t205 %t206 = getelementptr inbounds i32, i32* %t71, i32 134 store i32 0, i32* %t206 %t207 = getelementptr inbounds i32, i32* %t71, i32 135 store i32 0, i32* %t207 %t208 = getelementptr inbounds i32, i32* %t71, i32 136 store i32 0, i32* %t208 %t209 = getelementptr inbounds i32, i32* %t71, i32 137 store i32 0, i32* %t209 %t210 = getelementptr inbounds i32, i32* %t71, i32 138 store i32 0, i32* %t210 %t211 = getelementptr inbounds i32, i32* %t71, i32 139 store i32 0, i32* %t211 %t212 = getelementptr inbounds i32, i32* %t71, i32 140 store i32 0, i32* %t212 %t213 = getelementptr inbounds i32, i32* %t71, i32 141 store i32 0, i32* %t213 %t214 = getelementptr inbounds i32, i32* %t71, i32 142 store i32 0, i32* %t214 %t215 = getelementptr inbounds i32, i32* %t71, i32 143 store i32 0, i32* %t215 %t216 = getelementptr inbounds i32, i32* %t71, i32 144 store i32 0, i32* %t216 %t217 = getelementptr inbounds i32, i32* %t71, i32 145 store i32 0, i32* %t217 %t218 = getelementptr inbounds i32, i32* %t71, i32 146 store i32 0, i32* %t218 %t219 = getelementptr inbounds i32, i32* %t71, i32 147 store i32 0, i32* %t219 %t220 = getelementptr inbounds i32, i32* %t71, i32 148 store i32 0, i32* %t220 %t221 = getelementptr inbounds i32, i32* %t71, i32 149 store i32 0, i32* %t221 %t222 = getelementptr inbounds i32, i32* %t71, i32 150 store i32 0, i32* %t222 %t223 = getelementptr inbounds i32, i32* %t71, i32 151 store i32 0, i32* %t223 %t224 = getelementptr inbounds i32, i32* %t71, i32 152 store i32 0, i32* %t224 %t225 = getelementptr inbounds i32, i32* %t71, i32 153 store i32 0, i32* %t225 %t226 = getelementptr inbounds i32, i32* %t71, i32 154 store i32 0, i32* %t226 %t227 = getelementptr inbounds i32, i32* %t71, i32 155 store i32 0, i32* %t227 %t228 = getelementptr inbounds i32, i32* %t71, i32 156 store i32 0, i32* %t228 %t229 = getelementptr inbounds i32, i32* %t71, i32 157 store i32 0, i32* %t229 %t230 = getelementptr inbounds i32, i32* %t71, i32 158 store i32 0, i32* %t230 %t231 = getelementptr inbounds i32, i32* %t71, i32 159 store i32 0, i32* %t231 %t232 = getelementptr inbounds i32, i32* %t71, i32 160 store i32 0, i32* %t232 %t233 = getelementptr inbounds i32, i32* %t71, i32 161 store i32 0, i32* %t233 %t234 = getelementptr inbounds i32, i32* %t71, i32 162 store i32 0, i32* %t234 %t235 = getelementptr inbounds i32, i32* %t71, i32 163 store i32 0, i32* %t235 %t236 = getelementptr inbounds i32, i32* %t71, i32 164 store i32 0, i32* %t236 %t237 = getelementptr inbounds i32, i32* %t71, i32 165 store i32 0, i32* %t237 %t238 = getelementptr inbounds i32, i32* %t71, i32 166 store i32 0, i32* %t238 %t239 = getelementptr inbounds i32, i32* %t71, i32 167 store i32 0, i32* %t239 %t240 = getelementptr inbounds i32, i32* %t71, i32 168 store i32 0, i32* %t240 %t241 = getelementptr inbounds i32, i32* %t71, i32 169 store i32 0, i32* %t241 %t242 = getelementptr inbounds i32, i32* %t71, i32 170 store i32 0, i32* %t242 %t243 = getelementptr inbounds i32, i32* %t71, i32 171 store i32 0, i32* %t243 %t244 = getelementptr inbounds i32, i32* %t71, i32 172 store i32 0, i32* %t244 %t245 = getelementptr inbounds i32, i32* %t71, i32 173 store i32 0, i32* %t245 %t246 = getelementptr inbounds i32, i32* %t71, i32 174 store i32 0, i32* %t246 %t247 = getelementptr inbounds i32, i32* %t71, i32 175 store i32 0, i32* %t247 %t248 = getelementptr inbounds i32, i32* %t71, i32 176 store i32 0, i32* %t248 %t249 = getelementptr inbounds i32, i32* %t71, i32 177 store i32 0, i32* %t249 %t250 = getelementptr inbounds i32, i32* %t71, i32 178 store i32 0, i32* %t250 %t251 = getelementptr inbounds i32, i32* %t71, i32 179 store i32 0, i32* %t251 %t252 = getelementptr inbounds i32, i32* %t71, i32 180 store i32 0, i32* %t252 %t253 = getelementptr inbounds i32, i32* %t71, i32 181 store i32 0, i32* %t253 %t254 = getelementptr inbounds i32, i32* %t71, i32 182 store i32 0, i32* %t254 %t255 = getelementptr inbounds i32, i32* %t71, i32 183 store i32 0, i32* %t255 %t256 = getelementptr inbounds i32, i32* %t71, i32 184 store i32 0, i32* %t256 %t257 = getelementptr inbounds i32, i32* %t71, i32 185 store i32 0, i32* %t257 %t258 = getelementptr inbounds i32, i32* %t71, i32 186 store i32 0, i32* %t258 %t259 = getelementptr inbounds i32, i32* %t71, i32 187 store i32 0, i32* %t259 %t260 = getelementptr inbounds i32, i32* %t71, i32 188 store i32 0, i32* %t260 %t261 = getelementptr inbounds i32, i32* %t71, i32 189 store i32 0, i32* %t261 %t262 = getelementptr inbounds i32, i32* %t71, i32 190 store i32 0, i32* %t262 %t263 = getelementptr inbounds i32, i32* %t71, i32 191 store i32 0, i32* %t263 %t264 = getelementptr inbounds i32, i32* %t71, i32 192 store i32 0, i32* %t264 %t265 = getelementptr inbounds i32, i32* %t71, i32 193 store i32 0, i32* %t265 %t266 = getelementptr inbounds i32, i32* %t71, i32 194 store i32 0, i32* %t266 %t267 = getelementptr inbounds i32, i32* %t71, i32 195 store i32 0, i32* %t267 %t268 = getelementptr inbounds i32, i32* %t71, i32 196 store i32 0, i32* %t268 %t269 = getelementptr inbounds i32, i32* %t71, i32 197 store i32 0, i32* %t269 %t270 = getelementptr inbounds i32, i32* %t71, i32 198 store i32 0, i32* %t270 %t271 = getelementptr inbounds i32, i32* %t71, i32 199 store i32 0, i32* %t271 %t272 = getelementptr inbounds i32, i32* %t71, i32 200 store i32 0, i32* %t272 %t273 = getelementptr inbounds i32, i32* %t71, i32 201 store i32 0, i32* %t273 %t274 = getelementptr inbounds i32, i32* %t71, i32 202 store i32 0, i32* %t274 %t275 = getelementptr inbounds i32, i32* %t71, i32 203 store i32 0, i32* %t275 %t276 = getelementptr inbounds i32, i32* %t71, i32 204 store i32 0, i32* %t276 %t277 = getelementptr inbounds i32, i32* %t71, i32 205 store i32 0, i32* %t277 %t278 = getelementptr inbounds i32, i32* %t71, i32 206 store i32 0, i32* %t278 %t279 = getelementptr inbounds i32, i32* %t71, i32 207 store i32 0, i32* %t279 %t280 = getelementptr inbounds i32, i32* %t71, i32 208 store i32 0, i32* %t280 %t281 = getelementptr inbounds i32, i32* %t71, i32 209 store i32 0, i32* %t281 %t282 = getelementptr inbounds i32, i32* %t71, i32 210 store i32 0, i32* %t282 %t283 = getelementptr inbounds i32, i32* %t71, i32 211 store i32 0, i32* %t283 %t284 = getelementptr inbounds i32, i32* %t71, i32 212 store i32 0, i32* %t284 %t285 = getelementptr inbounds i32, i32* %t71, i32 213 store i32 0, i32* %t285 %t286 = getelementptr inbounds i32, i32* %t71, i32 214 store i32 0, i32* %t286 %t287 = getelementptr inbounds i32, i32* %t71, i32 215 store i32 0, i32* %t287 %t288 = getelementptr inbounds i32, i32* %t71, i32 216 store i32 0, i32* %t288 %t289 = getelementptr inbounds i32, i32* %t71, i32 217 store i32 0, i32* %t289 %t290 = getelementptr inbounds i32, i32* %t71, i32 218 store i32 0, i32* %t290 %t291 = getelementptr inbounds i32, i32* %t71, i32 219 store i32 0, i32* %t291 %t292 = getelementptr inbounds i32, i32* %t71, i32 220 store i32 0, i32* %t292 %t293 = getelementptr inbounds i32, i32* %t71, i32 221 store i32 0, i32* %t293 %t294 = getelementptr inbounds i32, i32* %t71, i32 222 store i32 0, i32* %t294 %t295 = getelementptr inbounds i32, i32* %t71, i32 223 store i32 0, i32* %t295 %t296 = getelementptr inbounds i32, i32* %t71, i32 224 store i32 0, i32* %t296 %t297 = getelementptr inbounds i32, i32* %t71, i32 225 store i32 0, i32* %t297 %t298 = getelementptr inbounds i32, i32* %t71, i32 226 store i32 0, i32* %t298 %t299 = getelementptr inbounds i32, i32* %t71, i32 227 store i32 0, i32* %t299 %t300 = getelementptr inbounds i32, i32* %t71, i32 228 store i32 0, i32* %t300 %t301 = getelementptr inbounds i32, i32* %t71, i32 229 store i32 0, i32* %t301 %t302 = getelementptr inbounds i32, i32* %t71, i32 230 store i32 0, i32* %t302 %t303 = getelementptr inbounds i32, i32* %t71, i32 231 store i32 0, i32* %t303 %t304 = getelementptr inbounds i32, i32* %t71, i32 232 store i32 0, i32* %t304 %t305 = getelementptr inbounds i32, i32* %t71, i32 233 store i32 0, i32* %t305 %t306 = getelementptr inbounds i32, i32* %t71, i32 234 store i32 0, i32* %t306 %t307 = getelementptr inbounds i32, i32* %t71, i32 235 store i32 0, i32* %t307 %t308 = getelementptr inbounds i32, i32* %t71, i32 236 store i32 0, i32* %t308 %t309 = getelementptr inbounds i32, i32* %t71, i32 237 store i32 0, i32* %t309 %t310 = getelementptr inbounds i32, i32* %t71, i32 238 store i32 0, i32* %t310 %t311 = getelementptr inbounds i32, i32* %t71, i32 239 store i32 0, i32* %t311 %t312 = getelementptr inbounds i32, i32* %t71, i32 240 store i32 0, i32* %t312 %t313 = getelementptr inbounds i32, i32* %t71, i32 241 store i32 0, i32* %t313 %t314 = getelementptr inbounds i32, i32* %t71, i32 242 store i32 0, i32* %t314 %t315 = getelementptr inbounds i32, i32* %t71, i32 243 store i32 0, i32* %t315 %t316 = getelementptr inbounds i32, i32* %t71, i32 244 store i32 0, i32* %t316 %t317 = getelementptr inbounds i32, i32* %t71, i32 245 store i32 0, i32* %t317 %t318 = getelementptr inbounds i32, i32* %t71, i32 246 store i32 0, i32* %t318 %t319 = getelementptr inbounds i32, i32* %t71, i32 247 store i32 0, i32* %t319 %t320 = getelementptr inbounds i32, i32* %t71, i32 248 store i32 0, i32* %t320 %t321 = getelementptr inbounds i32, i32* %t71, i32 249 store i32 0, i32* %t321 %t322 = getelementptr inbounds i32, i32* %t71, i32 250 store i32 0, i32* %t322 %t323 = getelementptr inbounds i32, i32* %t71, i32 251 store i32 0, i32* %t323 %t324 = getelementptr inbounds i32, i32* %t71, i32 252 store i32 0, i32* %t324 %t325 = getelementptr inbounds i32, i32* %t71, i32 253 store i32 0, i32* %t325 %t326 = getelementptr inbounds i32, i32* %t71, i32 254 store i32 0, i32* %t326 %t327 = getelementptr inbounds i32, i32* %t71, i32 255 store i32 0, i32* %t327 store i32 0, i32* %t328 store i32 0, i32* %t329 store i32 1, i32* %t328 br label %while.cond.10 while.cond.10: %t330 = load i32, i32* %t328 %t331 = load i32, i32* %t69 %t332 = icmp sle i32 %t330, %t331 %t333 = zext i1 %t332 to i32 %t334 = icmp ne i32 %t333, 0 br i1 %t334, label %while.body.11, label %while.end.12 while.body.11: store i32 1, i32* %t329 br label %while.cond.13 while.end.12: %t389 = load i32, i32* %t69 %t390 = load i32, i32* %t70 %t391 = mul i32 %t389, 16 %t392 = add i32 %t391, %t390 %t393 = getelementptr inbounds i32, i32* %t71, i32 %t392 %t394 = load i32, i32* %t393 ret i32 %t394 while.cond.13: %t335 = load i32, i32* %t329 %t336 = load i32, i32* %t70 %t337 = icmp sle i32 %t335, %t336 %t338 = zext i1 %t337 to i32 %t339 = icmp ne i32 %t338, 0 br i1 %t339, label %while.body.14, label %while.end.15 while.body.14: %t340 = load i32, i32* %t328 %t341 = sub i32 %t340, 1 %t342 = getelementptr inbounds i32, i32* %arg.arr1, i32 %t341 %t343 = load i32, i32* %t342 %t344 = load i32, i32* %t329 %t345 = sub i32 %t344, 1 %t346 = getelementptr inbounds i32, i32* %arg.arr2, i32 %t345 %t347 = load i32, i32* %t346 %t348 = icmp eq i32 %t343, %t347 %t349 = zext i1 %t348 to i32 %t350 = icmp ne i32 %t349, 0 br i1 %t350, label %if.then.16, label %if.else.17 while.end.15: %t387 = load i32, i32* %t328 %t388 = add i32 %t387, 1 store i32 %t388, i32* %t328 br label %while.cond.10 if.then.16: %t351 = load i32, i32* %t328 %t352 = load i32, i32* %t329 %t353 = mul i32 %t351, 16 %t354 = add i32 %t353, %t352 %t355 = getelementptr inbounds i32, i32* %t71, i32 %t354 %t356 = load i32, i32* %t328 %t357 = sub i32 %t356, 1 %t358 = load i32, i32* %t329 %t359 = sub i32 %t358, 1 %t360 = mul i32 %t357, 16 %t361 = add i32 %t360, %t359 %t362 = getelementptr inbounds i32, i32* %t71, i32 %t361 %t363 = load i32, i32* %t362 %t364 = add i32 %t363, 1 store i32 %t364, i32* %t355 br label %if.end.18 if.else.17: %t365 = load i32, i32* %t328 %t366 = load i32, i32* %t329 %t367 = mul i32 %t365, 16 %t368 = add i32 %t367, %t366 %t369 = getelementptr inbounds i32, i32* %t71, i32 %t368 %t370 = load i32, i32* %t328 %t371 = sub i32 %t370, 1 %t372 = load i32, i32* %t329 %t373 = mul i32 %t371, 16 %t374 = add i32 %t373, %t372 %t375 = getelementptr inbounds i32, i32* %t71, i32 %t374 %t376 = load i32, i32* %t375 %t377 = load i32, i32* %t328 %t378 = load i32, i32* %t329 %t379 = sub i32 %t378, 1 %t380 = mul i32 %t377, 16 %t381 = add i32 %t380, %t379 %t382 = getelementptr inbounds i32, i32* %t71, i32 %t381 %t383 = load i32, i32* %t382 %t384 = call i32 @MAX(i32 %t376, i32 %t383) store i32 %t384, i32* %t369 br label %if.end.18 if.end.18: %t385 = load i32, i32* %t329 %t386 = add i32 %t385, 1 store i32 %t386, i32* %t329 br label %while.cond.13 } define i32 @main() { entry: %t395 = alloca i32, i32 15 %t411 = alloca i32, i32 13 %t425 = alloca i32 %t426 = alloca i32 %t396 = getelementptr inbounds i32, i32* %t395, i32 0 store i32 8, i32* %t396 %t397 = getelementptr inbounds i32, i32* %t395, i32 1 store i32 7, i32* %t397 %t398 = getelementptr inbounds i32, i32* %t395, i32 2 store i32 4, i32* %t398 %t399 = getelementptr inbounds i32, i32* %t395, i32 3 store i32 1, i32* %t399 %t400 = getelementptr inbounds i32, i32* %t395, i32 4 store i32 2, i32* %t400 %t401 = getelementptr inbounds i32, i32* %t395, i32 5 store i32 7, i32* %t401 %t402 = getelementptr inbounds i32, i32* %t395, i32 6 store i32 0, i32* %t402 %t403 = getelementptr inbounds i32, i32* %t395, i32 7 store i32 1, i32* %t403 %t404 = getelementptr inbounds i32, i32* %t395, i32 8 store i32 9, i32* %t404 %t405 = getelementptr inbounds i32, i32* %t395, i32 9 store i32 3, i32* %t405 %t406 = getelementptr inbounds i32, i32* %t395, i32 10 store i32 4, i32* %t406 %t407 = getelementptr inbounds i32, i32* %t395, i32 11 store i32 8, i32* %t407 %t408 = getelementptr inbounds i32, i32* %t395, i32 12 store i32 3, i32* %t408 %t409 = getelementptr inbounds i32, i32* %t395, i32 13 store i32 7, i32* %t409 %t410 = getelementptr inbounds i32, i32* %t395, i32 14 store i32 0, i32* %t410 %t412 = getelementptr inbounds i32, i32* %t411, i32 0 store i32 3, i32* %t412 %t413 = getelementptr inbounds i32, i32* %t411, i32 1 store i32 9, i32* %t413 %t414 = getelementptr inbounds i32, i32* %t411, i32 2 store i32 7, i32* %t414 %t415 = getelementptr inbounds i32, i32* %t411, i32 3 store i32 1, i32* %t415 %t416 = getelementptr inbounds i32, i32* %t411, i32 4 store i32 4, i32* %t416 %t417 = getelementptr inbounds i32, i32* %t411, i32 5 store i32 2, i32* %t417 %t418 = getelementptr inbounds i32, i32* %t411, i32 6 store i32 4, i32* %t418 %t419 = getelementptr inbounds i32, i32* %t411, i32 7 store i32 3, i32* %t419 %t420 = getelementptr inbounds i32, i32* %t411, i32 8 store i32 6, i32* %t420 %t421 = getelementptr inbounds i32, i32* %t411, i32 9 store i32 8, i32* %t421 %t422 = getelementptr inbounds i32, i32* %t411, i32 10 store i32 0, i32* %t422 %t423 = getelementptr inbounds i32, i32* %t411, i32 11 store i32 1, i32* %t423 %t424 = getelementptr inbounds i32, i32* %t411, i32 12 store i32 5, i32* %t424 store i32 0, i32* %t425 store i32 0, i32* %t426 %t427 = call i32 @max_sum_nonadjacent(i32* %t395, i32 15) call void @putint(i32 %t427) call void @putch(i32 10) %t430 = call i32 @longest_common_subseq(i32* %t395, i32 15, i32* %t411, i32 13) call void @putint(i32 %t430) call void @putch(i32 10) ret i32 0 }