hanchenye-scalehls/samples/polybench/gemm/gemm_4096_dse.cpp

599 lines
26 KiB
C++

//===------------------------------------------------------------*- C++ -*-===//
//
// Automatically generated file for High-level Synthesis (HLS).
//
//===----------------------------------------------------------------------===//
#include <algorithm>
#include <ap_axi_sdata.h>
#include <ap_fixed.h>
#include <ap_int.h>
#include <hls_math.h>
#include <hls_stream.h>
#include <math.h>
#include <stdint.h>
using namespace std;
/// This is top function.
/// Latency=8589934608
/// DSP=5
void gemm_4096(
float v0,
float v1,
float v2[4096][4096],
float v3[4096][4096],
float v4[4096][4096]
) { // L1
#pragma HLS interface s_axilite port=return bundle=ctrl
#pragma HLS interface s_axilite port=v0 bundle=ctrl
#pragma HLS interface s_axilite port=v1 bundle=ctrl
#pragma HLS interface bram port=v2
#pragma HLS interface bram port=v3
#pragma HLS interface bram port=v4
#pragma HLS array_partition variable=v2 cyclic factor=16 dim=2
#pragma HLS resource variable=v2 core=ram_s2p_bram
#pragma HLS array_partition variable=v3 cyclic factor=8 dim=2
#pragma HLS resource variable=v3 core=ram_s2p_bram
#pragma HLS array_partition variable=v4 cyclic factor=8 dim=1
#pragma HLS array_partition variable=v4 cyclic factor=16 dim=2
#pragma HLS resource variable=v4 core=ram_s2p_bram
for (int v5 = 0; v5 < 4096; v5 += 8) { // L2
for (int v6 = 0; v6 < 4096; v6 += 1) { // L3
for (int v7 = 0; v7 < 4096; v7 += 16) { // L4
#pragma HLS pipeline II=3
float v8 = v2[v6][v7]; // L5, S[16,16)
float v9 = v1 * v8; // L6, S[16,16)
float v10 = v3[v6][v5]; // L7, S[16,16)
float v11 = v4[v5][v7]; // L8, S[16,16)
float v12;
if (v5 == 0) { // L9
v12 = v9; // L10
} else {
v12 = v8; // L12
}
float v13 = v0 * v10; // L14, S[16,16)
float v14 = v13 * v11; // L15, S[16,16)
float v15 = v12 + v14; // L16, S[16,16)
float v16 = v2[v6][(v7 + 1)]; // L17
float v17 = v1 * v16; // L18, S[16,16)
float v18 = v4[v5][(v7 + 1)]; // L19
float v19;
if (v5 == 0) { // L20
v19 = v17; // L21
} else {
v19 = v16; // L23
}
float v20 = v13 * v18; // L25, S[16,16)
float v21 = v19 + v20; // L26, S[16,16)
float v22 = v2[v6][(v7 + 2)]; // L27
float v23 = v1 * v22; // L28, S[16,16)
float v24 = v4[v5][(v7 + 2)]; // L29
float v25;
if (v5 == 0) { // L30
v25 = v23; // L31
} else {
v25 = v22; // L33
}
float v26 = v13 * v24; // L35, S[16,16)
float v27 = v25 + v26; // L36, S[16,16)
float v28 = v2[v6][(v7 + 3)]; // L37
float v29 = v1 * v28; // L38, S[16,16)
float v30 = v4[v5][(v7 + 3)]; // L39
float v31;
if (v5 == 0) { // L40
v31 = v29; // L41
} else {
v31 = v28; // L43
}
float v32 = v13 * v30; // L45, S[16,16)
float v33 = v31 + v32; // L46, S[16,16)
float v34 = v2[v6][(v7 + 4)]; // L47
float v35 = v1 * v34; // L48, S[16,16)
float v36 = v4[v5][(v7 + 4)]; // L49
float v37;
if (v5 == 0) { // L50
v37 = v35; // L51
} else {
v37 = v34; // L53
}
float v38 = v13 * v36; // L55, S[16,16)
float v39 = v37 + v38; // L56, S[16,16)
float v40 = v2[v6][(v7 + 5)]; // L57
float v41 = v1 * v40; // L58, S[16,16)
float v42 = v4[v5][(v7 + 5)]; // L59
float v43;
if (v5 == 0) { // L60
v43 = v41; // L61
} else {
v43 = v40; // L63
}
float v44 = v13 * v42; // L65, S[16,16)
float v45 = v43 + v44; // L66, S[16,16)
float v46 = v2[v6][(v7 + 6)]; // L67
float v47 = v1 * v46; // L68, S[16,16)
float v48 = v4[v5][(v7 + 6)]; // L69
float v49;
if (v5 == 0) { // L70
v49 = v47; // L71
} else {
v49 = v46; // L73
}
float v50 = v13 * v48; // L75, S[16,16)
float v51 = v49 + v50; // L76, S[16,16)
float v52 = v2[v6][(v7 + 7)]; // L77
float v53 = v1 * v52; // L78, S[16,16)
float v54 = v4[v5][(v7 + 7)]; // L79
float v55;
if (v5 == 0) { // L80
v55 = v53; // L81
} else {
v55 = v52; // L83
}
float v56 = v13 * v54; // L85, S[16,16)
float v57 = v55 + v56; // L86, S[16,16)
float v58 = v2[v6][(v7 + 8)]; // L87
float v59 = v1 * v58; // L88, S[16,16)
float v60 = v4[v5][(v7 + 8)]; // L89
float v61;
if (v5 == 0) { // L90
v61 = v59; // L91
} else {
v61 = v58; // L93
}
float v62 = v13 * v60; // L95, S[16,16)
float v63 = v61 + v62; // L96, S[16,16)
float v64 = v2[v6][(v7 + 9)]; // L97
float v65 = v1 * v64; // L98, S[16,16)
float v66 = v4[v5][(v7 + 9)]; // L99
float v67;
if (v5 == 0) { // L100
v67 = v65; // L101
} else {
v67 = v64; // L103
}
float v68 = v13 * v66; // L105, S[16,16)
float v69 = v67 + v68; // L106, S[16,16)
float v70 = v2[v6][(v7 + 10)]; // L107
float v71 = v1 * v70; // L108, S[16,16)
float v72 = v4[v5][(v7 + 10)]; // L109
float v73;
if (v5 == 0) { // L110
v73 = v71; // L111
} else {
v73 = v70; // L113
}
float v74 = v13 * v72; // L115, S[16,16)
float v75 = v73 + v74; // L116, S[16,16)
float v76 = v2[v6][(v7 + 11)]; // L117
float v77 = v1 * v76; // L118, S[16,16)
float v78 = v4[v5][(v7 + 11)]; // L119
float v79;
if (v5 == 0) { // L120
v79 = v77; // L121
} else {
v79 = v76; // L123
}
float v80 = v13 * v78; // L125, S[16,16)
float v81 = v79 + v80; // L126, S[16,16)
float v82 = v2[v6][(v7 + 12)]; // L127
float v83 = v1 * v82; // L128, S[16,16)
float v84 = v4[v5][(v7 + 12)]; // L129
float v85;
if (v5 == 0) { // L130
v85 = v83; // L131
} else {
v85 = v82; // L133
}
float v86 = v13 * v84; // L135, S[16,16)
float v87 = v85 + v86; // L136, S[16,16)
float v88 = v2[v6][(v7 + 13)]; // L137
float v89 = v1 * v88; // L138, S[16,16)
float v90 = v4[v5][(v7 + 13)]; // L139
float v91;
if (v5 == 0) { // L140
v91 = v89; // L141
} else {
v91 = v88; // L143
}
float v92 = v13 * v90; // L145, S[16,16)
float v93 = v91 + v92; // L146, S[16,16)
float v94 = v2[v6][(v7 + 14)]; // L147
float v95 = v1 * v94; // L148, S[16,16)
float v96 = v4[v5][(v7 + 14)]; // L149
float v97;
if (v5 == 0) { // L150
v97 = v95; // L151
} else {
v97 = v94; // L153
}
float v98 = v13 * v96; // L155, S[16,16)
float v99 = v97 + v98; // L156, S[16,16)
float v100 = v2[v6][(v7 + 15)]; // L157
float v101 = v1 * v100; // L158, S[16,16)
float v102 = v4[v5][(v7 + 15)]; // L159
float v103;
if (v5 == 0) { // L160
v103 = v101; // L161
} else {
v103 = v100; // L163
}
float v104 = v13 * v102; // L165, S[16,16)
float v105 = v103 + v104; // L166, S[16,16)
float v106 = v3[v6][(v5 + 1)]; // L167
float v107 = v4[(v5 + 1)][v7]; // L168
float v108 = v0 * v106; // L169, S[16,16)
float v109 = v108 * v107; // L170, S[16,16)
float v110 = v15 + v109; // L171, S[16,16)
float v111 = v4[(v5 + 1)][(v7 + 1)]; // L172
float v112 = v108 * v111; // L173, S[16,16)
float v113 = v21 + v112; // L174, S[16,16)
float v114 = v4[(v5 + 1)][(v7 + 2)]; // L175
float v115 = v108 * v114; // L176, S[16,16)
float v116 = v27 + v115; // L177, S[16,16)
float v117 = v4[(v5 + 1)][(v7 + 3)]; // L178
float v118 = v108 * v117; // L179, S[16,16)
float v119 = v33 + v118; // L180, S[16,16)
float v120 = v4[(v5 + 1)][(v7 + 4)]; // L181
float v121 = v108 * v120; // L182, S[16,16)
float v122 = v39 + v121; // L183, S[16,16)
float v123 = v4[(v5 + 1)][(v7 + 5)]; // L184
float v124 = v108 * v123; // L185, S[16,16)
float v125 = v45 + v124; // L186, S[16,16)
float v126 = v4[(v5 + 1)][(v7 + 6)]; // L187
float v127 = v108 * v126; // L188, S[16,16)
float v128 = v51 + v127; // L189, S[16,16)
float v129 = v4[(v5 + 1)][(v7 + 7)]; // L190
float v130 = v108 * v129; // L191, S[16,16)
float v131 = v57 + v130; // L192, S[16,16)
float v132 = v4[(v5 + 1)][(v7 + 8)]; // L193
float v133 = v108 * v132; // L194, S[16,16)
float v134 = v63 + v133; // L195, S[16,16)
float v135 = v4[(v5 + 1)][(v7 + 9)]; // L196
float v136 = v108 * v135; // L197, S[16,16)
float v137 = v69 + v136; // L198, S[16,16)
float v138 = v4[(v5 + 1)][(v7 + 10)]; // L199
float v139 = v108 * v138; // L200, S[16,16)
float v140 = v75 + v139; // L201, S[16,16)
float v141 = v4[(v5 + 1)][(v7 + 11)]; // L202
float v142 = v108 * v141; // L203, S[16,16)
float v143 = v81 + v142; // L204, S[16,16)
float v144 = v4[(v5 + 1)][(v7 + 12)]; // L205
float v145 = v108 * v144; // L206, S[16,16)
float v146 = v87 + v145; // L207, S[16,16)
float v147 = v4[(v5 + 1)][(v7 + 13)]; // L208
float v148 = v108 * v147; // L209, S[16,16)
float v149 = v93 + v148; // L210, S[16,16)
float v150 = v4[(v5 + 1)][(v7 + 14)]; // L211
float v151 = v108 * v150; // L212, S[16,16)
float v152 = v99 + v151; // L213, S[16,16)
float v153 = v4[(v5 + 1)][(v7 + 15)]; // L214
float v154 = v108 * v153; // L215, S[16,16)
float v155 = v105 + v154; // L216, S[16,16)
float v156 = v3[v6][(v5 + 2)]; // L217
float v157 = v4[(v5 + 2)][v7]; // L218
float v158 = v0 * v156; // L219, S[16,16)
float v159 = v158 * v157; // L220, S[16,16)
float v160 = v110 + v159; // L221, S[16,16)
float v161 = v4[(v5 + 2)][(v7 + 1)]; // L222
float v162 = v158 * v161; // L223, S[16,16)
float v163 = v113 + v162; // L224, S[16,16)
float v164 = v4[(v5 + 2)][(v7 + 2)]; // L225
float v165 = v158 * v164; // L226, S[16,16)
float v166 = v116 + v165; // L227, S[16,16)
float v167 = v4[(v5 + 2)][(v7 + 3)]; // L228
float v168 = v158 * v167; // L229, S[16,16)
float v169 = v119 + v168; // L230, S[16,16)
float v170 = v4[(v5 + 2)][(v7 + 4)]; // L231
float v171 = v158 * v170; // L232, S[16,16)
float v172 = v122 + v171; // L233, S[16,16)
float v173 = v4[(v5 + 2)][(v7 + 5)]; // L234
float v174 = v158 * v173; // L235, S[16,16)
float v175 = v125 + v174; // L236, S[16,16)
float v176 = v4[(v5 + 2)][(v7 + 6)]; // L237
float v177 = v158 * v176; // L238, S[16,16)
float v178 = v128 + v177; // L239, S[16,16)
float v179 = v4[(v5 + 2)][(v7 + 7)]; // L240
float v180 = v158 * v179; // L241, S[16,16)
float v181 = v131 + v180; // L242, S[16,16)
float v182 = v4[(v5 + 2)][(v7 + 8)]; // L243
float v183 = v158 * v182; // L244, S[16,16)
float v184 = v134 + v183; // L245, S[16,16)
float v185 = v4[(v5 + 2)][(v7 + 9)]; // L246
float v186 = v158 * v185; // L247, S[16,16)
float v187 = v137 + v186; // L248, S[16,16)
float v188 = v4[(v5 + 2)][(v7 + 10)]; // L249
float v189 = v158 * v188; // L250, S[16,16)
float v190 = v140 + v189; // L251, S[16,16)
float v191 = v4[(v5 + 2)][(v7 + 11)]; // L252
float v192 = v158 * v191; // L253, S[16,16)
float v193 = v143 + v192; // L254, S[16,16)
float v194 = v4[(v5 + 2)][(v7 + 12)]; // L255
float v195 = v158 * v194; // L256, S[16,16)
float v196 = v146 + v195; // L257, S[16,16)
float v197 = v4[(v5 + 2)][(v7 + 13)]; // L258
float v198 = v158 * v197; // L259, S[16,16)
float v199 = v149 + v198; // L260, S[16,16)
float v200 = v4[(v5 + 2)][(v7 + 14)]; // L261
float v201 = v158 * v200; // L262, S[16,16)
float v202 = v152 + v201; // L263, S[16,16)
float v203 = v4[(v5 + 2)][(v7 + 15)]; // L264
float v204 = v158 * v203; // L265, S[16,16)
float v205 = v155 + v204; // L266, S[16,16)
float v206 = v3[v6][(v5 + 3)]; // L267
float v207 = v4[(v5 + 3)][v7]; // L268
float v208 = v0 * v206; // L269, S[16,16)
float v209 = v208 * v207; // L270, S[16,16)
float v210 = v160 + v209; // L271, S[16,16)
float v211 = v4[(v5 + 3)][(v7 + 1)]; // L272
float v212 = v208 * v211; // L273, S[16,16)
float v213 = v163 + v212; // L274, S[16,16)
float v214 = v4[(v5 + 3)][(v7 + 2)]; // L275
float v215 = v208 * v214; // L276, S[16,16)
float v216 = v166 + v215; // L277, S[16,16)
float v217 = v4[(v5 + 3)][(v7 + 3)]; // L278
float v218 = v208 * v217; // L279, S[16,16)
float v219 = v169 + v218; // L280, S[16,16)
float v220 = v4[(v5 + 3)][(v7 + 4)]; // L281
float v221 = v208 * v220; // L282, S[16,16)
float v222 = v172 + v221; // L283, S[16,16)
float v223 = v4[(v5 + 3)][(v7 + 5)]; // L284
float v224 = v208 * v223; // L285, S[16,16)
float v225 = v175 + v224; // L286, S[16,16)
float v226 = v4[(v5 + 3)][(v7 + 6)]; // L287
float v227 = v208 * v226; // L288, S[16,16)
float v228 = v178 + v227; // L289, S[16,16)
float v229 = v4[(v5 + 3)][(v7 + 7)]; // L290
float v230 = v208 * v229; // L291, S[16,16)
float v231 = v181 + v230; // L292, S[16,16)
float v232 = v4[(v5 + 3)][(v7 + 8)]; // L293
float v233 = v208 * v232; // L294, S[16,16)
float v234 = v184 + v233; // L295, S[16,16)
float v235 = v4[(v5 + 3)][(v7 + 9)]; // L296
float v236 = v208 * v235; // L297, S[16,16)
float v237 = v187 + v236; // L298, S[16,16)
float v238 = v4[(v5 + 3)][(v7 + 10)]; // L299
float v239 = v208 * v238; // L300, S[16,16)
float v240 = v190 + v239; // L301, S[16,16)
float v241 = v4[(v5 + 3)][(v7 + 11)]; // L302
float v242 = v208 * v241; // L303, S[16,16)
float v243 = v193 + v242; // L304, S[16,16)
float v244 = v4[(v5 + 3)][(v7 + 12)]; // L305
float v245 = v208 * v244; // L306, S[16,16)
float v246 = v196 + v245; // L307, S[16,16)
float v247 = v4[(v5 + 3)][(v7 + 13)]; // L308
float v248 = v208 * v247; // L309, S[16,16)
float v249 = v199 + v248; // L310, S[16,16)
float v250 = v4[(v5 + 3)][(v7 + 14)]; // L311
float v251 = v208 * v250; // L312, S[16,16)
float v252 = v202 + v251; // L313, S[16,16)
float v253 = v4[(v5 + 3)][(v7 + 15)]; // L314
float v254 = v208 * v253; // L315, S[16,16)
float v255 = v205 + v254; // L316, S[16,16)
float v256 = v3[v6][(v5 + 4)]; // L317
float v257 = v4[(v5 + 4)][v7]; // L318
float v258 = v0 * v256; // L319, S[16,16)
float v259 = v258 * v257; // L320, S[16,16)
float v260 = v210 + v259; // L321, S[16,16)
float v261 = v4[(v5 + 4)][(v7 + 1)]; // L322
float v262 = v258 * v261; // L323, S[16,16)
float v263 = v213 + v262; // L324, S[16,16)
float v264 = v4[(v5 + 4)][(v7 + 2)]; // L325
float v265 = v258 * v264; // L326, S[16,16)
float v266 = v216 + v265; // L327, S[16,16)
float v267 = v4[(v5 + 4)][(v7 + 3)]; // L328
float v268 = v258 * v267; // L329, S[16,16)
float v269 = v219 + v268; // L330, S[16,16)
float v270 = v4[(v5 + 4)][(v7 + 4)]; // L331
float v271 = v258 * v270; // L332, S[16,16)
float v272 = v222 + v271; // L333, S[16,16)
float v273 = v4[(v5 + 4)][(v7 + 5)]; // L334
float v274 = v258 * v273; // L335, S[16,16)
float v275 = v225 + v274; // L336, S[16,16)
float v276 = v4[(v5 + 4)][(v7 + 6)]; // L337
float v277 = v258 * v276; // L338, S[16,16)
float v278 = v228 + v277; // L339, S[16,16)
float v279 = v4[(v5 + 4)][(v7 + 7)]; // L340
float v280 = v258 * v279; // L341, S[16,16)
float v281 = v231 + v280; // L342, S[16,16)
float v282 = v4[(v5 + 4)][(v7 + 8)]; // L343
float v283 = v258 * v282; // L344, S[16,16)
float v284 = v234 + v283; // L345, S[16,16)
float v285 = v4[(v5 + 4)][(v7 + 9)]; // L346
float v286 = v258 * v285; // L347, S[16,16)
float v287 = v237 + v286; // L348, S[16,16)
float v288 = v4[(v5 + 4)][(v7 + 10)]; // L349
float v289 = v258 * v288; // L350, S[16,16)
float v290 = v240 + v289; // L351, S[16,16)
float v291 = v4[(v5 + 4)][(v7 + 11)]; // L352
float v292 = v258 * v291; // L353, S[16,16)
float v293 = v243 + v292; // L354, S[16,16)
float v294 = v4[(v5 + 4)][(v7 + 12)]; // L355
float v295 = v258 * v294; // L356, S[16,16)
float v296 = v246 + v295; // L357, S[16,16)
float v297 = v4[(v5 + 4)][(v7 + 13)]; // L358
float v298 = v258 * v297; // L359, S[16,16)
float v299 = v249 + v298; // L360, S[16,16)
float v300 = v4[(v5 + 4)][(v7 + 14)]; // L361
float v301 = v258 * v300; // L362, S[16,16)
float v302 = v252 + v301; // L363, S[16,16)
float v303 = v4[(v5 + 4)][(v7 + 15)]; // L364
float v304 = v258 * v303; // L365, S[16,16)
float v305 = v255 + v304; // L366, S[16,16)
float v306 = v3[v6][(v5 + 5)]; // L367
float v307 = v4[(v5 + 5)][v7]; // L368
float v308 = v0 * v306; // L369, S[16,16)
float v309 = v308 * v307; // L370, S[16,16)
float v310 = v260 + v309; // L371, S[16,16)
float v311 = v4[(v5 + 5)][(v7 + 1)]; // L372
float v312 = v308 * v311; // L373, S[16,16)
float v313 = v263 + v312; // L374, S[16,16)
float v314 = v4[(v5 + 5)][(v7 + 2)]; // L375
float v315 = v308 * v314; // L376, S[16,16)
float v316 = v266 + v315; // L377, S[16,16)
float v317 = v4[(v5 + 5)][(v7 + 3)]; // L378
float v318 = v308 * v317; // L379, S[16,16)
float v319 = v269 + v318; // L380, S[16,16)
float v320 = v4[(v5 + 5)][(v7 + 4)]; // L381
float v321 = v308 * v320; // L382, S[16,16)
float v322 = v272 + v321; // L383, S[16,16)
float v323 = v4[(v5 + 5)][(v7 + 5)]; // L384
float v324 = v308 * v323; // L385, S[16,16)
float v325 = v275 + v324; // L386, S[16,16)
float v326 = v4[(v5 + 5)][(v7 + 6)]; // L387
float v327 = v308 * v326; // L388, S[16,16)
float v328 = v278 + v327; // L389, S[16,16)
float v329 = v4[(v5 + 5)][(v7 + 7)]; // L390
float v330 = v308 * v329; // L391, S[16,16)
float v331 = v281 + v330; // L392, S[16,16)
float v332 = v4[(v5 + 5)][(v7 + 8)]; // L393
float v333 = v308 * v332; // L394, S[16,16)
float v334 = v284 + v333; // L395, S[16,16)
float v335 = v4[(v5 + 5)][(v7 + 9)]; // L396
float v336 = v308 * v335; // L397, S[16,16)
float v337 = v287 + v336; // L398, S[16,16)
float v338 = v4[(v5 + 5)][(v7 + 10)]; // L399
float v339 = v308 * v338; // L400, S[16,16)
float v340 = v290 + v339; // L401, S[16,16)
float v341 = v4[(v5 + 5)][(v7 + 11)]; // L402
float v342 = v308 * v341; // L403, S[16,16)
float v343 = v293 + v342; // L404, S[16,16)
float v344 = v4[(v5 + 5)][(v7 + 12)]; // L405
float v345 = v308 * v344; // L406, S[16,16)
float v346 = v296 + v345; // L407, S[16,16)
float v347 = v4[(v5 + 5)][(v7 + 13)]; // L408
float v348 = v308 * v347; // L409, S[16,16)
float v349 = v299 + v348; // L410, S[16,16)
float v350 = v4[(v5 + 5)][(v7 + 14)]; // L411
float v351 = v308 * v350; // L412, S[16,16)
float v352 = v302 + v351; // L413, S[16,16)
float v353 = v4[(v5 + 5)][(v7 + 15)]; // L414
float v354 = v308 * v353; // L415, S[16,16)
float v355 = v305 + v354; // L416, S[16,16)
float v356 = v3[v6][(v5 + 6)]; // L417
float v357 = v4[(v5 + 6)][v7]; // L418
float v358 = v0 * v356; // L419, S[16,16)
float v359 = v358 * v357; // L420, S[16,16)
float v360 = v310 + v359; // L421, S[16,16)
float v361 = v4[(v5 + 6)][(v7 + 1)]; // L422
float v362 = v358 * v361; // L423, S[16,16)
float v363 = v313 + v362; // L424, S[16,16)
float v364 = v4[(v5 + 6)][(v7 + 2)]; // L425
float v365 = v358 * v364; // L426, S[16,16)
float v366 = v316 + v365; // L427, S[16,16)
float v367 = v4[(v5 + 6)][(v7 + 3)]; // L428
float v368 = v358 * v367; // L429, S[16,16)
float v369 = v319 + v368; // L430, S[16,16)
float v370 = v4[(v5 + 6)][(v7 + 4)]; // L431
float v371 = v358 * v370; // L432, S[16,16)
float v372 = v322 + v371; // L433, S[16,16)
float v373 = v4[(v5 + 6)][(v7 + 5)]; // L434
float v374 = v358 * v373; // L435, S[16,16)
float v375 = v325 + v374; // L436, S[16,16)
float v376 = v4[(v5 + 6)][(v7 + 6)]; // L437
float v377 = v358 * v376; // L438, S[16,16)
float v378 = v328 + v377; // L439, S[16,16)
float v379 = v4[(v5 + 6)][(v7 + 7)]; // L440
float v380 = v358 * v379; // L441, S[16,16)
float v381 = v331 + v380; // L442, S[16,16)
float v382 = v4[(v5 + 6)][(v7 + 8)]; // L443
float v383 = v358 * v382; // L444, S[16,16)
float v384 = v334 + v383; // L445, S[16,16)
float v385 = v4[(v5 + 6)][(v7 + 9)]; // L446
float v386 = v358 * v385; // L447, S[16,16)
float v387 = v337 + v386; // L448, S[16,16)
float v388 = v4[(v5 + 6)][(v7 + 10)]; // L449
float v389 = v358 * v388; // L450, S[16,16)
float v390 = v340 + v389; // L451, S[16,16)
float v391 = v4[(v5 + 6)][(v7 + 11)]; // L452
float v392 = v358 * v391; // L453, S[16,16)
float v393 = v343 + v392; // L454, S[16,16)
float v394 = v4[(v5 + 6)][(v7 + 12)]; // L455
float v395 = v358 * v394; // L456, S[16,16)
float v396 = v346 + v395; // L457, S[16,16)
float v397 = v4[(v5 + 6)][(v7 + 13)]; // L458
float v398 = v358 * v397; // L459, S[16,16)
float v399 = v349 + v398; // L460, S[16,16)
float v400 = v4[(v5 + 6)][(v7 + 14)]; // L461
float v401 = v358 * v400; // L462, S[16,16)
float v402 = v352 + v401; // L463, S[16,16)
float v403 = v4[(v5 + 6)][(v7 + 15)]; // L464
float v404 = v358 * v403; // L465, S[16,16)
float v405 = v355 + v404; // L466, S[16,16)
float v406 = v3[v6][(v5 + 7)]; // L467
float v407 = v4[(v5 + 7)][v7]; // L468
float v408 = v0 * v406; // L469, S[16,16)
float v409 = v408 * v407; // L470, S[16,16)
float v410 = v360 + v409; // L471, S[16,16)
v2[v6][v7] = v410; // L472, S[16,16)
float v411 = v4[(v5 + 7)][(v7 + 1)]; // L473
float v412 = v408 * v411; // L474, S[16,16)
float v413 = v363 + v412; // L475, S[16,16)
v2[v6][(v7 + 1)] = v413; // L476
float v414 = v4[(v5 + 7)][(v7 + 2)]; // L477
float v415 = v408 * v414; // L478, S[16,16)
float v416 = v366 + v415; // L479, S[16,16)
v2[v6][(v7 + 2)] = v416; // L480
float v417 = v4[(v5 + 7)][(v7 + 3)]; // L481
float v418 = v408 * v417; // L482, S[16,16)
float v419 = v369 + v418; // L483, S[16,16)
v2[v6][(v7 + 3)] = v419; // L484
float v420 = v4[(v5 + 7)][(v7 + 4)]; // L485
float v421 = v408 * v420; // L486, S[16,16)
float v422 = v372 + v421; // L487, S[16,16)
v2[v6][(v7 + 4)] = v422; // L488
float v423 = v4[(v5 + 7)][(v7 + 5)]; // L489
float v424 = v408 * v423; // L490, S[16,16)
float v425 = v375 + v424; // L491, S[16,16)
v2[v6][(v7 + 5)] = v425; // L492
float v426 = v4[(v5 + 7)][(v7 + 6)]; // L493
float v427 = v408 * v426; // L494, S[16,16)
float v428 = v378 + v427; // L495, S[16,16)
v2[v6][(v7 + 6)] = v428; // L496
float v429 = v4[(v5 + 7)][(v7 + 7)]; // L497
float v430 = v408 * v429; // L498, S[16,16)
float v431 = v381 + v430; // L499, S[16,16)
v2[v6][(v7 + 7)] = v431; // L500
float v432 = v4[(v5 + 7)][(v7 + 8)]; // L501
float v433 = v408 * v432; // L502, S[16,16)
float v434 = v384 + v433; // L503, S[16,16)
v2[v6][(v7 + 8)] = v434; // L504
float v435 = v4[(v5 + 7)][(v7 + 9)]; // L505
float v436 = v408 * v435; // L506, S[16,16)
float v437 = v387 + v436; // L507, S[16,16)
v2[v6][(v7 + 9)] = v437; // L508
float v438 = v4[(v5 + 7)][(v7 + 10)]; // L509
float v439 = v408 * v438; // L510, S[16,16)
float v440 = v390 + v439; // L511, S[16,16)
v2[v6][(v7 + 10)] = v440; // L512
float v441 = v4[(v5 + 7)][(v7 + 11)]; // L513
float v442 = v408 * v441; // L514, S[16,16)
float v443 = v393 + v442; // L515, S[16,16)
v2[v6][(v7 + 11)] = v443; // L516
float v444 = v4[(v5 + 7)][(v7 + 12)]; // L517
float v445 = v408 * v444; // L518, S[16,16)
float v446 = v396 + v445; // L519, S[16,16)
v2[v6][(v7 + 12)] = v446; // L520
float v447 = v4[(v5 + 7)][(v7 + 13)]; // L521
float v448 = v408 * v447; // L522, S[16,16)
float v449 = v399 + v448; // L523, S[16,16)
v2[v6][(v7 + 13)] = v449; // L524
float v450 = v4[(v5 + 7)][(v7 + 14)]; // L525
float v451 = v408 * v450; // L526, S[16,16)
float v452 = v402 + v451; // L527, S[16,16)
v2[v6][(v7 + 14)] = v452; // L528
float v453 = v4[(v5 + 7)][(v7 + 15)]; // L529
float v454 = v408 * v453; // L530, S[16,16)
float v455 = v405 + v454; // L531, S[16,16)
v2[v6][(v7 + 15)] = v455; // L532
}
}
}
}