Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / libvpx / source / libvpx / vp9 / common / vp9_rtcd_defs.sh
1 vp9_common_forward_decls() {
2 cat <<EOF
3 /*
4  * VP9
5  */
6
7 #include "vpx/vpx_integer.h"
8 #include "vp9/common/vp9_enums.h"
9
10 struct macroblockd;
11
12 /* Encoder forward decls */
13 struct macroblock;
14 struct vp9_variance_vtable;
15
16 #define DEC_MVCOSTS int *mvjcost, int *mvcost[2]
17 struct mv;
18 union int_mv;
19 struct yv12_buffer_config;
20 EOF
21 }
22 forward_decls vp9_common_forward_decls
23
24 # x86inc.asm doesn't work if pic is enabled on 32 bit platforms so no assembly.
25 [ "$CONFIG_USE_X86INC" = "yes" ] && mmx_x86inc=mmx && sse_x86inc=sse &&
26   sse2_x86inc=sse2 && ssse3_x86inc=ssse3 && avx_x86inc=avx && avx2_x86inc=avx2
27
28 # this variable is for functions that are 64 bit only.
29 [ $arch = "x86_64" ] && mmx_x86_64=mmx && sse2_x86_64=sse2 && 
30   ssse3_x86_64=ssse3 && avx_x86_64=avx && avx2_x86_64=avx2
31
32 #
33 # RECON
34 #
35 prototype void vp9_d207_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
36 specialize vp9_d207_predictor_4x4 $ssse3_x86inc
37
38 prototype void vp9_d45_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
39 specialize vp9_d45_predictor_4x4 $ssse3_x86inc
40
41 prototype void vp9_d63_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
42 specialize vp9_d63_predictor_4x4 $ssse3_x86inc
43
44 prototype void vp9_h_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
45 specialize vp9_h_predictor_4x4 $ssse3_x86inc neon dspr2
46
47 prototype void vp9_d117_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
48 specialize vp9_d117_predictor_4x4
49
50 prototype void vp9_d135_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
51 specialize vp9_d135_predictor_4x4
52
53 prototype void vp9_d153_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
54 specialize vp9_d153_predictor_4x4 $ssse3_x86inc
55
56 prototype void vp9_v_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
57 specialize vp9_v_predictor_4x4 $sse_x86inc neon
58
59 prototype void vp9_tm_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
60 specialize vp9_tm_predictor_4x4 $sse_x86inc neon dspr2
61
62 prototype void vp9_dc_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
63 specialize vp9_dc_predictor_4x4 $sse_x86inc dspr2
64
65 prototype void vp9_dc_top_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
66 specialize vp9_dc_top_predictor_4x4
67
68 prototype void vp9_dc_left_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
69 specialize vp9_dc_left_predictor_4x4
70
71 prototype void vp9_dc_128_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
72 specialize vp9_dc_128_predictor_4x4
73
74 prototype void vp9_d207_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
75 specialize vp9_d207_predictor_8x8 $ssse3_x86inc
76
77 prototype void vp9_d45_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
78 specialize vp9_d45_predictor_8x8 $ssse3_x86inc
79
80 prototype void vp9_d63_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
81 specialize vp9_d63_predictor_8x8 $ssse3_x86inc
82
83 prototype void vp9_h_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
84 specialize vp9_h_predictor_8x8 $ssse3_x86inc neon dspr2
85
86 prototype void vp9_d117_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
87 specialize vp9_d117_predictor_8x8
88
89 prototype void vp9_d135_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
90 specialize vp9_d135_predictor_8x8
91
92 prototype void vp9_d153_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
93 specialize vp9_d153_predictor_8x8 $ssse3_x86inc
94
95 prototype void vp9_v_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
96 specialize vp9_v_predictor_8x8 $sse_x86inc neon
97
98 prototype void vp9_tm_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
99 specialize vp9_tm_predictor_8x8 $sse2_x86inc neon dspr2
100
101 prototype void vp9_dc_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
102 specialize vp9_dc_predictor_8x8 $sse_x86inc dspr2
103
104 prototype void vp9_dc_top_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
105 specialize vp9_dc_top_predictor_8x8
106
107 prototype void vp9_dc_left_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
108 specialize vp9_dc_left_predictor_8x8
109
110 prototype void vp9_dc_128_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
111 specialize vp9_dc_128_predictor_8x8
112
113 prototype void vp9_d207_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
114 specialize vp9_d207_predictor_16x16 $ssse3_x86inc
115
116 prototype void vp9_d45_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
117 specialize vp9_d45_predictor_16x16 $ssse3_x86inc
118
119 prototype void vp9_d63_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
120 specialize vp9_d63_predictor_16x16 $ssse3_x86inc
121
122 prototype void vp9_h_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
123 specialize vp9_h_predictor_16x16 $ssse3_x86inc neon dspr2
124
125 prototype void vp9_d117_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
126 specialize vp9_d117_predictor_16x16
127
128 prototype void vp9_d135_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
129 specialize vp9_d135_predictor_16x16
130
131 prototype void vp9_d153_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
132 specialize vp9_d153_predictor_16x16 $ssse3_x86inc
133
134 prototype void vp9_v_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
135 specialize vp9_v_predictor_16x16 $sse2_x86inc neon
136
137 prototype void vp9_tm_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
138 specialize vp9_tm_predictor_16x16 $sse2_x86inc neon
139
140 prototype void vp9_dc_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
141 specialize vp9_dc_predictor_16x16 $sse2_x86inc dspr2
142
143 prototype void vp9_dc_top_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
144 specialize vp9_dc_top_predictor_16x16
145
146 prototype void vp9_dc_left_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
147 specialize vp9_dc_left_predictor_16x16
148
149 prototype void vp9_dc_128_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
150 specialize vp9_dc_128_predictor_16x16
151
152 prototype void vp9_d207_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
153 specialize vp9_d207_predictor_32x32 $ssse3_x86inc
154
155 prototype void vp9_d45_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
156 specialize vp9_d45_predictor_32x32 $ssse3_x86inc
157
158 prototype void vp9_d63_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
159 specialize vp9_d63_predictor_32x32 $ssse3_x86inc
160
161 prototype void vp9_h_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
162 specialize vp9_h_predictor_32x32 $ssse3_x86inc neon
163
164 prototype void vp9_d117_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
165 specialize vp9_d117_predictor_32x32
166
167 prototype void vp9_d135_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
168 specialize vp9_d135_predictor_32x32
169
170 prototype void vp9_d153_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
171 specialize vp9_d153_predictor_32x32
172
173 prototype void vp9_v_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
174 specialize vp9_v_predictor_32x32 $sse2_x86inc neon
175
176 prototype void vp9_tm_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
177 specialize vp9_tm_predictor_32x32 $sse2_x86_64 neon
178
179 prototype void vp9_dc_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
180 specialize vp9_dc_predictor_32x32 $sse2_x86inc
181
182 prototype void vp9_dc_top_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
183 specialize vp9_dc_top_predictor_32x32
184
185 prototype void vp9_dc_left_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
186 specialize vp9_dc_left_predictor_32x32
187
188 prototype void vp9_dc_128_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
189 specialize vp9_dc_128_predictor_32x32
190
191 #
192 # Loopfilter
193 #
194 prototype void vp9_lpf_vertical_16 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"
195 specialize vp9_lpf_vertical_16 sse2 neon dspr2
196
197 prototype void vp9_lpf_vertical_16_dual "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"
198 specialize vp9_lpf_vertical_16_dual sse2 neon dspr2
199
200 prototype void vp9_lpf_vertical_8 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
201 specialize vp9_lpf_vertical_8 sse2 neon dspr2
202
203 prototype void vp9_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"
204 specialize vp9_lpf_vertical_8_dual sse2 neon dspr2
205
206 prototype void vp9_lpf_vertical_4 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
207 specialize vp9_lpf_vertical_4 mmx neon dspr2
208
209 prototype void vp9_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"
210 specialize vp9_lpf_vertical_4_dual sse2 neon dspr2
211
212 prototype void vp9_lpf_horizontal_16 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
213 specialize vp9_lpf_horizontal_16 sse2 avx2 neon dspr2
214
215 prototype void vp9_lpf_horizontal_8 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
216 specialize vp9_lpf_horizontal_8 sse2 neon dspr2
217
218 prototype void vp9_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"
219 specialize vp9_lpf_horizontal_8_dual sse2 neon dspr2
220
221 prototype void vp9_lpf_horizontal_4 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
222 specialize vp9_lpf_horizontal_4 mmx neon dspr2
223
224 prototype void vp9_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"
225 specialize vp9_lpf_horizontal_4_dual sse2 neon dspr2
226
227 #
228 # post proc
229 #
230 if [ "$CONFIG_VP9_POSTPROC" = "yes" ]; then
231 prototype void vp9_mbpost_proc_down "uint8_t *dst, int pitch, int rows, int cols, int flimit"
232 specialize vp9_mbpost_proc_down mmx sse2
233 vp9_mbpost_proc_down_sse2=vp9_mbpost_proc_down_xmm
234
235 prototype void vp9_mbpost_proc_across_ip "uint8_t *src, int pitch, int rows, int cols, int flimit"
236 specialize vp9_mbpost_proc_across_ip sse2
237 vp9_mbpost_proc_across_ip_sse2=vp9_mbpost_proc_across_ip_xmm
238
239 prototype void vp9_post_proc_down_and_across "const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit"
240 specialize vp9_post_proc_down_and_across mmx sse2
241 vp9_post_proc_down_and_across_sse2=vp9_post_proc_down_and_across_xmm
242
243 prototype void vp9_plane_add_noise "uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch"
244 specialize vp9_plane_add_noise mmx sse2
245 vp9_plane_add_noise_sse2=vp9_plane_add_noise_wmt
246 fi
247
248 prototype void vp9_blend_mb_inner "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
249 specialize vp9_blend_mb_inner
250
251 prototype void vp9_blend_mb_outer "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
252 specialize vp9_blend_mb_outer
253
254 prototype void vp9_blend_b "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
255 specialize vp9_blend_b
256
257 #
258 # Sub Pixel Filters
259 #
260 prototype void vp9_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"
261 specialize vp9_convolve_copy $sse2_x86inc neon dspr2
262
263 prototype void vp9_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"
264 specialize vp9_convolve_avg $sse2_x86inc neon dspr2
265
266 prototype void vp9_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"
267 specialize vp9_convolve8 sse2 ssse3 avx2 neon dspr2
268
269 prototype void vp9_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"
270 specialize vp9_convolve8_horiz sse2 ssse3 avx2 neon dspr2
271
272 prototype void vp9_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"
273 specialize vp9_convolve8_vert sse2 ssse3 avx2 neon dspr2
274
275 prototype void vp9_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"
276 specialize vp9_convolve8_avg sse2 ssse3 neon dspr2
277
278 prototype void vp9_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"
279 specialize vp9_convolve8_avg_horiz sse2 ssse3 neon dspr2
280
281 prototype void vp9_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"
282 specialize vp9_convolve8_avg_vert sse2 ssse3 neon dspr2
283
284 #
285 # dct
286 #
287 prototype void vp9_idct4x4_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
288 specialize vp9_idct4x4_1_add sse2 neon dspr2
289
290 prototype void vp9_idct4x4_16_add "const int16_t *input, uint8_t *dest, int dest_stride"
291 specialize vp9_idct4x4_16_add sse2 neon dspr2
292
293 prototype void vp9_idct8x8_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
294 specialize vp9_idct8x8_1_add sse2 neon dspr2
295
296 prototype void vp9_idct8x8_64_add "const int16_t *input, uint8_t *dest, int dest_stride"
297 specialize vp9_idct8x8_64_add sse2 neon dspr2
298
299 prototype void vp9_idct8x8_10_add "const int16_t *input, uint8_t *dest, int dest_stride"
300 specialize vp9_idct8x8_10_add sse2 neon dspr2
301
302 prototype void vp9_idct16x16_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
303 specialize vp9_idct16x16_1_add sse2 neon dspr2
304
305 prototype void vp9_idct16x16_256_add "const int16_t *input, uint8_t *dest, int dest_stride"
306 specialize vp9_idct16x16_256_add sse2 neon dspr2
307
308 prototype void vp9_idct16x16_10_add "const int16_t *input, uint8_t *dest, int dest_stride"
309 specialize vp9_idct16x16_10_add sse2 neon dspr2
310
311 prototype void vp9_idct32x32_1024_add "const int16_t *input, uint8_t *dest, int dest_stride"
312 specialize vp9_idct32x32_1024_add sse2 neon dspr2
313
314 prototype void vp9_idct32x32_34_add "const int16_t *input, uint8_t *dest, int dest_stride"
315 specialize vp9_idct32x32_34_add sse2 neon dspr2
316 vp9_idct32x32_34_add_neon=vp9_idct32x32_1024_add_neon
317
318 prototype void vp9_idct32x32_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
319 specialize vp9_idct32x32_1_add sse2 neon dspr2
320
321 prototype void vp9_iht4x4_16_add "const int16_t *input, uint8_t *dest, int dest_stride, int tx_type"
322 specialize vp9_iht4x4_16_add sse2 neon dspr2
323
324 prototype void vp9_iht8x8_64_add "const int16_t *input, uint8_t *dest, int dest_stride, int tx_type"
325 specialize vp9_iht8x8_64_add sse2 neon dspr2
326
327 prototype void vp9_iht16x16_256_add "const int16_t *input, uint8_t *output, int pitch, int tx_type"
328 specialize vp9_iht16x16_256_add sse2 dspr2
329
330 # dct and add
331
332 prototype void vp9_iwht4x4_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
333 specialize vp9_iwht4x4_1_add
334
335 prototype void vp9_iwht4x4_16_add "const int16_t *input, uint8_t *dest, int dest_stride"
336 specialize vp9_iwht4x4_16_add
337
338 #
339 # Encoder functions below this point.
340 #
341 if [ "$CONFIG_VP9_ENCODER" = "yes" ]; then
342
343
344 # variance
345 prototype unsigned int vp9_variance32x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
346 specialize vp9_variance32x16 $sse2_x86inc $avx2_x86inc
347
348 prototype unsigned int vp9_variance16x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
349 specialize vp9_variance16x32 $sse2_x86inc
350
351 prototype unsigned int vp9_variance64x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
352 specialize vp9_variance64x32 $sse2_x86inc $avx2_x86inc
353
354 prototype unsigned int vp9_variance32x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
355 specialize vp9_variance32x64 $sse2_x86inc
356
357 prototype unsigned int vp9_variance32x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
358 specialize vp9_variance32x32 $sse2_x86inc $avx2_x86inc
359
360 prototype unsigned int vp9_variance64x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
361 specialize vp9_variance64x64 $sse2_x86inc $avx2_x86inc
362
363 prototype unsigned int vp9_variance16x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
364 specialize vp9_variance16x16 mmx $sse2_x86inc $avx2_x86inc
365
366 prototype unsigned int vp9_variance16x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
367 specialize vp9_variance16x8 mmx $sse2_x86inc
368
369 prototype unsigned int vp9_variance8x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
370 specialize vp9_variance8x16 mmx $sse2_x86inc
371
372 prototype unsigned int vp9_variance8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
373 specialize vp9_variance8x8 mmx $sse2_x86inc
374
375 prototype void vp9_get_sse_sum_8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"
376 specialize vp9_get_sse_sum_8x8 sse2
377 vp9_get_sse_sum_8x8_sse2=vp9_get8x8var_sse2
378
379 prototype unsigned int vp9_variance8x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
380 specialize vp9_variance8x4 $sse2_x86inc
381
382 prototype unsigned int vp9_variance4x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
383 specialize vp9_variance4x8 $sse2_x86inc
384
385 prototype unsigned int vp9_variance4x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
386 specialize vp9_variance4x4 mmx $sse2_x86inc
387
388 prototype unsigned int vp9_sub_pixel_variance64x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
389 specialize vp9_sub_pixel_variance64x64 $sse2_x86inc $ssse3_x86inc
390
391 prototype unsigned int vp9_sub_pixel_avg_variance64x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
392 specialize vp9_sub_pixel_avg_variance64x64 $sse2_x86inc $ssse3_x86inc
393
394 prototype unsigned int vp9_sub_pixel_variance32x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
395 specialize vp9_sub_pixel_variance32x64 $sse2_x86inc $ssse3_x86inc
396
397 prototype unsigned int vp9_sub_pixel_avg_variance32x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
398 specialize vp9_sub_pixel_avg_variance32x64 $sse2_x86inc $ssse3_x86inc
399
400 prototype unsigned int vp9_sub_pixel_variance64x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
401 specialize vp9_sub_pixel_variance64x32 $sse2_x86inc $ssse3_x86inc
402
403 prototype unsigned int vp9_sub_pixel_avg_variance64x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
404 specialize vp9_sub_pixel_avg_variance64x32 $sse2_x86inc $ssse3_x86inc
405
406 prototype unsigned int vp9_sub_pixel_variance32x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
407 specialize vp9_sub_pixel_variance32x16 $sse2_x86inc $ssse3_x86inc
408
409 prototype unsigned int vp9_sub_pixel_avg_variance32x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
410 specialize vp9_sub_pixel_avg_variance32x16 $sse2_x86inc $ssse3_x86inc
411
412 prototype unsigned int vp9_sub_pixel_variance16x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
413 specialize vp9_sub_pixel_variance16x32 $sse2_x86inc $ssse3_x86inc
414
415 prototype unsigned int vp9_sub_pixel_avg_variance16x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
416 specialize vp9_sub_pixel_avg_variance16x32 $sse2_x86inc $ssse3_x86inc
417
418 prototype unsigned int vp9_sub_pixel_variance32x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
419 specialize vp9_sub_pixel_variance32x32 $sse2_x86inc $ssse3_x86inc
420
421 prototype unsigned int vp9_sub_pixel_avg_variance32x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
422 specialize vp9_sub_pixel_avg_variance32x32 $sse2_x86inc $ssse3_x86inc
423
424 prototype unsigned int vp9_sub_pixel_variance16x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
425 specialize vp9_sub_pixel_variance16x16 $sse2_x86inc $ssse3_x86inc
426
427 prototype unsigned int vp9_sub_pixel_avg_variance16x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
428 specialize vp9_sub_pixel_avg_variance16x16 $sse2_x86inc $ssse3_x86inc
429
430 prototype unsigned int vp9_sub_pixel_variance8x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
431 specialize vp9_sub_pixel_variance8x16 $sse2_x86inc $ssse3_x86inc
432
433 prototype unsigned int vp9_sub_pixel_avg_variance8x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
434 specialize vp9_sub_pixel_avg_variance8x16 $sse2_x86inc $ssse3_x86inc
435
436 prototype unsigned int vp9_sub_pixel_variance16x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
437 specialize vp9_sub_pixel_variance16x8 $sse2_x86inc $ssse3_x86inc
438
439 prototype unsigned int vp9_sub_pixel_avg_variance16x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
440 specialize vp9_sub_pixel_avg_variance16x8 $sse2_x86inc $ssse3_x86inc
441
442 prototype unsigned int vp9_sub_pixel_variance8x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
443 specialize vp9_sub_pixel_variance8x8 $sse2_x86inc $ssse3_x86inc
444
445 prototype unsigned int vp9_sub_pixel_avg_variance8x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
446 specialize vp9_sub_pixel_avg_variance8x8 $sse2_x86inc $ssse3_x86inc
447
448 # TODO(jingning): need to convert 8x4/4x8 functions into mmx/sse form
449 prototype unsigned int vp9_sub_pixel_variance8x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
450 specialize vp9_sub_pixel_variance8x4 $sse2_x86inc $ssse3_x86inc
451
452 prototype unsigned int vp9_sub_pixel_avg_variance8x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
453 specialize vp9_sub_pixel_avg_variance8x4 $sse2_x86inc $ssse3_x86inc
454
455 prototype unsigned int vp9_sub_pixel_variance4x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
456 specialize vp9_sub_pixel_variance4x8 $sse_x86inc $ssse3_x86inc
457
458 prototype unsigned int vp9_sub_pixel_avg_variance4x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
459 specialize vp9_sub_pixel_avg_variance4x8 $sse_x86inc $ssse3_x86inc
460
461 prototype unsigned int vp9_sub_pixel_variance4x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
462 specialize vp9_sub_pixel_variance4x4 $sse_x86inc $ssse3_x86inc
463 #vp9_sub_pixel_variance4x4_sse2=vp9_sub_pixel_variance4x4_wmt
464
465 prototype unsigned int vp9_sub_pixel_avg_variance4x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
466 specialize vp9_sub_pixel_avg_variance4x4 $sse_x86inc $ssse3_x86inc
467
468 prototype unsigned int vp9_sad64x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
469 specialize vp9_sad64x64 $sse2_x86inc
470
471 prototype unsigned int vp9_sad32x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
472 specialize vp9_sad32x64 $sse2_x86inc
473
474 prototype unsigned int vp9_sad64x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
475 specialize vp9_sad64x32 $sse2_x86inc
476
477 prototype unsigned int vp9_sad32x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
478 specialize vp9_sad32x16 $sse2_x86inc
479
480 prototype unsigned int vp9_sad16x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
481 specialize vp9_sad16x32 $sse2_x86inc
482
483 prototype unsigned int vp9_sad32x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
484 specialize vp9_sad32x32 $sse2_x86inc
485
486 prototype unsigned int vp9_sad16x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
487 specialize vp9_sad16x16 mmx $sse2_x86inc
488
489 prototype unsigned int vp9_sad16x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
490 specialize vp9_sad16x8 mmx $sse2_x86inc
491
492 prototype unsigned int vp9_sad8x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
493 specialize vp9_sad8x16 mmx $sse2_x86inc
494
495 prototype unsigned int vp9_sad8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
496 specialize vp9_sad8x8 mmx $sse2_x86inc
497
498 prototype unsigned int vp9_sad8x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
499 specialize vp9_sad8x4 $sse2_x86inc
500
501 prototype unsigned int vp9_sad4x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
502 specialize vp9_sad4x8 $sse_x86inc
503
504 prototype unsigned int vp9_sad4x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
505 specialize vp9_sad4x4 mmx $sse_x86inc
506
507 prototype unsigned int vp9_sad64x64_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad"
508 specialize vp9_sad64x64_avg $sse2_x86inc
509
510 prototype unsigned int vp9_sad32x64_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
511 specialize vp9_sad32x64_avg $sse2_x86inc
512
513 prototype unsigned int vp9_sad64x32_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
514 specialize vp9_sad64x32_avg $sse2_x86inc
515
516 prototype unsigned int vp9_sad32x16_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
517 specialize vp9_sad32x16_avg $sse2_x86inc
518
519 prototype unsigned int vp9_sad16x32_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
520 specialize vp9_sad16x32_avg $sse2_x86inc
521
522 prototype unsigned int vp9_sad32x32_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad"
523 specialize vp9_sad32x32_avg $sse2_x86inc
524
525 prototype unsigned int vp9_sad16x16_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad"
526 specialize vp9_sad16x16_avg $sse2_x86inc
527
528 prototype unsigned int vp9_sad16x8_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad"
529 specialize vp9_sad16x8_avg $sse2_x86inc
530
531 prototype unsigned int vp9_sad8x16_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad"
532 specialize vp9_sad8x16_avg $sse2_x86inc
533
534 prototype unsigned int vp9_sad8x8_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad"
535 specialize vp9_sad8x8_avg $sse2_x86inc
536
537 prototype unsigned int vp9_sad8x4_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
538 specialize vp9_sad8x4_avg $sse2_x86inc
539
540 prototype unsigned int vp9_sad4x8_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
541 specialize vp9_sad4x8_avg $sse_x86inc
542
543 prototype unsigned int vp9_sad4x4_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad"
544 specialize vp9_sad4x4_avg $sse_x86inc
545
546 prototype unsigned int vp9_variance_halfpixvar16x16_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
547 specialize vp9_variance_halfpixvar16x16_h $sse2_x86inc
548
549 prototype unsigned int vp9_variance_halfpixvar16x16_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
550 specialize vp9_variance_halfpixvar16x16_v $sse2_x86inc
551
552 prototype unsigned int vp9_variance_halfpixvar16x16_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
553 specialize vp9_variance_halfpixvar16x16_hv $sse2_x86inc
554
555 prototype unsigned int vp9_variance_halfpixvar64x64_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
556 specialize vp9_variance_halfpixvar64x64_h
557
558 prototype unsigned int vp9_variance_halfpixvar64x64_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
559 specialize vp9_variance_halfpixvar64x64_v
560
561 prototype unsigned int vp9_variance_halfpixvar64x64_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
562 specialize vp9_variance_halfpixvar64x64_hv
563
564 prototype unsigned int vp9_variance_halfpixvar32x32_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
565 specialize vp9_variance_halfpixvar32x32_h
566
567 prototype unsigned int vp9_variance_halfpixvar32x32_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
568 specialize vp9_variance_halfpixvar32x32_v
569
570 prototype unsigned int vp9_variance_halfpixvar32x32_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
571 specialize vp9_variance_halfpixvar32x32_hv
572
573 prototype void vp9_sad64x64x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
574 specialize vp9_sad64x64x3
575
576 prototype void vp9_sad32x32x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
577 specialize vp9_sad32x32x3
578
579 prototype void vp9_sad16x16x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
580 specialize vp9_sad16x16x3 sse3 ssse3
581
582 prototype void vp9_sad16x8x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
583 specialize vp9_sad16x8x3 sse3 ssse3
584
585 prototype void vp9_sad8x16x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
586 specialize vp9_sad8x16x3 sse3
587
588 prototype void vp9_sad8x8x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
589 specialize vp9_sad8x8x3 sse3
590
591 prototype void vp9_sad4x4x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
592 specialize vp9_sad4x4x3 sse3
593
594 prototype void vp9_sad64x64x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
595 specialize vp9_sad64x64x8
596
597 prototype void vp9_sad32x32x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
598 specialize vp9_sad32x32x8
599
600 prototype void vp9_sad16x16x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
601 specialize vp9_sad16x16x8 sse4
602
603 prototype void vp9_sad16x8x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
604 specialize vp9_sad16x8x8 sse4
605
606 prototype void vp9_sad8x16x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
607 specialize vp9_sad8x16x8 sse4
608
609 prototype void vp9_sad8x8x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
610 specialize vp9_sad8x8x8 sse4
611
612 prototype void vp9_sad8x4x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
613 specialize vp9_sad8x4x8
614
615 prototype void vp9_sad4x8x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
616 specialize vp9_sad4x8x8
617
618 prototype void vp9_sad4x4x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
619 specialize vp9_sad4x4x8 sse4
620
621 prototype void vp9_sad64x64x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
622 specialize vp9_sad64x64x4d sse2
623
624 prototype void vp9_sad32x64x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
625 specialize vp9_sad32x64x4d sse2
626
627 prototype void vp9_sad64x32x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
628 specialize vp9_sad64x32x4d sse2
629
630 prototype void vp9_sad32x16x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
631 specialize vp9_sad32x16x4d sse2
632
633 prototype void vp9_sad16x32x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
634 specialize vp9_sad16x32x4d sse2
635
636 prototype void vp9_sad32x32x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
637 specialize vp9_sad32x32x4d sse2
638
639 prototype void vp9_sad16x16x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
640 specialize vp9_sad16x16x4d sse2
641
642 prototype void vp9_sad16x8x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
643 specialize vp9_sad16x8x4d sse2
644
645 prototype void vp9_sad8x16x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
646 specialize vp9_sad8x16x4d sse2
647
648 prototype void vp9_sad8x8x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
649 specialize vp9_sad8x8x4d sse2
650
651 # TODO(jingning): need to convert these 4x8/8x4 functions into sse2 form
652 prototype void vp9_sad8x4x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
653 specialize vp9_sad8x4x4d sse2
654
655 prototype void vp9_sad4x8x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
656 specialize vp9_sad4x8x4d sse
657
658 prototype void vp9_sad4x4x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
659 specialize vp9_sad4x4x4d sse
660
661 #prototype unsigned int vp9_sub_pixel_mse16x16 "const uint8_t *src_ptr, int  src_pixels_per_line, int  xoffset, int  yoffset, const uint8_t *dst_ptr, int dst_pixels_per_line, unsigned int *sse"
662 #specialize vp9_sub_pixel_mse16x16 sse2 mmx
663
664 prototype unsigned int vp9_mse16x16 "const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse"
665 specialize vp9_mse16x16 mmx $sse2_x86inc $avx2_x86inc
666
667 prototype unsigned int vp9_mse8x16 "const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse"
668 specialize vp9_mse8x16
669
670 prototype unsigned int vp9_mse16x8 "const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse"
671 specialize vp9_mse16x8
672
673 prototype unsigned int vp9_mse8x8 "const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse"
674 specialize vp9_mse8x8
675
676 prototype unsigned int vp9_sub_pixel_mse64x64 "const uint8_t *src_ptr, int  source_stride, int  xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
677 specialize vp9_sub_pixel_mse64x64
678
679 prototype unsigned int vp9_sub_pixel_mse32x32 "const uint8_t *src_ptr, int  source_stride, int  xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
680 specialize vp9_sub_pixel_mse32x32
681
682 prototype unsigned int vp9_get_mb_ss "const int16_t *"
683 specialize vp9_get_mb_ss mmx sse2
684 # ENCODEMB INVOKE
685
686 prototype int64_t vp9_block_error "int16_t *coeff, int16_t *dqcoeff, intptr_t block_size, int64_t *ssz"
687 specialize vp9_block_error $sse2_x86inc
688
689 prototype void vp9_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"
690 specialize vp9_subtract_block $sse2_x86inc
691
692 prototype void vp9_quantize_b "const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"
693 specialize vp9_quantize_b $ssse3_x86_64
694
695 prototype void vp9_quantize_b_32x32 "const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"
696 specialize vp9_quantize_b_32x32 $ssse3_x86_64
697
698 #
699 # Structured Similarity (SSIM)
700 #
701 if [ "$CONFIG_INTERNAL_STATS" = "yes" ]; then
702     prototype void vp9_ssim_parms_8x8 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
703     specialize vp9_ssim_parms_8x8 $sse2_x86_64
704
705     prototype void vp9_ssim_parms_16x16 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
706     specialize vp9_ssim_parms_16x16 $sse2_x86_64
707 fi
708
709 # fdct functions
710 prototype void vp9_fht4x4 "const int16_t *input, int16_t *output, int stride, int tx_type"
711 specialize vp9_fht4x4 sse2 avx2
712
713 prototype void vp9_fht8x8 "const int16_t *input, int16_t *output, int stride, int tx_type"
714 specialize vp9_fht8x8 sse2 avx2
715
716 prototype void vp9_fht16x16 "const int16_t *input, int16_t *output, int stride, int tx_type"
717 specialize vp9_fht16x16 sse2 avx2
718
719 prototype void vp9_fwht4x4 "const int16_t *input, int16_t *output, int stride"
720 specialize vp9_fwht4x4
721
722 prototype void vp9_fdct4x4 "const int16_t *input, int16_t *output, int stride"
723 specialize vp9_fdct4x4 sse2 avx2
724
725 prototype void vp9_fdct8x8 "const int16_t *input, int16_t *output, int stride"
726 specialize vp9_fdct8x8 sse2 avx2
727
728 prototype void vp9_fdct16x16 "const int16_t *input, int16_t *output, int stride"
729 specialize vp9_fdct16x16 sse2 avx2
730
731 prototype void vp9_fdct32x32 "const int16_t *input, int16_t *output, int stride"
732 specialize vp9_fdct32x32 sse2 avx2
733
734 prototype void vp9_fdct32x32_rd "const int16_t *input, int16_t *output, int stride"
735 specialize vp9_fdct32x32_rd sse2 avx2
736
737 #
738 # Motion search
739 #
740 prototype int vp9_full_search_sad "const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv, int n"
741 specialize vp9_full_search_sad sse3 sse4_1
742 vp9_full_search_sad_sse3=vp9_full_search_sadx3
743 vp9_full_search_sad_sse4_1=vp9_full_search_sadx8
744
745 prototype int vp9_refining_search_sad "const struct macroblock *x, struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv"
746 specialize vp9_refining_search_sad sse3
747 vp9_refining_search_sad_sse3=vp9_refining_search_sadx4
748
749 prototype int vp9_diamond_search_sad "const struct macroblock *x, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv"
750 specialize vp9_diamond_search_sad sse3
751 vp9_diamond_search_sad_sse3=vp9_diamond_search_sadx4
752
753 prototype int vp9_full_range_search "const struct macroblock *x, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv"
754 specialize vp9_full_range_search
755
756 prototype void vp9_temporal_filter_apply "uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count"
757 specialize vp9_temporal_filter_apply sse2
758
759 fi
760 # end encoder functions