OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 * |
| 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. |
| 9 */ |
| 10 |
| 11 |
| 12 #ifndef VP9_COMMON_X86_VP9_SUBPIXEL_X86_H_ |
| 13 #define VP9_COMMON_X86_VP9_SUBPIXEL_X86_H_ |
| 14 |
| 15 /* Note: |
| 16 * |
| 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 |
| 20 */ |
| 21 |
| 22 #if HAVE_MMX |
| 23 extern prototype_subpixel_predict(vp9_sixtap_predict16x16_mmx); |
| 24 extern prototype_subpixel_predict(vp9_sixtap_predict8x8_mmx); |
| 25 extern prototype_subpixel_predict(vp9_sixtap_predict8x4_mmx); |
| 26 extern prototype_subpixel_predict(vp9_sixtap_predict4x4_mmx); |
| 27 extern prototype_subpixel_predict(vp9_bilinear_predict16x16_mmx); |
| 28 extern prototype_subpixel_predict(vp9_bilinear_predict8x8_mmx); |
| 29 extern prototype_subpixel_predict(vp9_bilinear_predict8x4_mmx); |
| 30 extern prototype_subpixel_predict(vp9_bilinear_predict4x4_mmx); |
| 31 |
| 32 |
| 33 #if !CONFIG_RUNTIME_CPU_DETECT |
| 34 #undef vp9_subpix_sixtap16x16 |
| 35 #define vp9_subpix_sixtap16x16 vp9_sixtap_predict16x16_mmx |
| 36 |
| 37 #undef vp9_subpix_sixtap8x8 |
| 38 #define vp9_subpix_sixtap8x8 vp9_sixtap_predict8x8_mmx |
| 39 |
| 40 #undef vp9_subpix_sixtap8x4 |
| 41 #define vp9_subpix_sixtap8x4 vp9_sixtap_predict8x4_mmx |
| 42 |
| 43 #undef vp9_subpix_sixtap4x4 |
| 44 #define vp9_subpix_sixtap4x4 vp9_sixtap_predict4x4_mmx |
| 45 |
| 46 #undef vp9_subpix_bilinear16x16 |
| 47 #define vp9_subpix_bilinear16x16 vp9_bilinear_predict16x16_mmx |
| 48 |
| 49 #undef vp9_subpix_bilinear8x8 |
| 50 #define vp9_subpix_bilinear8x8 vp9_bilinear_predict8x8_mmx |
| 51 |
| 52 #undef vp9_subpix_bilinear8x4 |
| 53 #define vp9_subpix_bilinear8x4 vp9_bilinear_predict8x4_mmx |
| 54 |
| 55 #undef vp9_subpix_bilinear4x4 |
| 56 #define vp9_subpix_bilinear4x4 vp9_bilinear_predict4x4_mmx |
| 57 |
| 58 #endif |
| 59 #endif |
| 60 |
| 61 |
| 62 #if HAVE_SSE2 |
| 63 extern prototype_subpixel_predict(vp9_sixtap_predict16x16_sse2); |
| 64 extern prototype_subpixel_predict(vp9_sixtap_predict8x8_sse2); |
| 65 extern prototype_subpixel_predict(vp9_sixtap_predict8x4_sse2); |
| 66 extern prototype_subpixel_predict(vp9_bilinear_predict16x16_sse2); |
| 67 extern prototype_subpixel_predict(vp9_bilinear_predict8x8_sse2); |
| 68 |
| 69 |
| 70 #if !CONFIG_RUNTIME_CPU_DETECT |
| 71 #undef vp9_subpix_sixtap16x16 |
| 72 #define vp9_subpix_sixtap16x16 vp9_sixtap_predict16x16_sse2 |
| 73 |
| 74 #undef vp9_subpix_sixtap8x8 |
| 75 #define vp9_subpix_sixtap8x8 vp9_sixtap_predict8x8_sse2 |
| 76 |
| 77 #undef vp9_subpix_sixtap8x4 |
| 78 #define vp9_subpix_sixtap8x4 vp9_sixtap_predict8x4_sse2 |
| 79 |
| 80 #undef vp9_subpix_bilinear16x16 |
| 81 #define vp9_subpix_bilinear16x16 vp9_bilinear_predict16x16_sse2 |
| 82 |
| 83 #undef vp9_subpix_bilinear8x8 |
| 84 #define vp9_subpix_bilinear8x8 vp9_bilinear_predict8x8_sse2 |
| 85 |
| 86 #endif |
| 87 #endif |
| 88 |
| 89 #if HAVE_SSSE3 |
| 90 extern prototype_subpixel_predict(vp9_sixtap_predict16x16_ssse3); |
| 91 extern prototype_subpixel_predict(vp9_sixtap_predict8x8_ssse3); |
| 92 extern prototype_subpixel_predict(vp9_sixtap_predict8x4_ssse3); |
| 93 extern prototype_subpixel_predict(vp9_sixtap_predict4x4_ssse3); |
| 94 extern prototype_subpixel_predict(vp9_bilinear_predict16x16_ssse3); |
| 95 extern prototype_subpixel_predict(vp9_bilinear_predict8x8_ssse3); |
| 96 |
| 97 #if !CONFIG_RUNTIME_CPU_DETECT |
| 98 #undef vp9_subpix_sixtap16x16 |
| 99 #define vp9_subpix_sixtap16x16 vp9_sixtap_predict16x16_ssse3 |
| 100 |
| 101 #undef vp9_subpix_sixtap8x8 |
| 102 #define vp9_subpix_sixtap8x8 vp9_sixtap_predict8x8_ssse3 |
| 103 |
| 104 #undef vp9_subpix_sixtap8x4 |
| 105 #define vp9_subpix_sixtap8x4 vp9_sixtap_predict8x4_ssse3 |
| 106 |
| 107 #undef vp9_subpix_sixtap4x4 |
| 108 #define vp9_subpix_sixtap4x4 vp9_sixtap_predict4x4_ssse3 |
| 109 |
| 110 |
| 111 #undef vp9_subpix_bilinear16x16 |
| 112 #define vp9_subpix_bilinear16x16 vp9_bilinear_predict16x16_ssse3 |
| 113 |
| 114 #undef vp9_subpix_bilinear8x8 |
| 115 #define vp9_subpix_bilinear8x8 vp9_bilinear_predict8x8_ssse3 |
| 116 |
| 117 #endif |
| 118 #endif |
| 119 |
| 120 |
| 121 |
| 122 #endif |
OLD | NEW |