2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
12 #ifndef SUBPIXEL_X86_H
13 #define SUBPIXEL_X86_H
17 * This platform is commonly built for runtime CPU detection. If you modify
18 * any of the function mappings present in this file, be sure to also update
19 * them in the function pointer initialization code
23 extern prototype_subpixel_predict(vp8_sixtap_predict16x16_mmx
);
24 extern prototype_subpixel_predict(vp8_sixtap_predict8x8_mmx
);
25 extern prototype_subpixel_predict(vp8_sixtap_predict8x4_mmx
);
26 extern prototype_subpixel_predict(vp8_sixtap_predict4x4_mmx
);
27 extern prototype_subpixel_predict(vp8_bilinear_predict16x16_mmx
);
28 extern prototype_subpixel_predict(vp8_bilinear_predict8x8_mmx
);
29 extern prototype_subpixel_predict(vp8_bilinear_predict8x4_mmx
);
30 extern prototype_subpixel_predict(vp8_bilinear_predict4x4_mmx
);
33 #if !CONFIG_RUNTIME_CPU_DETECT
34 #undef vp8_subpix_sixtap16x16
35 #define vp8_subpix_sixtap16x16 vp8_sixtap_predict16x16_mmx
37 #undef vp8_subpix_sixtap8x8
38 #define vp8_subpix_sixtap8x8 vp8_sixtap_predict8x8_mmx
40 #undef vp8_subpix_sixtap8x4
41 #define vp8_subpix_sixtap8x4 vp8_sixtap_predict8x4_mmx
43 #undef vp8_subpix_sixtap4x4
44 #define vp8_subpix_sixtap4x4 vp8_sixtap_predict4x4_mmx
46 #undef vp8_subpix_bilinear16x16
47 #define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_mmx
49 #undef vp8_subpix_bilinear8x8
50 #define vp8_subpix_bilinear8x8 vp8_bilinear_predict8x8_mmx
52 #undef vp8_subpix_bilinear8x4
53 #define vp8_subpix_bilinear8x4 vp8_bilinear_predict8x4_mmx
55 #undef vp8_subpix_bilinear4x4
56 #define vp8_subpix_bilinear4x4 vp8_bilinear_predict4x4_mmx
63 extern prototype_subpixel_predict(vp8_sixtap_predict16x16_sse2
);
64 extern prototype_subpixel_predict(vp8_sixtap_predict8x8_sse2
);
65 extern prototype_subpixel_predict(vp8_sixtap_predict8x4_sse2
);
66 extern prototype_subpixel_predict(vp8_bilinear_predict16x16_sse2
);
67 extern prototype_subpixel_predict(vp8_bilinear_predict8x8_sse2
);
70 #if !CONFIG_RUNTIME_CPU_DETECT
71 #undef vp8_subpix_sixtap16x16
72 #define vp8_subpix_sixtap16x16 vp8_sixtap_predict16x16_sse2
74 #undef vp8_subpix_sixtap8x8
75 #define vp8_subpix_sixtap8x8 vp8_sixtap_predict8x8_sse2
77 #undef vp8_subpix_sixtap8x4
78 #define vp8_subpix_sixtap8x4 vp8_sixtap_predict8x4_sse2
80 #undef vp8_subpix_bilinear16x16
81 #define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_sse2
83 #undef vp8_subpix_bilinear8x8
84 #define vp8_subpix_bilinear8x8 vp8_bilinear_predict8x8_sse2
90 extern prototype_subpixel_predict(vp8_sixtap_predict16x16_ssse3
);
91 extern prototype_subpixel_predict(vp8_sixtap_predict8x8_ssse3
);
92 extern prototype_subpixel_predict(vp8_sixtap_predict8x4_ssse3
);
93 extern prototype_subpixel_predict(vp8_sixtap_predict4x4_ssse3
);
94 extern prototype_subpixel_predict(vp8_bilinear_predict16x16_ssse3
);
95 extern prototype_subpixel_predict(vp8_bilinear_predict8x8_ssse3
);
97 #if !CONFIG_RUNTIME_CPU_DETECT
98 #undef vp8_subpix_sixtap16x16
99 #define vp8_subpix_sixtap16x16 vp8_sixtap_predict16x16_ssse3
101 #undef vp8_subpix_sixtap8x8
102 #define vp8_subpix_sixtap8x8 vp8_sixtap_predict8x8_ssse3
104 #undef vp8_subpix_sixtap8x4
105 #define vp8_subpix_sixtap8x4 vp8_sixtap_predict8x4_ssse3
107 #undef vp8_subpix_sixtap4x4
108 #define vp8_subpix_sixtap4x4 vp8_sixtap_predict4x4_ssse3
111 #undef vp8_subpix_bilinear16x16
112 #define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_ssse3
114 #undef vp8_subpix_bilinear8x8
115 #define vp8_subpix_bilinear8x8 vp8_bilinear_predict8x8_ssse3