forked from NUDT-compiler/nudt-compiler-cpp
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
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
|
|
}
|