fast_dct64-inl.h (46385B)
1 // Copyright (c) the JPEG XL Project Authors. All rights reserved. 2 // 3 // Use of this source code is governed by a BSD-style 4 // license that can be found in the LICENSE file. 5 6 /* This file is automatically generated. Do not modify it directly. */ 7 #if HWY_TARGET != HWY_NEON 8 #error "only include this file from fast_dct-inl.h" 9 #endif 10 11 constexpr size_t FastIDCTIntegerBits(FastDCTTag<64>) { return 1; } 12 13 void FastIDCT(FastDCTTag<64>, const int16_t* in, size_t in_stride, int16_t* out, 14 size_t out_stride, size_t count) { 15 JXL_ASSERT(count % 8 == 0); 16 for (size_t i = 0; i < count; i += 8) { 17 int16x8_t v0 = vld1q_s16(in + in_stride * 0 + i); 18 int16x8_t v1 = vld1q_s16(in + in_stride * 32 + i); 19 int16x8_t v2 = vaddq_s16(v0, v1); 20 int16x8_t v3 = vld1q_s16(in + in_stride * 16 + i); 21 int16x8_t v4_tmp = vqrdmulhq_n_s16(v3, 13573); 22 int16x8_t v4 = vaddq_s16(v4_tmp, v3); 23 int16x8_t v5 = vld1q_s16(in + in_stride * 48 + i); 24 int16x8_t v6 = vaddq_s16(v5, v3); 25 int16x8_t v7 = vaddq_s16(v4, v6); 26 int16x8_t v8 = vqrdmulhq_n_s16(v7, 17734); 27 int16x8_t v9 = vaddq_s16(v2, v8); 28 int16x8_t v10 = vld1q_s16(in + in_stride * 8 + i); 29 int16x8_t v11_tmp = vqrdmulhq_n_s16(v10, 13573); 30 int16x8_t v11 = vaddq_s16(v11_tmp, v10); 31 int16x8_t v12 = vld1q_s16(in + in_stride * 40 + i); 32 int16x8_t v13 = vld1q_s16(in + in_stride * 24 + i); 33 int16x8_t v14 = vaddq_s16(v12, v13); 34 int16x8_t v15 = vaddq_s16(v11, v14); 35 int16x8_t v16 = vld1q_s16(in + in_stride * 56 + i); 36 int16x8_t v17 = vaddq_s16(v16, v12); 37 int16x8_t v18 = vaddq_s16(v13, v10); 38 int16x8_t v19 = vaddq_s16(v17, v18); 39 int16x8_t v20 = vqrdmulhq_n_s16(v19, 17734); 40 int16x8_t v21 = vqrdmulhq_n_s16(v18, 25080); 41 int16x8_t v22 = vaddq_s16(v20, v21); 42 int16x8_t v23 = vaddq_s16(v15, v22); 43 int16x8_t v24 = vqrdmulhq_n_s16(v23, 16705); 44 int16x8_t v25 = vaddq_s16(v9, v24); 45 int16x8_t v26 = vld1q_s16(in + in_stride * 4 + i); 46 int16x8_t v27_tmp = vqrdmulhq_n_s16(v26, 13573); 47 int16x8_t v27 = vaddq_s16(v27_tmp, v26); 48 int16x8_t v28 = vld1q_s16(in + in_stride * 36 + i); 49 int16x8_t v29 = vld1q_s16(in + in_stride * 28 + i); 50 int16x8_t v30 = vaddq_s16(v28, v29); 51 int16x8_t v31 = vaddq_s16(v27, v30); 52 int16x8_t v32 = vld1q_s16(in + in_stride * 20 + i); 53 int16x8_t v33 = vld1q_s16(in + in_stride * 12 + i); 54 int16x8_t v34 = vaddq_s16(v32, v33); 55 int16x8_t v35 = vqrdmulhq_n_s16(v34, 25080); 56 int16x8_t v36 = vld1q_s16(in + in_stride * 52 + i); 57 int16x8_t v37 = vld1q_s16(in + in_stride * 44 + i); 58 int16x8_t v38 = vaddq_s16(v36, v37); 59 int16x8_t v39 = vaddq_s16(v38, v34); 60 int16x8_t v40 = vqrdmulhq_n_s16(v39, 17734); 61 int16x8_t v41 = vaddq_s16(v35, v40); 62 int16x8_t v42 = vaddq_s16(v31, v41); 63 int16x8_t v43 = vaddq_s16(v33, v26); 64 int16x8_t v44_tmp = vqrdmulhq_n_s16(v43, 13573); 65 int16x8_t v44 = vaddq_s16(v44_tmp, v43); 66 int16x8_t v45 = vaddq_s16(v37, v28); 67 int16x8_t v46 = vaddq_s16(v29, v32); 68 int16x8_t v47 = vaddq_s16(v45, v46); 69 int16x8_t v48 = vaddq_s16(v44, v47); 70 int16x8_t v49 = vqrdmulhq_n_s16(v48, 16705); 71 int16x8_t v50 = vaddq_s16(v46, v43); 72 int16x8_t v51_tmp = vqrdmulhq_n_s16(v50, 10045); 73 int16x8_t v51 = vaddq_s16(v51_tmp, v50); 74 int16x8_t v52 = vld1q_s16(in + in_stride * 60 + i); 75 int16x8_t v53 = vaddq_s16(v52, v36); 76 int16x8_t v54 = vaddq_s16(v53, v45); 77 int16x8_t v55 = vqrdmulhq_n_s16(v54, 17734); 78 int16x8_t v56 = vaddq_s16(v51, v55); 79 int16x8_t v57 = vqrdmulhq_n_s16(v56, 16705); 80 int16x8_t v58 = vaddq_s16(v49, v57); 81 int16x8_t v59 = vaddq_s16(v42, v58); 82 int16x8_t v60 = vqrdmulhq_n_s16(v59, 16463); 83 int16x8_t v61 = vaddq_s16(v25, v60); 84 int16x8_t v62 = vld1q_s16(in + in_stride * 2 + i); 85 int16x8_t v63_tmp = vqrdmulhq_n_s16(v62, 13573); 86 int16x8_t v63 = vaddq_s16(v63_tmp, v62); 87 int16x8_t v64 = vld1q_s16(in + in_stride * 34 + i); 88 int16x8_t v65 = vld1q_s16(in + in_stride * 30 + i); 89 int16x8_t v66 = vaddq_s16(v64, v65); 90 int16x8_t v67 = vaddq_s16(v63, v66); 91 int16x8_t v68 = vld1q_s16(in + in_stride * 18 + i); 92 int16x8_t v69 = vld1q_s16(in + in_stride * 14 + i); 93 int16x8_t v70 = vaddq_s16(v68, v69); 94 int16x8_t v71 = vqrdmulhq_n_s16(v70, 25080); 95 int16x8_t v72 = vld1q_s16(in + in_stride * 50 + i); 96 int16x8_t v73 = vld1q_s16(in + in_stride * 46 + i); 97 int16x8_t v74 = vaddq_s16(v72, v73); 98 int16x8_t v75 = vaddq_s16(v74, v70); 99 int16x8_t v76 = vqrdmulhq_n_s16(v75, 17734); 100 int16x8_t v77 = vaddq_s16(v71, v76); 101 int16x8_t v78 = vaddq_s16(v67, v77); 102 int16x8_t v79 = vld1q_s16(in + in_stride * 10 + i); 103 int16x8_t v80 = vld1q_s16(in + in_stride * 6 + i); 104 int16x8_t v81 = vaddq_s16(v79, v80); 105 int16x8_t v82_tmp = vqrdmulhq_n_s16(v81, 13573); 106 int16x8_t v82 = vaddq_s16(v82_tmp, v81); 107 int16x8_t v83 = vld1q_s16(in + in_stride * 42 + i); 108 int16x8_t v84 = vld1q_s16(in + in_stride * 38 + i); 109 int16x8_t v85 = vaddq_s16(v83, v84); 110 int16x8_t v86 = vld1q_s16(in + in_stride * 26 + i); 111 int16x8_t v87 = vld1q_s16(in + in_stride * 22 + i); 112 int16x8_t v88 = vaddq_s16(v86, v87); 113 int16x8_t v89 = vaddq_s16(v85, v88); 114 int16x8_t v90 = vaddq_s16(v82, v89); 115 int16x8_t v91 = vqrdmulhq_n_s16(v90, 16705); 116 int16x8_t v92 = vaddq_s16(v88, v81); 117 int16x8_t v93_tmp = vqrdmulhq_n_s16(v92, 10045); 118 int16x8_t v93 = vaddq_s16(v93_tmp, v92); 119 int16x8_t v94 = vld1q_s16(in + in_stride * 58 + i); 120 int16x8_t v95 = vld1q_s16(in + in_stride * 54 + i); 121 int16x8_t v96 = vaddq_s16(v94, v95); 122 int16x8_t v97 = vaddq_s16(v96, v85); 123 int16x8_t v98 = vqrdmulhq_n_s16(v97, 17734); 124 int16x8_t v99 = vaddq_s16(v93, v98); 125 int16x8_t v100 = vqrdmulhq_n_s16(v99, 16705); 126 int16x8_t v101 = vaddq_s16(v91, v100); 127 int16x8_t v102 = vaddq_s16(v78, v101); 128 int16x8_t v103 = vaddq_s16(v69, v79); 129 int16x8_t v104 = vaddq_s16(v80, v62); 130 int16x8_t v105 = vaddq_s16(v103, v104); 131 int16x8_t v106_tmp = vqrdmulhq_n_s16(v105, 13573); 132 int16x8_t v106 = vaddq_s16(v106_tmp, v105); 133 int16x8_t v107 = vaddq_s16(v73, v83); 134 int16x8_t v108 = vaddq_s16(v84, v64); 135 int16x8_t v109 = vaddq_s16(v107, v108); 136 int16x8_t v110 = vaddq_s16(v65, v86); 137 int16x8_t v111 = vaddq_s16(v87, v68); 138 int16x8_t v112 = vaddq_s16(v110, v111); 139 int16x8_t v113 = vaddq_s16(v109, v112); 140 int16x8_t v114 = vaddq_s16(v106, v113); 141 int16x8_t v115 = vqrdmulhq_n_s16(v114, 16705); 142 int16x8_t v116 = vaddq_s16(v112, v105); 143 int16x8_t v117 = vqrdmulhq_n_s16(v116, 25080); 144 int16x8_t v118 = vqrdmulhq_n_s16(v116, 17734); 145 int16x8_t v119 = vld1q_s16(in + in_stride * 62 + i); 146 int16x8_t v120 = vaddq_s16(v119, v94); 147 int16x8_t v121 = vaddq_s16(v95, v72); 148 int16x8_t v122 = vaddq_s16(v120, v121); 149 int16x8_t v123 = vaddq_s16(v122, v109); 150 int16x8_t v124 = vqrdmulhq_n_s16(v123, 17734); 151 int16x8_t v125 = vaddq_s16(v118, v124); 152 int16x8_t v126 = vaddq_s16(v117, v125); 153 int16x8_t v127 = vqrdmulhq_n_s16(v126, 16705); 154 int16x8_t v128 = vaddq_s16(v115, v127); 155 int16x8_t v129 = vqrdmulhq_n_s16(v128, 16463); 156 int16x8_t v130_tmp = vqrdmulhq_n_s16(v104, 13573); 157 int16x8_t v130 = vaddq_s16(v130_tmp, v104); 158 int16x8_t v131 = vaddq_s16(v108, v110); 159 int16x8_t v132 = vaddq_s16(v130, v131); 160 int16x8_t v133 = vaddq_s16(v111, v103); 161 int16x8_t v134_tmp = vqrdmulhq_n_s16(v133, 10045); 162 int16x8_t v134 = vaddq_s16(v134_tmp, v133); 163 int16x8_t v135 = vaddq_s16(v121, v107); 164 int16x8_t v136 = vqrdmulhq_n_s16(v135, 17734); 165 int16x8_t v137 = vaddq_s16(v134, v136); 166 int16x8_t v138 = vaddq_s16(v132, v137); 167 int16x8_t v139 = vqrdmulhq_n_s16(v138, 16463); 168 int16x8_t v140 = vaddq_s16(v129, v139); 169 int16x8_t v141 = vaddq_s16(v102, v140); 170 int16x8_t v142 = vqrdmulhq_n_s16(v141, 16404); 171 int16x8_t v143 = vaddq_s16(v61, v142); 172 int16x8_t v144 = vld1q_s16(in + in_stride * 1 + i); 173 int16x8_t v145_tmp = vqrdmulhq_n_s16(v144, 13573); 174 int16x8_t v145 = vaddq_s16(v145_tmp, v144); 175 int16x8_t v146 = vld1q_s16(in + in_stride * 33 + i); 176 int16x8_t v147 = vld1q_s16(in + in_stride * 31 + i); 177 int16x8_t v148 = vaddq_s16(v146, v147); 178 int16x8_t v149 = vaddq_s16(v145, v148); 179 int16x8_t v150 = vld1q_s16(in + in_stride * 17 + i); 180 int16x8_t v151 = vld1q_s16(in + in_stride * 15 + i); 181 int16x8_t v152 = vaddq_s16(v150, v151); 182 int16x8_t v153 = vqrdmulhq_n_s16(v152, 25080); 183 int16x8_t v154 = vld1q_s16(in + in_stride * 49 + i); 184 int16x8_t v155 = vld1q_s16(in + in_stride * 47 + i); 185 int16x8_t v156 = vaddq_s16(v154, v155); 186 int16x8_t v157 = vaddq_s16(v156, v152); 187 int16x8_t v158 = vqrdmulhq_n_s16(v157, 17734); 188 int16x8_t v159 = vaddq_s16(v153, v158); 189 int16x8_t v160 = vaddq_s16(v149, v159); 190 int16x8_t v161 = vld1q_s16(in + in_stride * 9 + i); 191 int16x8_t v162 = vld1q_s16(in + in_stride * 7 + i); 192 int16x8_t v163 = vaddq_s16(v161, v162); 193 int16x8_t v164_tmp = vqrdmulhq_n_s16(v163, 13573); 194 int16x8_t v164 = vaddq_s16(v164_tmp, v163); 195 int16x8_t v165 = vld1q_s16(in + in_stride * 41 + i); 196 int16x8_t v166 = vld1q_s16(in + in_stride * 39 + i); 197 int16x8_t v167 = vaddq_s16(v165, v166); 198 int16x8_t v168 = vld1q_s16(in + in_stride * 25 + i); 199 int16x8_t v169 = vld1q_s16(in + in_stride * 23 + i); 200 int16x8_t v170 = vaddq_s16(v168, v169); 201 int16x8_t v171 = vaddq_s16(v167, v170); 202 int16x8_t v172 = vaddq_s16(v164, v171); 203 int16x8_t v173 = vqrdmulhq_n_s16(v172, 16705); 204 int16x8_t v174 = vaddq_s16(v170, v163); 205 int16x8_t v175_tmp = vqrdmulhq_n_s16(v174, 10045); 206 int16x8_t v175 = vaddq_s16(v175_tmp, v174); 207 int16x8_t v176 = vld1q_s16(in + in_stride * 57 + i); 208 int16x8_t v177 = vld1q_s16(in + in_stride * 55 + i); 209 int16x8_t v178 = vaddq_s16(v176, v177); 210 int16x8_t v179 = vaddq_s16(v178, v167); 211 int16x8_t v180 = vqrdmulhq_n_s16(v179, 17734); 212 int16x8_t v181 = vaddq_s16(v175, v180); 213 int16x8_t v182 = vqrdmulhq_n_s16(v181, 16705); 214 int16x8_t v183 = vaddq_s16(v173, v182); 215 int16x8_t v184 = vaddq_s16(v160, v183); 216 int16x8_t v185 = vld1q_s16(in + in_stride * 37 + i); 217 int16x8_t v186 = vld1q_s16(in + in_stride * 35 + i); 218 int16x8_t v187 = vaddq_s16(v185, v186); 219 int16x8_t v188 = vld1q_s16(in + in_stride * 45 + i); 220 int16x8_t v189 = vld1q_s16(in + in_stride * 43 + i); 221 int16x8_t v190 = vaddq_s16(v188, v189); 222 int16x8_t v191 = vaddq_s16(v187, v190); 223 int16x8_t v192 = vld1q_s16(in + in_stride * 29 + i); 224 int16x8_t v193 = vld1q_s16(in + in_stride * 27 + i); 225 int16x8_t v194 = vaddq_s16(v192, v193); 226 int16x8_t v195 = vld1q_s16(in + in_stride * 21 + i); 227 int16x8_t v196 = vld1q_s16(in + in_stride * 19 + i); 228 int16x8_t v197 = vaddq_s16(v195, v196); 229 int16x8_t v198 = vaddq_s16(v194, v197); 230 int16x8_t v199 = vaddq_s16(v191, v198); 231 int16x8_t v200 = vld1q_s16(in + in_stride * 5 + i); 232 int16x8_t v201 = vld1q_s16(in + in_stride * 3 + i); 233 int16x8_t v202 = vaddq_s16(v200, v201); 234 int16x8_t v203 = vld1q_s16(in + in_stride * 13 + i); 235 int16x8_t v204 = vld1q_s16(in + in_stride * 11 + i); 236 int16x8_t v205 = vaddq_s16(v203, v204); 237 int16x8_t v206 = vaddq_s16(v202, v205); 238 int16x8_t v207_tmp = vqrdmulhq_n_s16(v206, 13573); 239 int16x8_t v207 = vaddq_s16(v207_tmp, v206); 240 int16x8_t v208 = vaddq_s16(v199, v207); 241 int16x8_t v209 = vqrdmulhq_n_s16(v208, 16705); 242 int16x8_t v210 = vaddq_s16(v198, v206); 243 int16x8_t v211 = vqrdmulhq_n_s16(v210, 25080); 244 int16x8_t v212 = vqrdmulhq_n_s16(v210, 17734); 245 int16x8_t v213 = vld1q_s16(in + in_stride * 53 + i); 246 int16x8_t v214 = vld1q_s16(in + in_stride * 51 + i); 247 int16x8_t v215 = vaddq_s16(v213, v214); 248 int16x8_t v216 = vld1q_s16(in + in_stride * 61 + i); 249 int16x8_t v217 = vld1q_s16(in + in_stride * 59 + i); 250 int16x8_t v218 = vaddq_s16(v216, v217); 251 int16x8_t v219 = vaddq_s16(v215, v218); 252 int16x8_t v220 = vaddq_s16(v219, v191); 253 int16x8_t v221 = vqrdmulhq_n_s16(v220, 17734); 254 int16x8_t v222 = vaddq_s16(v212, v221); 255 int16x8_t v223 = vaddq_s16(v211, v222); 256 int16x8_t v224 = vqrdmulhq_n_s16(v223, 16705); 257 int16x8_t v225 = vaddq_s16(v209, v224); 258 int16x8_t v226 = vqrdmulhq_n_s16(v225, 16463); 259 int16x8_t v227_tmp = vqrdmulhq_n_s16(v202, 13573); 260 int16x8_t v227 = vaddq_s16(v227_tmp, v202); 261 int16x8_t v228 = vaddq_s16(v187, v194); 262 int16x8_t v229 = vaddq_s16(v227, v228); 263 int16x8_t v230 = vaddq_s16(v215, v190); 264 int16x8_t v231 = vqrdmulhq_n_s16(v230, 17734); 265 int16x8_t v232 = vaddq_s16(v197, v205); 266 int16x8_t v233_tmp = vqrdmulhq_n_s16(v232, 10045); 267 int16x8_t v233 = vaddq_s16(v233_tmp, v232); 268 int16x8_t v234 = vaddq_s16(v231, v233); 269 int16x8_t v235 = vaddq_s16(v229, v234); 270 int16x8_t v236 = vqrdmulhq_n_s16(v235, 16463); 271 int16x8_t v237 = vaddq_s16(v226, v236); 272 int16x8_t v238 = vaddq_s16(v184, v237); 273 int16x8_t v239 = vaddq_s16(v201, v144); 274 int16x8_t v240_tmp = vqrdmulhq_n_s16(v239, 13573); 275 int16x8_t v240 = vaddq_s16(v240_tmp, v239); 276 int16x8_t v241 = vaddq_s16(v186, v146); 277 int16x8_t v242 = vaddq_s16(v147, v192); 278 int16x8_t v243 = vaddq_s16(v241, v242); 279 int16x8_t v244 = vaddq_s16(v240, v243); 280 int16x8_t v245 = vaddq_s16(v196, v150); 281 int16x8_t v246 = vaddq_s16(v151, v203); 282 int16x8_t v247 = vaddq_s16(v245, v246); 283 int16x8_t v248_tmp = vqrdmulhq_n_s16(v247, 10045); 284 int16x8_t v248 = vaddq_s16(v248_tmp, v247); 285 int16x8_t v249 = vaddq_s16(v155, v188); 286 int16x8_t v250 = vaddq_s16(v214, v154); 287 int16x8_t v251 = vaddq_s16(v249, v250); 288 int16x8_t v252 = vqrdmulhq_n_s16(v251, 17734); 289 int16x8_t v253 = vaddq_s16(v248, v252); 290 int16x8_t v254 = vaddq_s16(v244, v253); 291 int16x8_t v255 = vaddq_s16(v204, v161); 292 int16x8_t v256 = vaddq_s16(v162, v200); 293 int16x8_t v257 = vaddq_s16(v255, v256); 294 int16x8_t v258_tmp = vqrdmulhq_n_s16(v257, 13573); 295 int16x8_t v258 = vaddq_s16(v258_tmp, v257); 296 int16x8_t v259 = vaddq_s16(v189, v165); 297 int16x8_t v260 = vaddq_s16(v166, v185); 298 int16x8_t v261 = vaddq_s16(v259, v260); 299 int16x8_t v262 = vaddq_s16(v169, v195); 300 int16x8_t v263 = vaddq_s16(v193, v168); 301 int16x8_t v264 = vaddq_s16(v262, v263); 302 int16x8_t v265 = vaddq_s16(v261, v264); 303 int16x8_t v266 = vaddq_s16(v258, v265); 304 int16x8_t v267 = vqrdmulhq_n_s16(v266, 16705); 305 int16x8_t v268 = vaddq_s16(v264, v257); 306 int16x8_t v269 = vqrdmulhq_n_s16(v268, 25080); 307 int16x8_t v270 = vaddq_s16(v217, v176); 308 int16x8_t v271 = vaddq_s16(v177, v213); 309 int16x8_t v272 = vaddq_s16(v270, v271); 310 int16x8_t v273 = vaddq_s16(v272, v261); 311 int16x8_t v274 = vqrdmulhq_n_s16(v273, 17734); 312 int16x8_t v275 = vqrdmulhq_n_s16(v268, 17734); 313 int16x8_t v276 = vaddq_s16(v274, v275); 314 int16x8_t v277 = vaddq_s16(v269, v276); 315 int16x8_t v278 = vqrdmulhq_n_s16(v277, 16705); 316 int16x8_t v279 = vaddq_s16(v267, v278); 317 int16x8_t v280 = vaddq_s16(v254, v279); 318 int16x8_t v281 = vqrdmulhq_n_s16(v280, 16404); 319 int16x8_t v282 = vaddq_s16(v256, v239); 320 int16x8_t v283_tmp = vqrdmulhq_n_s16(v282, 13573); 321 int16x8_t v283 = vaddq_s16(v283_tmp, v282); 322 int16x8_t v284 = vaddq_s16(v260, v241); 323 int16x8_t v285 = vaddq_s16(v242, v263); 324 int16x8_t v286 = vaddq_s16(v284, v285); 325 int16x8_t v287 = vaddq_s16(v283, v286); 326 int16x8_t v288 = vaddq_s16(v262, v245); 327 int16x8_t v289 = vaddq_s16(v246, v255); 328 int16x8_t v290 = vaddq_s16(v288, v289); 329 int16x8_t v291 = vqrdmulhq_n_s16(v290, 25080); 330 int16x8_t v292 = vqrdmulhq_n_s16(v290, 17734); 331 int16x8_t v293 = vaddq_s16(v271, v250); 332 int16x8_t v294 = vaddq_s16(v249, v259); 333 int16x8_t v295 = vaddq_s16(v293, v294); 334 int16x8_t v296 = vqrdmulhq_n_s16(v295, 17734); 335 int16x8_t v297 = vaddq_s16(v292, v296); 336 int16x8_t v298 = vaddq_s16(v291, v297); 337 int16x8_t v299 = vaddq_s16(v287, v298); 338 int16x8_t v300 = vqrdmulhq_n_s16(v299, 16463); 339 int16x8_t v301 = vaddq_s16(v289, v282); 340 int16x8_t v302 = vqrdmulhq_n_s16(v301, 23624); 341 int16x8_t v303 = vaddq_s16(v294, v284); 342 int16x8_t v304 = vqrdmulhq_n_s16(v303, 19705); 343 int16x8_t v305 = vaddq_s16(v285, v288); 344 int16x8_t v306 = vqrdmulhq_n_s16(v305, 19705); 345 int16x8_t v307 = vaddq_s16(v304, v306); 346 int16x8_t v308 = vqrdmulhq_n_s16(v307, 27779); 347 int16x8_t v309 = vaddq_s16(v302, v308); 348 int16x8_t v310 = vaddq_s16(v305, v301); 349 int16x8_t v311 = vqrdmulhq_n_s16(v310, 25080); 350 int16x8_t v312 = vqrdmulhq_n_s16(v310, 17734); 351 int16x8_t v313 = vld1q_s16(in + in_stride * 63 + i); 352 int16x8_t v314 = vaddq_s16(v313, v216); 353 int16x8_t v315 = vaddq_s16(v314, v270); 354 int16x8_t v316 = vaddq_s16(v315, v293); 355 int16x8_t v317 = vqrdmulhq_n_s16(v316, 25746); 356 int16x8_t v318 = vqrdmulhq_n_s16(v303, 25746); 357 int16x8_t v319 = vaddq_s16(v317, v318); 358 int16x8_t v320 = vqrdmulhq_n_s16(v319, 22571); 359 int16x8_t v321 = vaddq_s16(v312, v320); 360 int16x8_t v322 = vaddq_s16(v311, v321); 361 int16x8_t v323 = vqrdmulhq_n_s16(v322, 16705); 362 int16x8_t v324 = vaddq_s16(v309, v323); 363 int16x8_t v325 = vqrdmulhq_n_s16(v324, 16463); 364 int16x8_t v326 = vaddq_s16(v300, v325); 365 int16x8_t v327 = vqrdmulhq_n_s16(v326, 16404); 366 int16x8_t v328 = vaddq_s16(v281, v327); 367 int16x8_t v329 = vaddq_s16(v238, v328); 368 int16x8_t v330 = vqrdmulhq_n_s16(v329, 16389); 369 int16x8_t v331 = vaddq_s16(v143, v330); 370 int16x8_t v332 = vsubq_s16(v82, v89); 371 int16x8_t v333 = vqrdmulhq_n_s16(v332, 19705); 372 int16x8_t v334 = vqrdmulhq_n_s16(v92, 13573); 373 int16x8_t v335 = vsubq_s16(v334, v97); 374 int16x8_t v336 = vqrdmulhq_n_s16(v335, 25746); 375 int16x8_t v337 = vaddq_s16(v333, v336); 376 int16x8_t v338 = vsubq_s16(v63, v66); 377 int16x8_t v339 = vqrdmulhq_n_s16(v70, 17734); 378 int16x8_t v340_tmp = vqrdmulhq_n_s16(v74, 10045); 379 int16x8_t v340 = vaddq_s16(v340_tmp, v74); 380 int16x8_t v341 = vsubq_s16(v339, v340); 381 int16x8_t v342 = vaddq_s16(v338, v341); 382 int16x8_t v343 = vaddq_s16(v337, v342); 383 int16x8_t v344 = vsubq_s16(v130, v131); 384 int16x8_t v345 = vqrdmulhq_n_s16(v133, 13573); 385 int16x8_t v346 = vsubq_s16(v345, v135); 386 int16x8_t v347_tmp = vqrdmulhq_n_s16(v346, 10045); 387 int16x8_t v347 = vaddq_s16(v347_tmp, v346); 388 int16x8_t v348 = vaddq_s16(v344, v347); 389 int16x8_t v349 = vqrdmulhq_n_s16(v348, 17121); 390 int16x8_t v350 = vqrdmulhq_n_s16(v105, 27867); 391 int16x8_t v351 = vqrdmulhq_n_s16(v113, 19705); 392 int16x8_t v352 = vsubq_s16(v350, v351); 393 int16x8_t v353 = vqrdmulhq_n_s16(v116, 13573); 394 int16x8_t v354 = vsubq_s16(v353, v123); 395 int16x8_t v355 = vqrdmulhq_n_s16(v354, 25746); 396 int16x8_t v356 = vaddq_s16(v352, v355); 397 int16x8_t v357 = vqrdmulhq_n_s16(v356, 17121); 398 int16x8_t v358 = vaddq_s16(v349, v357); 399 int16x8_t v359 = vaddq_s16(v343, v358); 400 int16x8_t v360 = vqrdmulhq_n_s16(v359, 16563); 401 int16x8_t v361 = vsubq_s16(v27, v30); 402 int16x8_t v362 = vqrdmulhq_n_s16(v34, 17734); 403 int16x8_t v363_tmp = vqrdmulhq_n_s16(v38, 10045); 404 int16x8_t v363 = vaddq_s16(v363_tmp, v38); 405 int16x8_t v364 = vsubq_s16(v362, v363); 406 int16x8_t v365 = vaddq_s16(v361, v364); 407 int16x8_t v366 = vsubq_s16(v44, v47); 408 int16x8_t v367 = vqrdmulhq_n_s16(v366, 19705); 409 int16x8_t v368 = vqrdmulhq_n_s16(v50, 13573); 410 int16x8_t v369 = vsubq_s16(v368, v54); 411 int16x8_t v370 = vqrdmulhq_n_s16(v369, 25746); 412 int16x8_t v371 = vaddq_s16(v367, v370); 413 int16x8_t v372 = vaddq_s16(v365, v371); 414 int16x8_t v373 = vqrdmulhq_n_s16(v372, 17121); 415 int16x8_t v374 = vsubq_s16(v0, v1); 416 int16x8_t v375 = vsubq_s16(v4, v6); 417 int16x8_t v376_tmp = vqrdmulhq_n_s16(v375, 10045); 418 int16x8_t v376 = vaddq_s16(v376_tmp, v375); 419 int16x8_t v377 = vaddq_s16(v374, v376); 420 int16x8_t v378 = vsubq_s16(v11, v14); 421 int16x8_t v379 = vqrdmulhq_n_s16(v18, 17734); 422 int16x8_t v380_tmp = vqrdmulhq_n_s16(v17, 10045); 423 int16x8_t v380 = vaddq_s16(v380_tmp, v17); 424 int16x8_t v381 = vsubq_s16(v379, v380); 425 int16x8_t v382 = vaddq_s16(v378, v381); 426 int16x8_t v383 = vqrdmulhq_n_s16(v382, 19705); 427 int16x8_t v384 = vaddq_s16(v377, v383); 428 int16x8_t v385 = vaddq_s16(v373, v384); 429 int16x8_t v386 = vaddq_s16(v360, v385); 430 int16x8_t v387 = vsubq_s16(v145, v148); 431 int16x8_t v388 = vqrdmulhq_n_s16(v152, 17734); 432 int16x8_t v389_tmp = vqrdmulhq_n_s16(v156, 10045); 433 int16x8_t v389 = vaddq_s16(v389_tmp, v156); 434 int16x8_t v390 = vsubq_s16(v388, v389); 435 int16x8_t v391 = vaddq_s16(v387, v390); 436 int16x8_t v392 = vsubq_s16(v164, v171); 437 int16x8_t v393 = vqrdmulhq_n_s16(v392, 19705); 438 int16x8_t v394 = vqrdmulhq_n_s16(v174, 13573); 439 int16x8_t v395 = vsubq_s16(v394, v179); 440 int16x8_t v396 = vqrdmulhq_n_s16(v395, 25746); 441 int16x8_t v397 = vaddq_s16(v393, v396); 442 int16x8_t v398 = vaddq_s16(v391, v397); 443 int16x8_t v399 = vsubq_s16(v227, v228); 444 int16x8_t v400 = vqrdmulhq_n_s16(v232, 13573); 445 int16x8_t v401 = vsubq_s16(v400, v230); 446 int16x8_t v402_tmp = vqrdmulhq_n_s16(v401, 10045); 447 int16x8_t v402 = vaddq_s16(v402_tmp, v401); 448 int16x8_t v403 = vaddq_s16(v399, v402); 449 int16x8_t v404 = vqrdmulhq_n_s16(v403, 17121); 450 int16x8_t v405 = vqrdmulhq_n_s16(v206, 27867); 451 int16x8_t v406 = vqrdmulhq_n_s16(v199, 19705); 452 int16x8_t v407 = vsubq_s16(v405, v406); 453 int16x8_t v408 = vqrdmulhq_n_s16(v210, 13573); 454 int16x8_t v409 = vsubq_s16(v408, v220); 455 int16x8_t v410 = vqrdmulhq_n_s16(v409, 25746); 456 int16x8_t v411 = vaddq_s16(v407, v410); 457 int16x8_t v412 = vqrdmulhq_n_s16(v411, 17121); 458 int16x8_t v413 = vaddq_s16(v404, v412); 459 int16x8_t v414 = vaddq_s16(v398, v413); 460 int16x8_t v415 = vsubq_s16(v240, v243); 461 int16x8_t v416 = vqrdmulhq_n_s16(v247, 13573); 462 int16x8_t v417 = vsubq_s16(v416, v251); 463 int16x8_t v418_tmp = vqrdmulhq_n_s16(v417, 10045); 464 int16x8_t v418 = vaddq_s16(v418_tmp, v417); 465 int16x8_t v419 = vaddq_s16(v415, v418); 466 int16x8_t v420 = vqrdmulhq_n_s16(v257, 27867); 467 int16x8_t v421 = vqrdmulhq_n_s16(v265, 19705); 468 int16x8_t v422 = vsubq_s16(v420, v421); 469 int16x8_t v423 = vqrdmulhq_n_s16(v268, 13573); 470 int16x8_t v424 = vsubq_s16(v423, v273); 471 int16x8_t v425 = vqrdmulhq_n_s16(v424, 25746); 472 int16x8_t v426 = vaddq_s16(v422, v425); 473 int16x8_t v427 = vaddq_s16(v419, v426); 474 int16x8_t v428 = vqrdmulhq_n_s16(v427, 16563); 475 int16x8_t v429 = vqrdmulhq_n_s16(v301, 27867); 476 int16x8_t v430 = vsubq_s16(v429, v307); 477 int16x8_t v431 = vqrdmulhq_n_s16(v310, 10664); 478 int16x8_t v432 = vsubq_s16(v431, v319); 479 int16x8_t v433 = vaddq_s16(v430, v432); 480 int16x8_t v434 = vqrdmulhq_n_s16(v433, 17121); 481 int16x8_t v435 = vsubq_s16(v283, v286); 482 int16x8_t v436 = vqrdmulhq_n_s16(v290, 13573); 483 int16x8_t v437 = vsubq_s16(v436, v295); 484 int16x8_t v438_tmp = vqrdmulhq_n_s16(v437, 10045); 485 int16x8_t v438 = vaddq_s16(v438_tmp, v437); 486 int16x8_t v439 = vaddq_s16(v435, v438); 487 int16x8_t v440 = vqrdmulhq_n_s16(v439, 17121); 488 int16x8_t v441 = vaddq_s16(v434, v440); 489 int16x8_t v442 = vqrdmulhq_n_s16(v441, 16563); 490 int16x8_t v443 = vaddq_s16(v428, v442); 491 int16x8_t v444 = vaddq_s16(v414, v443); 492 int16x8_t v445 = vqrdmulhq_n_s16(v444, 16429); 493 int16x8_t v446 = vaddq_s16(v386, v445); 494 int16x8_t v447 = vsubq_s16(v374, v376); 495 int16x8_t v448 = vsubq_s16(v378, v381); 496 int16x8_t v449 = vqrdmulhq_n_s16(v448, 29490); 497 int16x8_t v450 = vaddq_s16(v447, v449); 498 int16x8_t v451 = vsubq_s16(v361, v364); 499 int16x8_t v452 = vqrdmulhq_n_s16(v366, 29490); 500 int16x8_t v453_tmp = vqrdmulhq_n_s16(v369, 5763); 501 int16x8_t v453 = vaddq_s16(v453_tmp, v369); 502 int16x8_t v454 = vsubq_s16(v452, v453); 503 int16x8_t v455 = vaddq_s16(v451, v454); 504 int16x8_t v456 = vqrdmulhq_n_s16(v455, 18578); 505 int16x8_t v457 = vaddq_s16(v450, v456); 506 int16x8_t v458 = vsubq_s16(v338, v341); 507 int16x8_t v459 = vqrdmulhq_n_s16(v332, 29490); 508 int16x8_t v460_tmp = vqrdmulhq_n_s16(v335, 5763); 509 int16x8_t v460 = vaddq_s16(v460_tmp, v335); 510 int16x8_t v461 = vsubq_s16(v459, v460); 511 int16x8_t v462 = vaddq_s16(v458, v461); 512 int16x8_t v463 = vqrdmulhq_n_s16(v352, 27803); 513 int16x8_t v464 = vqrdmulhq_n_s16(v354, 21845); 514 int16x8_t v465 = vsubq_s16(v463, v464); 515 int16x8_t v466 = vsubq_s16(v344, v347); 516 int16x8_t v467 = vqrdmulhq_n_s16(v466, 18578); 517 int16x8_t v468 = vaddq_s16(v465, v467); 518 int16x8_t v469 = vaddq_s16(v462, v468); 519 int16x8_t v470 = vqrdmulhq_n_s16(v469, 16890); 520 int16x8_t v471 = vaddq_s16(v457, v470); 521 int16x8_t v472 = vsubq_s16(v415, v418); 522 int16x8_t v473_tmp = vqrdmulhq_n_s16(v422, 16273); 523 int16x8_t v473 = vaddq_s16(v473_tmp, v422); 524 int16x8_t v474_tmp = vqrdmulhq_n_s16(v424, 5763); 525 int16x8_t v474 = vaddq_s16(v474_tmp, v424); 526 int16x8_t v475 = vsubq_s16(v473, v474); 527 int16x8_t v476 = vaddq_s16(v472, v475); 528 int16x8_t v477 = vqrdmulhq_n_s16(v476, 16890); 529 int16x8_t v478 = vqrdmulhq_n_s16(v435, 20261); 530 int16x8_t v479 = vqrdmulhq_n_s16(v437, 26472); 531 int16x8_t v480 = vsubq_s16(v478, v479); 532 int16x8_t v481 = vqrdmulhq_n_s16(v480, 30046); 533 int16x8_t v482 = vqrdmulhq_n_s16(v430, 30322); 534 int16x8_t v483 = vqrdmulhq_n_s16(v432, 30322); 535 int16x8_t v484 = vsubq_s16(v482, v483); 536 int16x8_t v485 = vqrdmulhq_n_s16(v484, 30046); 537 int16x8_t v486 = vaddq_s16(v481, v485); 538 int16x8_t v487 = vqrdmulhq_n_s16(v486, 16890); 539 int16x8_t v488 = vaddq_s16(v477, v487); 540 int16x8_t v489 = vsubq_s16(v387, v390); 541 int16x8_t v490 = vqrdmulhq_n_s16(v392, 29490); 542 int16x8_t v491_tmp = vqrdmulhq_n_s16(v395, 5763); 543 int16x8_t v491 = vaddq_s16(v491_tmp, v395); 544 int16x8_t v492 = vsubq_s16(v490, v491); 545 int16x8_t v493 = vaddq_s16(v489, v492); 546 int16x8_t v494 = vsubq_s16(v399, v402); 547 int16x8_t v495 = vqrdmulhq_n_s16(v494, 18578); 548 int16x8_t v496 = vqrdmulhq_n_s16(v407, 27803); 549 int16x8_t v497 = vqrdmulhq_n_s16(v409, 21845); 550 int16x8_t v498 = vsubq_s16(v496, v497); 551 int16x8_t v499 = vaddq_s16(v495, v498); 552 int16x8_t v500 = vaddq_s16(v493, v499); 553 int16x8_t v501 = vaddq_s16(v488, v500); 554 int16x8_t v502 = vqrdmulhq_n_s16(v501, 16508); 555 int16x8_t v503 = vaddq_s16(v471, v502); 556 int16x8_t v504 = vsubq_s16(v2, v8); 557 int16x8_t v505 = vsubq_s16(v15, v22); 558 int16x8_t v506_tmp = vqrdmulhq_n_s16(v505, 18446); 559 int16x8_t v506 = vmlaq_n_s16(v506_tmp, v505, 2); 560 int16x8_t v507 = vaddq_s16(v504, v506); 561 int16x8_t v508 = vsubq_s16(v31, v41); 562 int16x8_t v509 = vsubq_s16(v48, v56); 563 int16x8_t v510_tmp = vqrdmulhq_n_s16(v509, 18446); 564 int16x8_t v510 = vmlaq_n_s16(v510_tmp, v509, 2); 565 int16x8_t v511 = vaddq_s16(v508, v510); 566 int16x8_t v512 = vqrdmulhq_n_s16(v511, 21195); 567 int16x8_t v513 = vaddq_s16(v507, v512); 568 int16x8_t v514 = vsubq_s16(v67, v77); 569 int16x8_t v515 = vsubq_s16(v90, v99); 570 int16x8_t v516_tmp = vqrdmulhq_n_s16(v515, 18446); 571 int16x8_t v516 = vmlaq_n_s16(v516_tmp, v515, 2); 572 int16x8_t v517 = vaddq_s16(v514, v516); 573 int16x8_t v518 = vsubq_s16(v114, v126); 574 int16x8_t v519_tmp = vqrdmulhq_n_s16(v518, 18446); 575 int16x8_t v519 = vmlaq_n_s16(v519_tmp, v518, 2); 576 int16x8_t v520 = vsubq_s16(v132, v137); 577 int16x8_t v521 = vaddq_s16(v519, v520); 578 int16x8_t v522 = vqrdmulhq_n_s16(v521, 21195); 579 int16x8_t v523 = vaddq_s16(v517, v522); 580 int16x8_t v524 = vqrdmulhq_n_s16(v523, 17401); 581 int16x8_t v525 = vaddq_s16(v513, v524); 582 int16x8_t v526 = vsubq_s16(v172, v181); 583 int16x8_t v527_tmp = vqrdmulhq_n_s16(v526, 18446); 584 int16x8_t v527 = vmlaq_n_s16(v527_tmp, v526, 2); 585 int16x8_t v528 = vsubq_s16(v149, v159); 586 int16x8_t v529 = vaddq_s16(v527, v528); 587 int16x8_t v530 = vsubq_s16(v229, v234); 588 int16x8_t v531 = vsubq_s16(v208, v223); 589 int16x8_t v532_tmp = vqrdmulhq_n_s16(v531, 18446); 590 int16x8_t v532 = vmlaq_n_s16(v532_tmp, v531, 2); 591 int16x8_t v533 = vaddq_s16(v530, v532); 592 int16x8_t v534 = vqrdmulhq_n_s16(v533, 21195); 593 int16x8_t v535 = vaddq_s16(v529, v534); 594 int16x8_t v536 = vsubq_s16(v244, v253); 595 int16x8_t v537 = vsubq_s16(v266, v277); 596 int16x8_t v538_tmp = vqrdmulhq_n_s16(v537, 18446); 597 int16x8_t v538 = vmlaq_n_s16(v538_tmp, v537, 2); 598 int16x8_t v539 = vaddq_s16(v536, v538); 599 int16x8_t v540 = vqrdmulhq_n_s16(v539, 17401); 600 int16x8_t v541 = vqrdmulhq_n_s16(v287, 25826); 601 int16x8_t v542 = vqrdmulhq_n_s16(v298, 25826); 602 int16x8_t v543 = vsubq_s16(v541, v542); 603 int16x8_t v544 = vqrdmulhq_n_s16(v543, 14281); 604 int16x8_t v545_tmp = vqrdmulhq_n_s16(v309, 31509); 605 int16x8_t v545 = vaddq_s16(v545_tmp, v309); 606 int16x8_t v546 = vsubq_s16(v545, v322); 607 int16x8_t v547 = vqrdmulhq_n_s16(v546, 28847); 608 int16x8_t v548 = vaddq_s16(v544, v547); 609 int16x8_t v549 = vaddq_s16(v540, v548); 610 int16x8_t v550 = vaddq_s16(v535, v549); 611 int16x8_t v551 = vqrdmulhq_n_s16(v550, 16629); 612 int16x8_t v552 = vaddq_s16(v525, v551); 613 int16x8_t v553 = vsubq_s16(v504, v506); 614 int16x8_t v554 = vsubq_s16(v508, v510); 615 int16x8_t v555 = vqrdmulhq_n_s16(v554, 25826); 616 int16x8_t v556 = vaddq_s16(v553, v555); 617 int16x8_t v557 = vsubq_s16(v514, v516); 618 int16x8_t v558 = vsubq_s16(v520, v519); 619 int16x8_t v559 = vqrdmulhq_n_s16(v558, 25826); 620 int16x8_t v560 = vaddq_s16(v557, v559); 621 int16x8_t v561 = vqrdmulhq_n_s16(v560, 18124); 622 int16x8_t v562 = vaddq_s16(v556, v561); 623 int16x8_t v563 = vsubq_s16(v528, v527); 624 int16x8_t v564 = vsubq_s16(v530, v532); 625 int16x8_t v565 = vqrdmulhq_n_s16(v564, 25826); 626 int16x8_t v566 = vaddq_s16(v563, v565); 627 int16x8_t v567 = vsubq_s16(v536, v538); 628 int16x8_t v568 = vqrdmulhq_n_s16(v567, 18124); 629 int16x8_t v569_tmp = vqrdmulhq_n_s16(v546, 654); 630 int16x8_t v569 = vmlaq_n_s16(v569_tmp, v546, 2); 631 int16x8_t v570 = vsubq_s16(v543, v569); 632 int16x8_t v571 = vqrdmulhq_n_s16(v570, 18124); 633 int16x8_t v572 = vaddq_s16(v568, v571); 634 int16x8_t v573 = vaddq_s16(v566, v572); 635 int16x8_t v574 = vqrdmulhq_n_s16(v573, 16792); 636 int16x8_t v575 = vaddq_s16(v562, v574); 637 int16x8_t v576 = vsubq_s16(v458, v461); 638 int16x8_t v577_tmp = vqrdmulhq_n_s16(v465, 25030); 639 int16x8_t v577 = vaddq_s16(v577_tmp, v465); 640 int16x8_t v578 = vsubq_s16(v466, v577); 641 int16x8_t v579_tmp = vqrdmulhq_n_s16(v578, 1988); 642 int16x8_t v579 = vaddq_s16(v579_tmp, v578); 643 int16x8_t v580 = vaddq_s16(v576, v579); 644 int16x8_t v581 = vqrdmulhq_n_s16(v580, 19102); 645 int16x8_t v582 = vsubq_s16(v447, v449); 646 int16x8_t v583 = vsubq_s16(v451, v454); 647 int16x8_t v584_tmp = vqrdmulhq_n_s16(v583, 1988); 648 int16x8_t v584 = vaddq_s16(v584_tmp, v583); 649 int16x8_t v585 = vaddq_s16(v582, v584); 650 int16x8_t v586 = vaddq_s16(v581, v585); 651 int16x8_t v587 = vsubq_s16(v489, v492); 652 int16x8_t v588_tmp = vqrdmulhq_n_s16(v498, 25030); 653 int16x8_t v588 = vaddq_s16(v588_tmp, v498); 654 int16x8_t v589 = vsubq_s16(v494, v588); 655 int16x8_t v590_tmp = vqrdmulhq_n_s16(v589, 1988); 656 int16x8_t v590 = vaddq_s16(v590_tmp, v589); 657 int16x8_t v591 = vaddq_s16(v587, v590); 658 int16x8_t v592 = vsubq_s16(v472, v475); 659 int16x8_t v593 = vqrdmulhq_n_s16(v592, 19102); 660 int16x8_t v594 = vsubq_s16(v480, v484); 661 int16x8_t v595 = vaddq_s16(v593, v594); 662 int16x8_t v596 = vaddq_s16(v591, v595); 663 int16x8_t v597 = vqrdmulhq_n_s16(v596, 17000); 664 int16x8_t v598 = vaddq_s16(v586, v597); 665 int16x8_t v599 = vsubq_s16(v365, v371); 666 int16x8_t v600_tmp = vqrdmulhq_n_s16(v599, 23673); 667 int16x8_t v600 = vaddq_s16(v600_tmp, v599); 668 int16x8_t v601 = vsubq_s16(v377, v383); 669 int16x8_t v602 = vaddq_s16(v600, v601); 670 int16x8_t v603 = vsubq_s16(v348, v356); 671 int16x8_t v604_tmp = vqrdmulhq_n_s16(v603, 23673); 672 int16x8_t v604 = vaddq_s16(v604_tmp, v603); 673 int16x8_t v605 = vsubq_s16(v342, v337); 674 int16x8_t v606 = vaddq_s16(v604, v605); 675 int16x8_t v607 = vqrdmulhq_n_s16(v606, 20398); 676 int16x8_t v608 = vaddq_s16(v602, v607); 677 int16x8_t v609 = vsubq_s16(v391, v397); 678 int16x8_t v610 = vsubq_s16(v403, v411); 679 int16x8_t v611_tmp = vqrdmulhq_n_s16(v610, 23673); 680 int16x8_t v611 = vaddq_s16(v611_tmp, v610); 681 int16x8_t v612 = vaddq_s16(v609, v611); 682 int16x8_t v613 = vsubq_s16(v419, v426); 683 int16x8_t v614 = vqrdmulhq_n_s16(v613, 20398); 684 int16x8_t v615 = vsubq_s16(v439, v433); 685 int16x8_t v616_tmp = vqrdmulhq_n_s16(v615, 2367); 686 int16x8_t v616 = vaddq_s16(v616_tmp, v615); 687 int16x8_t v617 = vaddq_s16(v614, v616); 688 int16x8_t v618 = vaddq_s16(v612, v617); 689 int16x8_t v619 = vqrdmulhq_n_s16(v618, 17255); 690 int16x8_t v620 = vaddq_s16(v608, v619); 691 int16x8_t v621 = vsubq_s16(v160, v183); 692 int16x8_t v622 = vsubq_s16(v235, v225); 693 int16x8_t v623_tmp = vqrdmulhq_n_s16(v622, 3314); 694 int16x8_t v623 = vmlaq_n_s16(v623_tmp, v622, 5); 695 int16x8_t v624 = vaddq_s16(v621, v623); 696 int16x8_t v625 = vsubq_s16(v254, v279); 697 int16x8_t v626 = vsubq_s16(v299, v324); 698 int16x8_t v627_tmp = vqrdmulhq_n_s16(v626, 3314); 699 int16x8_t v627 = vmlaq_n_s16(v627_tmp, v626, 5); 700 int16x8_t v628 = vaddq_s16(v625, v627); 701 int16x8_t v629 = vqrdmulhq_n_s16(v628, 22112); 702 int16x8_t v630 = vaddq_s16(v624, v629); 703 int16x8_t v631 = vqrdmulhq_n_s16(v630, 17561); 704 int16x8_t v632 = vsubq_s16(v9, v24); 705 int16x8_t v633 = vsubq_s16(v42, v58); 706 int16x8_t v634_tmp = vqrdmulhq_n_s16(v633, 3314); 707 int16x8_t v634 = vmlaq_n_s16(v634_tmp, v633, 5); 708 int16x8_t v635 = vaddq_s16(v632, v634); 709 int16x8_t v636 = vsubq_s16(v78, v101); 710 int16x8_t v637 = vsubq_s16(v138, v128); 711 int16x8_t v638_tmp = vqrdmulhq_n_s16(v637, 3314); 712 int16x8_t v638 = vmlaq_n_s16(v638_tmp, v637, 5); 713 int16x8_t v639 = vaddq_s16(v636, v638); 714 int16x8_t v640 = vqrdmulhq_n_s16(v639, 22112); 715 int16x8_t v641 = vaddq_s16(v635, v640); 716 int16x8_t v642 = vaddq_s16(v631, v641); 717 int16x8_t v643 = vsubq_s16(v632, v634); 718 int16x8_t v644 = vsubq_s16(v636, v638); 719 int16x8_t v645 = vqrdmulhq_n_s16(v644, 24397); 720 int16x8_t v646 = vaddq_s16(v643, v645); 721 int16x8_t v647 = vsubq_s16(v621, v623); 722 int16x8_t v648 = vsubq_s16(v625, v627); 723 int16x8_t v649 = vqrdmulhq_n_s16(v648, 24397); 724 int16x8_t v650 = vaddq_s16(v647, v649); 725 int16x8_t v651 = vqrdmulhq_n_s16(v650, 17921); 726 int16x8_t v652 = vaddq_s16(v646, v651); 727 int16x8_t v653 = vsubq_s16(v601, v600); 728 int16x8_t v654 = vsubq_s16(v605, v604); 729 int16x8_t v655 = vqrdmulhq_n_s16(v654, 27504); 730 int16x8_t v656 = vaddq_s16(v653, v655); 731 int16x8_t v657 = vsubq_s16(v609, v611); 732 int16x8_t v658 = vqrdmulhq_n_s16(v613, 27504); 733 int16x8_t v659_tmp = vqrdmulhq_n_s16(v615, 14606); 734 int16x8_t v659 = vaddq_s16(v659_tmp, v615); 735 int16x8_t v660 = vsubq_s16(v658, v659); 736 int16x8_t v661 = vaddq_s16(v657, v660); 737 int16x8_t v662 = vqrdmulhq_n_s16(v661, 18343); 738 int16x8_t v663 = vaddq_s16(v656, v662); 739 int16x8_t v664 = vsubq_s16(v582, v584); 740 int16x8_t v665 = vsubq_s16(v576, v579); 741 int16x8_t v666 = vqrdmulhq_n_s16(v665, 31869); 742 int16x8_t v667 = vaddq_s16(v664, v666); 743 int16x8_t v668 = vsubq_s16(v587, v590); 744 int16x8_t v669_tmp = vqrdmulhq_n_s16(v594, 23444); 745 int16x8_t v669 = vaddq_s16(v669_tmp, v594); 746 int16x8_t v670 = vsubq_s16(v592, v669); 747 int16x8_t v671 = vqrdmulhq_n_s16(v670, 31869); 748 int16x8_t v672 = vaddq_s16(v668, v671); 749 int16x8_t v673 = vqrdmulhq_n_s16(v672, 18830); 750 int16x8_t v674 = vaddq_s16(v667, v673); 751 int16x8_t v675 = vsubq_s16(v553, v555); 752 int16x8_t v676 = vsubq_s16(v557, v559); 753 int16x8_t v677_tmp = vqrdmulhq_n_s16(v676, 5552); 754 int16x8_t v677 = vaddq_s16(v677_tmp, v676); 755 int16x8_t v678 = vaddq_s16(v675, v677); 756 int16x8_t v679 = vsubq_s16(v563, v565); 757 int16x8_t v680 = vsubq_s16(v567, v570); 758 int16x8_t v681_tmp = vqrdmulhq_n_s16(v680, 5552); 759 int16x8_t v681 = vaddq_s16(v681_tmp, v680); 760 int16x8_t v682 = vaddq_s16(v679, v681); 761 int16x8_t v683 = vqrdmulhq_n_s16(v682, 19393); 762 int16x8_t v684 = vaddq_s16(v678, v683); 763 int16x8_t v685 = vsubq_s16(v507, v512); 764 int16x8_t v686 = vsubq_s16(v517, v522); 765 int16x8_t v687_tmp = vqrdmulhq_n_s16(v686, 15865); 766 int16x8_t v687 = vaddq_s16(v687_tmp, v686); 767 int16x8_t v688 = vaddq_s16(v685, v687); 768 int16x8_t v689 = vsubq_s16(v529, v534); 769 int16x8_t v690_tmp = vqrdmulhq_n_s16(v548, 28937); 770 int16x8_t v690 = vaddq_s16(v690_tmp, v548); 771 int16x8_t v691 = vsubq_s16(v539, v690); 772 int16x8_t v692_tmp = vqrdmulhq_n_s16(v691, 15865); 773 int16x8_t v692 = vaddq_s16(v692_tmp, v691); 774 int16x8_t v693 = vaddq_s16(v689, v692); 775 int16x8_t v694 = vqrdmulhq_n_s16(v693, 20040); 776 int16x8_t v695 = vaddq_s16(v688, v694); 777 int16x8_t v696 = vsubq_s16(v476, v486); 778 int16x8_t v697_tmp = vqrdmulhq_n_s16(v696, 1893); 779 int16x8_t v697 = vmlaq_n_s16(v697_tmp, v696, 2); 780 int16x8_t v698 = vsubq_s16(v493, v499); 781 int16x8_t v699 = vaddq_s16(v697, v698); 782 int16x8_t v700 = vqrdmulhq_n_s16(v699, 20783); 783 int16x8_t v701 = vsubq_s16(v450, v456); 784 int16x8_t v702 = vsubq_s16(v462, v468); 785 int16x8_t v703_tmp = vqrdmulhq_n_s16(v702, 1893); 786 int16x8_t v703 = vmlaq_n_s16(v703_tmp, v702, 2); 787 int16x8_t v704 = vaddq_s16(v701, v703); 788 int16x8_t v705 = vaddq_s16(v700, v704); 789 int16x8_t v706 = vsubq_s16(v384, v373); 790 int16x8_t v707 = vsubq_s16(v343, v358); 791 int16x8_t v708_tmp = vqrdmulhq_n_s16(v707, 13357); 792 int16x8_t v708 = vmlaq_n_s16(v708_tmp, v707, 3); 793 int16x8_t v709 = vaddq_s16(v706, v708); 794 int16x8_t v710 = vsubq_s16(v398, v413); 795 int16x8_t v711 = vsubq_s16(v427, v441); 796 int16x8_t v712_tmp = vqrdmulhq_n_s16(v711, 13357); 797 int16x8_t v712 = vmlaq_n_s16(v712_tmp, v711, 3); 798 int16x8_t v713 = vaddq_s16(v710, v712); 799 int16x8_t v714 = vqrdmulhq_n_s16(v713, 21637); 800 int16x8_t v715 = vaddq_s16(v709, v714); 801 int16x8_t v716 = vsubq_s16(v25, v60); 802 int16x8_t v717 = vsubq_s16(v102, v140); 803 int16x8_t v718_tmp = vqrdmulhq_n_s16(v717, 6226); 804 int16x8_t v718 = vmlaq_n_s16(v718_tmp, v717, 10); 805 int16x8_t v719 = vaddq_s16(v716, v718); 806 int16x8_t v720 = vsubq_s16(v280, v326); 807 int16x8_t v721_tmp = vqrdmulhq_n_s16(v720, 6226); 808 int16x8_t v721 = vmlaq_n_s16(v721_tmp, v720, 10); 809 int16x8_t v722 = vsubq_s16(v184, v237); 810 int16x8_t v723 = vaddq_s16(v721, v722); 811 int16x8_t v724 = vqrdmulhq_n_s16(v723, 22622); 812 int16x8_t v725 = vaddq_s16(v719, v724); 813 int16x8_t v726 = vsubq_s16(v716, v718); 814 int16x8_t v727 = vsubq_s16(v722, v721); 815 int16x8_t v728 = vqrdmulhq_n_s16(v727, 23761); 816 int16x8_t v729 = vaddq_s16(v726, v728); 817 int16x8_t v730 = vsubq_s16(v706, v708); 818 int16x8_t v731 = vsubq_s16(v710, v712); 819 int16x8_t v732 = vqrdmulhq_n_s16(v731, 25084); 820 int16x8_t v733 = vaddq_s16(v730, v732); 821 int16x8_t v734 = vsubq_s16(v701, v703); 822 int16x8_t v735 = vsubq_s16(v698, v697); 823 int16x8_t v736 = vqrdmulhq_n_s16(v735, 26631); 824 int16x8_t v737 = vaddq_s16(v734, v736); 825 int16x8_t v738 = vsubq_s16(v685, v687); 826 int16x8_t v739 = vsubq_s16(v689, v692); 827 int16x8_t v740 = vqrdmulhq_n_s16(v739, 28454); 828 int16x8_t v741 = vaddq_s16(v738, v740); 829 int16x8_t v742 = vsubq_s16(v675, v677); 830 int16x8_t v743 = vsubq_s16(v679, v681); 831 int16x8_t v744 = vqrdmulhq_n_s16(v743, 30624); 832 int16x8_t v745 = vaddq_s16(v742, v744); 833 int16x8_t v746 = vsubq_s16(v664, v666); 834 int16x8_t v747 = vsubq_s16(v668, v671); 835 int16x8_t v748_tmp = vqrdmulhq_n_s16(v747, 472); 836 int16x8_t v748 = vaddq_s16(v748_tmp, v747); 837 int16x8_t v749 = vaddq_s16(v746, v748); 838 int16x8_t v750 = vsubq_s16(v653, v655); 839 int16x8_t v751 = vsubq_s16(v657, v660); 840 int16x8_t v752_tmp = vqrdmulhq_n_s16(v751, 3672); 841 int16x8_t v752 = vaddq_s16(v752_tmp, v751); 842 int16x8_t v753 = vaddq_s16(v750, v752); 843 int16x8_t v754 = vsubq_s16(v643, v645); 844 int16x8_t v755 = vsubq_s16(v647, v649); 845 int16x8_t v756_tmp = vqrdmulhq_n_s16(v755, 7662); 846 int16x8_t v756 = vaddq_s16(v756_tmp, v755); 847 int16x8_t v757 = vaddq_s16(v754, v756); 848 int16x8_t v758 = vsubq_s16(v635, v640); 849 int16x8_t v759 = vsubq_s16(v624, v629); 850 int16x8_t v760_tmp = vqrdmulhq_n_s16(v759, 12756); 851 int16x8_t v760 = vaddq_s16(v760_tmp, v759); 852 int16x8_t v761 = vaddq_s16(v758, v760); 853 int16x8_t v762 = vsubq_s16(v602, v607); 854 int16x8_t v763 = vsubq_s16(v612, v617); 855 int16x8_t v764_tmp = vqrdmulhq_n_s16(v763, 19463); 856 int16x8_t v764 = vaddq_s16(v764_tmp, v763); 857 int16x8_t v765 = vaddq_s16(v762, v764); 858 int16x8_t v766 = vsubq_s16(v585, v581); 859 int16x8_t v767 = vsubq_s16(v591, v595); 860 int16x8_t v768_tmp = vqrdmulhq_n_s16(v767, 28661); 861 int16x8_t v768 = vaddq_s16(v768_tmp, v767); 862 int16x8_t v769 = vaddq_s16(v766, v768); 863 int16x8_t v770 = vsubq_s16(v556, v561); 864 int16x8_t v771 = vsubq_s16(v566, v572); 865 int16x8_t v772_tmp = vqrdmulhq_n_s16(v771, 9242); 866 int16x8_t v772 = vmlaq_n_s16(v772_tmp, v771, 2); 867 int16x8_t v773 = vaddq_s16(v770, v772); 868 int16x8_t v774 = vsubq_s16(v513, v524); 869 int16x8_t v775 = vsubq_s16(v535, v549); 870 int16x8_t v776_tmp = vqrdmulhq_n_s16(v775, 30298); 871 int16x8_t v776 = vmlaq_n_s16(v776_tmp, v775, 2); 872 int16x8_t v777 = vaddq_s16(v774, v776); 873 int16x8_t v778 = vsubq_s16(v457, v470); 874 int16x8_t v779 = vsubq_s16(v500, v488); 875 int16x8_t v780_tmp = vqrdmulhq_n_s16(v779, 2773); 876 int16x8_t v780 = vmlaq_n_s16(v780_tmp, v779, 4); 877 int16x8_t v781 = vaddq_s16(v778, v780); 878 int16x8_t v782 = vsubq_s16(v385, v360); 879 int16x8_t v783 = vsubq_s16(v414, v443); 880 int16x8_t v784_tmp = vqrdmulhq_n_s16(v783, 26108); 881 int16x8_t v784 = vmlaq_n_s16(v784_tmp, v783, 6); 882 int16x8_t v785 = vaddq_s16(v782, v784); 883 int16x8_t v786 = vsubq_s16(v61, v142); 884 int16x8_t v787 = vsubq_s16(v238, v328); 885 int16x8_t v788_tmp = vqrdmulhq_n_s16(v787, 12251); 886 int16x8_t v788 = vmlaq_n_s16(v788_tmp, v787, 20); 887 int16x8_t v789 = vaddq_s16(v786, v788); 888 int16x8_t v790 = vsubq_s16(v786, v788); 889 int16x8_t v791 = vsubq_s16(v782, v784); 890 int16x8_t v792 = vsubq_s16(v778, v780); 891 int16x8_t v793 = vsubq_s16(v774, v776); 892 int16x8_t v794 = vsubq_s16(v770, v772); 893 int16x8_t v795 = vsubq_s16(v766, v768); 894 int16x8_t v796 = vsubq_s16(v762, v764); 895 int16x8_t v797 = vsubq_s16(v758, v760); 896 int16x8_t v798 = vsubq_s16(v754, v756); 897 int16x8_t v799 = vsubq_s16(v750, v752); 898 int16x8_t v800 = vsubq_s16(v746, v748); 899 int16x8_t v801 = vsubq_s16(v742, v744); 900 int16x8_t v802 = vsubq_s16(v738, v740); 901 int16x8_t v803 = vsubq_s16(v734, v736); 902 int16x8_t v804 = vsubq_s16(v730, v732); 903 int16x8_t v805 = vsubq_s16(v726, v728); 904 int16x8_t v806 = vsubq_s16(v719, v724); 905 int16x8_t v807 = vsubq_s16(v709, v714); 906 int16x8_t v808 = vsubq_s16(v704, v700); 907 int16x8_t v809 = vsubq_s16(v688, v694); 908 int16x8_t v810 = vsubq_s16(v678, v683); 909 int16x8_t v811 = vsubq_s16(v667, v673); 910 int16x8_t v812 = vsubq_s16(v656, v662); 911 int16x8_t v813 = vsubq_s16(v646, v651); 912 int16x8_t v814 = vsubq_s16(v641, v631); 913 int16x8_t v815 = vsubq_s16(v608, v619); 914 int16x8_t v816 = vsubq_s16(v586, v597); 915 int16x8_t v817 = vsubq_s16(v562, v574); 916 int16x8_t v818 = vsubq_s16(v525, v551); 917 int16x8_t v819 = vsubq_s16(v471, v502); 918 int16x8_t v820 = vsubq_s16(v386, v445); 919 int16x8_t v821 = vsubq_s16(v143, v330); 920 vst1q_s16(out + out_stride * 0 + i, v331); 921 vst1q_s16(out + out_stride * 1 + i, v446); 922 vst1q_s16(out + out_stride * 2 + i, v503); 923 vst1q_s16(out + out_stride * 3 + i, v552); 924 vst1q_s16(out + out_stride * 4 + i, v575); 925 vst1q_s16(out + out_stride * 5 + i, v598); 926 vst1q_s16(out + out_stride * 6 + i, v620); 927 vst1q_s16(out + out_stride * 7 + i, v642); 928 vst1q_s16(out + out_stride * 8 + i, v652); 929 vst1q_s16(out + out_stride * 9 + i, v663); 930 vst1q_s16(out + out_stride * 10 + i, v674); 931 vst1q_s16(out + out_stride * 11 + i, v684); 932 vst1q_s16(out + out_stride * 12 + i, v695); 933 vst1q_s16(out + out_stride * 13 + i, v705); 934 vst1q_s16(out + out_stride * 14 + i, v715); 935 vst1q_s16(out + out_stride * 15 + i, v725); 936 vst1q_s16(out + out_stride * 16 + i, v729); 937 vst1q_s16(out + out_stride * 17 + i, v733); 938 vst1q_s16(out + out_stride * 18 + i, v737); 939 vst1q_s16(out + out_stride * 19 + i, v741); 940 vst1q_s16(out + out_stride * 20 + i, v745); 941 vst1q_s16(out + out_stride * 21 + i, v749); 942 vst1q_s16(out + out_stride * 22 + i, v753); 943 vst1q_s16(out + out_stride * 23 + i, v757); 944 vst1q_s16(out + out_stride * 24 + i, v761); 945 vst1q_s16(out + out_stride * 25 + i, v765); 946 vst1q_s16(out + out_stride * 26 + i, v769); 947 vst1q_s16(out + out_stride * 27 + i, v773); 948 vst1q_s16(out + out_stride * 28 + i, v777); 949 vst1q_s16(out + out_stride * 29 + i, v781); 950 vst1q_s16(out + out_stride * 30 + i, v785); 951 vst1q_s16(out + out_stride * 31 + i, v789); 952 vst1q_s16(out + out_stride * 32 + i, v790); 953 vst1q_s16(out + out_stride * 33 + i, v791); 954 vst1q_s16(out + out_stride * 34 + i, v792); 955 vst1q_s16(out + out_stride * 35 + i, v793); 956 vst1q_s16(out + out_stride * 36 + i, v794); 957 vst1q_s16(out + out_stride * 37 + i, v795); 958 vst1q_s16(out + out_stride * 38 + i, v796); 959 vst1q_s16(out + out_stride * 39 + i, v797); 960 vst1q_s16(out + out_stride * 40 + i, v798); 961 vst1q_s16(out + out_stride * 41 + i, v799); 962 vst1q_s16(out + out_stride * 42 + i, v800); 963 vst1q_s16(out + out_stride * 43 + i, v801); 964 vst1q_s16(out + out_stride * 44 + i, v802); 965 vst1q_s16(out + out_stride * 45 + i, v803); 966 vst1q_s16(out + out_stride * 46 + i, v804); 967 vst1q_s16(out + out_stride * 47 + i, v805); 968 vst1q_s16(out + out_stride * 48 + i, v806); 969 vst1q_s16(out + out_stride * 49 + i, v807); 970 vst1q_s16(out + out_stride * 50 + i, v808); 971 vst1q_s16(out + out_stride * 51 + i, v809); 972 vst1q_s16(out + out_stride * 52 + i, v810); 973 vst1q_s16(out + out_stride * 53 + i, v811); 974 vst1q_s16(out + out_stride * 54 + i, v812); 975 vst1q_s16(out + out_stride * 55 + i, v813); 976 vst1q_s16(out + out_stride * 56 + i, v814); 977 vst1q_s16(out + out_stride * 57 + i, v815); 978 vst1q_s16(out + out_stride * 58 + i, v816); 979 vst1q_s16(out + out_stride * 59 + i, v817); 980 vst1q_s16(out + out_stride * 60 + i, v818); 981 vst1q_s16(out + out_stride * 61 + i, v819); 982 vst1q_s16(out + out_stride * 62 + i, v820); 983 vst1q_s16(out + out_stride * 63 + i, v821); 984 } 985 }