vp9_subpixel_x86.h 3.77 KB
Newer Older
John Koleszar's avatar
John Koleszar committed
1
/*
2
 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
John Koleszar's avatar
John Koleszar committed
3
 *
4
 *  Use of this source code is governed by a BSD-style license
5
6
 *  that can be found in the LICENSE file in the root of the source
 *  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.
John Koleszar's avatar
John Koleszar committed
9
10
11
 */


12
13
#ifndef VP9_COMMON_X86_VP9_SUBPIXEL_X86_H_
#define VP9_COMMON_X86_VP9_SUBPIXEL_X86_H_
John Koleszar's avatar
John Koleszar committed
14
15
16
17
18
19
20
21
22

/* Note:
 *
 * This platform is commonly built for runtime CPU detection. If you modify
 * any of the function mappings present in this file, be sure to also update
 * them in the function pointer initialization code
 */

#if HAVE_MMX
23
24
25
26
27
28
29
30
extern prototype_subpixel_predict(vp9_sixtap_predict16x16_mmx);
extern prototype_subpixel_predict(vp9_sixtap_predict8x8_mmx);
extern prototype_subpixel_predict(vp9_sixtap_predict8x4_mmx);
extern prototype_subpixel_predict(vp9_sixtap_predict4x4_mmx);
extern prototype_subpixel_predict(vp9_bilinear_predict16x16_mmx);
extern prototype_subpixel_predict(vp9_bilinear_predict8x8_mmx);
extern prototype_subpixel_predict(vp9_bilinear_predict8x4_mmx);
extern prototype_subpixel_predict(vp9_bilinear_predict4x4_mmx);
John Koleszar's avatar
John Koleszar committed
31
32
33


#if !CONFIG_RUNTIME_CPU_DETECT
34
35
#undef  vp9_subpix_sixtap16x16
#define vp9_subpix_sixtap16x16 vp9_sixtap_predict16x16_mmx
John Koleszar's avatar
John Koleszar committed
36

37
38
#undef  vp9_subpix_sixtap8x8
#define vp9_subpix_sixtap8x8 vp9_sixtap_predict8x8_mmx
John Koleszar's avatar
John Koleszar committed
39

40
41
#undef  vp9_subpix_sixtap8x4
#define vp9_subpix_sixtap8x4 vp9_sixtap_predict8x4_mmx
John Koleszar's avatar
John Koleszar committed
42

43
44
#undef  vp9_subpix_sixtap4x4
#define vp9_subpix_sixtap4x4 vp9_sixtap_predict4x4_mmx
John Koleszar's avatar
John Koleszar committed
45

46
47
#undef  vp9_subpix_bilinear16x16
#define vp9_subpix_bilinear16x16 vp9_bilinear_predict16x16_mmx
John Koleszar's avatar
John Koleszar committed
48

49
50
#undef  vp9_subpix_bilinear8x8
#define vp9_subpix_bilinear8x8 vp9_bilinear_predict8x8_mmx
John Koleszar's avatar
John Koleszar committed
51

52
53
#undef  vp9_subpix_bilinear8x4
#define vp9_subpix_bilinear8x4 vp9_bilinear_predict8x4_mmx
John Koleszar's avatar
John Koleszar committed
54

55
56
#undef  vp9_subpix_bilinear4x4
#define vp9_subpix_bilinear4x4 vp9_bilinear_predict4x4_mmx
John Koleszar's avatar
John Koleszar committed
57
58
59
60
61
62

#endif
#endif


#if HAVE_SSE2
63
64
65
66
67
extern prototype_subpixel_predict(vp9_sixtap_predict16x16_sse2);
extern prototype_subpixel_predict(vp9_sixtap_predict8x8_sse2);
extern prototype_subpixel_predict(vp9_sixtap_predict8x4_sse2);
extern prototype_subpixel_predict(vp9_bilinear_predict16x16_sse2);
extern prototype_subpixel_predict(vp9_bilinear_predict8x8_sse2);
John Koleszar's avatar
John Koleszar committed
68
69
70


#if !CONFIG_RUNTIME_CPU_DETECT
71
72
#undef  vp9_subpix_sixtap16x16
#define vp9_subpix_sixtap16x16 vp9_sixtap_predict16x16_sse2
John Koleszar's avatar
John Koleszar committed
73

74
75
#undef  vp9_subpix_sixtap8x8
#define vp9_subpix_sixtap8x8 vp9_sixtap_predict8x8_sse2
John Koleszar's avatar
John Koleszar committed
76

77
78
#undef  vp9_subpix_sixtap8x4
#define vp9_subpix_sixtap8x4 vp9_sixtap_predict8x4_sse2
John Koleszar's avatar
John Koleszar committed
79

80
81
#undef  vp9_subpix_bilinear16x16
#define vp9_subpix_bilinear16x16 vp9_bilinear_predict16x16_sse2
John Koleszar's avatar
John Koleszar committed
82

83
84
#undef  vp9_subpix_bilinear8x8
#define vp9_subpix_bilinear8x8 vp9_bilinear_predict8x8_sse2
John Koleszar's avatar
John Koleszar committed
85
86
87
88

#endif
#endif

89
#if HAVE_SSSE3
90
91
92
93
94
95
extern prototype_subpixel_predict(vp9_sixtap_predict16x16_ssse3);
extern prototype_subpixel_predict(vp9_sixtap_predict8x8_ssse3);
extern prototype_subpixel_predict(vp9_sixtap_predict8x4_ssse3);
extern prototype_subpixel_predict(vp9_sixtap_predict4x4_ssse3);
extern prototype_subpixel_predict(vp9_bilinear_predict16x16_ssse3);
extern prototype_subpixel_predict(vp9_bilinear_predict8x8_ssse3);
96
97

#if !CONFIG_RUNTIME_CPU_DETECT
98
99
#undef  vp9_subpix_sixtap16x16
#define vp9_subpix_sixtap16x16 vp9_sixtap_predict16x16_ssse3
100

101
102
#undef  vp9_subpix_sixtap8x8
#define vp9_subpix_sixtap8x8 vp9_sixtap_predict8x8_ssse3
103

104
105
#undef  vp9_subpix_sixtap8x4
#define vp9_subpix_sixtap8x4 vp9_sixtap_predict8x4_ssse3
106

107
108
#undef  vp9_subpix_sixtap4x4
#define vp9_subpix_sixtap4x4 vp9_sixtap_predict4x4_ssse3
109
110


111
112
#undef  vp9_subpix_bilinear16x16
#define vp9_subpix_bilinear16x16 vp9_bilinear_predict16x16_ssse3
113

114
115
#undef  vp9_subpix_bilinear8x8
#define vp9_subpix_bilinear8x8 vp9_bilinear_predict8x8_ssse3
116
117
118
119
120

#endif
#endif


121

John Koleszar's avatar
John Koleszar committed
122
#endif