You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

818 lines
30 KiB

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
}