599 lines
26 KiB
C++
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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|