1 // This file is generated. Do not edit.
2 #ifndef VP8_RTCD_H_
3 #define VP8_RTCD_H_
4
5 #ifdef RTCD_C
6 #define RTCD_EXTERN
7 #else
8 #define RTCD_EXTERN extern
9 #endif
10
11 /*
12 * VP8
13 */
14
15 struct blockd;
16 struct macroblockd;
17 struct loop_filter_info;
18
19 /* Encoder forward decls */
20 struct block;
21 struct macroblock;
22 struct variance_vtable;
23 union int_mv;
24 struct yv12_buffer_config;
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 void vp8_bilinear_predict16x16_c(unsigned char* src_ptr,
31 int src_pixels_per_line,
32 int xoffset,
33 int yoffset,
34 unsigned char* dst_ptr,
35 int dst_pitch);
36 void vp8_bilinear_predict16x16_sse2(unsigned char* src_ptr,
37 int src_pixels_per_line,
38 int xoffset,
39 int yoffset,
40 unsigned char* dst_ptr,
41 int dst_pitch);
42 void vp8_bilinear_predict16x16_ssse3(unsigned char* src_ptr,
43 int src_pixels_per_line,
44 int xoffset,
45 int yoffset,
46 unsigned char* dst_ptr,
47 int dst_pitch);
48 RTCD_EXTERN void (*vp8_bilinear_predict16x16)(unsigned char* src_ptr,
49 int src_pixels_per_line,
50 int xoffset,
51 int yoffset,
52 unsigned char* dst_ptr,
53 int dst_pitch);
54
55 void vp8_bilinear_predict4x4_c(unsigned char* src_ptr,
56 int src_pixels_per_line,
57 int xoffset,
58 int yoffset,
59 unsigned char* dst_ptr,
60 int dst_pitch);
61 void vp8_bilinear_predict4x4_sse2(unsigned char* src_ptr,
62 int src_pixels_per_line,
63 int xoffset,
64 int yoffset,
65 unsigned char* dst_ptr,
66 int dst_pitch);
67 #define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_sse2
68
69 void vp8_bilinear_predict8x4_c(unsigned char* src_ptr,
70 int src_pixels_per_line,
71 int xoffset,
72 int yoffset,
73 unsigned char* dst_ptr,
74 int dst_pitch);
75 void vp8_bilinear_predict8x4_sse2(unsigned char* src_ptr,
76 int src_pixels_per_line,
77 int xoffset,
78 int yoffset,
79 unsigned char* dst_ptr,
80 int dst_pitch);
81 #define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_sse2
82
83 void vp8_bilinear_predict8x8_c(unsigned char* src_ptr,
84 int src_pixels_per_line,
85 int xoffset,
86 int yoffset,
87 unsigned char* dst_ptr,
88 int dst_pitch);
89 void vp8_bilinear_predict8x8_sse2(unsigned char* src_ptr,
90 int src_pixels_per_line,
91 int xoffset,
92 int yoffset,
93 unsigned char* dst_ptr,
94 int dst_pitch);
95 void vp8_bilinear_predict8x8_ssse3(unsigned char* src_ptr,
96 int src_pixels_per_line,
97 int xoffset,
98 int yoffset,
99 unsigned char* dst_ptr,
100 int dst_pitch);
101 RTCD_EXTERN void (*vp8_bilinear_predict8x8)(unsigned char* src_ptr,
102 int src_pixels_per_line,
103 int xoffset,
104 int yoffset,
105 unsigned char* dst_ptr,
106 int dst_pitch);
107
108 void vp8_blend_b_c(unsigned char* y,
109 unsigned char* u,
110 unsigned char* v,
111 int y_1,
112 int u_1,
113 int v_1,
114 int alpha,
115 int stride);
116 #define vp8_blend_b vp8_blend_b_c
117
118 void vp8_blend_mb_inner_c(unsigned char* y,
119 unsigned char* u,
120 unsigned char* v,
121 int y_1,
122 int u_1,
123 int v_1,
124 int alpha,
125 int stride);
126 #define vp8_blend_mb_inner vp8_blend_mb_inner_c
127
128 void vp8_blend_mb_outer_c(unsigned char* y,
129 unsigned char* u,
130 unsigned char* v,
131 int y_1,
132 int u_1,
133 int v_1,
134 int alpha,
135 int stride);
136 #define vp8_blend_mb_outer vp8_blend_mb_outer_c
137
138 int vp8_block_error_c(short* coeff, short* dqcoeff);
139 int vp8_block_error_sse2(short* coeff, short* dqcoeff);
140 #define vp8_block_error vp8_block_error_sse2
141
142 void vp8_copy32xn_c(const unsigned char* src_ptr,
143 int src_stride,
144 unsigned char* dst_ptr,
145 int dst_stride,
146 int height);
147 void vp8_copy32xn_sse2(const unsigned char* src_ptr,
148 int src_stride,
149 unsigned char* dst_ptr,
150 int dst_stride,
151 int height);
152 void vp8_copy32xn_sse3(const unsigned char* src_ptr,
153 int src_stride,
154 unsigned char* dst_ptr,
155 int dst_stride,
156 int height);
157 RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char* src_ptr,
158 int src_stride,
159 unsigned char* dst_ptr,
160 int dst_stride,
161 int height);
162
163 void vp8_copy_mem16x16_c(unsigned char* src,
164 int src_stride,
165 unsigned char* dst,
166 int dst_stride);
167 void vp8_copy_mem16x16_sse2(unsigned char* src,
168 int src_stride,
169 unsigned char* dst,
170 int dst_stride);
171 #define vp8_copy_mem16x16 vp8_copy_mem16x16_sse2
172
173 void vp8_copy_mem8x4_c(unsigned char* src,
174 int src_stride,
175 unsigned char* dst,
176 int dst_stride);
177 void vp8_copy_mem8x4_mmx(unsigned char* src,
178 int src_stride,
179 unsigned char* dst,
180 int dst_stride);
181 #define vp8_copy_mem8x4 vp8_copy_mem8x4_mmx
182
183 void vp8_copy_mem8x8_c(unsigned char* src,
184 int src_stride,
185 unsigned char* dst,
186 int dst_stride);
187 void vp8_copy_mem8x8_mmx(unsigned char* src,
188 int src_stride,
189 unsigned char* dst,
190 int dst_stride);
191 #define vp8_copy_mem8x8 vp8_copy_mem8x8_mmx
192
193 void vp8_dc_only_idct_add_c(short input_dc,
194 unsigned char* pred_ptr,
195 int pred_stride,
196 unsigned char* dst_ptr,
197 int dst_stride);
198 void vp8_dc_only_idct_add_mmx(short input_dc,
199 unsigned char* pred_ptr,
200 int pred_stride,
201 unsigned char* dst_ptr,
202 int dst_stride);
203 #define vp8_dc_only_idct_add vp8_dc_only_idct_add_mmx
204
205 int vp8_denoiser_filter_c(unsigned char* mc_running_avg_y,
206 int mc_avg_y_stride,
207 unsigned char* running_avg_y,
208 int avg_y_stride,
209 unsigned char* sig,
210 int sig_stride,
211 unsigned int motion_magnitude,
212 int increase_denoising);
213 int vp8_denoiser_filter_sse2(unsigned char* mc_running_avg_y,
214 int mc_avg_y_stride,
215 unsigned char* running_avg_y,
216 int avg_y_stride,
217 unsigned char* sig,
218 int sig_stride,
219 unsigned int motion_magnitude,
220 int increase_denoising);
221 #define vp8_denoiser_filter vp8_denoiser_filter_sse2
222
223 int vp8_denoiser_filter_uv_c(unsigned char* mc_running_avg,
224 int mc_avg_stride,
225 unsigned char* running_avg,
226 int avg_stride,
227 unsigned char* sig,
228 int sig_stride,
229 unsigned int motion_magnitude,
230 int increase_denoising);
231 int vp8_denoiser_filter_uv_sse2(unsigned char* mc_running_avg,
232 int mc_avg_stride,
233 unsigned char* running_avg,
234 int avg_stride,
235 unsigned char* sig,
236 int sig_stride,
237 unsigned int motion_magnitude,
238 int increase_denoising);
239 #define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_sse2
240
241 void vp8_dequant_idct_add_c(short* input,
242 short* dq,
243 unsigned char* dest,
244 int stride);
245 void vp8_dequant_idct_add_mmx(short* input,
246 short* dq,
247 unsigned char* dest,
248 int stride);
249 #define vp8_dequant_idct_add vp8_dequant_idct_add_mmx
250
251 void vp8_dequant_idct_add_uv_block_c(short* q,
252 short* dq,
253 unsigned char* dst_u,
254 unsigned char* dst_v,
255 int stride,
256 char* eobs);
257 void vp8_dequant_idct_add_uv_block_sse2(short* q,
258 short* dq,
259 unsigned char* dst_u,
260 unsigned char* dst_v,
261 int stride,
262 char* eobs);
263 #define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_sse2
264
265 void vp8_dequant_idct_add_y_block_c(short* q,
266 short* dq,
267 unsigned char* dst,
268 int stride,
269 char* eobs);
270 void vp8_dequant_idct_add_y_block_sse2(short* q,
271 short* dq,
272 unsigned char* dst,
273 int stride,
274 char* eobs);
275 #define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_sse2
276
277 void vp8_dequantize_b_c(struct blockd*, short* DQC);
278 void vp8_dequantize_b_mmx(struct blockd*, short* DQC);
279 #define vp8_dequantize_b vp8_dequantize_b_mmx
280
281 int vp8_diamond_search_sad_c(struct macroblock* x,
282 struct block* b,
283 struct blockd* d,
284 union int_mv* ref_mv,
285 union int_mv* best_mv,
286 int search_param,
287 int sad_per_bit,
288 int* num00,
289 struct variance_vtable* fn_ptr,
290 int* mvcost[2],
291 union int_mv* center_mv);
292 int vp8_diamond_search_sadx4(struct macroblock* x,
293 struct block* b,
294 struct blockd* d,
295 union int_mv* ref_mv,
296 union int_mv* best_mv,
297 int search_param,
298 int sad_per_bit,
299 int* num00,
300 struct variance_vtable* fn_ptr,
301 int* mvcost[2],
302 union int_mv* center_mv);
303 #define vp8_diamond_search_sad vp8_diamond_search_sadx4
304
305 void vp8_fast_quantize_b_c(struct block*, struct blockd*);
306 void vp8_fast_quantize_b_sse2(struct block*, struct blockd*);
307 void vp8_fast_quantize_b_ssse3(struct block*, struct blockd*);
308 RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block*, struct blockd*);
309
310 void vp8_filter_by_weight16x16_c(unsigned char* src,
311 int src_stride,
312 unsigned char* dst,
313 int dst_stride,
314 int src_weight);
315 void vp8_filter_by_weight16x16_sse2(unsigned char* src,
316 int src_stride,
317 unsigned char* dst,
318 int dst_stride,
319 int src_weight);
320 #define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_sse2
321
322 void vp8_filter_by_weight4x4_c(unsigned char* src,
323 int src_stride,
324 unsigned char* dst,
325 int dst_stride,
326 int src_weight);
327 #define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c
328
329 void vp8_filter_by_weight8x8_c(unsigned char* src,
330 int src_stride,
331 unsigned char* dst,
332 int dst_stride,
333 int src_weight);
334 void vp8_filter_by_weight8x8_sse2(unsigned char* src,
335 int src_stride,
336 unsigned char* dst,
337 int dst_stride,
338 int src_weight);
339 #define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_sse2
340
341 int vp8_full_search_sad_c(struct macroblock* x,
342 struct block* b,
343 struct blockd* d,
344 union int_mv* ref_mv,
345 int sad_per_bit,
346 int distance,
347 struct variance_vtable* fn_ptr,
348 int* mvcost[2],
349 union int_mv* center_mv);
350 int vp8_full_search_sadx3(struct macroblock* x,
351 struct block* b,
352 struct blockd* d,
353 union int_mv* ref_mv,
354 int sad_per_bit,
355 int distance,
356 struct variance_vtable* fn_ptr,
357 int* mvcost[2],
358 union int_mv* center_mv);
359 int vp8_full_search_sadx8(struct macroblock* x,
360 struct block* b,
361 struct blockd* d,
362 union int_mv* ref_mv,
363 int sad_per_bit,
364 int distance,
365 struct variance_vtable* fn_ptr,
366 int* mvcost[2],
367 union int_mv* center_mv);
368 RTCD_EXTERN int (*vp8_full_search_sad)(struct macroblock* x,
369 struct block* b,
370 struct blockd* d,
371 union int_mv* ref_mv,
372 int sad_per_bit,
373 int distance,
374 struct variance_vtable* fn_ptr,
375 int* mvcost[2],
376 union int_mv* center_mv);
377
378 void vp8_loop_filter_bh_c(unsigned char* y_ptr,
379 unsigned char* u_ptr,
380 unsigned char* v_ptr,
381 int y_stride,
382 int uv_stride,
383 struct loop_filter_info* lfi);
384 void vp8_loop_filter_bh_sse2(unsigned char* y_ptr,
385 unsigned char* u_ptr,
386 unsigned char* v_ptr,
387 int y_stride,
388 int uv_stride,
389 struct loop_filter_info* lfi);
390 #define vp8_loop_filter_bh vp8_loop_filter_bh_sse2
391
392 void vp8_loop_filter_bv_c(unsigned char* y_ptr,
393 unsigned char* u_ptr,
394 unsigned char* v_ptr,
395 int y_stride,
396 int uv_stride,
397 struct loop_filter_info* lfi);
398 void vp8_loop_filter_bv_sse2(unsigned char* y_ptr,
399 unsigned char* u_ptr,
400 unsigned char* v_ptr,
401 int y_stride,
402 int uv_stride,
403 struct loop_filter_info* lfi);
404 #define vp8_loop_filter_bv vp8_loop_filter_bv_sse2
405
406 void vp8_loop_filter_mbh_c(unsigned char* y_ptr,
407 unsigned char* u_ptr,
408 unsigned char* v_ptr,
409 int y_stride,
410 int uv_stride,
411 struct loop_filter_info* lfi);
412 void vp8_loop_filter_mbh_sse2(unsigned char* y_ptr,
413 unsigned char* u_ptr,
414 unsigned char* v_ptr,
415 int y_stride,
416 int uv_stride,
417 struct loop_filter_info* lfi);
418 #define vp8_loop_filter_mbh vp8_loop_filter_mbh_sse2
419
420 void vp8_loop_filter_mbv_c(unsigned char* y_ptr,
421 unsigned char* u_ptr,
422 unsigned char* v_ptr,
423 int y_stride,
424 int uv_stride,
425 struct loop_filter_info* lfi);
426 void vp8_loop_filter_mbv_sse2(unsigned char* y_ptr,
427 unsigned char* u_ptr,
428 unsigned char* v_ptr,
429 int y_stride,
430 int uv_stride,
431 struct loop_filter_info* lfi);
432 #define vp8_loop_filter_mbv vp8_loop_filter_mbv_sse2
433
434 void vp8_loop_filter_bhs_c(unsigned char* y_ptr,
435 int y_stride,
436 const unsigned char* blimit);
437 void vp8_loop_filter_bhs_sse2(unsigned char* y_ptr,
438 int y_stride,
439 const unsigned char* blimit);
440 #define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_sse2
441
442 void vp8_loop_filter_bvs_c(unsigned char* y_ptr,
443 int y_stride,
444 const unsigned char* blimit);
445 void vp8_loop_filter_bvs_sse2(unsigned char* y_ptr,
446 int y_stride,
447 const unsigned char* blimit);
448 #define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_sse2
449
450 void vp8_loop_filter_simple_horizontal_edge_c(unsigned char* y_ptr,
451 int y_stride,
452 const unsigned char* blimit);
453 void vp8_loop_filter_simple_horizontal_edge_sse2(unsigned char* y_ptr,
454 int y_stride,
455 const unsigned char* blimit);
456 #define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_sse2
457
458 void vp8_loop_filter_simple_vertical_edge_c(unsigned char* y_ptr,
459 int y_stride,
460 const unsigned char* blimit);
461 void vp8_loop_filter_simple_vertical_edge_sse2(unsigned char* y_ptr,
462 int y_stride,
463 const unsigned char* blimit);
464 #define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_sse2
465
466 int vp8_mbblock_error_c(struct macroblock* mb, int dc);
467 int vp8_mbblock_error_sse2(struct macroblock* mb, int dc);
468 #define vp8_mbblock_error vp8_mbblock_error_sse2
469
470 int vp8_mbuverror_c(struct macroblock* mb);
471 int vp8_mbuverror_sse2(struct macroblock* mb);
472 #define vp8_mbuverror vp8_mbuverror_sse2
473
474 int vp8_refining_search_sad_c(struct macroblock* x,
475 struct block* b,
476 struct blockd* d,
477 union int_mv* ref_mv,
478 int error_per_bit,
479 int search_range,
480 struct variance_vtable* fn_ptr,
481 int* mvcost[2],
482 union int_mv* center_mv);
483 int vp8_refining_search_sadx4(struct macroblock* x,
484 struct block* b,
485 struct blockd* d,
486 union int_mv* ref_mv,
487 int error_per_bit,
488 int search_range,
489 struct variance_vtable* fn_ptr,
490 int* mvcost[2],
491 union int_mv* center_mv);
492 #define vp8_refining_search_sad vp8_refining_search_sadx4
493
494 void vp8_regular_quantize_b_c(struct block*, struct blockd*);
495 void vp8_regular_quantize_b_sse2(struct block*, struct blockd*);
496 void vp8_regular_quantize_b_sse4_1(struct block*, struct blockd*);
497 RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block*, struct blockd*);
498
499 void vp8_short_fdct4x4_c(short* input, short* output, int pitch);
500 void vp8_short_fdct4x4_sse2(short* input, short* output, int pitch);
501 #define vp8_short_fdct4x4 vp8_short_fdct4x4_sse2
502
503 void vp8_short_fdct8x4_c(short* input, short* output, int pitch);
504 void vp8_short_fdct8x4_sse2(short* input, short* output, int pitch);
505 #define vp8_short_fdct8x4 vp8_short_fdct8x4_sse2
506
507 void vp8_short_idct4x4llm_c(short* input,
508 unsigned char* pred_ptr,
509 int pred_stride,
510 unsigned char* dst_ptr,
511 int dst_stride);
512 void vp8_short_idct4x4llm_mmx(short* input,
513 unsigned char* pred_ptr,
514 int pred_stride,
515 unsigned char* dst_ptr,
516 int dst_stride);
517 #define vp8_short_idct4x4llm vp8_short_idct4x4llm_mmx
518
519 void vp8_short_inv_walsh4x4_c(short* input, short* mb_dqcoeff);
520 void vp8_short_inv_walsh4x4_sse2(short* input, short* mb_dqcoeff);
521 #define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_sse2
522
523 void vp8_short_inv_walsh4x4_1_c(short* input, short* mb_dqcoeff);
524 #define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
525
526 void vp8_short_walsh4x4_c(short* input, short* output, int pitch);
527 void vp8_short_walsh4x4_sse2(short* input, short* output, int pitch);
528 #define vp8_short_walsh4x4 vp8_short_walsh4x4_sse2
529
530 void vp8_sixtap_predict16x16_c(unsigned char* src_ptr,
531 int src_pixels_per_line,
532 int xoffset,
533 int yoffset,
534 unsigned char* dst_ptr,
535 int dst_pitch);
536 void vp8_sixtap_predict16x16_sse2(unsigned char* src_ptr,
537 int src_pixels_per_line,
538 int xoffset,
539 int yoffset,
540 unsigned char* dst_ptr,
541 int dst_pitch);
542 void vp8_sixtap_predict16x16_ssse3(unsigned char* src_ptr,
543 int src_pixels_per_line,
544 int xoffset,
545 int yoffset,
546 unsigned char* dst_ptr,
547 int dst_pitch);
548 RTCD_EXTERN void (*vp8_sixtap_predict16x16)(unsigned char* src_ptr,
549 int src_pixels_per_line,
550 int xoffset,
551 int yoffset,
552 unsigned char* dst_ptr,
553 int dst_pitch);
554
555 void vp8_sixtap_predict4x4_c(unsigned char* src_ptr,
556 int src_pixels_per_line,
557 int xoffset,
558 int yoffset,
559 unsigned char* dst_ptr,
560 int dst_pitch);
561 void vp8_sixtap_predict4x4_mmx(unsigned char* src_ptr,
562 int src_pixels_per_line,
563 int xoffset,
564 int yoffset,
565 unsigned char* dst_ptr,
566 int dst_pitch);
567 void vp8_sixtap_predict4x4_ssse3(unsigned char* src_ptr,
568 int src_pixels_per_line,
569 int xoffset,
570 int yoffset,
571 unsigned char* dst_ptr,
572 int dst_pitch);
573 RTCD_EXTERN void (*vp8_sixtap_predict4x4)(unsigned char* src_ptr,
574 int src_pixels_per_line,
575 int xoffset,
576 int yoffset,
577 unsigned char* dst_ptr,
578 int dst_pitch);
579
580 void vp8_sixtap_predict8x4_c(unsigned char* src_ptr,
581 int src_pixels_per_line,
582 int xoffset,
583 int yoffset,
584 unsigned char* dst_ptr,
585 int dst_pitch);
586 void vp8_sixtap_predict8x4_sse2(unsigned char* src_ptr,
587 int src_pixels_per_line,
588 int xoffset,
589 int yoffset,
590 unsigned char* dst_ptr,
591 int dst_pitch);
592 void vp8_sixtap_predict8x4_ssse3(unsigned char* src_ptr,
593 int src_pixels_per_line,
594 int xoffset,
595 int yoffset,
596 unsigned char* dst_ptr,
597 int dst_pitch);
598 RTCD_EXTERN void (*vp8_sixtap_predict8x4)(unsigned char* src_ptr,
599 int src_pixels_per_line,
600 int xoffset,
601 int yoffset,
602 unsigned char* dst_ptr,
603 int dst_pitch);
604
605 void vp8_sixtap_predict8x8_c(unsigned char* src_ptr,
606 int src_pixels_per_line,
607 int xoffset,
608 int yoffset,
609 unsigned char* dst_ptr,
610 int dst_pitch);
611 void vp8_sixtap_predict8x8_sse2(unsigned char* src_ptr,
612 int src_pixels_per_line,
613 int xoffset,
614 int yoffset,
615 unsigned char* dst_ptr,
616 int dst_pitch);
617 void vp8_sixtap_predict8x8_ssse3(unsigned char* src_ptr,
618 int src_pixels_per_line,
619 int xoffset,
620 int yoffset,
621 unsigned char* dst_ptr,
622 int dst_pitch);
623 RTCD_EXTERN void (*vp8_sixtap_predict8x8)(unsigned char* src_ptr,
624 int src_pixels_per_line,
625 int xoffset,
626 int yoffset,
627 unsigned char* dst_ptr,
628 int dst_pitch);
629
630 void vp8_rtcd(void);
631
632 #ifdef RTCD_C
633 #include "vpx_ports/x86.h"
setup_rtcd_internal(void)634 static void setup_rtcd_internal(void) {
635 int flags = x86_simd_caps();
636
637 (void)flags;
638
639 vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2;
640 if (flags & HAS_SSSE3)
641 vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_ssse3;
642 vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2;
643 if (flags & HAS_SSSE3)
644 vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_ssse3;
645 vp8_copy32xn = vp8_copy32xn_sse2;
646 if (flags & HAS_SSE3)
647 vp8_copy32xn = vp8_copy32xn_sse3;
648 vp8_fast_quantize_b = vp8_fast_quantize_b_sse2;
649 if (flags & HAS_SSSE3)
650 vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3;
651 vp8_full_search_sad = vp8_full_search_sad_c;
652 if (flags & HAS_SSE3)
653 vp8_full_search_sad = vp8_full_search_sadx3;
654 if (flags & HAS_SSE4_1)
655 vp8_full_search_sad = vp8_full_search_sadx8;
656 vp8_regular_quantize_b = vp8_regular_quantize_b_sse2;
657 if (flags & HAS_SSE4_1)
658 vp8_regular_quantize_b = vp8_regular_quantize_b_sse4_1;
659 vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
660 if (flags & HAS_SSSE3)
661 vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_ssse3;
662 vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx;
663 if (flags & HAS_SSSE3)
664 vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3;
665 vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2;
666 if (flags & HAS_SSSE3)
667 vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
668 vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
669 if (flags & HAS_SSSE3)
670 vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
671 }
672 #endif
673
674 #ifdef __cplusplus
675 } // extern "C"
676 #endif
677
678 #endif
679