1sub vpx_dsp_forward_decls() { 2print <<EOF 3/* 4 * DSP 5 */ 6 7#include "vpx/vpx_integer.h" 8#include "vpx_dsp/vpx_dsp_common.h" 9 10EOF 11} 12forward_decls qw/vpx_dsp_forward_decls/; 13 14# x86inc.asm had specific constraints. break it out so it's easy to disable. 15# zero all the variables to avoid tricky else conditions. 16$mmx_x86inc = $sse_x86inc = $sse2_x86inc = $ssse3_x86inc = $avx_x86inc = 17 $avx2_x86inc = ''; 18$mmx_x86_64_x86inc = $sse_x86_64_x86inc = $sse2_x86_64_x86inc = 19 $ssse3_x86_64_x86inc = $avx_x86_64_x86inc = $avx2_x86_64_x86inc = ''; 20if (vpx_config("CONFIG_USE_X86INC") eq "yes") { 21 $mmx_x86inc = 'mmx'; 22 $sse_x86inc = 'sse'; 23 $sse2_x86inc = 'sse2'; 24 $ssse3_x86inc = 'ssse3'; 25 $avx_x86inc = 'avx'; 26 $avx2_x86inc = 'avx2'; 27 if ($opts{arch} eq "x86_64") { 28 $mmx_x86_64_x86inc = 'mmx'; 29 $sse_x86_64_x86inc = 'sse'; 30 $sse2_x86_64_x86inc = 'sse2'; 31 $ssse3_x86_64_x86inc = 'ssse3'; 32 $avx_x86_64_x86inc = 'avx'; 33 $avx2_x86_64_x86inc = 'avx2'; 34 } 35} 36 37# optimizations which depend on multiple features 38$avx2_ssse3 = ''; 39if ((vpx_config("HAVE_AVX2") eq "yes") && (vpx_config("HAVE_SSSE3") eq "yes")) { 40 $avx2_ssse3 = 'avx2'; 41} 42 43# functions that are 64 bit only. 44$mmx_x86_64 = $sse2_x86_64 = $ssse3_x86_64 = $avx_x86_64 = $avx2_x86_64 = ''; 45if ($opts{arch} eq "x86_64") { 46 $mmx_x86_64 = 'mmx'; 47 $sse2_x86_64 = 'sse2'; 48 $ssse3_x86_64 = 'ssse3'; 49 $avx_x86_64 = 'avx'; 50 $avx2_x86_64 = 'avx2'; 51} 52 53# 54# Intra prediction 55# 56 57if ((vpx_config("CONFIG_VP9") eq "yes") || (vpx_config("CONFIG_VP10") eq "yes")) { 58 add_proto qw/void vpx_d207_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 59 specialize qw/vpx_d207_predictor_4x4/, "$ssse3_x86inc"; 60 61 add_proto qw/void vpx_d45_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 62 specialize qw/vpx_d45_predictor_4x4 neon/, "$ssse3_x86inc"; 63 64 add_proto qw/void vpx_d63_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 65 specialize qw/vpx_d63_predictor_4x4/, "$ssse3_x86inc"; 66 67 add_proto qw/void vpx_h_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 68 specialize qw/vpx_h_predictor_4x4 neon dspr2 msa/, "$ssse3_x86inc"; 69 70 add_proto qw/void vpx_d117_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 71 specialize qw/vpx_d117_predictor_4x4/; 72 73 add_proto qw/void vpx_d135_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 74 specialize qw/vpx_d135_predictor_4x4 neon/; 75 76 add_proto qw/void vpx_d153_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 77 specialize qw/vpx_d153_predictor_4x4/, "$ssse3_x86inc"; 78 79 add_proto qw/void vpx_v_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 80 specialize qw/vpx_v_predictor_4x4 neon msa/, "$sse_x86inc"; 81 82 add_proto qw/void vpx_tm_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 83 specialize qw/vpx_tm_predictor_4x4 neon dspr2 msa/, "$sse_x86inc"; 84 85 add_proto qw/void vpx_dc_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 86 specialize qw/vpx_dc_predictor_4x4 dspr2 msa neon/, "$sse_x86inc"; 87 88 add_proto qw/void vpx_dc_top_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 89 specialize qw/vpx_dc_top_predictor_4x4 msa neon/, "$sse_x86inc"; 90 91 add_proto qw/void vpx_dc_left_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 92 specialize qw/vpx_dc_left_predictor_4x4 msa neon/, "$sse_x86inc"; 93 94 add_proto qw/void vpx_dc_128_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 95 specialize qw/vpx_dc_128_predictor_4x4 msa neon/, "$sse_x86inc"; 96 97 add_proto qw/void vpx_d207_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 98 specialize qw/vpx_d207_predictor_8x8/, "$ssse3_x86inc"; 99 100 add_proto qw/void vpx_d45_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 101 specialize qw/vpx_d45_predictor_8x8 neon/, "$ssse3_x86inc"; 102 103 add_proto qw/void vpx_d63_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 104 specialize qw/vpx_d63_predictor_8x8/, "$ssse3_x86inc"; 105 106 add_proto qw/void vpx_h_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 107 specialize qw/vpx_h_predictor_8x8 neon dspr2 msa/, "$ssse3_x86inc"; 108 109 add_proto qw/void vpx_d117_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 110 specialize qw/vpx_d117_predictor_8x8/; 111 112 add_proto qw/void vpx_d135_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 113 specialize qw/vpx_d135_predictor_8x8/; 114 115 add_proto qw/void vpx_d153_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 116 specialize qw/vpx_d153_predictor_8x8/, "$ssse3_x86inc"; 117 118 add_proto qw/void vpx_v_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 119 specialize qw/vpx_v_predictor_8x8 neon msa/, "$sse_x86inc"; 120 121 add_proto qw/void vpx_tm_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 122 specialize qw/vpx_tm_predictor_8x8 neon dspr2 msa/, "$sse2_x86inc"; 123 124 add_proto qw/void vpx_dc_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 125 specialize qw/vpx_dc_predictor_8x8 dspr2 neon msa/, "$sse_x86inc"; 126 127 add_proto qw/void vpx_dc_top_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 128 specialize qw/vpx_dc_top_predictor_8x8 neon msa/, "$sse_x86inc"; 129 130 add_proto qw/void vpx_dc_left_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 131 specialize qw/vpx_dc_left_predictor_8x8 neon msa/, "$sse_x86inc"; 132 133 add_proto qw/void vpx_dc_128_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 134 specialize qw/vpx_dc_128_predictor_8x8 neon msa/, "$sse_x86inc"; 135 136 add_proto qw/void vpx_d207_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 137 specialize qw/vpx_d207_predictor_16x16/, "$ssse3_x86inc"; 138 139 add_proto qw/void vpx_d45_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 140 specialize qw/vpx_d45_predictor_16x16 neon/, "$ssse3_x86inc"; 141 142 add_proto qw/void vpx_d63_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 143 specialize qw/vpx_d63_predictor_16x16/, "$ssse3_x86inc"; 144 145 add_proto qw/void vpx_h_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 146 specialize qw/vpx_h_predictor_16x16 neon dspr2 msa/, "$ssse3_x86inc"; 147 148 add_proto qw/void vpx_d117_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 149 specialize qw/vpx_d117_predictor_16x16/; 150 151 add_proto qw/void vpx_d135_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 152 specialize qw/vpx_d135_predictor_16x16/; 153 154 add_proto qw/void vpx_d153_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 155 specialize qw/vpx_d153_predictor_16x16/, "$ssse3_x86inc"; 156 157 add_proto qw/void vpx_v_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 158 specialize qw/vpx_v_predictor_16x16 neon msa/, "$sse2_x86inc"; 159 160 add_proto qw/void vpx_tm_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 161 specialize qw/vpx_tm_predictor_16x16 neon msa/, "$sse2_x86inc"; 162 163 add_proto qw/void vpx_dc_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 164 specialize qw/vpx_dc_predictor_16x16 dspr2 neon msa/, "$sse2_x86inc"; 165 166 add_proto qw/void vpx_dc_top_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 167 specialize qw/vpx_dc_top_predictor_16x16 neon msa/, "$sse2_x86inc"; 168 169 add_proto qw/void vpx_dc_left_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 170 specialize qw/vpx_dc_left_predictor_16x16 neon msa/, "$sse2_x86inc"; 171 172 add_proto qw/void vpx_dc_128_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 173 specialize qw/vpx_dc_128_predictor_16x16 neon msa/, "$sse2_x86inc"; 174 175 add_proto qw/void vpx_d207_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 176 specialize qw/vpx_d207_predictor_32x32/, "$ssse3_x86inc"; 177 178 add_proto qw/void vpx_d45_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 179 specialize qw/vpx_d45_predictor_32x32/, "$ssse3_x86inc"; 180 181 add_proto qw/void vpx_d63_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 182 specialize qw/vpx_d63_predictor_32x32/, "$ssse3_x86inc"; 183 184 add_proto qw/void vpx_h_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 185 specialize qw/vpx_h_predictor_32x32 neon msa/, "$ssse3_x86inc"; 186 187 add_proto qw/void vpx_d117_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 188 specialize qw/vpx_d117_predictor_32x32/; 189 190 add_proto qw/void vpx_d135_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 191 specialize qw/vpx_d135_predictor_32x32/; 192 193 add_proto qw/void vpx_d153_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 194 specialize qw/vpx_d153_predictor_32x32/, "$ssse3_x86inc"; 195 196 add_proto qw/void vpx_v_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 197 specialize qw/vpx_v_predictor_32x32 neon msa/, "$sse2_x86inc"; 198 199 add_proto qw/void vpx_tm_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 200 specialize qw/vpx_tm_predictor_32x32 neon msa/, "$sse2_x86_64_x86inc"; 201 202 add_proto qw/void vpx_dc_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 203 specialize qw/vpx_dc_predictor_32x32 msa neon/, "$sse2_x86inc"; 204 205 add_proto qw/void vpx_dc_top_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 206 specialize qw/vpx_dc_top_predictor_32x32 msa neon/, "$sse2_x86inc"; 207 208 add_proto qw/void vpx_dc_left_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 209 specialize qw/vpx_dc_left_predictor_32x32 msa neon/, "$sse2_x86inc"; 210 211 add_proto qw/void vpx_dc_128_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 212 specialize qw/vpx_dc_128_predictor_32x32 msa neon/, "$sse2_x86inc"; 213 214# High bitdepth functions 215 if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 216 add_proto qw/void vpx_highbd_d207_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 217 specialize qw/vpx_highbd_d207_predictor_4x4/; 218 219 add_proto qw/void vpx_highbd_d45_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 220 specialize qw/vpx_highbd_d45_predictor_4x4/; 221 222 add_proto qw/void vpx_highbd_d63_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 223 specialize qw/vpx_highbd_d63_predictor_4x4/; 224 225 add_proto qw/void vpx_highbd_h_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 226 specialize qw/vpx_highbd_h_predictor_4x4/; 227 228 add_proto qw/void vpx_highbd_d117_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 229 specialize qw/vpx_highbd_d117_predictor_4x4/; 230 231 add_proto qw/void vpx_highbd_d135_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 232 specialize qw/vpx_highbd_d135_predictor_4x4/; 233 234 add_proto qw/void vpx_highbd_d153_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 235 specialize qw/vpx_highbd_d153_predictor_4x4/; 236 237 add_proto qw/void vpx_highbd_v_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 238 specialize qw/vpx_highbd_v_predictor_4x4/, "$sse_x86inc"; 239 240 add_proto qw/void vpx_highbd_tm_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 241 specialize qw/vpx_highbd_tm_predictor_4x4/, "$sse_x86inc"; 242 243 add_proto qw/void vpx_highbd_dc_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 244 specialize qw/vpx_highbd_dc_predictor_4x4/, "$sse_x86inc"; 245 246 add_proto qw/void vpx_highbd_dc_top_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 247 specialize qw/vpx_highbd_dc_top_predictor_4x4/; 248 249 add_proto qw/void vpx_highbd_dc_left_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 250 specialize qw/vpx_highbd_dc_left_predictor_4x4/; 251 252 add_proto qw/void vpx_highbd_dc_128_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 253 specialize qw/vpx_highbd_dc_128_predictor_4x4/; 254 255 add_proto qw/void vpx_highbd_d207_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 256 specialize qw/vpx_highbd_d207_predictor_8x8/; 257 258 add_proto qw/void vpx_highbd_d45_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 259 specialize qw/vpx_highbd_d45_predictor_8x8/; 260 261 add_proto qw/void vpx_highbd_d63_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 262 specialize qw/vpx_highbd_d63_predictor_8x8/; 263 264 add_proto qw/void vpx_highbd_h_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 265 specialize qw/vpx_highbd_h_predictor_8x8/; 266 267 add_proto qw/void vpx_highbd_d117_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 268 specialize qw/vpx_highbd_d117_predictor_8x8/; 269 270 add_proto qw/void vpx_highbd_d135_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 271 specialize qw/vpx_highbd_d135_predictor_8x8/; 272 273 add_proto qw/void vpx_highbd_d153_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 274 specialize qw/vpx_highbd_d153_predictor_8x8/; 275 276 add_proto qw/void vpx_highbd_v_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 277 specialize qw/vpx_highbd_v_predictor_8x8/, "$sse2_x86inc"; 278 279 add_proto qw/void vpx_highbd_tm_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 280 specialize qw/vpx_highbd_tm_predictor_8x8/, "$sse2_x86inc"; 281 282 add_proto qw/void vpx_highbd_dc_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 283 specialize qw/vpx_highbd_dc_predictor_8x8/, "$sse2_x86inc";; 284 285 add_proto qw/void vpx_highbd_dc_top_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 286 specialize qw/vpx_highbd_dc_top_predictor_8x8/; 287 288 add_proto qw/void vpx_highbd_dc_left_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 289 specialize qw/vpx_highbd_dc_left_predictor_8x8/; 290 291 add_proto qw/void vpx_highbd_dc_128_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 292 specialize qw/vpx_highbd_dc_128_predictor_8x8/; 293 294 add_proto qw/void vpx_highbd_d207_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 295 specialize qw/vpx_highbd_d207_predictor_16x16/; 296 297 add_proto qw/void vpx_highbd_d45_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 298 specialize qw/vpx_highbd_d45_predictor_16x16/; 299 300 add_proto qw/void vpx_highbd_d63_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 301 specialize qw/vpx_highbd_d63_predictor_16x16/; 302 303 add_proto qw/void vpx_highbd_h_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 304 specialize qw/vpx_highbd_h_predictor_16x16/; 305 306 add_proto qw/void vpx_highbd_d117_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 307 specialize qw/vpx_highbd_d117_predictor_16x16/; 308 309 add_proto qw/void vpx_highbd_d135_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 310 specialize qw/vpx_highbd_d135_predictor_16x16/; 311 312 add_proto qw/void vpx_highbd_d153_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 313 specialize qw/vpx_highbd_d153_predictor_16x16/; 314 315 add_proto qw/void vpx_highbd_v_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 316 specialize qw/vpx_highbd_v_predictor_16x16/, "$sse2_x86inc"; 317 318 add_proto qw/void vpx_highbd_tm_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 319 specialize qw/vpx_highbd_tm_predictor_16x16/, "$sse2_x86_64_x86inc"; 320 321 add_proto qw/void vpx_highbd_dc_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 322 specialize qw/vpx_highbd_dc_predictor_16x16/, "$sse2_x86inc"; 323 324 add_proto qw/void vpx_highbd_dc_top_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 325 specialize qw/vpx_highbd_dc_top_predictor_16x16/; 326 327 add_proto qw/void vpx_highbd_dc_left_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 328 specialize qw/vpx_highbd_dc_left_predictor_16x16/; 329 330 add_proto qw/void vpx_highbd_dc_128_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 331 specialize qw/vpx_highbd_dc_128_predictor_16x16/; 332 333 add_proto qw/void vpx_highbd_d207_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 334 specialize qw/vpx_highbd_d207_predictor_32x32/; 335 336 add_proto qw/void vpx_highbd_d45_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 337 specialize qw/vpx_highbd_d45_predictor_32x32/; 338 339 add_proto qw/void vpx_highbd_d63_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 340 specialize qw/vpx_highbd_d63_predictor_32x32/; 341 342 add_proto qw/void vpx_highbd_h_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 343 specialize qw/vpx_highbd_h_predictor_32x32/; 344 345 add_proto qw/void vpx_highbd_d117_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 346 specialize qw/vpx_highbd_d117_predictor_32x32/; 347 348 add_proto qw/void vpx_highbd_d135_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 349 specialize qw/vpx_highbd_d135_predictor_32x32/; 350 351 add_proto qw/void vpx_highbd_d153_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 352 specialize qw/vpx_highbd_d153_predictor_32x32/; 353 354 add_proto qw/void vpx_highbd_v_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 355 specialize qw/vpx_highbd_v_predictor_32x32/, "$sse2_x86inc"; 356 357 add_proto qw/void vpx_highbd_tm_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 358 specialize qw/vpx_highbd_tm_predictor_32x32/, "$sse2_x86_64_x86inc"; 359 360 add_proto qw/void vpx_highbd_dc_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 361 specialize qw/vpx_highbd_dc_predictor_32x32/, "$sse2_x86_64_x86inc"; 362 363 add_proto qw/void vpx_highbd_dc_top_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 364 specialize qw/vpx_highbd_dc_top_predictor_32x32/; 365 366 add_proto qw/void vpx_highbd_dc_left_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 367 specialize qw/vpx_highbd_dc_left_predictor_32x32/; 368 369 add_proto qw/void vpx_highbd_dc_128_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 370 specialize qw/vpx_highbd_dc_128_predictor_32x32/; 371 } # CONFIG_VP9_HIGHBITDEPTH 372} # CONFIG_VP9 || CONFIG_VP10 373 374# 375# Sub Pixel Filters 376# 377add_proto qw/void vpx_convolve_copy/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 378specialize qw/vpx_convolve_copy neon dspr2 msa/, "$sse2_x86inc"; 379 380add_proto qw/void vpx_convolve_avg/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 381specialize qw/vpx_convolve_avg neon dspr2 msa/, "$sse2_x86inc"; 382 383add_proto qw/void vpx_convolve8/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 384specialize qw/vpx_convolve8 sse2 ssse3 neon dspr2 msa/, "$avx2_ssse3"; 385 386add_proto qw/void vpx_convolve8_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 387specialize qw/vpx_convolve8_horiz sse2 ssse3 neon dspr2 msa/, "$avx2_ssse3"; 388 389add_proto qw/void vpx_convolve8_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 390specialize qw/vpx_convolve8_vert sse2 ssse3 neon dspr2 msa/, "$avx2_ssse3"; 391 392add_proto qw/void vpx_convolve8_avg/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 393specialize qw/vpx_convolve8_avg sse2 ssse3 neon dspr2 msa/; 394 395add_proto qw/void vpx_convolve8_avg_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 396specialize qw/vpx_convolve8_avg_horiz sse2 ssse3 neon dspr2 msa/; 397 398add_proto qw/void vpx_convolve8_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 399specialize qw/vpx_convolve8_avg_vert sse2 ssse3 neon dspr2 msa/; 400 401add_proto qw/void vpx_scaled_2d/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 402specialize qw/vpx_scaled_2d ssse3/; 403 404add_proto qw/void vpx_scaled_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 405specialize qw/vpx_scaled_horiz/; 406 407add_proto qw/void vpx_scaled_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 408specialize qw/vpx_scaled_vert/; 409 410add_proto qw/void vpx_scaled_avg_2d/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 411specialize qw/vpx_scaled_avg_2d/; 412 413add_proto qw/void vpx_scaled_avg_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 414specialize qw/vpx_scaled_avg_horiz/; 415 416add_proto qw/void vpx_scaled_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; 417specialize qw/vpx_scaled_avg_vert/; 418 419if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 420 # 421 # Sub Pixel Filters 422 # 423 add_proto qw/void vpx_highbd_convolve_copy/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps"; 424 specialize qw/vpx_highbd_convolve_copy/; 425 426 add_proto qw/void vpx_highbd_convolve_avg/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps"; 427 specialize qw/vpx_highbd_convolve_avg/; 428 429 add_proto qw/void vpx_highbd_convolve8/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps"; 430 specialize qw/vpx_highbd_convolve8/, "$sse2_x86_64"; 431 432 add_proto qw/void vpx_highbd_convolve8_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps"; 433 specialize qw/vpx_highbd_convolve8_horiz/, "$sse2_x86_64"; 434 435 add_proto qw/void vpx_highbd_convolve8_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps"; 436 specialize qw/vpx_highbd_convolve8_vert/, "$sse2_x86_64"; 437 438 add_proto qw/void vpx_highbd_convolve8_avg/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps"; 439 specialize qw/vpx_highbd_convolve8_avg/, "$sse2_x86_64"; 440 441 add_proto qw/void vpx_highbd_convolve8_avg_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps"; 442 specialize qw/vpx_highbd_convolve8_avg_horiz/, "$sse2_x86_64"; 443 444 add_proto qw/void vpx_highbd_convolve8_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps"; 445 specialize qw/vpx_highbd_convolve8_avg_vert/, "$sse2_x86_64"; 446} # CONFIG_VP9_HIGHBITDEPTH 447 448# 449# Loopfilter 450# 451add_proto qw/void vpx_lpf_vertical_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"; 452specialize qw/vpx_lpf_vertical_16 sse2 neon_asm dspr2 msa/; 453$vpx_lpf_vertical_16_neon_asm=vpx_lpf_vertical_16_neon; 454 455add_proto qw/void vpx_lpf_vertical_16_dual/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"; 456specialize qw/vpx_lpf_vertical_16_dual sse2 neon_asm dspr2 msa/; 457$vpx_lpf_vertical_16_dual_neon_asm=vpx_lpf_vertical_16_dual_neon; 458 459add_proto qw/void vpx_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 460specialize qw/vpx_lpf_vertical_8 sse2 neon dspr2 msa/; 461 462add_proto qw/void vpx_lpf_vertical_8_dual/, "uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1"; 463specialize qw/vpx_lpf_vertical_8_dual sse2 neon_asm dspr2 msa/; 464$vpx_lpf_vertical_8_dual_neon_asm=vpx_lpf_vertical_8_dual_neon; 465 466add_proto qw/void vpx_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 467specialize qw/vpx_lpf_vertical_4 mmx neon dspr2 msa/; 468 469add_proto qw/void vpx_lpf_vertical_4_dual/, "uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1"; 470specialize qw/vpx_lpf_vertical_4_dual sse2 neon dspr2 msa/; 471 472add_proto qw/void vpx_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 473specialize qw/vpx_lpf_horizontal_16 sse2 avx2 neon_asm dspr2 msa/; 474$vpx_lpf_horizontal_16_neon_asm=vpx_lpf_horizontal_16_neon; 475 476add_proto qw/void vpx_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 477specialize qw/vpx_lpf_horizontal_8 sse2 neon dspr2 msa/; 478 479add_proto qw/void vpx_lpf_horizontal_8_dual/, "uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1"; 480specialize qw/vpx_lpf_horizontal_8_dual sse2 neon_asm dspr2 msa/; 481$vpx_lpf_horizontal_8_dual_neon_asm=vpx_lpf_horizontal_8_dual_neon; 482 483add_proto qw/void vpx_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 484specialize qw/vpx_lpf_horizontal_4 mmx neon dspr2 msa/; 485 486add_proto qw/void vpx_lpf_horizontal_4_dual/, "uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1"; 487specialize qw/vpx_lpf_horizontal_4_dual sse2 neon dspr2 msa/; 488 489if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 490 add_proto qw/void vpx_highbd_lpf_vertical_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd"; 491 specialize qw/vpx_highbd_lpf_vertical_16 sse2/; 492 493 add_proto qw/void vpx_highbd_lpf_vertical_16_dual/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd"; 494 specialize qw/vpx_highbd_lpf_vertical_16_dual sse2/; 495 496 add_proto qw/void vpx_highbd_lpf_vertical_8/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 497 specialize qw/vpx_highbd_lpf_vertical_8 sse2/; 498 499 add_proto qw/void vpx_highbd_lpf_vertical_8_dual/, "uint16_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1, int bd"; 500 specialize qw/vpx_highbd_lpf_vertical_8_dual sse2/; 501 502 add_proto qw/void vpx_highbd_lpf_vertical_4/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 503 specialize qw/vpx_highbd_lpf_vertical_4 sse2/; 504 505 add_proto qw/void vpx_highbd_lpf_vertical_4_dual/, "uint16_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1, int bd"; 506 specialize qw/vpx_highbd_lpf_vertical_4_dual sse2/; 507 508 add_proto qw/void vpx_highbd_lpf_horizontal_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 509 specialize qw/vpx_highbd_lpf_horizontal_16 sse2/; 510 511 add_proto qw/void vpx_highbd_lpf_horizontal_8/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 512 specialize qw/vpx_highbd_lpf_horizontal_8 sse2/; 513 514 add_proto qw/void vpx_highbd_lpf_horizontal_8_dual/, "uint16_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1, int bd"; 515 specialize qw/vpx_highbd_lpf_horizontal_8_dual sse2/; 516 517 add_proto qw/void vpx_highbd_lpf_horizontal_4/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 518 specialize qw/vpx_highbd_lpf_horizontal_4 sse2/; 519 520 add_proto qw/void vpx_highbd_lpf_horizontal_4_dual/, "uint16_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1, int bd"; 521 specialize qw/vpx_highbd_lpf_horizontal_4_dual sse2/; 522} # CONFIG_VP9_HIGHBITDEPTH 523 524# 525# Encoder functions. 526# 527 528# 529# Forward transform 530# 531if ((vpx_config("CONFIG_VP9_ENCODER") eq "yes") || (vpx_config("CONFIG_VP10_ENCODER") eq "yes")) { 532if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 533 add_proto qw/void vpx_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 534 specialize qw/vpx_fdct4x4 sse2/; 535 536 add_proto qw/void vpx_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride"; 537 specialize qw/vpx_fdct4x4_1 sse2/; 538 539 add_proto qw/void vpx_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 540 specialize qw/vpx_fdct8x8 sse2/; 541 542 add_proto qw/void vpx_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 543 specialize qw/vpx_fdct8x8_1 sse2/; 544 545 add_proto qw/void vpx_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 546 specialize qw/vpx_fdct16x16 sse2/; 547 548 add_proto qw/void vpx_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 549 specialize qw/vpx_fdct16x16_1 sse2/; 550 551 add_proto qw/void vpx_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 552 specialize qw/vpx_fdct32x32 sse2/; 553 554 add_proto qw/void vpx_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 555 specialize qw/vpx_fdct32x32_rd sse2/; 556 557 add_proto qw/void vpx_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 558 specialize qw/vpx_fdct32x32_1 sse2/; 559 560 add_proto qw/void vpx_highbd_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 561 specialize qw/vpx_highbd_fdct4x4 sse2/; 562 563 add_proto qw/void vpx_highbd_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 564 specialize qw/vpx_highbd_fdct8x8 sse2/; 565 566 add_proto qw/void vpx_highbd_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 567 specialize qw/vpx_highbd_fdct8x8_1/; 568 569 add_proto qw/void vpx_highbd_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 570 specialize qw/vpx_highbd_fdct16x16 sse2/; 571 572 add_proto qw/void vpx_highbd_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 573 specialize qw/vpx_highbd_fdct16x16_1/; 574 575 add_proto qw/void vpx_highbd_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 576 specialize qw/vpx_highbd_fdct32x32 sse2/; 577 578 add_proto qw/void vpx_highbd_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 579 specialize qw/vpx_highbd_fdct32x32_rd sse2/; 580 581 add_proto qw/void vpx_highbd_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 582 specialize qw/vpx_highbd_fdct32x32_1/; 583} else { 584 add_proto qw/void vpx_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 585 specialize qw/vpx_fdct4x4 sse2 msa/; 586 587 add_proto qw/void vpx_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride"; 588 specialize qw/vpx_fdct4x4_1 sse2/; 589 590 add_proto qw/void vpx_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 591 specialize qw/vpx_fdct8x8 sse2 neon msa/, "$ssse3_x86_64_x86inc"; 592 593 add_proto qw/void vpx_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 594 specialize qw/vpx_fdct8x8_1 sse2 neon msa/; 595 596 add_proto qw/void vpx_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 597 specialize qw/vpx_fdct16x16 sse2 msa/; 598 599 add_proto qw/void vpx_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 600 specialize qw/vpx_fdct16x16_1 sse2 msa/; 601 602 add_proto qw/void vpx_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 603 specialize qw/vpx_fdct32x32 sse2 avx2 msa/; 604 605 add_proto qw/void vpx_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 606 specialize qw/vpx_fdct32x32_rd sse2 avx2 msa/; 607 608 add_proto qw/void vpx_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 609 specialize qw/vpx_fdct32x32_1 sse2 msa/; 610} # CONFIG_VP9_HIGHBITDEPTH 611} # CONFIG_VP9_ENCODER || CONFIG_VP10_ENCODER 612 613# 614# Inverse transform 615if ((vpx_config("CONFIG_VP9") eq "yes") || (vpx_config("CONFIG_VP10") eq "yes")) { 616if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 617 # Note as optimized versions of these functions are added we need to add a check to ensure 618 # that when CONFIG_EMULATE_HARDWARE is on, it defaults to the C versions only. 619 add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 620 specialize qw/vpx_idct4x4_1_add/; 621 622 add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 623 specialize qw/vpx_idct4x4_16_add/; 624 625 add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 626 specialize qw/vpx_idct8x8_1_add/; 627 628 add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 629 specialize qw/vpx_idct8x8_64_add/; 630 631 add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 632 specialize qw/vpx_idct8x8_12_add/; 633 634 add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 635 specialize qw/vpx_idct16x16_1_add/; 636 637 add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 638 specialize qw/vpx_idct16x16_256_add/; 639 640 add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 641 specialize qw/vpx_idct16x16_10_add/; 642 643 add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 644 specialize qw/vpx_idct32x32_1024_add/; 645 646 add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 647 specialize qw/vpx_idct32x32_34_add/; 648 649 add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 650 specialize qw/vpx_idct32x32_1_add/; 651 652 add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 653 specialize qw/vpx_iwht4x4_1_add/; 654 655 add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 656 specialize qw/vpx_iwht4x4_16_add/; 657 658 add_proto qw/void vpx_highbd_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 659 specialize qw/vpx_highbd_idct4x4_1_add/; 660 661 add_proto qw/void vpx_highbd_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 662 specialize qw/vpx_highbd_idct8x8_1_add/; 663 664 add_proto qw/void vpx_highbd_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 665 specialize qw/vpx_highbd_idct16x16_1_add/; 666 667 add_proto qw/void vpx_highbd_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 668 specialize qw/vpx_highbd_idct32x32_1024_add/; 669 670 add_proto qw/void vpx_highbd_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 671 specialize qw/vpx_highbd_idct32x32_34_add/; 672 673 add_proto qw/void vpx_highbd_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 674 specialize qw/vpx_highbd_idct32x32_1_add/; 675 676 add_proto qw/void vpx_highbd_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 677 specialize qw/vpx_highbd_iwht4x4_1_add/; 678 679 add_proto qw/void vpx_highbd_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 680 specialize qw/vpx_highbd_iwht4x4_16_add/; 681 682 # Force C versions if CONFIG_EMULATE_HARDWARE is 1 683 if (vpx_config("CONFIG_EMULATE_HARDWARE") eq "yes") { 684 add_proto qw/void vpx_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 685 specialize qw/vpx_highbd_idct4x4_16_add/; 686 687 add_proto qw/void vpx_highbd_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 688 specialize qw/vpx_highbd_idct8x8_64_add/; 689 690 add_proto qw/void vpx_highbd_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 691 specialize qw/vpx_highbd_idct8x8_10_add/; 692 693 add_proto qw/void vpx_highbd_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 694 specialize qw/vpx_highbd_idct16x16_256_add/; 695 696 add_proto qw/void vpx_highbd_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 697 specialize qw/vpx_highbd_idct16x16_10_add/; 698 } else { 699 add_proto qw/void vpx_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 700 specialize qw/vpx_highbd_idct4x4_16_add sse2/; 701 702 add_proto qw/void vpx_highbd_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 703 specialize qw/vpx_highbd_idct8x8_64_add sse2/; 704 705 add_proto qw/void vpx_highbd_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 706 specialize qw/vpx_highbd_idct8x8_10_add sse2/; 707 708 add_proto qw/void vpx_highbd_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 709 specialize qw/vpx_highbd_idct16x16_256_add sse2/; 710 711 add_proto qw/void vpx_highbd_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 712 specialize qw/vpx_highbd_idct16x16_10_add sse2/; 713 } # CONFIG_EMULATE_HARDWARE 714} else { 715 # Force C versions if CONFIG_EMULATE_HARDWARE is 1 716 if (vpx_config("CONFIG_EMULATE_HARDWARE") eq "yes") { 717 add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 718 specialize qw/vpx_idct4x4_1_add/; 719 720 add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 721 specialize qw/vpx_idct4x4_16_add/; 722 723 add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 724 specialize qw/vpx_idct8x8_1_add/; 725 726 add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 727 specialize qw/vpx_idct8x8_64_add/; 728 729 add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 730 specialize qw/vpx_idct8x8_12_add/; 731 732 add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 733 specialize qw/vpx_idct16x16_1_add/; 734 735 add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 736 specialize qw/vpx_idct16x16_256_add/; 737 738 add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 739 specialize qw/vpx_idct16x16_10_add/; 740 741 add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 742 specialize qw/vpx_idct32x32_1024_add/; 743 744 add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 745 specialize qw/vpx_idct32x32_34_add/; 746 747 add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 748 specialize qw/vpx_idct32x32_1_add/; 749 750 add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 751 specialize qw/vpx_iwht4x4_1_add/; 752 753 add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 754 specialize qw/vpx_iwht4x4_16_add/; 755 } else { 756 add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 757 specialize qw/vpx_idct4x4_1_add sse2 neon dspr2 msa/; 758 759 add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 760 specialize qw/vpx_idct4x4_16_add sse2 neon dspr2 msa/; 761 762 add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 763 specialize qw/vpx_idct8x8_1_add sse2 neon dspr2 msa/; 764 765 add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 766 specialize qw/vpx_idct8x8_64_add sse2 neon dspr2 msa/, "$ssse3_x86_64_x86inc"; 767 768 add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 769 specialize qw/vpx_idct8x8_12_add sse2 neon dspr2 msa/, "$ssse3_x86_64_x86inc"; 770 771 add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 772 specialize qw/vpx_idct16x16_1_add sse2 neon dspr2 msa/; 773 774 add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 775 specialize qw/vpx_idct16x16_256_add sse2 neon dspr2 msa/; 776 777 add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 778 specialize qw/vpx_idct16x16_10_add sse2 neon dspr2 msa/; 779 780 add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 781 specialize qw/vpx_idct32x32_1024_add sse2 neon dspr2 msa/; 782 783 add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 784 specialize qw/vpx_idct32x32_34_add sse2 neon_asm dspr2 msa/; 785 # Need to add 34 eob idct32x32 neon implementation. 786 $vpx_idct32x32_34_add_neon_asm=vpx_idct32x32_1024_add_neon; 787 788 add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 789 specialize qw/vpx_idct32x32_1_add sse2 neon dspr2 msa/; 790 791 add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 792 specialize qw/vpx_iwht4x4_1_add msa/; 793 794 add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 795 specialize qw/vpx_iwht4x4_16_add msa/, "$sse2_x86inc"; 796 } # CONFIG_EMULATE_HARDWARE 797} # CONFIG_VP9_HIGHBITDEPTH 798} # CONFIG_VP9 || CONFIG_VP10 799 800# 801# Quantization 802# 803if ((vpx_config("CONFIG_VP9_ENCODER") eq "yes") || (vpx_config("CONFIG_VP10_ENCODER") eq "yes")) { 804if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 805 add_proto qw/void vpx_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 806 specialize qw/vpx_quantize_b/; 807 808 add_proto qw/void vpx_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 809 specialize qw/vpx_quantize_b_32x32/; 810 811 add_proto qw/void vpx_highbd_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 812 specialize qw/vpx_highbd_quantize_b sse2/; 813 814 add_proto qw/void vpx_highbd_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 815 specialize qw/vpx_highbd_quantize_b_32x32 sse2/; 816} else { 817 add_proto qw/void vpx_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 818 specialize qw/vpx_quantize_b sse2/, "$ssse3_x86_64_x86inc"; 819 820 add_proto qw/void vpx_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 821 specialize qw/vpx_quantize_b_32x32/, "$ssse3_x86_64_x86inc"; 822} # CONFIG_VP9_HIGHBITDEPTH 823} # CONFIG_VP9_ENCODER || CONFIG_VP10_ENCODER 824 825if (vpx_config("CONFIG_ENCODERS") eq "yes") { 826# 827# Block subtraction 828# 829add_proto qw/void vpx_subtract_block/, "int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride"; 830specialize qw/vpx_subtract_block neon msa/, "$sse2_x86inc"; 831 832# 833# Single block SAD 834# 835add_proto qw/unsigned int vpx_sad64x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 836specialize qw/vpx_sad64x64 avx2 neon msa/, "$sse2_x86inc"; 837 838add_proto qw/unsigned int vpx_sad64x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 839specialize qw/vpx_sad64x32 avx2 msa/, "$sse2_x86inc"; 840 841add_proto qw/unsigned int vpx_sad32x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 842specialize qw/vpx_sad32x64 avx2 msa/, "$sse2_x86inc"; 843 844add_proto qw/unsigned int vpx_sad32x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 845specialize qw/vpx_sad32x32 avx2 neon msa/, "$sse2_x86inc"; 846 847add_proto qw/unsigned int vpx_sad32x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 848specialize qw/vpx_sad32x16 avx2 msa/, "$sse2_x86inc"; 849 850add_proto qw/unsigned int vpx_sad16x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 851specialize qw/vpx_sad16x32 msa/, "$sse2_x86inc"; 852 853add_proto qw/unsigned int vpx_sad16x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 854specialize qw/vpx_sad16x16 mmx media neon msa/, "$sse2_x86inc"; 855 856add_proto qw/unsigned int vpx_sad16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 857specialize qw/vpx_sad16x8 mmx neon msa/, "$sse2_x86inc"; 858 859add_proto qw/unsigned int vpx_sad8x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 860specialize qw/vpx_sad8x16 mmx neon msa/, "$sse2_x86inc"; 861 862add_proto qw/unsigned int vpx_sad8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 863specialize qw/vpx_sad8x8 mmx neon msa/, "$sse2_x86inc"; 864 865add_proto qw/unsigned int vpx_sad8x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 866specialize qw/vpx_sad8x4 msa/, "$sse2_x86inc"; 867 868add_proto qw/unsigned int vpx_sad4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 869specialize qw/vpx_sad4x8 msa/, "$sse_x86inc"; 870 871add_proto qw/unsigned int vpx_sad4x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 872specialize qw/vpx_sad4x4 mmx neon msa/, "$sse_x86inc"; 873 874# 875# Avg 876# 877add_proto qw/unsigned int vpx_sad64x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 878specialize qw/vpx_sad64x64_avg avx2 msa/, "$sse2_x86inc"; 879 880add_proto qw/unsigned int vpx_sad64x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 881specialize qw/vpx_sad64x32_avg avx2 msa/, "$sse2_x86inc"; 882 883add_proto qw/unsigned int vpx_sad32x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 884specialize qw/vpx_sad32x64_avg avx2 msa/, "$sse2_x86inc"; 885 886add_proto qw/unsigned int vpx_sad32x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 887specialize qw/vpx_sad32x32_avg avx2 msa/, "$sse2_x86inc"; 888 889add_proto qw/unsigned int vpx_sad32x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 890specialize qw/vpx_sad32x16_avg avx2 msa/, "$sse2_x86inc"; 891 892add_proto qw/unsigned int vpx_sad16x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 893specialize qw/vpx_sad16x32_avg msa/, "$sse2_x86inc"; 894 895add_proto qw/unsigned int vpx_sad16x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 896specialize qw/vpx_sad16x16_avg msa/, "$sse2_x86inc"; 897 898add_proto qw/unsigned int vpx_sad16x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 899specialize qw/vpx_sad16x8_avg msa/, "$sse2_x86inc"; 900 901add_proto qw/unsigned int vpx_sad8x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 902specialize qw/vpx_sad8x16_avg msa/, "$sse2_x86inc"; 903 904add_proto qw/unsigned int vpx_sad8x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 905specialize qw/vpx_sad8x8_avg msa/, "$sse2_x86inc"; 906 907add_proto qw/unsigned int vpx_sad8x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 908specialize qw/vpx_sad8x4_avg msa/, "$sse2_x86inc"; 909 910add_proto qw/unsigned int vpx_sad4x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 911specialize qw/vpx_sad4x8_avg msa/, "$sse_x86inc"; 912 913add_proto qw/unsigned int vpx_sad4x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 914specialize qw/vpx_sad4x4_avg msa/, "$sse_x86inc"; 915 916# 917# Multi-block SAD, comparing a reference to N blocks 1 pixel apart horizontally 918# 919# Blocks of 3 920add_proto qw/void vpx_sad64x64x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 921specialize qw/vpx_sad64x64x3 msa/; 922 923add_proto qw/void vpx_sad32x32x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 924specialize qw/vpx_sad32x32x3 msa/; 925 926add_proto qw/void vpx_sad16x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 927specialize qw/vpx_sad16x16x3 sse3 ssse3 msa/; 928 929add_proto qw/void vpx_sad16x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 930specialize qw/vpx_sad16x8x3 sse3 ssse3 msa/; 931 932add_proto qw/void vpx_sad8x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 933specialize qw/vpx_sad8x16x3 sse3 msa/; 934 935add_proto qw/void vpx_sad8x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 936specialize qw/vpx_sad8x8x3 sse3 msa/; 937 938add_proto qw/void vpx_sad4x4x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 939specialize qw/vpx_sad4x4x3 sse3 msa/; 940 941# Blocks of 8 942add_proto qw/void vpx_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 943specialize qw/vpx_sad64x64x8 msa/; 944 945add_proto qw/void vpx_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 946specialize qw/vpx_sad32x32x8 msa/; 947 948add_proto qw/void vpx_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 949specialize qw/vpx_sad16x16x8 sse4_1 msa/; 950 951add_proto qw/void vpx_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 952specialize qw/vpx_sad16x8x8 sse4_1 msa/; 953 954add_proto qw/void vpx_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 955specialize qw/vpx_sad8x16x8 sse4_1 msa/; 956 957add_proto qw/void vpx_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 958specialize qw/vpx_sad8x8x8 sse4_1 msa/; 959 960add_proto qw/void vpx_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 961specialize qw/vpx_sad8x4x8 msa/; 962 963add_proto qw/void vpx_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 964specialize qw/vpx_sad4x8x8 msa/; 965 966add_proto qw/void vpx_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 967specialize qw/vpx_sad4x4x8 sse4_1 msa/; 968 969# 970# Multi-block SAD, comparing a reference to N independent blocks 971# 972add_proto qw/void vpx_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 973specialize qw/vpx_sad64x64x4d avx2 neon msa/, "$sse2_x86inc"; 974 975add_proto qw/void vpx_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 976specialize qw/vpx_sad64x32x4d msa/, "$sse2_x86inc"; 977 978add_proto qw/void vpx_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 979specialize qw/vpx_sad32x64x4d msa/, "$sse2_x86inc"; 980 981add_proto qw/void vpx_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 982specialize qw/vpx_sad32x32x4d avx2 neon msa/, "$sse2_x86inc"; 983 984add_proto qw/void vpx_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 985specialize qw/vpx_sad32x16x4d msa/, "$sse2_x86inc"; 986 987add_proto qw/void vpx_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 988specialize qw/vpx_sad16x32x4d msa/, "$sse2_x86inc"; 989 990add_proto qw/void vpx_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 991specialize qw/vpx_sad16x16x4d neon msa/, "$sse2_x86inc"; 992 993add_proto qw/void vpx_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 994specialize qw/vpx_sad16x8x4d msa/, "$sse2_x86inc"; 995 996add_proto qw/void vpx_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 997specialize qw/vpx_sad8x16x4d msa/, "$sse2_x86inc"; 998 999add_proto qw/void vpx_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1000specialize qw/vpx_sad8x8x4d msa/, "$sse2_x86inc"; 1001 1002add_proto qw/void vpx_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1003specialize qw/vpx_sad8x4x4d msa/, "$sse2_x86inc"; 1004 1005add_proto qw/void vpx_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1006specialize qw/vpx_sad4x8x4d msa/, "$sse_x86inc"; 1007 1008add_proto qw/void vpx_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1009specialize qw/vpx_sad4x4x4d msa/, "$sse_x86inc"; 1010 1011# 1012# Structured Similarity (SSIM) 1013# 1014if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { 1015 add_proto qw/void vpx_ssim_parms_8x8/, "const uint8_t *s, int sp, const uint8_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr"; 1016 specialize qw/vpx_ssim_parms_8x8/, "$sse2_x86_64"; 1017 1018 add_proto qw/void vpx_ssim_parms_16x16/, "const uint8_t *s, int sp, const uint8_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr"; 1019 specialize qw/vpx_ssim_parms_16x16/, "$sse2_x86_64"; 1020} 1021 1022if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 1023 # 1024 # Block subtraction 1025 # 1026 add_proto qw/void vpx_highbd_subtract_block/, "int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride, int bd"; 1027 specialize qw/vpx_highbd_subtract_block/; 1028 1029 # 1030 # Single block SAD 1031 # 1032 add_proto qw/unsigned int vpx_highbd_sad64x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1033 specialize qw/vpx_highbd_sad64x64/, "$sse2_x86inc"; 1034 1035 add_proto qw/unsigned int vpx_highbd_sad64x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1036 specialize qw/vpx_highbd_sad64x32/, "$sse2_x86inc"; 1037 1038 add_proto qw/unsigned int vpx_highbd_sad32x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1039 specialize qw/vpx_highbd_sad32x64/, "$sse2_x86inc"; 1040 1041 add_proto qw/unsigned int vpx_highbd_sad32x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1042 specialize qw/vpx_highbd_sad32x32/, "$sse2_x86inc"; 1043 1044 add_proto qw/unsigned int vpx_highbd_sad32x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1045 specialize qw/vpx_highbd_sad32x16/, "$sse2_x86inc"; 1046 1047 add_proto qw/unsigned int vpx_highbd_sad16x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1048 specialize qw/vpx_highbd_sad16x32/, "$sse2_x86inc"; 1049 1050 add_proto qw/unsigned int vpx_highbd_sad16x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1051 specialize qw/vpx_highbd_sad16x16/, "$sse2_x86inc"; 1052 1053 add_proto qw/unsigned int vpx_highbd_sad16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1054 specialize qw/vpx_highbd_sad16x8/, "$sse2_x86inc"; 1055 1056 add_proto qw/unsigned int vpx_highbd_sad8x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1057 specialize qw/vpx_highbd_sad8x16/, "$sse2_x86inc"; 1058 1059 add_proto qw/unsigned int vpx_highbd_sad8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1060 specialize qw/vpx_highbd_sad8x8/, "$sse2_x86inc"; 1061 1062 add_proto qw/unsigned int vpx_highbd_sad8x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1063 specialize qw/vpx_highbd_sad8x4/, "$sse2_x86inc"; 1064 1065 add_proto qw/unsigned int vpx_highbd_sad4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1066 specialize qw/vpx_highbd_sad4x8/; 1067 1068 add_proto qw/unsigned int vpx_highbd_sad4x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1069 specialize qw/vpx_highbd_sad4x4/; 1070 1071 # 1072 # Avg 1073 # 1074 add_proto qw/unsigned int vpx_highbd_sad64x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1075 specialize qw/vpx_highbd_sad64x64_avg/, "$sse2_x86inc"; 1076 1077 add_proto qw/unsigned int vpx_highbd_sad64x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1078 specialize qw/vpx_highbd_sad64x32_avg/, "$sse2_x86inc"; 1079 1080 add_proto qw/unsigned int vpx_highbd_sad32x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1081 specialize qw/vpx_highbd_sad32x64_avg/, "$sse2_x86inc"; 1082 1083 add_proto qw/unsigned int vpx_highbd_sad32x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1084 specialize qw/vpx_highbd_sad32x32_avg/, "$sse2_x86inc"; 1085 1086 add_proto qw/unsigned int vpx_highbd_sad32x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1087 specialize qw/vpx_highbd_sad32x16_avg/, "$sse2_x86inc"; 1088 1089 add_proto qw/unsigned int vpx_highbd_sad16x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1090 specialize qw/vpx_highbd_sad16x32_avg/, "$sse2_x86inc"; 1091 1092 add_proto qw/unsigned int vpx_highbd_sad16x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1093 specialize qw/vpx_highbd_sad16x16_avg/, "$sse2_x86inc"; 1094 1095 add_proto qw/unsigned int vpx_highbd_sad16x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1096 specialize qw/vpx_highbd_sad16x8_avg/, "$sse2_x86inc"; 1097 1098 add_proto qw/unsigned int vpx_highbd_sad8x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1099 specialize qw/vpx_highbd_sad8x16_avg/, "$sse2_x86inc"; 1100 1101 add_proto qw/unsigned int vpx_highbd_sad8x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1102 specialize qw/vpx_highbd_sad8x8_avg/, "$sse2_x86inc"; 1103 1104 add_proto qw/unsigned int vpx_highbd_sad8x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1105 specialize qw/vpx_highbd_sad8x4_avg/, "$sse2_x86inc"; 1106 1107 add_proto qw/unsigned int vpx_highbd_sad4x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1108 specialize qw/vpx_highbd_sad4x8_avg/; 1109 1110 add_proto qw/unsigned int vpx_highbd_sad4x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1111 specialize qw/vpx_highbd_sad4x4_avg/; 1112 1113 # 1114 # Multi-block SAD, comparing a reference to N blocks 1 pixel apart horizontally 1115 # 1116 # Blocks of 3 1117 add_proto qw/void vpx_highbd_sad64x64x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1118 specialize qw/vpx_highbd_sad64x64x3/; 1119 1120 add_proto qw/void vpx_highbd_sad32x32x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1121 specialize qw/vpx_highbd_sad32x32x3/; 1122 1123 add_proto qw/void vpx_highbd_sad16x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1124 specialize qw/vpx_highbd_sad16x16x3/; 1125 1126 add_proto qw/void vpx_highbd_sad16x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1127 specialize qw/vpx_highbd_sad16x8x3/; 1128 1129 add_proto qw/void vpx_highbd_sad8x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1130 specialize qw/vpx_highbd_sad8x16x3/; 1131 1132 add_proto qw/void vpx_highbd_sad8x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1133 specialize qw/vpx_highbd_sad8x8x3/; 1134 1135 add_proto qw/void vpx_highbd_sad4x4x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1136 specialize qw/vpx_highbd_sad4x4x3/; 1137 1138 # Blocks of 8 1139 add_proto qw/void vpx_highbd_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1140 specialize qw/vpx_highbd_sad64x64x8/; 1141 1142 add_proto qw/void vpx_highbd_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1143 specialize qw/vpx_highbd_sad32x32x8/; 1144 1145 add_proto qw/void vpx_highbd_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1146 specialize qw/vpx_highbd_sad16x16x8/; 1147 1148 add_proto qw/void vpx_highbd_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1149 specialize qw/vpx_highbd_sad16x8x8/; 1150 1151 add_proto qw/void vpx_highbd_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1152 specialize qw/vpx_highbd_sad8x16x8/; 1153 1154 add_proto qw/void vpx_highbd_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1155 specialize qw/vpx_highbd_sad8x8x8/; 1156 1157 add_proto qw/void vpx_highbd_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1158 specialize qw/vpx_highbd_sad8x4x8/; 1159 1160 add_proto qw/void vpx_highbd_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1161 specialize qw/vpx_highbd_sad4x8x8/; 1162 1163 add_proto qw/void vpx_highbd_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1164 specialize qw/vpx_highbd_sad4x4x8/; 1165 1166 # 1167 # Multi-block SAD, comparing a reference to N independent blocks 1168 # 1169 add_proto qw/void vpx_highbd_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1170 specialize qw/vpx_highbd_sad64x64x4d/, "$sse2_x86inc"; 1171 1172 add_proto qw/void vpx_highbd_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1173 specialize qw/vpx_highbd_sad64x32x4d/, "$sse2_x86inc"; 1174 1175 add_proto qw/void vpx_highbd_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1176 specialize qw/vpx_highbd_sad32x64x4d/, "$sse2_x86inc"; 1177 1178 add_proto qw/void vpx_highbd_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1179 specialize qw/vpx_highbd_sad32x32x4d/, "$sse2_x86inc"; 1180 1181 add_proto qw/void vpx_highbd_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1182 specialize qw/vpx_highbd_sad32x16x4d/, "$sse2_x86inc"; 1183 1184 add_proto qw/void vpx_highbd_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1185 specialize qw/vpx_highbd_sad16x32x4d/, "$sse2_x86inc"; 1186 1187 add_proto qw/void vpx_highbd_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1188 specialize qw/vpx_highbd_sad16x16x4d/, "$sse2_x86inc"; 1189 1190 add_proto qw/void vpx_highbd_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1191 specialize qw/vpx_highbd_sad16x8x4d/, "$sse2_x86inc"; 1192 1193 add_proto qw/void vpx_highbd_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1194 specialize qw/vpx_highbd_sad8x16x4d/, "$sse2_x86inc"; 1195 1196 add_proto qw/void vpx_highbd_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1197 specialize qw/vpx_highbd_sad8x8x4d/, "$sse2_x86inc"; 1198 1199 add_proto qw/void vpx_highbd_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1200 specialize qw/vpx_highbd_sad8x4x4d/, "$sse2_x86inc"; 1201 1202 add_proto qw/void vpx_highbd_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1203 specialize qw/vpx_highbd_sad4x8x4d/, "$sse2_x86inc"; 1204 1205 add_proto qw/void vpx_highbd_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1206 specialize qw/vpx_highbd_sad4x4x4d/, "$sse2_x86inc"; 1207 1208 # 1209 # Structured Similarity (SSIM) 1210 # 1211 if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { 1212 add_proto qw/void vpx_highbd_ssim_parms_8x8/, "const uint16_t *s, int sp, const uint16_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr"; 1213 specialize qw/vpx_highbd_ssim_parms_8x8/; 1214 } 1215} # CONFIG_VP9_HIGHBITDEPTH 1216} # CONFIG_ENCODERS 1217 1218if (vpx_config("CONFIG_ENCODERS") eq "yes" || vpx_config("CONFIG_POSTPROC") eq "yes" || vpx_config("CONFIG_VP9_POSTPROC") eq "yes") { 1219 1220# 1221# Variance 1222# 1223add_proto qw/unsigned int vpx_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1224 specialize qw/vpx_variance64x64 sse2 avx2 neon msa/; 1225 1226add_proto qw/unsigned int vpx_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1227 specialize qw/vpx_variance64x32 sse2 avx2 neon msa/; 1228 1229add_proto qw/unsigned int vpx_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1230 specialize qw/vpx_variance32x64 sse2 neon msa/; 1231 1232add_proto qw/unsigned int vpx_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1233 specialize qw/vpx_variance32x32 sse2 avx2 neon msa/; 1234 1235add_proto qw/unsigned int vpx_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1236 specialize qw/vpx_variance32x16 sse2 avx2 msa/; 1237 1238add_proto qw/unsigned int vpx_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1239 specialize qw/vpx_variance16x32 sse2 msa/; 1240 1241add_proto qw/unsigned int vpx_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1242 specialize qw/vpx_variance16x16 mmx sse2 avx2 media neon msa/; 1243 1244add_proto qw/unsigned int vpx_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1245 specialize qw/vpx_variance16x8 mmx sse2 neon msa/; 1246 1247add_proto qw/unsigned int vpx_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1248 specialize qw/vpx_variance8x16 mmx sse2 neon msa/; 1249 1250add_proto qw/unsigned int vpx_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1251 specialize qw/vpx_variance8x8 mmx sse2 media neon msa/; 1252 1253add_proto qw/unsigned int vpx_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1254 specialize qw/vpx_variance8x4 sse2 msa/; 1255 1256add_proto qw/unsigned int vpx_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1257 specialize qw/vpx_variance4x8 sse2 msa/; 1258 1259add_proto qw/unsigned int vpx_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1260 specialize qw/vpx_variance4x4 mmx sse2 msa/; 1261 1262# 1263# Specialty Variance 1264# 1265add_proto qw/void vpx_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1266 specialize qw/vpx_get16x16var sse2 avx2 neon msa/; 1267 1268add_proto qw/void vpx_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1269 specialize qw/vpx_get8x8var mmx sse2 neon msa/; 1270 1271add_proto qw/unsigned int vpx_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1272 specialize qw/vpx_mse16x16 mmx sse2 avx2 media neon msa/; 1273 1274add_proto qw/unsigned int vpx_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1275 specialize qw/vpx_mse16x8 sse2 msa/; 1276 1277add_proto qw/unsigned int vpx_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1278 specialize qw/vpx_mse8x16 sse2 msa/; 1279 1280add_proto qw/unsigned int vpx_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1281 specialize qw/vpx_mse8x8 sse2 msa/; 1282 1283add_proto qw/unsigned int vpx_get_mb_ss/, "const int16_t *"; 1284 specialize qw/vpx_get_mb_ss mmx sse2 msa/; 1285 1286add_proto qw/unsigned int vpx_get4x4sse_cs/, "const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride"; 1287 specialize qw/vpx_get4x4sse_cs neon msa/; 1288 1289add_proto qw/void vpx_comp_avg_pred/, "uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride"; 1290 1291# 1292# Subpixel Variance 1293# 1294add_proto qw/uint32_t vpx_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1295 specialize qw/vpx_sub_pixel_variance64x64 avx2 neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1296 1297add_proto qw/uint32_t vpx_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1298 specialize qw/vpx_sub_pixel_variance64x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1299 1300add_proto qw/uint32_t vpx_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1301 specialize qw/vpx_sub_pixel_variance32x64 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1302 1303add_proto qw/uint32_t vpx_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1304 specialize qw/vpx_sub_pixel_variance32x32 avx2 neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1305 1306add_proto qw/uint32_t vpx_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1307 specialize qw/vpx_sub_pixel_variance32x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1308 1309add_proto qw/uint32_t vpx_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1310 specialize qw/vpx_sub_pixel_variance16x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1311 1312add_proto qw/uint32_t vpx_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1313 specialize qw/vpx_sub_pixel_variance16x16 mmx media neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1314 1315add_proto qw/uint32_t vpx_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1316 specialize qw/vpx_sub_pixel_variance16x8 mmx msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1317 1318add_proto qw/uint32_t vpx_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1319 specialize qw/vpx_sub_pixel_variance8x16 mmx msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1320 1321add_proto qw/uint32_t vpx_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1322 specialize qw/vpx_sub_pixel_variance8x8 mmx media neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1323 1324add_proto qw/uint32_t vpx_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1325 specialize qw/vpx_sub_pixel_variance8x4 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1326 1327add_proto qw/uint32_t vpx_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1328 specialize qw/vpx_sub_pixel_variance4x8 msa/, "$sse_x86inc", "$ssse3_x86inc"; 1329 1330add_proto qw/uint32_t vpx_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1331 specialize qw/vpx_sub_pixel_variance4x4 mmx msa/, "$sse_x86inc", "$ssse3_x86inc"; 1332 1333add_proto qw/uint32_t vpx_sub_pixel_avg_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1334 specialize qw/vpx_sub_pixel_avg_variance64x64 avx2 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1335 1336add_proto qw/uint32_t vpx_sub_pixel_avg_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1337 specialize qw/vpx_sub_pixel_avg_variance64x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1338 1339add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1340 specialize qw/vpx_sub_pixel_avg_variance32x64 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1341 1342add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1343 specialize qw/vpx_sub_pixel_avg_variance32x32 avx2 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1344 1345add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1346 specialize qw/vpx_sub_pixel_avg_variance32x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1347 1348add_proto qw/uint32_t vpx_sub_pixel_avg_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1349 specialize qw/vpx_sub_pixel_avg_variance16x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1350 1351add_proto qw/uint32_t vpx_sub_pixel_avg_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1352 specialize qw/vpx_sub_pixel_avg_variance16x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1353 1354add_proto qw/uint32_t vpx_sub_pixel_avg_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1355 specialize qw/vpx_sub_pixel_avg_variance16x8 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1356 1357add_proto qw/uint32_t vpx_sub_pixel_avg_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1358 specialize qw/vpx_sub_pixel_avg_variance8x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1359 1360add_proto qw/uint32_t vpx_sub_pixel_avg_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1361 specialize qw/vpx_sub_pixel_avg_variance8x8 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1362 1363add_proto qw/uint32_t vpx_sub_pixel_avg_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1364 specialize qw/vpx_sub_pixel_avg_variance8x4 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1365 1366add_proto qw/uint32_t vpx_sub_pixel_avg_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1367 specialize qw/vpx_sub_pixel_avg_variance4x8 msa/, "$sse_x86inc", "$ssse3_x86inc"; 1368 1369add_proto qw/uint32_t vpx_sub_pixel_avg_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1370 specialize qw/vpx_sub_pixel_avg_variance4x4 msa/, "$sse_x86inc", "$ssse3_x86inc"; 1371 1372# 1373# Specialty Subpixel 1374# 1375add_proto qw/uint32_t vpx_variance_halfpixvar16x16_h/, "const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, uint32_t *sse"; 1376 specialize qw/vpx_variance_halfpixvar16x16_h mmx media/; 1377 1378add_proto qw/uint32_t vpx_variance_halfpixvar16x16_v/, "const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, uint32_t *sse"; 1379 specialize qw/vpx_variance_halfpixvar16x16_v mmx media/; 1380 1381add_proto qw/uint32_t vpx_variance_halfpixvar16x16_hv/, "const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, uint32_t *sse"; 1382 specialize qw/vpx_variance_halfpixvar16x16_hv mmx media/; 1383 1384if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 1385 add_proto qw/unsigned int vpx_highbd_12_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1386 specialize qw/vpx_highbd_12_variance64x64 sse2/; 1387 1388 add_proto qw/unsigned int vpx_highbd_12_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1389 specialize qw/vpx_highbd_12_variance64x32 sse2/; 1390 1391 add_proto qw/unsigned int vpx_highbd_12_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1392 specialize qw/vpx_highbd_12_variance32x64 sse2/; 1393 1394 add_proto qw/unsigned int vpx_highbd_12_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1395 specialize qw/vpx_highbd_12_variance32x32 sse2/; 1396 1397 add_proto qw/unsigned int vpx_highbd_12_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1398 specialize qw/vpx_highbd_12_variance32x16 sse2/; 1399 1400 add_proto qw/unsigned int vpx_highbd_12_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1401 specialize qw/vpx_highbd_12_variance16x32 sse2/; 1402 1403 add_proto qw/unsigned int vpx_highbd_12_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1404 specialize qw/vpx_highbd_12_variance16x16 sse2/; 1405 1406 add_proto qw/unsigned int vpx_highbd_12_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1407 specialize qw/vpx_highbd_12_variance16x8 sse2/; 1408 1409 add_proto qw/unsigned int vpx_highbd_12_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1410 specialize qw/vpx_highbd_12_variance8x16 sse2/; 1411 1412 add_proto qw/unsigned int vpx_highbd_12_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1413 specialize qw/vpx_highbd_12_variance8x8 sse2/; 1414 1415 add_proto qw/unsigned int vpx_highbd_12_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1416 add_proto qw/unsigned int vpx_highbd_12_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1417 add_proto qw/unsigned int vpx_highbd_12_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1418 1419 add_proto qw/unsigned int vpx_highbd_10_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1420 specialize qw/vpx_highbd_10_variance64x64 sse2/; 1421 1422 add_proto qw/unsigned int vpx_highbd_10_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1423 specialize qw/vpx_highbd_10_variance64x32 sse2/; 1424 1425 add_proto qw/unsigned int vpx_highbd_10_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1426 specialize qw/vpx_highbd_10_variance32x64 sse2/; 1427 1428 add_proto qw/unsigned int vpx_highbd_10_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1429 specialize qw/vpx_highbd_10_variance32x32 sse2/; 1430 1431 add_proto qw/unsigned int vpx_highbd_10_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1432 specialize qw/vpx_highbd_10_variance32x16 sse2/; 1433 1434 add_proto qw/unsigned int vpx_highbd_10_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1435 specialize qw/vpx_highbd_10_variance16x32 sse2/; 1436 1437 add_proto qw/unsigned int vpx_highbd_10_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1438 specialize qw/vpx_highbd_10_variance16x16 sse2/; 1439 1440 add_proto qw/unsigned int vpx_highbd_10_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1441 specialize qw/vpx_highbd_10_variance16x8 sse2/; 1442 1443 add_proto qw/unsigned int vpx_highbd_10_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1444 specialize qw/vpx_highbd_10_variance8x16 sse2/; 1445 1446 add_proto qw/unsigned int vpx_highbd_10_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1447 specialize qw/vpx_highbd_10_variance8x8 sse2/; 1448 1449 add_proto qw/unsigned int vpx_highbd_10_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1450 add_proto qw/unsigned int vpx_highbd_10_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1451 add_proto qw/unsigned int vpx_highbd_10_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1452 1453 add_proto qw/unsigned int vpx_highbd_8_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1454 specialize qw/vpx_highbd_8_variance64x64 sse2/; 1455 1456 add_proto qw/unsigned int vpx_highbd_8_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1457 specialize qw/vpx_highbd_8_variance64x32 sse2/; 1458 1459 add_proto qw/unsigned int vpx_highbd_8_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1460 specialize qw/vpx_highbd_8_variance32x64 sse2/; 1461 1462 add_proto qw/unsigned int vpx_highbd_8_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1463 specialize qw/vpx_highbd_8_variance32x32 sse2/; 1464 1465 add_proto qw/unsigned int vpx_highbd_8_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1466 specialize qw/vpx_highbd_8_variance32x16 sse2/; 1467 1468 add_proto qw/unsigned int vpx_highbd_8_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1469 specialize qw/vpx_highbd_8_variance16x32 sse2/; 1470 1471 add_proto qw/unsigned int vpx_highbd_8_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1472 specialize qw/vpx_highbd_8_variance16x16 sse2/; 1473 1474 add_proto qw/unsigned int vpx_highbd_8_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1475 specialize qw/vpx_highbd_8_variance16x8 sse2/; 1476 1477 add_proto qw/unsigned int vpx_highbd_8_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1478 specialize qw/vpx_highbd_8_variance8x16 sse2/; 1479 1480 add_proto qw/unsigned int vpx_highbd_8_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1481 specialize qw/vpx_highbd_8_variance8x8 sse2/; 1482 1483 add_proto qw/unsigned int vpx_highbd_8_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1484 add_proto qw/unsigned int vpx_highbd_8_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1485 add_proto qw/unsigned int vpx_highbd_8_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1486 1487 add_proto qw/void vpx_highbd_8_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1488 add_proto qw/void vpx_highbd_8_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1489 1490 add_proto qw/void vpx_highbd_10_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1491 add_proto qw/void vpx_highbd_10_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1492 1493 add_proto qw/void vpx_highbd_12_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1494 add_proto qw/void vpx_highbd_12_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1495 1496 add_proto qw/unsigned int vpx_highbd_8_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1497 specialize qw/vpx_highbd_8_mse16x16 sse2/; 1498 1499 add_proto qw/unsigned int vpx_highbd_8_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1500 add_proto qw/unsigned int vpx_highbd_8_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1501 add_proto qw/unsigned int vpx_highbd_8_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1502 specialize qw/vpx_highbd_8_mse8x8 sse2/; 1503 1504 add_proto qw/unsigned int vpx_highbd_10_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1505 specialize qw/vpx_highbd_10_mse16x16 sse2/; 1506 1507 add_proto qw/unsigned int vpx_highbd_10_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1508 add_proto qw/unsigned int vpx_highbd_10_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1509 add_proto qw/unsigned int vpx_highbd_10_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1510 specialize qw/vpx_highbd_10_mse8x8 sse2/; 1511 1512 add_proto qw/unsigned int vpx_highbd_12_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1513 specialize qw/vpx_highbd_12_mse16x16 sse2/; 1514 1515 add_proto qw/unsigned int vpx_highbd_12_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1516 add_proto qw/unsigned int vpx_highbd_12_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1517 add_proto qw/unsigned int vpx_highbd_12_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1518 specialize qw/vpx_highbd_12_mse8x8 sse2/; 1519 1520 add_proto qw/void vpx_highbd_comp_avg_pred/, "uint16_t *comp_pred, const uint8_t *pred8, int width, int height, const uint8_t *ref8, int ref_stride"; 1521 1522 # 1523 # Subpixel Variance 1524 # 1525 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1526 specialize qw/vpx_highbd_12_sub_pixel_variance64x64/, "$sse2_x86inc"; 1527 1528 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1529 specialize qw/vpx_highbd_12_sub_pixel_variance64x32/, "$sse2_x86inc"; 1530 1531 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1532 specialize qw/vpx_highbd_12_sub_pixel_variance32x64/, "$sse2_x86inc"; 1533 1534 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1535 specialize qw/vpx_highbd_12_sub_pixel_variance32x32/, "$sse2_x86inc"; 1536 1537 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1538 specialize qw/vpx_highbd_12_sub_pixel_variance32x16/, "$sse2_x86inc"; 1539 1540 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1541 specialize qw/vpx_highbd_12_sub_pixel_variance16x32/, "$sse2_x86inc"; 1542 1543 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1544 specialize qw/vpx_highbd_12_sub_pixel_variance16x16/, "$sse2_x86inc"; 1545 1546 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1547 specialize qw/vpx_highbd_12_sub_pixel_variance16x8/, "$sse2_x86inc"; 1548 1549 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1550 specialize qw/vpx_highbd_12_sub_pixel_variance8x16/, "$sse2_x86inc"; 1551 1552 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1553 specialize qw/vpx_highbd_12_sub_pixel_variance8x8/, "$sse2_x86inc"; 1554 1555 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1556 specialize qw/vpx_highbd_12_sub_pixel_variance8x4/, "$sse2_x86inc"; 1557 1558 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1559 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1560 1561 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1562 specialize qw/vpx_highbd_10_sub_pixel_variance64x64/, "$sse2_x86inc"; 1563 1564 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1565 specialize qw/vpx_highbd_10_sub_pixel_variance64x32/, "$sse2_x86inc"; 1566 1567 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1568 specialize qw/vpx_highbd_10_sub_pixel_variance32x64/, "$sse2_x86inc"; 1569 1570 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1571 specialize qw/vpx_highbd_10_sub_pixel_variance32x32/, "$sse2_x86inc"; 1572 1573 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1574 specialize qw/vpx_highbd_10_sub_pixel_variance32x16/, "$sse2_x86inc"; 1575 1576 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1577 specialize qw/vpx_highbd_10_sub_pixel_variance16x32/, "$sse2_x86inc"; 1578 1579 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1580 specialize qw/vpx_highbd_10_sub_pixel_variance16x16/, "$sse2_x86inc"; 1581 1582 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1583 specialize qw/vpx_highbd_10_sub_pixel_variance16x8/, "$sse2_x86inc"; 1584 1585 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1586 specialize qw/vpx_highbd_10_sub_pixel_variance8x16/, "$sse2_x86inc"; 1587 1588 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1589 specialize qw/vpx_highbd_10_sub_pixel_variance8x8/, "$sse2_x86inc"; 1590 1591 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1592 specialize qw/vpx_highbd_10_sub_pixel_variance8x4/, "$sse2_x86inc"; 1593 1594 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1595 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1596 1597 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1598 specialize qw/vpx_highbd_8_sub_pixel_variance64x64/, "$sse2_x86inc"; 1599 1600 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1601 specialize qw/vpx_highbd_8_sub_pixel_variance64x32/, "$sse2_x86inc"; 1602 1603 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1604 specialize qw/vpx_highbd_8_sub_pixel_variance32x64/, "$sse2_x86inc"; 1605 1606 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1607 specialize qw/vpx_highbd_8_sub_pixel_variance32x32/, "$sse2_x86inc"; 1608 1609 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1610 specialize qw/vpx_highbd_8_sub_pixel_variance32x16/, "$sse2_x86inc"; 1611 1612 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1613 specialize qw/vpx_highbd_8_sub_pixel_variance16x32/, "$sse2_x86inc"; 1614 1615 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1616 specialize qw/vpx_highbd_8_sub_pixel_variance16x16/, "$sse2_x86inc"; 1617 1618 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1619 specialize qw/vpx_highbd_8_sub_pixel_variance16x8/, "$sse2_x86inc"; 1620 1621 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1622 specialize qw/vpx_highbd_8_sub_pixel_variance8x16/, "$sse2_x86inc"; 1623 1624 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1625 specialize qw/vpx_highbd_8_sub_pixel_variance8x8/, "$sse2_x86inc"; 1626 1627 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1628 specialize qw/vpx_highbd_8_sub_pixel_variance8x4/, "$sse2_x86inc"; 1629 1630 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1631 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1632 1633 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1634 specialize qw/vpx_highbd_12_sub_pixel_avg_variance64x64/, "$sse2_x86inc"; 1635 1636 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1637 specialize qw/vpx_highbd_12_sub_pixel_avg_variance64x32/, "$sse2_x86inc"; 1638 1639 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1640 specialize qw/vpx_highbd_12_sub_pixel_avg_variance32x64/, "$sse2_x86inc"; 1641 1642 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1643 specialize qw/vpx_highbd_12_sub_pixel_avg_variance32x32/, "$sse2_x86inc"; 1644 1645 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1646 specialize qw/vpx_highbd_12_sub_pixel_avg_variance32x16/, "$sse2_x86inc"; 1647 1648 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1649 specialize qw/vpx_highbd_12_sub_pixel_avg_variance16x32/, "$sse2_x86inc"; 1650 1651 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1652 specialize qw/vpx_highbd_12_sub_pixel_avg_variance16x16/, "$sse2_x86inc"; 1653 1654 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1655 specialize qw/vpx_highbd_12_sub_pixel_avg_variance16x8/, "$sse2_x86inc"; 1656 1657 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1658 specialize qw/vpx_highbd_12_sub_pixel_avg_variance8x16/, "$sse2_x86inc"; 1659 1660 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1661 specialize qw/vpx_highbd_12_sub_pixel_avg_variance8x8/, "$sse2_x86inc"; 1662 1663 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1664 specialize qw/vpx_highbd_12_sub_pixel_avg_variance8x4/, "$sse2_x86inc"; 1665 1666 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1667 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_avg_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1668 1669 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1670 specialize qw/vpx_highbd_10_sub_pixel_avg_variance64x64/, "$sse2_x86inc"; 1671 1672 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1673 specialize qw/vpx_highbd_10_sub_pixel_avg_variance64x32/, "$sse2_x86inc"; 1674 1675 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1676 specialize qw/vpx_highbd_10_sub_pixel_avg_variance32x64/, "$sse2_x86inc"; 1677 1678 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1679 specialize qw/vpx_highbd_10_sub_pixel_avg_variance32x32/, "$sse2_x86inc"; 1680 1681 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1682 specialize qw/vpx_highbd_10_sub_pixel_avg_variance32x16/, "$sse2_x86inc"; 1683 1684 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1685 specialize qw/vpx_highbd_10_sub_pixel_avg_variance16x32/, "$sse2_x86inc"; 1686 1687 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1688 specialize qw/vpx_highbd_10_sub_pixel_avg_variance16x16/, "$sse2_x86inc"; 1689 1690 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1691 specialize qw/vpx_highbd_10_sub_pixel_avg_variance16x8/, "$sse2_x86inc"; 1692 1693 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1694 specialize qw/vpx_highbd_10_sub_pixel_avg_variance8x16/, "$sse2_x86inc"; 1695 1696 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1697 specialize qw/vpx_highbd_10_sub_pixel_avg_variance8x8/, "$sse2_x86inc"; 1698 1699 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1700 specialize qw/vpx_highbd_10_sub_pixel_avg_variance8x4/, "$sse2_x86inc"; 1701 1702 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1703 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_avg_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1704 1705 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1706 specialize qw/vpx_highbd_8_sub_pixel_avg_variance64x64/, "$sse2_x86inc"; 1707 1708 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1709 specialize qw/vpx_highbd_8_sub_pixel_avg_variance64x32/, "$sse2_x86inc"; 1710 1711 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1712 specialize qw/vpx_highbd_8_sub_pixel_avg_variance32x64/, "$sse2_x86inc"; 1713 1714 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1715 specialize qw/vpx_highbd_8_sub_pixel_avg_variance32x32/, "$sse2_x86inc"; 1716 1717 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1718 specialize qw/vpx_highbd_8_sub_pixel_avg_variance32x16/, "$sse2_x86inc"; 1719 1720 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1721 specialize qw/vpx_highbd_8_sub_pixel_avg_variance16x32/, "$sse2_x86inc"; 1722 1723 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1724 specialize qw/vpx_highbd_8_sub_pixel_avg_variance16x16/, "$sse2_x86inc"; 1725 1726 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1727 specialize qw/vpx_highbd_8_sub_pixel_avg_variance16x8/, "$sse2_x86inc"; 1728 1729 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1730 specialize qw/vpx_highbd_8_sub_pixel_avg_variance8x16/, "$sse2_x86inc"; 1731 1732 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1733 specialize qw/vpx_highbd_8_sub_pixel_avg_variance8x8/, "$sse2_x86inc"; 1734 1735 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1736 specialize qw/vpx_highbd_8_sub_pixel_avg_variance8x4/, "$sse2_x86inc"; 1737 1738 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1739 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1740 1741} # CONFIG_VP9_HIGHBITDEPTH 1742} # CONFIG_ENCODERS || CONFIG_POSTPROC || CONFIG_VP9_POSTPROC 1743 17441; 1745