Initial WebM release
[libvpx.git] / vp8 / common / x86 / loopfilter_x86.h
blobc87f38a3167c87287c1d385287f7c47922988cbd
1 /*
2 * Copyright (c) 2010 The VP8 project authors. All Rights Reserved.
4 * Use of this source code is governed by a BSD-style license and patent
5 * grant that can be found in the LICENSE file in the root of the source
6 * tree. All contributing project authors may be found in the AUTHORS
7 * file in the root of the source tree.
8 */
11 #ifndef LOOPFILTER_X86_H
12 #define LOOPFILTER_X86_H
14 /* Note:
16 * This platform is commonly built for runtime CPU detection. If you modify
17 * any of the function mappings present in this file, be sure to also update
18 * them in the function pointer initialization code
21 #if HAVE_MMX
22 extern prototype_loopfilter_block(vp8_loop_filter_mbv_mmx);
23 extern prototype_loopfilter_block(vp8_loop_filter_bv_mmx);
24 extern prototype_loopfilter_block(vp8_loop_filter_mbh_mmx);
25 extern prototype_loopfilter_block(vp8_loop_filter_bh_mmx);
26 extern prototype_loopfilter_block(vp8_loop_filter_mbvs_mmx);
27 extern prototype_loopfilter_block(vp8_loop_filter_bvs_mmx);
28 extern prototype_loopfilter_block(vp8_loop_filter_mbhs_mmx);
29 extern prototype_loopfilter_block(vp8_loop_filter_bhs_mmx);
32 #if !CONFIG_RUNTIME_CPU_DETECT
33 #undef vp8_lf_normal_mb_v
34 #define vp8_lf_normal_mb_v vp8_loop_filter_mbv_mmx
36 #undef vp8_lf_normal_b_v
37 #define vp8_lf_normal_b_v vp8_loop_filter_bv_mmx
39 #undef vp8_lf_normal_mb_h
40 #define vp8_lf_normal_mb_h vp8_loop_filter_mbh_mmx
42 #undef vp8_lf_normal_b_h
43 #define vp8_lf_normal_b_h vp8_loop_filter_bh_mmx
45 #undef vp8_lf_simple_mb_v
46 #define vp8_lf_simple_mb_v vp8_loop_filter_mbvs_mmx
48 #undef vp8_lf_simple_b_v
49 #define vp8_lf_simple_b_v vp8_loop_filter_bvs_mmx
51 #undef vp8_lf_simple_mb_h
52 #define vp8_lf_simple_mb_h vp8_loop_filter_mbhs_mmx
54 #undef vp8_lf_simple_b_h
55 #define vp8_lf_simple_b_h vp8_loop_filter_bhs_mmx
56 #endif
57 #endif
60 #if HAVE_SSE2
61 extern prototype_loopfilter_block(vp8_loop_filter_mbv_sse2);
62 extern prototype_loopfilter_block(vp8_loop_filter_bv_sse2);
63 extern prototype_loopfilter_block(vp8_loop_filter_mbh_sse2);
64 extern prototype_loopfilter_block(vp8_loop_filter_bh_sse2);
65 extern prototype_loopfilter_block(vp8_loop_filter_mbvs_sse2);
66 extern prototype_loopfilter_block(vp8_loop_filter_bvs_sse2);
67 extern prototype_loopfilter_block(vp8_loop_filter_mbhs_sse2);
68 extern prototype_loopfilter_block(vp8_loop_filter_bhs_sse2);
71 #if !CONFIG_RUNTIME_CPU_DETECT
72 #undef vp8_lf_normal_mb_v
73 #define vp8_lf_normal_mb_v vp8_loop_filter_mbv_sse2
75 #undef vp8_lf_normal_b_v
76 #define vp8_lf_normal_b_v vp8_loop_filter_bv_sse2
78 #undef vp8_lf_normal_mb_h
79 #define vp8_lf_normal_mb_h vp8_loop_filter_mbh_sse2
81 #undef vp8_lf_normal_b_h
82 #define vp8_lf_normal_b_h vp8_loop_filter_bh_sse2
84 #undef vp8_lf_simple_mb_v
85 #define vp8_lf_simple_mb_v vp8_loop_filter_mbvs_sse2
87 #undef vp8_lf_simple_b_v
88 #define vp8_lf_simple_b_v vp8_loop_filter_bvs_sse2
90 #undef vp8_lf_simple_mb_h
91 #define vp8_lf_simple_mb_h vp8_loop_filter_mbhs_sse2
93 #undef vp8_lf_simple_b_h
94 #define vp8_lf_simple_b_h vp8_loop_filter_bhs_sse2
95 #endif
96 #endif
99 #endif