Line data Source code
1 : /*
2 : * Copyright(c) 2019 Intel Corporation
3 : * SPDX - License - Identifier: BSD - 2 - Clause - Patent
4 : */
5 :
6 : /*
7 : * Copyright (c) 2016, Alliance for Open Media. All rights reserved
8 : *
9 : * This source code is subject to the terms of the BSD 2 Clause License and
10 : * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
11 : * was not distributed with this source code in the LICENSE file, you can
12 : * obtain it at www.aomedia.org/license/software. If the Alliance for Open
13 : * Media Patent License 1.0 was not distributed with this source code in the
14 : * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
15 : */
16 :
17 : #define RTCD_C
18 : #include "aom_dsp_rtcd.h"
19 : #include "EbComputeSAD_C.h"
20 : #include "EbComputeSAD_SSE4_1.h"
21 : #include "EbComputeSAD_AVX2.h"
22 : #include "EbPictureAnalysisProcess.h"
23 : #include "EbTemporalFiltering.h"
24 : #include "EbTemporalFiltering_sse4.h"
25 : #include "EbComputeSAD.h"
26 : #include "EbMotionEstimation.h"
27 : #include "EbPictureOperators.h"
28 : #include "EbPackUnPack_C.h"
29 : #include "EbPackUnPack_SSE2.h"
30 : #include "EbPackUnPack_AVX2.h"
31 : #include "EbMcp_SSE2.h"
32 : #include "EbAvcStyleMcp_SSSE3.h"
33 : #include "EbComputeMean_SSE2.h"
34 : #include "EbCombinedAveragingSAD_Intrinsic_AVX2.h"
35 : #include "EbComputeMean.h"
36 : #include "EbHmCode.h"
37 : #include "EbMeSadCalculation.h"
38 :
39 : /**************************************
40 : * Instruction Set Support
41 : **************************************/
42 :
43 : // Helper Functions
44 9 : static INLINE void RunCpuid(uint32_t eax, uint32_t ecx, int32_t* abcd)
45 : {
46 : #ifdef _WIN32
47 : __cpuidex(abcd, eax, ecx);
48 : #else
49 9 : uint32_t ebx = 0, edx = 0;
50 : # if defined( __i386__ ) && defined ( __PIC__ )
51 : /* in case of PIC under 32-bit EBX cannot be clobbered */
52 : __asm__("movl %%ebx, %%edi \n\t cpuid \n\t xchgl %%ebx, %%edi" : "=D" (ebx),
53 : # else
54 9 : __asm__("cpuid" : "+b" (ebx),
55 : # endif
56 : "+a" (eax), "+c" (ecx), "=d" (edx));
57 9 : abcd[0] = eax; abcd[1] = ebx; abcd[2] = ecx; abcd[3] = edx;
58 : #endif
59 9 : }
60 :
61 3 : static INLINE int32_t CheckXcr0Ymm()
62 : {
63 : uint32_t xcr0;
64 : #ifdef _WIN32
65 : xcr0 = (uint32_t)_xgetbv(0); /* min VS2010 SP1 compiler is required */
66 : #else
67 3 : __asm__("xgetbv" : "=a" (xcr0) : "c" (0) : "%edx");
68 : #endif
69 3 : return ((xcr0 & 6) == 6); /* checking if xmm and ymm state are enabled in XCR0 */
70 : }
71 :
72 3 : int32_t Check4thGenIntelCoreFeatures()
73 : {
74 : int32_t abcd[4];
75 3 : int32_t fma_movbe_osxsave_mask = ((1 << 12) | (1 << 22) | (1 << 27));
76 3 : int32_t avx2_bmi12_mask = (1 << 5) | (1 << 3) | (1 << 8);
77 :
78 : /* CPUID.(EAX=01H, ECX=0H):ECX.FMA[bit 12]==1 &&
79 : CPUID.(EAX=01H, ECX=0H):ECX.MOVBE[bit 22]==1 &&
80 : CPUID.(EAX=01H, ECX=0H):ECX.OSXSAVE[bit 27]==1 */
81 3 : RunCpuid(1, 0, abcd);
82 3 : if ((abcd[2] & fma_movbe_osxsave_mask) != fma_movbe_osxsave_mask)
83 0 : return 0;
84 :
85 3 : if (!CheckXcr0Ymm())
86 0 : return 0;
87 :
88 : /* CPUID.(EAX=07H, ECX=0H):EBX.AVX2[bit 5]==1 &&
89 : CPUID.(EAX=07H, ECX=0H):EBX.BMI1[bit 3]==1 &&
90 : CPUID.(EAX=07H, ECX=0H):EBX.BMI2[bit 8]==1 */
91 3 : RunCpuid(7, 0, abcd);
92 3 : if ((abcd[1] & avx2_bmi12_mask) != avx2_bmi12_mask)
93 0 : return 0;
94 : /* CPUID.(EAX=80000001H):ECX.LZCNT[bit 5]==1 */
95 3 : RunCpuid(0x80000001, 0, abcd);
96 3 : if ((abcd[2] & (1 << 5)) == 0)
97 0 : return 0;
98 3 : return 1;
99 : }
100 :
101 0 : static INLINE int CheckXcr0Zmm()
102 : {
103 : uint32_t xcr0;
104 0 : uint32_t zmm_ymm_xmm = (7 << 5) | (1 << 2) | (1 << 1);
105 : #ifdef _WIN32
106 : xcr0 = (uint32_t)_xgetbv(0); /* min VS2010 SP1 compiler is required */
107 : #else
108 0 : __asm__("xgetbv" : "=a" (xcr0) : "c" (0) : "%edx");
109 : #endif
110 0 : return ((xcr0 & zmm_ymm_xmm) == zmm_ymm_xmm); /* check if xmm, ymm and zmm state are enabled in XCR0 */
111 : }
112 :
113 0 : int32_t CanUseIntelAVX512()
114 : {
115 : int abcd[4];
116 :
117 : /* CPUID.(EAX=07H, ECX=0):EBX[bit 16]==1 AVX512F
118 : CPUID.(EAX=07H, ECX=0):EBX[bit 17] AVX512DQ
119 : CPUID.(EAX=07H, ECX=0):EBX[bit 28] AVX512CD
120 : CPUID.(EAX=07H, ECX=0):EBX[bit 30] AVX512BW
121 : CPUID.(EAX=07H, ECX=0):EBX[bit 31] AVX512VL */
122 :
123 0 : int avx512_ebx_mask =
124 : (1 << 16) // AVX-512F
125 : | (1 << 17) // AVX-512DQ
126 : | (1 << 28) // AVX-512CD
127 : | (1 << 30) // AVX-512BW
128 : | (1 << 31); // AVX-512VL
129 :
130 0 : if (!Check4thGenIntelCoreFeatures())
131 0 : return 0;
132 :
133 : // ensure OS supports ZMM registers (and YMM, and XMM)
134 0 : if (!CheckXcr0Zmm())
135 0 : return 0;
136 :
137 0 : RunCpuid(7, 0, abcd);
138 0 : if ((abcd[1] & avx512_ebx_mask) != avx512_ebx_mask)
139 0 : return 0;
140 :
141 0 : return 1;
142 : }
143 :
144 : #ifndef NON_AVX512_SUPPORT
145 : #define SET_FUNCTIONS(ptr, c, mmx, sse, sse2, sse3, ssse3, sse4_1, sse4_2, avx, avx2, avx512) \
146 : do { ptr = c;\
147 : if (((uintptr_t)NULL != (uintptr_t)mmx) && (flags & HAS_MMX)) ptr = mmx; \
148 : if (((uintptr_t)NULL != (uintptr_t)sse) && (flags & HAS_SSE)) ptr = sse; \
149 : if (((uintptr_t)NULL != (uintptr_t)sse2) && (flags & HAS_SSE2)) ptr = sse2; \
150 : if (((uintptr_t)NULL != (uintptr_t)sse3) && (flags & HAS_SSE3)) ptr = sse3; \
151 : if (((uintptr_t)NULL != (uintptr_t)ssse3) && (flags & HAS_SSSE3)) ptr = ssse3; \
152 : if (((uintptr_t)NULL != (uintptr_t)sse4_1) && (flags & HAS_SSE4_1)) ptr = sse4_1; \
153 : if (((uintptr_t)NULL != (uintptr_t)sse4_2) && (flags & HAS_SSE4_2)) ptr = sse4_2; \
154 : if (((uintptr_t)NULL != (uintptr_t)avx) && (flags & HAS_AVX)) ptr = avx; \
155 : if (((uintptr_t)NULL != (uintptr_t)avx2) && (flags & HAS_AVX2)) ptr = avx2; \
156 : if (((uintptr_t)NULL != (uintptr_t)avx512) && use_avx512) ptr = avx512; \
157 : } while(0)
158 : #else
159 : #define SET_FUNCTIONS(ptr, c, mmx, sse, sse2, sse3, ssse3, sse4_1, sse4_2, avx, avx2, avx512) \
160 : do { ptr = c;\
161 : if (((uintptr_t)NULL != (uintptr_t)mmx) && (flags & HAS_MMX)) ptr = mmx; \
162 : if (((uintptr_t)NULL != (uintptr_t)sse) && (flags & HAS_SSE)) ptr = sse; \
163 : if (((uintptr_t)NULL != (uintptr_t)sse2) && (flags & HAS_SSE2)) ptr = sse2; \
164 : if (((uintptr_t)NULL != (uintptr_t)sse3) && (flags & HAS_SSE3)) ptr = sse3; \
165 : if (((uintptr_t)NULL != (uintptr_t)ssse3) && (flags & HAS_SSSE3)) ptr = ssse3; \
166 : if (((uintptr_t)NULL != (uintptr_t)sse4_1) && (flags & HAS_SSE4_1)) ptr = sse4_1; \
167 : if (((uintptr_t)NULL != (uintptr_t)sse4_2) && (flags & HAS_SSE4_2)) ptr = sse4_2; \
168 : if (((uintptr_t)NULL != (uintptr_t)avx) && (flags & HAS_AVX)) ptr = avx; \
169 : if (((uintptr_t)NULL != (uintptr_t)avx2) && (flags & HAS_AVX2)) ptr = avx2; \
170 : } while(0)
171 : #endif
172 :
173 : #define SET_SSE2(ptr, c, sse2) SET_FUNCTIONS(ptr, c, 0, 0, sse2, 0, 0, 0, 0, 0, 0, 0)
174 : #define SET_SSE2_AVX2(ptr, c, sse2, avx2) SET_FUNCTIONS(ptr, c, 0, 0, sse2, 0, 0, 0, 0, 0, avx2, 0)
175 : #define SET_SSSE3(ptr, c, ssse3) SET_FUNCTIONS(ptr, c, 0, 0, 0, 0, ssse3, 0, 0, 0, 0, 0)
176 : #define SET_SSE41(ptr, c, sse4_1) SET_FUNCTIONS(ptr, c, 0, 0, 0, 0, 0, sse4_1, 0, 0, 0, 0)
177 : #define SET_SSE41(ptr, c, sse4_1) SET_FUNCTIONS(ptr, c, 0, 0, 0, 0, 0, sse4_1, 0, 0, 0, 0)
178 : #define SET_SSE41_AVX2(ptr, c, sse4_1, avx2) SET_FUNCTIONS(ptr, c, 0, 0, 0, 0, 0, sse4_1, 0, 0, avx2, 0)
179 : #define SET_SSE41_AVX2_AVX512(ptr, c, sse4_1, avx2, avx512) SET_FUNCTIONS(ptr, c, 0, 0, 0, 0, 0, sse4_1, 0, 0, avx2, avx512)
180 : #define SET_AVX2(ptr, c, avx2) SET_FUNCTIONS(ptr, c, 0, 0, 0, 0, 0, 0, 0, 0, avx2, 0)
181 : #define SET_AVX2_AVX512(ptr, c, avx2, avx512) SET_FUNCTIONS(ptr, c, 0, 0, 0, 0, 0, 0, 0, 0, avx2, avx512)
182 :
183 :
184 3 : void setup_rtcd_internal(EbAsm asm_type)
185 : {
186 3 : int32_t flags = HAS_MMX | HAS_SSE | HAS_SSE2 | HAS_SSE3 | HAS_SSSE3 | HAS_SSE4_1 | HAS_SSE4_2 | HAS_AVX;
187 : #ifndef NON_AVX512_SUPPORT
188 : int32_t use_avx512 = CanUseIntelAVX512();
189 : #endif
190 :
191 3 : if (asm_type == ASM_AVX2)
192 3 : flags |= HAS_AVX2;
193 : //if (asm_type == ASM_NON_AVX2)
194 : // flags = ~HAS_AVX2;
195 :
196 : //to use C: flags=0
197 :
198 3 : eb_apply_selfguided_restoration = eb_apply_selfguided_restoration_c;
199 3 : if (flags & HAS_AVX2) eb_apply_selfguided_restoration = eb_apply_selfguided_restoration_avx2;
200 :
201 3 : eb_av1_wiener_convolve_add_src = eb_av1_wiener_convolve_add_src_c;
202 3 : if (flags & HAS_AVX2) eb_av1_wiener_convolve_add_src = eb_av1_wiener_convolve_add_src_avx2;
203 :
204 3 : eb_av1_highbd_wiener_convolve_add_src = eb_av1_highbd_wiener_convolve_add_src_c;
205 3 : if (flags & HAS_AVX2) eb_av1_highbd_wiener_convolve_add_src = eb_av1_highbd_wiener_convolve_add_src_avx2;
206 :
207 3 : eb_av1_selfguided_restoration = eb_av1_selfguided_restoration_c;
208 3 : if (flags & HAS_AVX2) eb_av1_selfguided_restoration = eb_av1_selfguided_restoration_avx2;
209 3 : av1_build_compound_diffwtd_mask = av1_build_compound_diffwtd_mask_c;
210 3 : if (flags & HAS_AVX2) av1_build_compound_diffwtd_mask = av1_build_compound_diffwtd_mask_avx2;
211 3 : av1_wedge_sse_from_residuals = av1_wedge_sse_from_residuals_c;
212 3 : if (flags & HAS_AVX2) av1_wedge_sse_from_residuals = av1_wedge_sse_from_residuals_avx2;
213 3 : aom_subtract_block = aom_subtract_block_c;
214 3 : if (flags & HAS_AVX2) aom_subtract_block = aom_subtract_block_avx2;
215 3 : aom_sse = aom_sse_c;
216 3 : if (flags & HAS_AVX2) aom_sse = aom_sse_avx2;
217 3 : av1_build_compound_diffwtd_mask_d16 = av1_build_compound_diffwtd_mask_d16_c;
218 3 : if (flags & HAS_AVX2) av1_build_compound_diffwtd_mask_d16 = av1_build_compound_diffwtd_mask_d16_avx2;
219 3 : aom_lowbd_blend_a64_d16_mask = aom_lowbd_blend_a64_d16_mask_c;
220 3 : if (flags & HAS_AVX2) aom_lowbd_blend_a64_d16_mask = aom_lowbd_blend_a64_d16_mask_avx2;
221 3 : aom_highbd_blend_a64_d16_mask = aom_highbd_blend_a64_d16_mask_c;
222 3 : if (flags & HAS_AVX2) aom_highbd_blend_a64_d16_mask = aom_highbd_blend_a64_d16_mask_avx2;
223 :
224 3 : av1_wedge_compute_delta_squares = av1_wedge_compute_delta_squares_c;
225 3 : if (flags & HAS_AVX2) av1_wedge_compute_delta_squares = av1_wedge_compute_delta_squares_avx2;
226 3 : av1_wedge_sign_from_residuals = av1_wedge_sign_from_residuals_c;
227 3 : if (flags & HAS_AVX2) av1_wedge_sign_from_residuals = av1_wedge_sign_from_residuals_avx2;
228 :
229 3 : eb_cdef_find_dir = eb_cdef_find_dir_c;
230 3 : if (flags & HAS_AVX2) eb_cdef_find_dir = eb_cdef_find_dir_avx2;
231 :
232 3 : eb_cdef_filter_block = eb_cdef_filter_block_c;
233 3 : if (flags & HAS_AVX2) eb_cdef_filter_block = eb_cdef_filter_block_avx2;
234 3 : eb_compute_cdef_dist = compute_cdef_dist_c;
235 3 : if (flags & HAS_AVX2) eb_compute_cdef_dist = compute_cdef_dist_avx2;
236 3 : eb_compute_cdef_dist_8bit = compute_cdef_dist_8bit_c;
237 3 : if (flags & HAS_AVX2) eb_compute_cdef_dist_8bit = compute_cdef_dist_8bit_avx2;
238 :
239 : #if PREDICT_NSQ_SHAPE
240 3 : spatial_full_distortion = spatial_full_distortion_helper;
241 3 : if (flags & HAS_AVX2) spatial_full_distortion = spatial_full_distortion_avx2_helper;
242 : #endif
243 :
244 3 : eb_copy_rect8_8bit_to_16bit = eb_copy_rect8_8bit_to_16bit_c;
245 3 : if (flags & HAS_AVX2) eb_copy_rect8_8bit_to_16bit = eb_copy_rect8_8bit_to_16bit_avx2;
246 :
247 3 : eb_av1_compute_stats = eb_av1_compute_stats_c;
248 3 : if (flags & HAS_AVX2) eb_av1_compute_stats = eb_av1_compute_stats_avx2;
249 3 : eb_av1_compute_stats_highbd = eb_av1_compute_stats_highbd_c;
250 3 : if (flags & HAS_AVX2) eb_av1_compute_stats_highbd = eb_av1_compute_stats_highbd_avx2;
251 3 : eb_cdef_filter_block_8x8_16 = eb_cdef_filter_block_8x8_16_avx2; // It has no c version, and is only called in parent avx2 function, so it's safe to initialize to avx2 version.
252 : #ifndef NON_AVX512_SUPPORT
253 : if (CanUseIntelAVX512()) {
254 : eb_cdef_filter_block_8x8_16 = eb_cdef_filter_block_8x8_16_avx512;
255 : eb_av1_compute_stats = eb_av1_compute_stats_avx512;
256 : eb_av1_compute_stats_highbd = eb_av1_compute_stats_highbd_avx512;
257 : }
258 : #endif
259 :
260 3 : eb_av1_lowbd_pixel_proj_error = eb_av1_lowbd_pixel_proj_error_c;
261 3 : eb_av1_highbd_pixel_proj_error = eb_av1_highbd_pixel_proj_error_c;
262 3 : if (flags & HAS_AVX2) eb_av1_highbd_pixel_proj_error = eb_av1_highbd_pixel_proj_error_avx2;
263 3 : eb_av1_filter_intra_edge_high = eb_av1_filter_intra_edge_high_c;
264 3 : if (flags & HAS_SSE4_1) eb_av1_filter_intra_edge_high = eb_av1_filter_intra_edge_high_sse4_1;
265 3 : eb_av1_calc_frame_error = eb_av1_calc_frame_error_c;
266 3 : if (flags & HAS_AVX2) eb_av1_calc_frame_error = eb_av1_calc_frame_error_avx2;
267 3 : eb_av1_highbd_convolve_2d_copy_sr = eb_av1_highbd_convolve_2d_copy_sr_c;
268 3 : if (flags & HAS_AVX2) eb_av1_highbd_convolve_2d_copy_sr = eb_av1_highbd_convolve_2d_copy_sr_avx2;
269 3 : eb_av1_highbd_jnt_convolve_2d_copy = eb_av1_highbd_jnt_convolve_2d_copy_c;
270 3 : if (flags & HAS_AVX2) eb_av1_highbd_jnt_convolve_2d_copy = eb_av1_highbd_jnt_convolve_2d_copy_avx2;
271 3 : eb_av1_highbd_convolve_y_sr = eb_av1_highbd_convolve_y_sr_c;
272 3 : if (flags & HAS_AVX2) eb_av1_highbd_convolve_y_sr = eb_av1_highbd_convolve_y_sr_avx2;
273 3 : eb_av1_highbd_convolve_2d_sr = eb_av1_highbd_convolve_2d_sr_c;
274 3 : if (flags & HAS_AVX2) eb_av1_highbd_convolve_2d_sr = eb_av1_highbd_convolve_2d_sr_avx2;
275 :
276 3 : eb_av1_highbd_convolve_2d_scale = eb_av1_highbd_convolve_2d_scale_c;
277 : //if (flags & HAS_SSE4_1) eb_av1_highbd_convolve_2d_scale = eb_av1_highbd_convolve_2d_scale_sse4_1
278 :
279 3 : eb_av1_highbd_jnt_convolve_2d = eb_av1_highbd_jnt_convolve_2d_c;
280 3 : if (flags & HAS_AVX2) eb_av1_highbd_jnt_convolve_2d = eb_av1_highbd_jnt_convolve_2d_avx2;
281 3 : eb_av1_highbd_jnt_convolve_x = eb_av1_highbd_jnt_convolve_x_c;
282 3 : if (flags & HAS_AVX2) eb_av1_highbd_jnt_convolve_x = eb_av1_highbd_jnt_convolve_x_avx2;
283 3 : eb_av1_highbd_jnt_convolve_y = eb_av1_highbd_jnt_convolve_y_c;
284 3 : if (flags & HAS_AVX2) eb_av1_highbd_jnt_convolve_y = eb_av1_highbd_jnt_convolve_y_avx2;
285 3 : eb_av1_highbd_convolve_x_sr = eb_av1_highbd_convolve_x_sr_c;
286 3 : if (flags & HAS_AVX2) eb_av1_highbd_convolve_x_sr = eb_av1_highbd_convolve_x_sr_avx2;
287 3 : eb_subtract_average = eb_subtract_average_c;
288 3 : if (flags & HAS_AVX2) eb_subtract_average = eb_subtract_average_avx2;
289 :
290 3 : eb_av1_filter_intra_edge = eb_av1_filter_intra_edge_high_c_old;
291 :
292 3 : if (flags & HAS_SSE4_1) eb_av1_filter_intra_edge = eb_av1_filter_intra_edge_sse4_1;
293 :
294 3 : eb_smooth_v_predictor = smooth_v_predictor_c;
295 3 : if (flags & HAS_SSSE3) eb_smooth_v_predictor = eb_smooth_v_predictor_all_ssse3;
296 :
297 3 : eb_smooth_h_predictor = smooth_h_predictor_c;
298 3 : if (flags & HAS_SSSE3) eb_smooth_h_predictor = eb_smooth_h_predictor_all_ssse3;
299 :
300 3 : get_proj_subspace = get_proj_subspace_c;
301 3 : if (flags & HAS_AVX2) get_proj_subspace = get_proj_subspace_avx2;
302 :
303 3 : search_one_dual = search_one_dual_c;
304 3 : if (flags & HAS_AVX2) search_one_dual = search_one_dual_avx2;
305 :
306 3 : eb_aom_mse16x16 = eb_aom_mse16x16_c;
307 3 : if (flags & HAS_AVX2) eb_aom_mse16x16 = eb_aom_mse16x16_avx2;
308 :
309 3 : eb_av1_convolve_2d_copy_sr = eb_av1_convolve_2d_copy_sr_c;
310 3 : if (flags & HAS_AVX2) eb_av1_convolve_2d_copy_sr = eb_av1_convolve_2d_copy_sr_avx2;
311 :
312 3 : eb_av1_convolve_2d_sr = eb_av1_convolve_2d_sr_c;
313 3 : if (flags & HAS_AVX2) eb_av1_convolve_2d_sr = eb_av1_convolve_2d_sr_avx2;
314 :
315 3 : eb_av1_jnt_convolve_2d_copy = eb_av1_jnt_convolve_2d_copy_c;
316 3 : if (flags & HAS_AVX2) eb_av1_jnt_convolve_2d_copy = eb_av1_jnt_convolve_2d_copy_avx2;
317 :
318 3 : eb_av1_convolve_x_sr = eb_av1_convolve_x_sr_c;
319 3 : if (flags & HAS_AVX2) eb_av1_convolve_x_sr = eb_av1_convolve_x_sr_avx2;
320 3 : eb_av1_convolve_y_sr = eb_av1_convolve_y_sr_c;
321 3 : if (flags & HAS_AVX2) eb_av1_convolve_y_sr = eb_av1_convolve_y_sr_avx2;
322 :
323 3 : eb_av1_convolve_2d_scale = eb_av1_convolve_2d_scale_c;
324 : //if (flags & HAS_SSE4_1) eb_av1_convolve_2d_scale = eb_av1_convolve_2d_scale_sse4_1;
325 :
326 3 : eb_av1_jnt_convolve_x = eb_av1_jnt_convolve_x_c;
327 3 : if (flags & HAS_AVX2) eb_av1_jnt_convolve_x = eb_av1_jnt_convolve_x_avx2;
328 3 : eb_av1_jnt_convolve_y = eb_av1_jnt_convolve_y_c;
329 3 : if (flags & HAS_AVX2) eb_av1_jnt_convolve_y = eb_av1_jnt_convolve_y_avx2;
330 :
331 3 : eb_av1_jnt_convolve_2d = eb_av1_jnt_convolve_2d_c;
332 3 : if (flags & HAS_AVX2) eb_av1_jnt_convolve_2d = eb_av1_jnt_convolve_2d_avx2;
333 :
334 3 : eb_aom_quantize_b = eb_aom_quantize_b_c_II;
335 3 : if (flags & HAS_AVX2) eb_aom_quantize_b = eb_aom_quantize_b_avx2;
336 :
337 3 : eb_aom_quantize_b_32x32 = eb_aom_quantize_b_32x32_c_II;
338 3 : if (flags & HAS_AVX2) eb_aom_quantize_b_32x32 = eb_aom_quantize_b_32x32_avx2;
339 :
340 3 : eb_aom_highbd_quantize_b_32x32 = eb_aom_highbd_quantize_b_32x32_c;
341 3 : if (flags & HAS_AVX2) eb_aom_highbd_quantize_b_32x32 = eb_aom_highbd_quantize_b_32x32_avx2;
342 :
343 3 : eb_aom_highbd_quantize_b = eb_aom_highbd_quantize_b_c;
344 3 : if (flags & HAS_AVX2) eb_aom_highbd_quantize_b = eb_aom_highbd_quantize_b_avx2;
345 :
346 3 : eb_av1_inv_txfm2d_add_16x16 = eb_av1_inv_txfm2d_add_16x16_c;
347 3 : eb_av1_inv_txfm2d_add_32x32 = eb_av1_inv_txfm2d_add_32x32_c;
348 3 : eb_av1_inv_txfm2d_add_4x4 = eb_av1_inv_txfm2d_add_4x4_c;
349 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_4x4 = eb_av1_inv_txfm2d_add_4x4_avx2;
350 3 : eb_av1_inv_txfm2d_add_64x64 = eb_av1_inv_txfm2d_add_64x64_c;
351 3 : eb_av1_inv_txfm2d_add_8x8 = eb_av1_inv_txfm2d_add_8x8_c;
352 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_8x8 = eb_av1_inv_txfm2d_add_8x8_avx2;
353 :
354 3 : eb_av1_inv_txfm2d_add_8x16 = eb_av1_inv_txfm2d_add_8x16_c;
355 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_8x16 = eb_av1_highbd_inv_txfm_add_avx2;
356 3 : eb_av1_inv_txfm2d_add_16x8 = eb_av1_inv_txfm2d_add_16x8_c;
357 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_16x8 = eb_av1_highbd_inv_txfm_add_avx2;
358 3 : eb_av1_inv_txfm2d_add_16x32 = eb_av1_inv_txfm2d_add_16x32_c;
359 3 : eb_av1_inv_txfm2d_add_32x16 = eb_av1_inv_txfm2d_add_32x16_c;
360 3 : eb_av1_inv_txfm2d_add_32x8 = eb_av1_inv_txfm2d_add_32x8_c;
361 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_32x8 = eb_av1_highbd_inv_txfm_add_avx2;
362 3 : eb_av1_inv_txfm2d_add_8x32 = eb_av1_inv_txfm2d_add_8x32_c;
363 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_8x32 = eb_av1_highbd_inv_txfm_add_avx2;
364 3 : eb_av1_inv_txfm2d_add_32x64 = eb_av1_inv_txfm2d_add_32x64_c;
365 3 : eb_av1_inv_txfm2d_add_64x32 = eb_av1_inv_txfm2d_add_64x32_c;
366 3 : eb_av1_inv_txfm2d_add_16x64 = eb_av1_inv_txfm2d_add_16x64_c;
367 3 : eb_av1_inv_txfm2d_add_64x16 = eb_av1_inv_txfm2d_add_64x16_c;
368 3 : eb_av1_inv_txfm2d_add_4x8 = eb_av1_inv_txfm2d_add_4x8_c;
369 3 : if (flags & HAS_SSE4_1) eb_av1_inv_txfm2d_add_4x8 = eb_av1_inv_txfm2d_add_4x8_sse4_1;
370 3 : eb_av1_inv_txfm2d_add_8x4 = eb_av1_inv_txfm2d_add_8x4_c;
371 3 : if (flags & HAS_SSE4_1) eb_av1_inv_txfm2d_add_8x4 = eb_av1_inv_txfm2d_add_8x4_sse4_1;
372 3 : eb_av1_inv_txfm2d_add_4x16 = eb_av1_inv_txfm2d_add_4x16_c;
373 3 : if (flags & HAS_SSE4_1) eb_av1_inv_txfm2d_add_4x16 = eb_av1_inv_txfm2d_add_4x16_sse4_1;
374 3 : eb_av1_inv_txfm2d_add_16x4 = eb_av1_inv_txfm2d_add_16x4_c;
375 3 : if (flags & HAS_SSE4_1) eb_av1_inv_txfm2d_add_16x4 = eb_av1_inv_txfm2d_add_16x4_sse4_1;
376 :
377 : #ifndef NON_AVX512_SUPPORT
378 : if (CanUseIntelAVX512()) {
379 : eb_av1_inv_txfm2d_add_16x16 = eb_av1_inv_txfm2d_add_16x16_avx512;
380 : eb_av1_inv_txfm2d_add_32x32 = eb_av1_inv_txfm2d_add_32x32_avx512;
381 : eb_av1_inv_txfm2d_add_64x64 = eb_av1_inv_txfm2d_add_64x64_avx512;
382 : eb_av1_inv_txfm2d_add_16x64 = eb_av1_inv_txfm2d_add_16x64_avx512;
383 : eb_av1_inv_txfm2d_add_64x16 = eb_av1_inv_txfm2d_add_64x16_avx512;
384 : eb_av1_inv_txfm2d_add_32x64 = eb_av1_inv_txfm2d_add_32x64_avx512;
385 : eb_av1_inv_txfm2d_add_64x32 = eb_av1_inv_txfm2d_add_64x32_avx512;
386 : eb_av1_inv_txfm2d_add_16x32 = eb_av1_inv_txfm2d_add_16x32_avx512;
387 : eb_av1_inv_txfm2d_add_32x16 = eb_av1_inv_txfm2d_add_32x16_avx512;
388 : eb_av1_lowbd_pixel_proj_error = eb_av1_lowbd_pixel_proj_error_avx512;
389 : }
390 : #else
391 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_16x16 = eb_av1_inv_txfm2d_add_16x16_avx2;
392 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_32x32 = eb_av1_inv_txfm2d_add_32x32_avx2;
393 3 : if (flags & HAS_SSE4_1) eb_av1_inv_txfm2d_add_64x64 = eb_av1_inv_txfm2d_add_64x64_sse4_1;
394 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_16x64 = eb_av1_highbd_inv_txfm_add_avx2;
395 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_64x16 = eb_av1_highbd_inv_txfm_add_avx2;
396 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_32x64 = eb_av1_highbd_inv_txfm_add_avx2;
397 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_64x32 = eb_av1_highbd_inv_txfm_add_avx2;
398 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_16x32 = eb_av1_highbd_inv_txfm_add_avx2;
399 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm2d_add_32x16 = eb_av1_highbd_inv_txfm_add_avx2;
400 3 : if (flags & HAS_AVX2) eb_av1_lowbd_pixel_proj_error = eb_av1_lowbd_pixel_proj_error_avx2;
401 : #endif
402 3 : eb_av1_inv_txfm_add = eb_av1_inv_txfm_add_c;
403 3 : if (flags & HAS_SSSE3) eb_av1_inv_txfm_add = eb_av1_inv_txfm_add_ssse3;
404 3 : if (flags & HAS_AVX2) eb_av1_inv_txfm_add = eb_av1_inv_txfm_add_avx2;
405 :
406 3 : eb_av1_quantize_fp = eb_av1_quantize_fp_c;
407 3 : if (flags & HAS_AVX2) eb_av1_quantize_fp = eb_av1_quantize_fp_avx2;
408 :
409 3 : eb_av1_quantize_fp_32x32 = eb_av1_quantize_fp_32x32_c;
410 3 : if (flags & HAS_AVX2) eb_av1_quantize_fp_32x32 = eb_av1_quantize_fp_32x32_avx2;
411 :
412 3 : eb_av1_quantize_fp_64x64 = eb_av1_quantize_fp_64x64_c;
413 3 : if (flags & HAS_AVX2) eb_av1_quantize_fp_64x64 = eb_av1_quantize_fp_64x64_avx2;
414 :
415 3 : eb_av1_highbd_quantize_fp = eb_av1_highbd_quantize_fp_c;
416 3 : if (flags & HAS_AVX2) eb_av1_highbd_quantize_fp = eb_av1_highbd_quantize_fp_avx2;
417 :
418 3 : highbd_variance64 = highbd_variance64_c;
419 3 : if (flags & HAS_AVX2) highbd_variance64 = highbd_variance64_avx2;
420 :
421 3 : eb_aom_highbd_8_mse16x16 = eb_aom_highbd_8_mse16x16_c;
422 3 : if (flags & HAS_SSE2) eb_aom_highbd_8_mse16x16 = eb_aom_highbd_8_mse16x16_sse2;
423 :
424 3 : eb_av1_upsample_intra_edge = eb_av1_upsample_intra_edge_c;
425 3 : if (flags & HAS_SSE4_1) eb_av1_upsample_intra_edge = eb_av1_upsample_intra_edge_sse4_1;
426 :
427 3 : eb_av1_warp_affine = eb_av1_warp_affine_c;
428 3 : if (flags & HAS_AVX2) eb_av1_warp_affine = eb_av1_warp_affine_avx2;
429 :
430 3 : eb_av1_filter_intra_predictor = eb_av1_filter_intra_predictor_c;
431 : #if FILTER_INTRA_FLAG
432 3 : if (flags & HAS_SSE4_1) eb_av1_filter_intra_predictor = eb_av1_filter_intra_predictor_sse4_1;
433 : #endif
434 :
435 3 : eb_aom_highbd_smooth_v_predictor_16x16 = eb_aom_highbd_smooth_v_predictor_16x16_c;
436 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_16x16 = eb_aom_highbd_smooth_v_predictor_16x16_avx2;
437 3 : eb_aom_highbd_smooth_v_predictor_16x32 = eb_aom_highbd_smooth_v_predictor_16x32_c;
438 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_16x32 = eb_aom_highbd_smooth_v_predictor_16x32_avx2;
439 3 : eb_aom_highbd_smooth_v_predictor_16x4 = eb_aom_highbd_smooth_v_predictor_16x4_c;
440 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_16x4 = eb_aom_highbd_smooth_v_predictor_16x4_avx2;
441 3 : eb_aom_highbd_smooth_v_predictor_16x64 = eb_aom_highbd_smooth_v_predictor_16x64_c;
442 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_16x64 = eb_aom_highbd_smooth_v_predictor_16x64_avx2;
443 3 : eb_aom_highbd_smooth_v_predictor_16x8 = eb_aom_highbd_smooth_v_predictor_16x8_c;
444 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_16x8 = eb_aom_highbd_smooth_v_predictor_16x8_avx2;
445 3 : eb_aom_highbd_smooth_v_predictor_2x2 = eb_aom_highbd_smooth_v_predictor_2x2_c;
446 3 : eb_aom_highbd_smooth_v_predictor_32x16 = eb_aom_highbd_smooth_v_predictor_32x16_c;
447 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_32x16 = eb_aom_highbd_smooth_v_predictor_32x16_avx2;
448 3 : eb_aom_highbd_smooth_v_predictor_32x32 = eb_aom_highbd_smooth_v_predictor_32x32_c;
449 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_32x32 = eb_aom_highbd_smooth_v_predictor_32x32_avx2;
450 3 : eb_aom_highbd_smooth_v_predictor_32x64 = eb_aom_highbd_smooth_v_predictor_32x64_c;
451 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_32x64 = eb_aom_highbd_smooth_v_predictor_32x64_avx2;
452 3 : eb_aom_highbd_smooth_v_predictor_32x8 = eb_aom_highbd_smooth_v_predictor_32x8_c;
453 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_32x8 = eb_aom_highbd_smooth_v_predictor_32x8_avx2;
454 3 : eb_aom_highbd_smooth_v_predictor_4x16 = eb_aom_highbd_smooth_v_predictor_4x16_c;
455 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_v_predictor_4x16 = eb_aom_highbd_smooth_v_predictor_4x16_ssse3;
456 3 : eb_aom_highbd_smooth_v_predictor_4x4 = eb_aom_highbd_smooth_v_predictor_4x4_c;
457 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_v_predictor_4x4 = eb_aom_highbd_smooth_v_predictor_4x4_ssse3;
458 3 : eb_aom_highbd_smooth_v_predictor_4x8 = eb_aom_highbd_smooth_v_predictor_4x8_c;
459 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_v_predictor_4x8 = eb_aom_highbd_smooth_v_predictor_4x8_ssse3;
460 3 : eb_aom_highbd_smooth_v_predictor_64x16 = eb_aom_highbd_smooth_v_predictor_64x16_c;
461 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_64x16 = eb_aom_highbd_smooth_v_predictor_64x16_avx2;
462 3 : eb_aom_highbd_smooth_v_predictor_64x32 = eb_aom_highbd_smooth_v_predictor_64x32_c;
463 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_64x32 = eb_aom_highbd_smooth_v_predictor_64x32_avx2;
464 3 : eb_aom_highbd_smooth_v_predictor_64x64 = eb_aom_highbd_smooth_v_predictor_64x64_c;
465 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_64x64 = eb_aom_highbd_smooth_v_predictor_64x64_avx2;
466 3 : eb_aom_highbd_smooth_v_predictor_8x16 = eb_aom_highbd_smooth_v_predictor_8x16_c;
467 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_8x16 = eb_aom_highbd_smooth_v_predictor_8x16_avx2;
468 3 : eb_aom_highbd_smooth_v_predictor_8x32 = eb_aom_highbd_smooth_v_predictor_8x32_c;
469 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_8x32 = eb_aom_highbd_smooth_v_predictor_8x32_avx2;
470 3 : eb_aom_highbd_smooth_v_predictor_8x4 = eb_aom_highbd_smooth_v_predictor_8x4_c;
471 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_8x4 = eb_aom_highbd_smooth_v_predictor_8x4_avx2;
472 3 : eb_aom_highbd_smooth_v_predictor_8x8 = eb_aom_highbd_smooth_v_predictor_8x8_c;
473 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_v_predictor_8x8 = eb_aom_highbd_smooth_v_predictor_8x8_avx2;
474 :
475 3 : eb_cfl_predict_lbd = eb_cfl_predict_lbd_c;
476 3 : if (flags & HAS_AVX2) eb_cfl_predict_lbd = eb_cfl_predict_lbd_avx2;
477 3 : eb_cfl_predict_hbd = eb_cfl_predict_hbd_c;
478 3 : if (flags & HAS_AVX2) eb_cfl_predict_hbd = eb_cfl_predict_hbd_avx2;
479 :
480 3 : eb_av1_dr_prediction_z1 = eb_av1_dr_prediction_z1_c;
481 3 : if (flags & HAS_AVX2) eb_av1_dr_prediction_z1 = eb_av1_dr_prediction_z1_avx2;
482 3 : eb_av1_dr_prediction_z2 = eb_av1_dr_prediction_z2_c;
483 3 : if (flags & HAS_AVX2) eb_av1_dr_prediction_z2 = eb_av1_dr_prediction_z2_avx2;
484 3 : eb_av1_dr_prediction_z3 = eb_av1_dr_prediction_z3_c;
485 3 : if (flags & HAS_AVX2) eb_av1_dr_prediction_z3 = eb_av1_dr_prediction_z3_avx2;
486 3 : eb_av1_highbd_dr_prediction_z1 = eb_av1_highbd_dr_prediction_z1_c;
487 3 : if (flags & HAS_AVX2) eb_av1_highbd_dr_prediction_z1 = eb_av1_highbd_dr_prediction_z1_avx2;
488 3 : eb_av1_highbd_dr_prediction_z2 = eb_av1_highbd_dr_prediction_z2_c;
489 3 : if (flags & HAS_AVX2) eb_av1_highbd_dr_prediction_z2 = eb_av1_highbd_dr_prediction_z2_avx2;
490 3 : eb_av1_highbd_dr_prediction_z3 = eb_av1_highbd_dr_prediction_z3_c;
491 3 : if (flags & HAS_AVX2) eb_av1_highbd_dr_prediction_z3 = eb_av1_highbd_dr_prediction_z3_avx2;
492 3 : eb_av1_get_nz_map_contexts = eb_av1_get_nz_map_contexts_c;
493 3 : if (flags & HAS_SSE2) eb_av1_get_nz_map_contexts = eb_av1_get_nz_map_contexts_sse2;
494 :
495 : #if II_COMP_FLAG
496 3 : aom_blend_a64_mask = aom_blend_a64_mask_c;
497 3 : if (flags & HAS_SSE4_1) aom_blend_a64_mask = aom_blend_a64_mask_sse4_1;
498 3 : if (flags & HAS_AVX2) aom_blend_a64_mask = aom_blend_a64_mask_avx2;
499 : #endif //II_COMP_FLAG
500 3 : aom_blend_a64_hmask = aom_blend_a64_hmask_c;
501 3 : if (flags & HAS_SSE4_1) aom_blend_a64_hmask = aom_blend_a64_hmask_sse4_1;
502 3 : aom_blend_a64_vmask = aom_blend_a64_vmask_c;
503 3 : if (flags & HAS_SSE4_1) aom_blend_a64_vmask = aom_blend_a64_vmask_sse4_1;
504 :
505 3 : aom_highbd_blend_a64_mask = aom_highbd_blend_a64_mask_c;
506 3 : if (flags & HAS_SSE4_1) aom_highbd_blend_a64_mask = aom_highbd_blend_a64_mask_sse4_1;
507 3 : aom_highbd_blend_a64_hmask = aom_highbd_blend_a64_hmask_c;
508 3 : if (flags & HAS_SSE4_1) aom_highbd_blend_a64_hmask = aom_highbd_blend_a64_hmask_sse4_1;
509 3 : aom_highbd_blend_a64_vmask = aom_highbd_blend_a64_vmask_c;
510 3 : if (flags & HAS_SSE4_1) aom_highbd_blend_a64_vmask = aom_highbd_blend_a64_vmask_sse4_1;
511 :
512 3 : eb_aom_paeth_predictor_16x16 = eb_aom_paeth_predictor_16x16_c;
513 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_16x16 = eb_aom_paeth_predictor_16x16_ssse3;
514 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_16x16 = eb_aom_paeth_predictor_16x16_avx2;
515 3 : eb_aom_paeth_predictor_16x32 = eb_aom_paeth_predictor_16x32_c;
516 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_16x32 = eb_aom_paeth_predictor_16x32_ssse3;
517 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_16x32 = eb_aom_paeth_predictor_16x32_avx2;
518 3 : eb_aom_paeth_predictor_16x4 = eb_aom_paeth_predictor_16x4_c;
519 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_16x4 = eb_aom_paeth_predictor_16x4_ssse3;
520 3 : eb_aom_paeth_predictor_16x64 = eb_aom_paeth_predictor_16x64_c;
521 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_16x64 = eb_aom_paeth_predictor_16x64_ssse3;
522 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_16x64 = eb_aom_paeth_predictor_16x64_avx2;
523 3 : eb_aom_paeth_predictor_16x8 = eb_aom_paeth_predictor_16x8_c;
524 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_16x8 = eb_aom_paeth_predictor_16x8_ssse3;
525 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_16x8 = eb_aom_paeth_predictor_16x8_avx2;
526 3 : eb_aom_paeth_predictor_32x16 = eb_aom_paeth_predictor_32x16_c;
527 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_32x16 = eb_aom_paeth_predictor_32x16_ssse3;
528 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_32x16 = eb_aom_paeth_predictor_32x16_avx2;
529 3 : eb_aom_paeth_predictor_32x32 = eb_aom_paeth_predictor_32x32_c;
530 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_32x32 = eb_aom_paeth_predictor_32x32_ssse3;
531 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_32x32 = eb_aom_paeth_predictor_32x32_avx2;
532 3 : eb_aom_paeth_predictor_32x64 = eb_aom_paeth_predictor_32x64_c;
533 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_32x64 = eb_aom_paeth_predictor_32x64_ssse3;
534 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_32x64 = eb_aom_paeth_predictor_32x64_avx2;
535 3 : eb_aom_paeth_predictor_32x8 = eb_aom_paeth_predictor_32x8_c;
536 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_32x8 = eb_aom_paeth_predictor_32x8_ssse3;
537 3 : eb_aom_paeth_predictor_4x16 = eb_aom_paeth_predictor_4x16_c;
538 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_4x16 = eb_aom_paeth_predictor_4x16_ssse3;
539 3 : eb_aom_paeth_predictor_4x4 = eb_aom_paeth_predictor_4x4_c;
540 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_4x4 = eb_aom_paeth_predictor_4x4_ssse3;
541 3 : eb_aom_paeth_predictor_4x8 = eb_aom_paeth_predictor_4x8_c;
542 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_4x8 = eb_aom_paeth_predictor_4x8_ssse3;
543 3 : eb_aom_paeth_predictor_64x16 = eb_aom_paeth_predictor_64x16_c;
544 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_64x16 = eb_aom_paeth_predictor_64x16_ssse3;
545 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_64x16 = eb_aom_paeth_predictor_64x16_avx2;
546 3 : eb_aom_paeth_predictor_64x32 = eb_aom_paeth_predictor_64x32_c;
547 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_64x32 = eb_aom_paeth_predictor_64x32_ssse3;
548 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_64x32 = eb_aom_paeth_predictor_64x32_avx2;
549 3 : eb_aom_paeth_predictor_64x64 = eb_aom_paeth_predictor_64x64_c;
550 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_64x64 = eb_aom_paeth_predictor_64x64_ssse3;
551 3 : if (flags & HAS_AVX2) eb_aom_paeth_predictor_64x64 = eb_aom_paeth_predictor_64x64_avx2;
552 3 : eb_aom_paeth_predictor_8x16 = eb_aom_paeth_predictor_8x16_c;
553 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_8x16 = eb_aom_paeth_predictor_8x16_ssse3;
554 3 : eb_aom_paeth_predictor_8x32 = eb_aom_paeth_predictor_8x32_c;
555 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_8x32 = eb_aom_paeth_predictor_8x32_ssse3;
556 3 : eb_aom_paeth_predictor_8x4 = eb_aom_paeth_predictor_8x4_c;
557 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_8x4 = eb_aom_paeth_predictor_8x4_ssse3;
558 3 : eb_aom_paeth_predictor_8x8 = eb_aom_paeth_predictor_8x8_c;
559 3 : if (flags & HAS_SSSE3) eb_aom_paeth_predictor_8x8 = eb_aom_paeth_predictor_8x8_ssse3;
560 :
561 3 : eb_aom_highbd_paeth_predictor_16x16 = eb_aom_highbd_paeth_predictor_16x16_c;
562 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_16x16 = eb_aom_highbd_paeth_predictor_16x16_avx2;
563 3 : eb_aom_highbd_paeth_predictor_16x32 = eb_aom_highbd_paeth_predictor_16x32_c;
564 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_16x32 = eb_aom_highbd_paeth_predictor_16x32_avx2;
565 3 : eb_aom_highbd_paeth_predictor_16x4 = eb_aom_highbd_paeth_predictor_16x4_c;
566 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_16x4 = eb_aom_highbd_paeth_predictor_16x4_avx2;
567 3 : eb_aom_highbd_paeth_predictor_16x64 = eb_aom_highbd_paeth_predictor_16x64_c;
568 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_16x64 = eb_aom_highbd_paeth_predictor_16x64_avx2;
569 3 : eb_aom_highbd_paeth_predictor_16x8 = eb_aom_highbd_paeth_predictor_16x8_c;
570 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_16x8 = eb_aom_highbd_paeth_predictor_16x8_avx2;
571 3 : eb_aom_highbd_paeth_predictor_2x2 = eb_aom_highbd_paeth_predictor_2x2_c;
572 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_2x2 = eb_aom_highbd_paeth_predictor_2x2_avx2;
573 3 : eb_aom_highbd_paeth_predictor_32x16 = eb_aom_highbd_paeth_predictor_32x16_c;
574 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_32x16 = eb_aom_highbd_paeth_predictor_32x16_avx2;
575 3 : eb_aom_highbd_paeth_predictor_32x32 = eb_aom_highbd_paeth_predictor_32x32_c;
576 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_32x32 = eb_aom_highbd_paeth_predictor_32x32_avx2;
577 3 : eb_aom_highbd_paeth_predictor_32x64 = eb_aom_highbd_paeth_predictor_32x64_c;
578 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_32x64 = eb_aom_highbd_paeth_predictor_32x64_avx2;
579 3 : eb_aom_highbd_paeth_predictor_32x8 = eb_aom_highbd_paeth_predictor_32x8_c;
580 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_32x8 = eb_aom_highbd_paeth_predictor_32x8_avx2;
581 3 : eb_aom_highbd_paeth_predictor_4x16 = eb_aom_highbd_paeth_predictor_4x16_c;
582 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_4x16 = eb_aom_highbd_paeth_predictor_4x16_avx2;
583 3 : eb_aom_highbd_paeth_predictor_4x4 = eb_aom_highbd_paeth_predictor_4x4_c;
584 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_4x4 = eb_aom_highbd_paeth_predictor_4x4_avx2;
585 3 : eb_aom_highbd_paeth_predictor_4x8 = eb_aom_highbd_paeth_predictor_4x8_c;
586 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_4x8 = eb_aom_highbd_paeth_predictor_4x8_avx2;
587 3 : eb_aom_highbd_paeth_predictor_64x16 = eb_aom_highbd_paeth_predictor_64x16_c;
588 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_64x16 = eb_aom_highbd_paeth_predictor_64x16_avx2;
589 3 : eb_aom_highbd_paeth_predictor_64x32 = eb_aom_highbd_paeth_predictor_64x32_c;
590 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_64x32 = eb_aom_highbd_paeth_predictor_64x32_avx2;
591 3 : eb_aom_highbd_paeth_predictor_64x64 = eb_aom_highbd_paeth_predictor_64x64_c;
592 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_64x64 = eb_aom_highbd_paeth_predictor_64x64_avx2;
593 3 : eb_aom_highbd_paeth_predictor_8x16 = eb_aom_highbd_paeth_predictor_8x16_c;
594 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_8x16 = eb_aom_highbd_paeth_predictor_8x16_avx2;
595 3 : eb_aom_highbd_paeth_predictor_8x32 = eb_aom_highbd_paeth_predictor_8x32_c;
596 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_8x32 = eb_aom_highbd_paeth_predictor_8x32_avx2;
597 3 : eb_aom_highbd_paeth_predictor_8x4 = eb_aom_highbd_paeth_predictor_8x4_c;
598 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_8x4 = eb_aom_highbd_paeth_predictor_8x4_avx2;
599 3 : eb_aom_highbd_paeth_predictor_8x8 = eb_aom_highbd_paeth_predictor_8x8_c;
600 3 : if (flags & HAS_AVX2) eb_aom_highbd_paeth_predictor_8x8 = eb_aom_highbd_paeth_predictor_8x8_avx2;
601 :
602 3 : eb_aom_dc_predictor_4x4 = eb_aom_dc_predictor_4x4_c;
603 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_4x4 = eb_aom_dc_predictor_4x4_sse2;
604 3 : eb_aom_dc_predictor_8x8 = eb_aom_dc_predictor_8x8_c;
605 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_8x8 = eb_aom_dc_predictor_8x8_sse2;
606 3 : eb_aom_dc_predictor_16x16 = eb_aom_dc_predictor_16x16_c;
607 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_16x16 = eb_aom_dc_predictor_16x16_sse2;
608 3 : eb_aom_dc_predictor_32x32 = eb_aom_dc_predictor_32x32_c;
609 3 : if (flags & HAS_AVX2) eb_aom_dc_predictor_32x32 = eb_aom_dc_predictor_32x32_avx2;
610 3 : eb_aom_dc_predictor_64x64 = eb_aom_dc_predictor_64x64_c;
611 3 : if (flags & HAS_AVX2) eb_aom_dc_predictor_64x64 = eb_aom_dc_predictor_64x64_avx2;
612 3 : eb_aom_dc_predictor_32x16 = eb_aom_dc_predictor_32x16_c;
613 3 : if (flags & HAS_AVX2) eb_aom_dc_predictor_32x16 = eb_aom_dc_predictor_32x16_avx2;
614 3 : eb_aom_dc_predictor_32x64 = eb_aom_dc_predictor_32x64_c;
615 3 : if (flags & HAS_AVX2) eb_aom_dc_predictor_32x64 = eb_aom_dc_predictor_32x64_avx2;
616 3 : eb_aom_dc_predictor_64x16 = eb_aom_dc_predictor_64x16_c;
617 3 : if (flags & HAS_AVX2) eb_aom_dc_predictor_64x16 = eb_aom_dc_predictor_64x16_avx2;
618 3 : eb_aom_dc_predictor_8x16 = eb_aom_dc_predictor_8x16_c;
619 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_8x16 = eb_aom_dc_predictor_8x16_sse2;
620 3 : eb_aom_dc_predictor_8x32 = eb_aom_dc_predictor_8x32_c;
621 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_8x32 = eb_aom_dc_predictor_8x32_sse2;
622 3 : eb_aom_dc_predictor_8x4 = eb_aom_dc_predictor_8x4_c;
623 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_8x4 = eb_aom_dc_predictor_8x4_sse2;
624 3 : eb_aom_dc_predictor_64x32 = eb_aom_dc_predictor_64x32_c;
625 3 : if (flags & HAS_AVX2) eb_aom_dc_predictor_64x32 = eb_aom_dc_predictor_64x32_avx2;
626 3 : eb_aom_dc_predictor_16x32 = eb_aom_dc_predictor_16x32_c;
627 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_16x32 = eb_aom_dc_predictor_16x32_sse2;
628 3 : eb_aom_dc_predictor_16x4 = eb_aom_dc_predictor_16x4_c;
629 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_16x4 = eb_aom_dc_predictor_16x4_sse2;
630 3 : eb_aom_dc_predictor_16x64 = eb_aom_dc_predictor_16x64_c;
631 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_16x64 = eb_aom_dc_predictor_16x64_sse2;
632 3 : eb_aom_dc_predictor_16x8 = eb_aom_dc_predictor_16x8_c;
633 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_16x8 = eb_aom_dc_predictor_16x8_sse2;
634 3 : eb_aom_dc_predictor_32x8 = eb_aom_dc_predictor_32x8_c;
635 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_32x8 = eb_aom_dc_predictor_32x8_sse2;
636 3 : eb_aom_dc_predictor_4x16 = eb_aom_dc_predictor_4x16_c;
637 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_4x16 = eb_aom_dc_predictor_4x16_sse2;
638 3 : eb_aom_dc_predictor_4x8 = eb_aom_dc_predictor_4x8_c;
639 3 : if (flags & HAS_SSE2) eb_aom_dc_predictor_4x8 = eb_aom_dc_predictor_4x8_sse2;
640 :
641 3 : eb_aom_dc_top_predictor_4x4 = eb_aom_dc_top_predictor_4x4_c;
642 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_4x4 = eb_aom_dc_top_predictor_4x4_sse2;
643 3 : eb_aom_dc_top_predictor_8x8 = eb_aom_dc_top_predictor_8x8_c;
644 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_8x8 = eb_aom_dc_top_predictor_8x8_sse2;
645 3 : eb_aom_dc_top_predictor_16x16 = eb_aom_dc_top_predictor_16x16_c;
646 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_16x16 = eb_aom_dc_top_predictor_16x16_sse2;
647 3 : eb_aom_dc_top_predictor_32x32 = eb_aom_dc_top_predictor_32x32_c;
648 3 : if (flags & HAS_AVX2) eb_aom_dc_top_predictor_32x32 = eb_aom_dc_top_predictor_32x32_avx2;
649 3 : eb_aom_dc_top_predictor_64x64 = eb_aom_dc_top_predictor_64x64_c;
650 3 : if (flags & HAS_AVX2) eb_aom_dc_top_predictor_64x64 = eb_aom_dc_top_predictor_64x64_avx2;
651 3 : eb_aom_dc_top_predictor_16x32 = eb_aom_dc_top_predictor_16x32_c;
652 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_16x32 = eb_aom_dc_top_predictor_16x32_sse2;
653 3 : eb_aom_dc_top_predictor_16x4 = eb_aom_dc_top_predictor_16x4_c;
654 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_16x4 = eb_aom_dc_top_predictor_16x4_sse2;
655 3 : eb_aom_dc_top_predictor_16x64 = eb_aom_dc_top_predictor_16x64_c;
656 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_16x64 = eb_aom_dc_top_predictor_16x64_sse2;
657 3 : eb_aom_dc_top_predictor_16x8 = eb_aom_dc_top_predictor_16x8_c;
658 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_16x8 = eb_aom_dc_top_predictor_16x8_sse2;
659 3 : eb_aom_dc_top_predictor_32x16 = eb_aom_dc_top_predictor_32x16_c;
660 3 : if (flags & HAS_AVX2) eb_aom_dc_top_predictor_32x16 = eb_aom_dc_top_predictor_32x16_avx2;
661 3 : eb_aom_dc_top_predictor_32x64 = eb_aom_dc_top_predictor_32x64_c;
662 3 : if (flags & HAS_AVX2) eb_aom_dc_top_predictor_32x64 = eb_aom_dc_top_predictor_32x64_avx2;
663 3 : eb_aom_dc_top_predictor_32x8 = eb_aom_dc_top_predictor_32x8_c;
664 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_32x8 = eb_aom_dc_top_predictor_32x8_sse2;
665 3 : eb_aom_dc_top_predictor_4x16 = eb_aom_dc_top_predictor_4x16_c;
666 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_4x16 = eb_aom_dc_top_predictor_4x16_sse2;
667 3 : eb_aom_dc_top_predictor_4x8 = eb_aom_dc_top_predictor_4x8_c;
668 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_4x8 = eb_aom_dc_top_predictor_4x8_sse2;
669 3 : eb_aom_dc_top_predictor_64x16 = eb_aom_dc_top_predictor_64x16_c;
670 3 : if (flags & HAS_AVX2) eb_aom_dc_top_predictor_64x16 = eb_aom_dc_top_predictor_64x16_avx2;
671 3 : eb_aom_dc_top_predictor_64x32 = eb_aom_dc_top_predictor_64x32_c;
672 3 : if (flags & HAS_AVX2) eb_aom_dc_top_predictor_64x32 = eb_aom_dc_top_predictor_64x32_avx2;
673 3 : eb_aom_dc_top_predictor_8x16 = eb_aom_dc_top_predictor_8x16_c;
674 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_8x16 = eb_aom_dc_top_predictor_8x16_sse2;
675 3 : eb_aom_dc_top_predictor_8x32 = eb_aom_dc_top_predictor_8x32_c;
676 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_8x32 = eb_aom_dc_top_predictor_8x32_sse2;
677 3 : eb_aom_dc_top_predictor_8x4 = eb_aom_dc_top_predictor_8x4_c;
678 3 : if (flags & HAS_SSE2) eb_aom_dc_top_predictor_8x4 = eb_aom_dc_top_predictor_8x4_sse2;
679 :
680 3 : eb_aom_dc_left_predictor_4x4 = eb_aom_dc_left_predictor_4x4_c;
681 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_4x4 = eb_aom_dc_left_predictor_4x4_sse2;
682 3 : eb_aom_dc_left_predictor_8x8 = eb_aom_dc_left_predictor_8x8_c;
683 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_8x8 = eb_aom_dc_left_predictor_8x8_sse2;
684 3 : eb_aom_dc_left_predictor_16x16 = eb_aom_dc_left_predictor_16x16_c;
685 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_16x16 = eb_aom_dc_left_predictor_16x16_sse2;
686 3 : eb_aom_dc_left_predictor_32x32 = eb_aom_dc_left_predictor_32x32_c;
687 3 : if (flags & HAS_AVX2) eb_aom_dc_left_predictor_32x32 = eb_aom_dc_left_predictor_32x32_avx2;
688 3 : eb_aom_dc_left_predictor_64x64 = eb_aom_dc_left_predictor_64x64_c;
689 3 : if (flags & HAS_AVX2) eb_aom_dc_left_predictor_64x64 = eb_aom_dc_left_predictor_64x64_avx2;
690 3 : eb_aom_dc_left_predictor_16x32 = eb_aom_dc_left_predictor_16x32_c;
691 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_16x32 = eb_aom_dc_left_predictor_16x32_sse2;
692 3 : eb_aom_dc_left_predictor_16x4 = eb_aom_dc_left_predictor_16x4_c;
693 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_16x4 = eb_aom_dc_left_predictor_16x4_sse2;
694 3 : eb_aom_dc_left_predictor_16x64 = eb_aom_dc_left_predictor_16x64_c;
695 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_16x64 = eb_aom_dc_left_predictor_16x64_sse2;
696 3 : eb_aom_dc_left_predictor_16x8 = eb_aom_dc_left_predictor_16x8_c;
697 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_16x8 = eb_aom_dc_left_predictor_16x8_sse2;
698 3 : eb_aom_dc_left_predictor_32x16 = eb_aom_dc_left_predictor_32x16_c;
699 3 : if (flags & HAS_AVX2) eb_aom_dc_left_predictor_32x16 = eb_aom_dc_left_predictor_32x16_avx2;
700 3 : eb_aom_dc_left_predictor_32x64 = eb_aom_dc_left_predictor_32x64_c;
701 3 : if (flags & HAS_AVX2) eb_aom_dc_left_predictor_32x64 = eb_aom_dc_left_predictor_32x64_avx2;
702 3 : eb_aom_dc_left_predictor_64x16 = eb_aom_dc_left_predictor_64x16_c;
703 3 : if (flags & HAS_AVX2) eb_aom_dc_left_predictor_64x16 = eb_aom_dc_left_predictor_64x16_avx2;
704 3 : eb_aom_dc_left_predictor_64x32 = eb_aom_dc_left_predictor_64x32_c;
705 3 : if (flags & HAS_AVX2) eb_aom_dc_left_predictor_64x32 = eb_aom_dc_left_predictor_64x32_avx2;
706 3 : eb_aom_dc_left_predictor_32x8 = eb_aom_dc_left_predictor_32x8_c;
707 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_32x8 = eb_aom_dc_left_predictor_32x8_sse2;
708 3 : eb_aom_dc_left_predictor_4x16 = eb_aom_dc_left_predictor_4x16_c;
709 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_4x16 = eb_aom_dc_left_predictor_4x16_sse2;
710 3 : eb_aom_dc_left_predictor_4x8 = eb_aom_dc_left_predictor_4x8_c;
711 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_4x8 = eb_aom_dc_left_predictor_4x8_sse2;
712 3 : eb_aom_dc_left_predictor_8x16 = eb_aom_dc_left_predictor_8x16_c;
713 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_8x16 = eb_aom_dc_left_predictor_8x16_sse2;
714 3 : eb_aom_dc_left_predictor_8x32 = eb_aom_dc_left_predictor_8x32_c;
715 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_8x32 = eb_aom_dc_left_predictor_8x32_sse2;
716 3 : eb_aom_dc_left_predictor_8x4 = eb_aom_dc_left_predictor_8x4_c;
717 3 : if (flags & HAS_SSE2) eb_aom_dc_left_predictor_8x4 = eb_aom_dc_left_predictor_8x4_sse2;
718 :
719 3 : eb_aom_dc_128_predictor_4x4 = eb_aom_dc_128_predictor_4x4_c;
720 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_4x4 = eb_aom_dc_128_predictor_4x4_sse2;
721 3 : eb_aom_dc_128_predictor_8x8 = eb_aom_dc_128_predictor_8x8_c;
722 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_8x8 = eb_aom_dc_128_predictor_8x8_sse2;
723 3 : eb_aom_dc_128_predictor_16x16 = eb_aom_dc_128_predictor_16x16_c;
724 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_16x16 = eb_aom_dc_128_predictor_16x16_sse2;
725 3 : eb_aom_dc_128_predictor_32x32 = eb_aom_dc_128_predictor_32x32_c;
726 3 : if (flags & HAS_AVX2) eb_aom_dc_128_predictor_32x32 = eb_aom_dc_128_predictor_32x32_avx2;
727 3 : eb_aom_dc_128_predictor_64x64 = eb_aom_dc_128_predictor_64x64_c;
728 3 : if (flags & HAS_AVX2) eb_aom_dc_128_predictor_64x64 = eb_aom_dc_128_predictor_64x64_avx2;
729 3 : eb_aom_dc_128_predictor_16x32 = eb_aom_dc_128_predictor_16x32_c;
730 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_16x32 = eb_aom_dc_128_predictor_16x32_sse2;
731 3 : eb_aom_dc_128_predictor_16x4 = eb_aom_dc_128_predictor_16x4_c;
732 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_16x4 = eb_aom_dc_128_predictor_16x4_sse2;
733 3 : eb_aom_dc_128_predictor_16x64 = eb_aom_dc_128_predictor_16x64_c;
734 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_16x64 = eb_aom_dc_128_predictor_16x64_sse2;
735 3 : eb_aom_dc_128_predictor_16x8 = eb_aom_dc_128_predictor_16x8_c;
736 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_16x8 = eb_aom_dc_128_predictor_16x8_sse2;
737 3 : eb_aom_dc_128_predictor_32x16 = eb_aom_dc_128_predictor_32x16_c;
738 3 : if (flags & HAS_AVX2) eb_aom_dc_128_predictor_32x16 = eb_aom_dc_128_predictor_32x16_avx2;
739 3 : eb_aom_dc_128_predictor_32x64 = eb_aom_dc_128_predictor_32x64_c;
740 3 : if (flags & HAS_AVX2) eb_aom_dc_128_predictor_32x64 = eb_aom_dc_128_predictor_32x64_avx2;
741 3 : eb_aom_dc_128_predictor_32x8 = eb_aom_dc_128_predictor_32x8_c;
742 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_32x8 = eb_aom_dc_128_predictor_32x8_sse2;
743 3 : eb_aom_dc_128_predictor_4x16 = eb_aom_dc_128_predictor_4x16_c;
744 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_4x16 = eb_aom_dc_128_predictor_4x16_sse2;
745 3 : eb_aom_dc_128_predictor_4x8 = eb_aom_dc_128_predictor_4x8_c;
746 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_4x8 = eb_aom_dc_128_predictor_4x8_sse2;
747 3 : eb_aom_dc_128_predictor_64x16 = eb_aom_dc_128_predictor_64x16_c;
748 3 : if (flags & HAS_AVX2) eb_aom_dc_128_predictor_64x16 = eb_aom_dc_128_predictor_64x16_avx2;
749 3 : eb_aom_dc_128_predictor_64x32 = eb_aom_dc_128_predictor_64x32_c;
750 3 : if (flags & HAS_AVX2) eb_aom_dc_128_predictor_64x32 = eb_aom_dc_128_predictor_64x32_avx2;
751 3 : eb_aom_dc_128_predictor_8x16 = eb_aom_dc_128_predictor_8x16_c;
752 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_8x16 = eb_aom_dc_128_predictor_8x16_sse2;
753 3 : eb_aom_dc_128_predictor_8x32 = eb_aom_dc_128_predictor_8x32_c;
754 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_8x32 = eb_aom_dc_128_predictor_8x32_sse2;
755 3 : eb_aom_dc_128_predictor_8x4 = eb_aom_dc_128_predictor_8x4_c;
756 3 : if (flags & HAS_SSE2) eb_aom_dc_128_predictor_8x4 = eb_aom_dc_128_predictor_8x4_sse2;
757 :
758 3 : eb_aom_smooth_h_predictor_16x32 = eb_aom_smooth_h_predictor_16x32_c;
759 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_16x32 = eb_aom_smooth_h_predictor_16x32_ssse3;
760 3 : eb_aom_smooth_h_predictor_16x4 = eb_aom_smooth_h_predictor_16x4_c;
761 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_16x4 = eb_aom_smooth_h_predictor_16x4_ssse3;
762 3 : eb_aom_smooth_h_predictor_16x64 = eb_aom_smooth_h_predictor_16x64_c;
763 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_16x64 = eb_aom_smooth_h_predictor_16x64_ssse3;
764 3 : eb_aom_smooth_h_predictor_16x8 = eb_aom_smooth_h_predictor_16x8_c;
765 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_16x8 = eb_aom_smooth_h_predictor_16x8_ssse3;
766 3 : eb_aom_smooth_h_predictor_32x16 = eb_aom_smooth_h_predictor_32x16_c;
767 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_32x16 = eb_aom_smooth_h_predictor_32x16_ssse3;
768 3 : eb_aom_smooth_h_predictor_32x64 = eb_aom_smooth_h_predictor_32x64_c;
769 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_32x64 = eb_aom_smooth_h_predictor_32x64_ssse3;
770 3 : eb_aom_smooth_h_predictor_32x8 = eb_aom_smooth_h_predictor_32x8_c;
771 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_32x8 = eb_aom_smooth_h_predictor_32x8_ssse3;
772 3 : eb_aom_smooth_h_predictor_4x16 = eb_aom_smooth_h_predictor_4x16_c;
773 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_4x16 = eb_aom_smooth_h_predictor_4x16_ssse3;
774 3 : eb_aom_smooth_h_predictor_4x8 = eb_aom_smooth_h_predictor_4x8_c;
775 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_4x8 = eb_aom_smooth_h_predictor_4x8_ssse3;
776 3 : eb_aom_smooth_h_predictor_64x16 = eb_aom_smooth_h_predictor_64x16_c;
777 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_64x16 = eb_aom_smooth_h_predictor_64x16_ssse3;
778 3 : eb_aom_smooth_h_predictor_64x32 = eb_aom_smooth_h_predictor_64x32_c;
779 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_64x32 = eb_aom_smooth_h_predictor_64x32_ssse3;
780 3 : eb_aom_smooth_h_predictor_8x16 = eb_aom_smooth_h_predictor_8x16_c;
781 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_8x16 = eb_aom_smooth_h_predictor_8x16_ssse3;
782 3 : eb_aom_smooth_h_predictor_8x32 = eb_aom_smooth_h_predictor_8x32_c;
783 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_8x32 = eb_aom_smooth_h_predictor_8x32_ssse3;
784 3 : eb_aom_smooth_h_predictor_8x4 = eb_aom_smooth_h_predictor_8x4_c;
785 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_8x4 = eb_aom_smooth_h_predictor_8x4_ssse3;
786 3 : eb_aom_smooth_h_predictor_64x64 = eb_aom_smooth_h_predictor_64x64_c;
787 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_64x64 = eb_aom_smooth_h_predictor_64x64_ssse3;
788 3 : eb_aom_smooth_h_predictor_32x32 = eb_aom_smooth_h_predictor_32x32_c;
789 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_32x32 = eb_aom_smooth_h_predictor_32x32_ssse3;
790 3 : eb_aom_smooth_h_predictor_16x16 = eb_aom_smooth_h_predictor_16x16_c;
791 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_16x16 = eb_aom_smooth_h_predictor_16x16_ssse3;
792 3 : eb_aom_smooth_h_predictor_8x8 = eb_aom_smooth_h_predictor_8x8_c;
793 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_8x8 = eb_aom_smooth_h_predictor_8x8_ssse3;
794 3 : eb_aom_smooth_h_predictor_4x4 = eb_aom_smooth_h_predictor_4x4_c;
795 3 : if (flags & HAS_SSSE3) eb_aom_smooth_h_predictor_4x4 = eb_aom_smooth_h_predictor_4x4_ssse3;
796 3 : eb_aom_smooth_v_predictor_16x32 = eb_aom_smooth_v_predictor_16x32_c;
797 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_16x32 = eb_aom_smooth_v_predictor_16x32_ssse3;
798 3 : eb_aom_smooth_v_predictor_16x4 = eb_aom_smooth_v_predictor_16x4_c;
799 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_16x4 = eb_aom_smooth_v_predictor_16x4_ssse3;
800 3 : eb_aom_smooth_v_predictor_16x64 = eb_aom_smooth_v_predictor_16x64_c;
801 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_16x64 = eb_aom_smooth_v_predictor_16x64_ssse3;
802 3 : eb_aom_smooth_v_predictor_16x8 = eb_aom_smooth_v_predictor_16x8_c;
803 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_16x8 = eb_aom_smooth_v_predictor_16x8_ssse3;
804 3 : eb_aom_smooth_v_predictor_32x16 = eb_aom_smooth_v_predictor_32x16_c;
805 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_32x16 = eb_aom_smooth_v_predictor_32x16_ssse3;
806 3 : eb_aom_smooth_v_predictor_32x64 = eb_aom_smooth_v_predictor_32x64_c;
807 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_32x64 = eb_aom_smooth_v_predictor_32x64_ssse3;
808 3 : eb_aom_smooth_v_predictor_32x8 = eb_aom_smooth_v_predictor_32x8_c;
809 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_32x8 = eb_aom_smooth_v_predictor_32x8_ssse3;
810 3 : eb_aom_smooth_v_predictor_4x16 = eb_aom_smooth_v_predictor_4x16_c;
811 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_4x16 = eb_aom_smooth_v_predictor_4x16_ssse3;
812 3 : eb_aom_smooth_v_predictor_4x8 = eb_aom_smooth_v_predictor_4x8_c;
813 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_4x8 = eb_aom_smooth_v_predictor_4x8_ssse3;
814 3 : eb_aom_smooth_v_predictor_64x16 = eb_aom_smooth_v_predictor_64x16_c;
815 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_64x16 = eb_aom_smooth_v_predictor_64x16_ssse3;
816 3 : eb_aom_smooth_v_predictor_64x32 = eb_aom_smooth_v_predictor_64x32_c;
817 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_64x32 = eb_aom_smooth_v_predictor_64x32_ssse3;
818 3 : eb_aom_smooth_v_predictor_8x16 = eb_aom_smooth_v_predictor_8x16_c;
819 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_8x16 = eb_aom_smooth_v_predictor_8x16_ssse3;
820 3 : eb_aom_smooth_v_predictor_8x32 = eb_aom_smooth_v_predictor_8x32_c;
821 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_8x32 = eb_aom_smooth_v_predictor_8x32_ssse3;
822 3 : eb_aom_smooth_v_predictor_8x4 = eb_aom_smooth_v_predictor_8x4_c;
823 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_8x4 = eb_aom_smooth_v_predictor_8x4_ssse3;
824 3 : eb_aom_smooth_v_predictor_64x64 = eb_aom_smooth_v_predictor_64x64_c;
825 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_64x64 = eb_aom_smooth_v_predictor_64x64_ssse3;
826 3 : eb_aom_smooth_v_predictor_32x32 = eb_aom_smooth_v_predictor_32x32_c;
827 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_32x32 = eb_aom_smooth_v_predictor_32x32_ssse3;
828 3 : eb_aom_smooth_v_predictor_16x16 = eb_aom_smooth_v_predictor_16x16_c;
829 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_16x16 = eb_aom_smooth_v_predictor_16x16_ssse3;
830 3 : eb_aom_smooth_v_predictor_8x8 = eb_aom_smooth_v_predictor_8x8_c;
831 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_8x8 = eb_aom_smooth_v_predictor_8x8_ssse3;
832 3 : eb_aom_smooth_v_predictor_4x4 = eb_aom_smooth_v_predictor_4x4_c;
833 3 : if (flags & HAS_SSSE3) eb_aom_smooth_v_predictor_4x4 = eb_aom_smooth_v_predictor_4x4_ssse3;
834 :
835 3 : eb_aom_smooth_predictor_16x32 = eb_aom_smooth_predictor_16x32_c;
836 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_16x32 = eb_aom_smooth_predictor_16x32_ssse3;
837 3 : eb_aom_smooth_predictor_16x4 = eb_aom_smooth_predictor_16x4_c;
838 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_16x4 = eb_aom_smooth_predictor_16x4_ssse3;
839 3 : eb_aom_smooth_predictor_16x64 = eb_aom_smooth_predictor_16x64_c;
840 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_16x64 = eb_aom_smooth_predictor_16x64_ssse3;
841 3 : eb_aom_smooth_predictor_16x8 = eb_aom_smooth_predictor_16x8_c;
842 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_16x8 = eb_aom_smooth_predictor_16x8_ssse3;
843 3 : eb_aom_smooth_predictor_32x16 = eb_aom_smooth_predictor_32x16_c;
844 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_32x16 = eb_aom_smooth_predictor_32x16_ssse3;
845 3 : eb_aom_smooth_predictor_32x64 = eb_aom_smooth_predictor_32x64_c;
846 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_32x64 = eb_aom_smooth_predictor_32x64_ssse3;
847 3 : eb_aom_smooth_predictor_32x8 = eb_aom_smooth_predictor_32x8_c;
848 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_32x8 = eb_aom_smooth_predictor_32x8_ssse3;
849 3 : eb_aom_smooth_predictor_4x16 = eb_aom_smooth_predictor_4x16_c;
850 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_4x16 = eb_aom_smooth_predictor_4x16_ssse3;
851 3 : eb_aom_smooth_predictor_4x8 = eb_aom_smooth_predictor_4x8_c;
852 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_4x8 = eb_aom_smooth_predictor_4x8_ssse3;
853 3 : eb_aom_smooth_predictor_64x16 = eb_aom_smooth_predictor_64x16_c;
854 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_64x16 = eb_aom_smooth_predictor_64x16_ssse3;
855 3 : eb_aom_smooth_predictor_64x32 = eb_aom_smooth_predictor_64x32_c;
856 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_64x32 = eb_aom_smooth_predictor_64x32_ssse3;
857 3 : eb_aom_smooth_predictor_8x16 = eb_aom_smooth_predictor_8x16_c;
858 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_8x16 = eb_aom_smooth_predictor_8x16_ssse3;
859 3 : eb_aom_smooth_predictor_8x32 = eb_aom_smooth_predictor_8x32_c;
860 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_8x32 = eb_aom_smooth_predictor_8x32_ssse3;
861 3 : eb_aom_smooth_predictor_8x4 = eb_aom_smooth_predictor_8x4_c;
862 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_8x4 = eb_aom_smooth_predictor_8x4_ssse3;
863 3 : eb_aom_smooth_predictor_64x64 = eb_aom_smooth_predictor_64x64_c;
864 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_64x64 = eb_aom_smooth_predictor_64x64_ssse3;
865 3 : eb_aom_smooth_predictor_32x32 = eb_aom_smooth_predictor_32x32_c;
866 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_32x32 = eb_aom_smooth_predictor_32x32_ssse3;
867 3 : eb_aom_smooth_predictor_16x16 = eb_aom_smooth_predictor_16x16_c;
868 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_16x16 = eb_aom_smooth_predictor_16x16_ssse3;
869 3 : eb_aom_smooth_predictor_8x8 = eb_aom_smooth_predictor_8x8_c;
870 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_8x8 = eb_aom_smooth_predictor_8x8_ssse3;
871 3 : eb_aom_smooth_predictor_4x4 = eb_aom_smooth_predictor_4x4_c;
872 3 : if (flags & HAS_SSSE3) eb_aom_smooth_predictor_4x4 = eb_aom_smooth_predictor_4x4_ssse3;
873 :
874 3 : eb_aom_v_predictor_4x4 = eb_aom_v_predictor_4x4_c;
875 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_4x4 = eb_aom_v_predictor_4x4_sse2;
876 3 : eb_aom_v_predictor_8x8 = eb_aom_v_predictor_8x8_c;
877 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_8x8 = eb_aom_v_predictor_8x8_sse2;
878 3 : eb_aom_v_predictor_16x16 = eb_aom_v_predictor_16x16_c;
879 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_16x16 = eb_aom_v_predictor_16x16_sse2;
880 3 : eb_aom_v_predictor_32x32 = eb_aom_v_predictor_32x32_c;
881 3 : if (flags & HAS_AVX2) eb_aom_v_predictor_32x32 = eb_aom_v_predictor_32x32_avx2;
882 3 : eb_aom_v_predictor_64x64 = eb_aom_v_predictor_64x64_c;
883 3 : if (flags & HAS_AVX2) eb_aom_v_predictor_64x64 = eb_aom_v_predictor_64x64_avx2;
884 3 : eb_aom_v_predictor_16x32 = eb_aom_v_predictor_16x32_c;
885 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_16x32 = eb_aom_v_predictor_16x32_sse2;
886 3 : eb_aom_v_predictor_16x4 = eb_aom_v_predictor_16x4_c;
887 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_16x4 = eb_aom_v_predictor_16x4_sse2;
888 3 : eb_aom_v_predictor_16x64 = eb_aom_v_predictor_16x64_c;
889 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_16x64 = eb_aom_v_predictor_16x64_sse2;
890 3 : eb_aom_v_predictor_16x8 = eb_aom_v_predictor_16x8_c;
891 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_16x8 = eb_aom_v_predictor_16x8_sse2;
892 3 : eb_aom_v_predictor_32x16 = eb_aom_v_predictor_32x16_c;
893 3 : if (flags & HAS_AVX2) eb_aom_v_predictor_32x16 = eb_aom_v_predictor_32x16_avx2;
894 3 : eb_aom_v_predictor_32x64 = eb_aom_v_predictor_32x64_c;
895 3 : if (flags & HAS_AVX2) eb_aom_v_predictor_32x64 = eb_aom_v_predictor_32x64_avx2;
896 3 : eb_aom_v_predictor_32x8 = eb_aom_v_predictor_32x8_c;
897 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_32x8 = eb_aom_v_predictor_32x8_sse2;
898 3 : eb_aom_v_predictor_4x16 = eb_aom_v_predictor_4x16_c;
899 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_4x16 = eb_aom_v_predictor_4x16_sse2;
900 3 : eb_aom_v_predictor_4x8 = eb_aom_v_predictor_4x8_c;
901 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_4x8 = eb_aom_v_predictor_4x8_sse2;
902 3 : eb_aom_v_predictor_64x16 = eb_aom_v_predictor_64x16_c;
903 3 : if (flags & HAS_AVX2) eb_aom_v_predictor_64x16 = eb_aom_v_predictor_64x16_avx2;
904 3 : eb_aom_v_predictor_64x32 = eb_aom_v_predictor_64x32_c;
905 3 : if (flags & HAS_AVX2) eb_aom_v_predictor_64x32 = eb_aom_v_predictor_64x32_avx2;
906 3 : eb_aom_v_predictor_8x16 = eb_aom_v_predictor_8x16_c;
907 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_8x16 = eb_aom_v_predictor_8x16_sse2;
908 3 : eb_aom_v_predictor_8x32 = eb_aom_v_predictor_8x32_c;
909 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_8x32 = eb_aom_v_predictor_8x32_sse2;
910 3 : eb_aom_v_predictor_8x4 = eb_aom_v_predictor_8x4_c;
911 3 : if (flags & HAS_SSE2) eb_aom_v_predictor_8x4 = eb_aom_v_predictor_8x4_sse2;
912 :
913 3 : eb_aom_h_predictor_4x4 = eb_aom_h_predictor_4x4_c;
914 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_4x4 = eb_aom_h_predictor_4x4_sse2;
915 3 : eb_aom_h_predictor_8x8 = eb_aom_h_predictor_8x8_c;
916 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_8x8 = eb_aom_h_predictor_8x8_sse2;
917 3 : eb_aom_h_predictor_16x16 = eb_aom_h_predictor_16x16_c;
918 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_16x16 = eb_aom_h_predictor_16x16_sse2;
919 3 : eb_aom_h_predictor_32x32 = eb_aom_h_predictor_32x32_c;
920 3 : if (flags & HAS_AVX2) eb_aom_h_predictor_32x32 = eb_aom_h_predictor_32x32_avx2;
921 3 : eb_aom_h_predictor_64x64 = eb_aom_h_predictor_64x64_c;
922 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_64x64 = eb_aom_h_predictor_64x64_sse2;
923 3 : eb_aom_h_predictor_16x32 = eb_aom_h_predictor_16x32_c;
924 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_16x32 = eb_aom_h_predictor_16x32_sse2;
925 3 : eb_aom_h_predictor_16x4 = eb_aom_h_predictor_16x4_c;
926 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_16x4 = eb_aom_h_predictor_16x4_sse2;
927 3 : eb_aom_h_predictor_16x64 = eb_aom_h_predictor_16x64_c;
928 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_16x64 = eb_aom_h_predictor_16x64_sse2;
929 3 : eb_aom_h_predictor_16x8 = eb_aom_h_predictor_16x8_c;
930 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_16x8 = eb_aom_h_predictor_16x8_sse2;
931 3 : eb_aom_h_predictor_32x16 = eb_aom_h_predictor_32x16_c;
932 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_32x16 = eb_aom_h_predictor_32x16_sse2;
933 3 : eb_aom_h_predictor_32x64 = eb_aom_h_predictor_32x64_c;
934 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_32x64 = eb_aom_h_predictor_32x64_sse2;
935 3 : eb_aom_h_predictor_32x8 = eb_aom_h_predictor_32x8_c;
936 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_32x8 = eb_aom_h_predictor_32x8_sse2;
937 3 : eb_aom_h_predictor_4x16 = eb_aom_h_predictor_4x16_c;
938 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_4x16 = eb_aom_h_predictor_4x16_sse2;
939 3 : eb_aom_h_predictor_4x8 = eb_aom_h_predictor_4x8_c;
940 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_4x8 = eb_aom_h_predictor_4x8_sse2;
941 3 : eb_aom_h_predictor_64x16 = eb_aom_h_predictor_64x16_c;
942 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_64x16 = eb_aom_h_predictor_64x16_sse2;
943 3 : eb_aom_h_predictor_64x32 = eb_aom_h_predictor_64x32_c;
944 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_64x32 = eb_aom_h_predictor_64x32_sse2;
945 3 : eb_aom_h_predictor_8x16 = eb_aom_h_predictor_8x16_c;
946 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_8x16 = eb_aom_h_predictor_8x16_sse2;
947 3 : eb_aom_h_predictor_8x32 = eb_aom_h_predictor_8x32_c;
948 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_8x32 = eb_aom_h_predictor_8x32_sse2;
949 3 : eb_aom_h_predictor_8x4 = eb_aom_h_predictor_8x4_c;
950 3 : if (flags & HAS_SSE2) eb_aom_h_predictor_8x4 = eb_aom_h_predictor_8x4_sse2;
951 :
952 : //SAD
953 3 : eb_aom_sad4x4 = eb_aom_sad4x4_c;
954 3 : if (flags & HAS_AVX2) eb_aom_sad4x4 = eb_aom_sad4x4_avx2;
955 3 : eb_aom_sad4x4x4d = eb_aom_sad4x4x4d_c;
956 3 : if (flags & HAS_AVX2) eb_aom_sad4x4x4d = eb_aom_sad4x4x4d_avx2;
957 3 : eb_aom_sad4x16 = eb_aom_sad4x16_c;
958 3 : if (flags & HAS_AVX2) eb_aom_sad4x16 = eb_aom_sad4x16_avx2;
959 3 : eb_aom_sad4x16x4d = eb_aom_sad4x16x4d_c;
960 3 : if (flags & HAS_AVX2) eb_aom_sad4x16x4d = eb_aom_sad4x16x4d_avx2;
961 3 : eb_aom_sad4x8 = eb_aom_sad4x8_c;
962 3 : if (flags & HAS_AVX2) eb_aom_sad4x8 = eb_aom_sad4x8_avx2;
963 3 : eb_aom_sad4x8x4d = eb_aom_sad4x8x4d_c;
964 3 : if (flags & HAS_AVX2) eb_aom_sad4x8x4d = eb_aom_sad4x8x4d_avx2;
965 3 : eb_aom_sad64x128x4d = eb_aom_sad64x128x4d_c;
966 3 : if (flags & HAS_AVX2) eb_aom_sad64x128x4d = eb_aom_sad64x128x4d_avx2;
967 3 : eb_aom_sad64x16x4d = eb_aom_sad64x16x4d_c;
968 3 : if (flags & HAS_AVX2) eb_aom_sad64x16x4d = eb_aom_sad64x16x4d_avx2;
969 3 : eb_aom_sad64x32x4d = eb_aom_sad64x32x4d_c;
970 3 : if (flags & HAS_AVX2) eb_aom_sad64x32x4d = eb_aom_sad64x32x4d_avx2;
971 3 : eb_aom_sad64x64x4d = eb_aom_sad64x64x4d_c;
972 3 : if (flags & HAS_AVX2) eb_aom_sad64x64x4d = eb_aom_sad64x64x4d_avx2;
973 3 : eb_aom_sad8x16 = eb_aom_sad8x16_c;
974 3 : if (flags & HAS_AVX2) eb_aom_sad8x16 = eb_aom_sad8x16_avx2;
975 3 : eb_aom_sad8x16x4d = eb_aom_sad8x16x4d_c;
976 3 : if (flags & HAS_AVX2) eb_aom_sad8x16x4d = eb_aom_sad8x16x4d_avx2;
977 3 : eb_aom_sad8x32 = eb_aom_sad8x32_c;
978 3 : if (flags & HAS_AVX2) eb_aom_sad8x32 = eb_aom_sad8x32_avx2;
979 3 : eb_aom_sad8x32x4d = eb_aom_sad8x32x4d_c;
980 3 : if (flags & HAS_AVX2) eb_aom_sad8x32x4d = eb_aom_sad8x32x4d_avx2;
981 3 : eb_aom_sad8x8 = eb_aom_sad8x8_c;
982 3 : if (flags & HAS_AVX2) eb_aom_sad8x8 = eb_aom_sad8x8_avx2;
983 3 : eb_aom_sad8x8x4d = eb_aom_sad8x8x4d_c;
984 3 : if (flags & HAS_AVX2) eb_aom_sad8x8x4d = eb_aom_sad8x8x4d_avx2;
985 3 : eb_aom_sad16x4 = eb_aom_sad16x4_c;
986 3 : if (flags & HAS_AVX2) eb_aom_sad16x4 = eb_aom_sad16x4_avx2;
987 3 : eb_aom_sad16x4x4d = eb_aom_sad16x4x4d_c;
988 3 : if (flags & HAS_AVX2) eb_aom_sad16x4x4d = eb_aom_sad16x4x4d_avx2;
989 3 : eb_aom_sad32x8 = eb_aom_sad32x8_c;
990 3 : if (flags & HAS_AVX2) eb_aom_sad32x8 = eb_aom_sad32x8_avx2;
991 3 : eb_aom_sad32x8x4d = eb_aom_sad32x8x4d_c;
992 3 : if (flags & HAS_AVX2) eb_aom_sad32x8x4d = eb_aom_sad32x8x4d_avx2;
993 3 : eb_aom_sad16x64 = eb_aom_sad16x64_c;
994 3 : if (flags & HAS_AVX2) eb_aom_sad16x64 = eb_aom_sad16x64_avx2;
995 3 : eb_aom_sad16x64x4d = eb_aom_sad16x64x4d_c;
996 3 : if (flags & HAS_AVX2) eb_aom_sad16x64x4d = eb_aom_sad16x64x4d_avx2;
997 3 : eb_aom_sad32x16 = eb_aom_sad32x16_c;
998 3 : if (flags & HAS_AVX2) eb_aom_sad32x16 = eb_aom_sad32x16_avx2;
999 3 : eb_aom_sad32x16x4d = eb_aom_sad32x16x4d_c;
1000 3 : if (flags & HAS_AVX2) eb_aom_sad32x16x4d = eb_aom_sad32x16x4d_avx2;
1001 3 : eb_aom_sad16x32 = eb_aom_sad16x32_c;
1002 3 : if (flags & HAS_AVX2) eb_aom_sad16x32 = eb_aom_sad16x32_avx2;
1003 3 : eb_aom_sad16x32x4d = eb_aom_sad16x32x4d_c;
1004 3 : if (flags & HAS_AVX2) eb_aom_sad16x32x4d = eb_aom_sad16x32x4d_avx2;
1005 3 : eb_aom_sad32x64 = eb_aom_sad32x64_c;
1006 3 : if (flags & HAS_AVX2) eb_aom_sad32x64 = eb_aom_sad32x64_avx2;
1007 3 : eb_aom_sad32x64x4d = eb_aom_sad32x64x4d_c;
1008 3 : if (flags & HAS_AVX2) eb_aom_sad32x64x4d = eb_aom_sad32x64x4d_avx2;
1009 3 : eb_aom_sad32x32 = eb_aom_sad32x32_c;
1010 3 : if (flags & HAS_AVX2) eb_aom_sad32x32 = eb_aom_sad32x32_avx2;
1011 3 : eb_aom_sad32x32x4d = eb_aom_sad32x32x4d_c;
1012 3 : if (flags & HAS_AVX2) eb_aom_sad32x32x4d = eb_aom_sad32x32x4d_avx2;
1013 3 : eb_aom_sad16x16 = eb_aom_sad16x16_c;
1014 3 : if (flags & HAS_AVX2) eb_aom_sad16x16 = eb_aom_sad16x16_avx2;
1015 3 : eb_aom_sad16x16x4d = eb_aom_sad16x16x4d_c;
1016 3 : if (flags & HAS_AVX2) eb_aom_sad16x16x4d = eb_aom_sad16x16x4d_avx2;
1017 3 : eb_aom_sad16x8 = eb_aom_sad16x8_c;
1018 3 : if (flags & HAS_AVX2) eb_aom_sad16x8 = eb_aom_sad16x8_avx2;
1019 3 : eb_aom_sad16x8x4d = eb_aom_sad16x8x4d_c;
1020 3 : if (flags & HAS_AVX2) eb_aom_sad16x8x4d = eb_aom_sad16x8x4d_avx2;
1021 3 : eb_aom_sad8x4 = eb_aom_sad8x4_c;
1022 3 : if (flags & HAS_AVX2) eb_aom_sad8x4 = eb_aom_sad8x4_avx2;
1023 3 : eb_aom_sad8x4x4d = eb_aom_sad8x4x4d_c;
1024 3 : if (flags & HAS_AVX2) eb_aom_sad8x4x4d = eb_aom_sad8x4x4d_avx2;
1025 :
1026 : #ifndef NON_AVX512_SUPPORT
1027 : if (CanUseIntelAVX512()) {
1028 : eb_aom_sad64x128 = eb_aom_sad64x128_avx512;
1029 : eb_aom_sad64x16 = eb_aom_sad64x16_avx512;
1030 : eb_aom_sad64x32 = eb_aom_sad64x32_avx512;
1031 : eb_aom_sad64x64 = eb_aom_sad64x64_avx512;
1032 : eb_aom_sad128x128 = eb_aom_sad128x128_avx512;
1033 : eb_aom_sad128x128x4d = eb_aom_sad128x128x4d_avx512;
1034 : eb_aom_sad128x64 = eb_aom_sad128x64_avx512;
1035 : eb_aom_sad128x64x4d = eb_aom_sad128x64x4d_avx512;
1036 : eb_av1_txb_init_levels = eb_av1_txb_init_levels_avx512;
1037 : }
1038 : #else
1039 3 : eb_aom_sad64x128 = eb_aom_sad64x128_c;
1040 3 : if (flags & HAS_AVX2) eb_aom_sad64x128 = eb_aom_sad64x128_avx2;
1041 3 : eb_aom_sad64x16 = eb_aom_sad64x16_c;
1042 3 : if (flags & HAS_AVX2) eb_aom_sad64x16 = eb_aom_sad64x16_avx2;
1043 3 : eb_aom_sad64x32 = eb_aom_sad64x32_c;
1044 3 : if (flags & HAS_AVX2) eb_aom_sad64x32 = eb_aom_sad64x32_avx2;
1045 3 : eb_aom_sad64x64 = eb_aom_sad64x64_c;
1046 3 : if (flags & HAS_AVX2) eb_aom_sad64x64 = eb_aom_sad64x64_avx2;
1047 3 : eb_aom_sad128x128 = eb_aom_sad128x128_c;
1048 3 : if (flags & HAS_AVX2) eb_aom_sad128x128 = eb_aom_sad128x128_avx2;
1049 3 : eb_aom_sad128x128x4d = eb_aom_sad128x128x4d_c;
1050 3 : if (flags & HAS_AVX2) eb_aom_sad128x128x4d = eb_aom_sad128x128x4d_avx2;
1051 3 : eb_aom_sad128x64 = eb_aom_sad128x64_c;
1052 3 : if (flags & HAS_AVX2) eb_aom_sad128x64 = eb_aom_sad128x64_avx2;
1053 3 : eb_aom_sad128x64x4d = eb_aom_sad128x64x4d_c;
1054 3 : if (flags & HAS_AVX2) eb_aom_sad128x64x4d = eb_aom_sad128x64x4d_avx2;
1055 3 : eb_av1_txb_init_levels = eb_av1_txb_init_levels_c;
1056 3 : if (flags & HAS_AVX2) eb_av1_txb_init_levels = eb_av1_txb_init_levels_avx2;
1057 : #endif // !NON_AVX512_SUPPORT
1058 : #if OBMC_FLAG
1059 3 : eb_aom_highbd_blend_a64_vmask = eb_aom_highbd_blend_a64_vmask_c;
1060 3 : if (flags & HAS_SSE4_1) eb_aom_highbd_blend_a64_vmask = eb_aom_highbd_blend_a64_vmask_sse4_1;
1061 3 : eb_aom_highbd_blend_a64_hmask = eb_aom_highbd_blend_a64_hmask_c;
1062 3 : if (flags & HAS_SSE4_1) eb_aom_highbd_blend_a64_hmask = eb_aom_highbd_blend_a64_hmask_sse4_1;
1063 :
1064 3 : aom_convolve8_horiz = aom_convolve8_horiz_c;
1065 3 : if (flags & HAS_AVX2) aom_convolve8_horiz = aom_convolve8_horiz_avx2;
1066 3 : aom_convolve8_vert = aom_convolve8_vert_c;
1067 3 : if (flags & HAS_AVX2) aom_convolve8_vert = aom_convolve8_vert_avx2;
1068 3 : aom_upsampled_pred = aom_upsampled_pred_c;
1069 3 : if (flags & HAS_AVX2) aom_upsampled_pred = aom_upsampled_pred_sse2;
1070 :
1071 3 : aom_obmc_sad128x128 = aom_obmc_sad128x128_c;
1072 3 : if (flags & HAS_AVX2) aom_obmc_sad128x128 = aom_obmc_sad128x128_avx2;
1073 3 : aom_obmc_sad128x64 = aom_obmc_sad128x64_c;
1074 3 : if (flags & HAS_AVX2) aom_obmc_sad128x64 = aom_obmc_sad128x64_avx2;
1075 3 : aom_obmc_sad16x16 = aom_obmc_sad16x16_c;
1076 3 : if (flags & HAS_AVX2) aom_obmc_sad16x16 = aom_obmc_sad16x16_avx2;
1077 3 : aom_obmc_sad16x32 = aom_obmc_sad16x32_c;
1078 3 : if (flags & HAS_AVX2) aom_obmc_sad16x32 = aom_obmc_sad16x32_avx2;
1079 3 : aom_obmc_sad16x4 = aom_obmc_sad16x4_c;
1080 3 : if (flags & HAS_AVX2) aom_obmc_sad16x4 = aom_obmc_sad16x4_avx2;
1081 3 : aom_obmc_sad16x64 = aom_obmc_sad16x64_c;
1082 3 : if (flags & HAS_AVX2) aom_obmc_sad16x64 = aom_obmc_sad16x64_avx2;
1083 3 : aom_obmc_sad16x8 = aom_obmc_sad16x8_c;
1084 3 : if (flags & HAS_AVX2) aom_obmc_sad16x8 = aom_obmc_sad16x8_avx2;
1085 3 : aom_obmc_sad32x16 = aom_obmc_sad32x16_c;
1086 3 : if (flags & HAS_AVX2) aom_obmc_sad32x16 = aom_obmc_sad32x16_avx2;
1087 3 : aom_obmc_sad32x32 = aom_obmc_sad32x32_c;
1088 3 : if (flags & HAS_AVX2) aom_obmc_sad32x32 = aom_obmc_sad32x32_avx2;
1089 3 : aom_obmc_sad32x64 = aom_obmc_sad32x64_c;
1090 3 : if (flags & HAS_AVX2) aom_obmc_sad32x64 = aom_obmc_sad32x64_avx2;
1091 3 : aom_obmc_sad32x8 = aom_obmc_sad32x8_c;
1092 3 : if (flags & HAS_AVX2) aom_obmc_sad32x8 = aom_obmc_sad32x8_avx2;
1093 3 : aom_obmc_sad4x16 = aom_obmc_sad4x16_c;
1094 3 : if (flags & HAS_AVX2) aom_obmc_sad4x16 = aom_obmc_sad4x16_avx2;
1095 3 : aom_obmc_sad4x4 = aom_obmc_sad4x4_c;
1096 3 : if (flags & HAS_AVX2) aom_obmc_sad4x4 = aom_obmc_sad4x4_avx2;
1097 3 : aom_obmc_sad4x8 = aom_obmc_sad4x8_c;
1098 3 : if (flags & HAS_AVX2) aom_obmc_sad4x8 = aom_obmc_sad4x8_avx2;
1099 3 : aom_obmc_sad64x128 = aom_obmc_sad64x128_c;
1100 3 : if (flags & HAS_AVX2) aom_obmc_sad64x128 = aom_obmc_sad64x128_avx2;
1101 3 : aom_obmc_sad64x16 = aom_obmc_sad64x16_c;
1102 3 : if (flags & HAS_AVX2) aom_obmc_sad64x16 = aom_obmc_sad64x16_avx2;
1103 3 : aom_obmc_sad64x32 = aom_obmc_sad64x32_c;
1104 3 : if (flags & HAS_AVX2) aom_obmc_sad64x32 = aom_obmc_sad64x32_avx2;
1105 3 : aom_obmc_sad64x64 = aom_obmc_sad64x64_c;
1106 3 : if (flags & HAS_AVX2) aom_obmc_sad64x64 = aom_obmc_sad64x64_avx2;
1107 3 : aom_obmc_sad8x16 = aom_obmc_sad8x16_c;
1108 3 : if (flags & HAS_AVX2) aom_obmc_sad8x16 = aom_obmc_sad8x16_avx2;
1109 3 : aom_obmc_sad8x32 = aom_obmc_sad8x32_c;
1110 3 : if (flags & HAS_AVX2) aom_obmc_sad8x32 = aom_obmc_sad8x32_avx2;
1111 3 : aom_obmc_sad8x4 = aom_obmc_sad8x4_c;
1112 3 : if (flags & HAS_AVX2) aom_obmc_sad8x4 = aom_obmc_sad8x4_avx2;
1113 3 : aom_obmc_sad8x8 = aom_obmc_sad8x8_c;
1114 3 : if (flags & HAS_AVX2) aom_obmc_sad8x8 = aom_obmc_sad8x8_avx2;
1115 3 : aom_obmc_sub_pixel_variance128x128 = aom_obmc_sub_pixel_variance128x128_c;
1116 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance128x128 = aom_obmc_sub_pixel_variance128x128_sse4_1;
1117 3 : aom_obmc_sub_pixel_variance128x64 = aom_obmc_sub_pixel_variance128x64_c;
1118 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance128x64 = aom_obmc_sub_pixel_variance128x64_sse4_1;
1119 3 : aom_obmc_sub_pixel_variance16x16 = aom_obmc_sub_pixel_variance16x16_c;
1120 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance16x16 = aom_obmc_sub_pixel_variance16x16_sse4_1;
1121 3 : aom_obmc_sub_pixel_variance16x32 = aom_obmc_sub_pixel_variance16x32_c;
1122 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance16x32 = aom_obmc_sub_pixel_variance16x32_sse4_1;
1123 3 : aom_obmc_sub_pixel_variance16x4 = aom_obmc_sub_pixel_variance16x4_c;
1124 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance16x4 = aom_obmc_sub_pixel_variance16x4_sse4_1;
1125 3 : aom_obmc_sub_pixel_variance16x64 = aom_obmc_sub_pixel_variance16x64_c;
1126 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance16x64 = aom_obmc_sub_pixel_variance16x64_sse4_1;
1127 3 : aom_obmc_sub_pixel_variance16x8 = aom_obmc_sub_pixel_variance16x8_c;
1128 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance16x8 = aom_obmc_sub_pixel_variance16x8_sse4_1;
1129 3 : aom_obmc_sub_pixel_variance32x16 = aom_obmc_sub_pixel_variance32x16_c;
1130 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance32x16 = aom_obmc_sub_pixel_variance32x16_sse4_1;
1131 3 : aom_obmc_sub_pixel_variance32x32 = aom_obmc_sub_pixel_variance32x32_c;
1132 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance32x32 = aom_obmc_sub_pixel_variance32x32_sse4_1;
1133 3 : aom_obmc_sub_pixel_variance32x64 = aom_obmc_sub_pixel_variance32x64_c;
1134 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance32x64 = aom_obmc_sub_pixel_variance32x64_sse4_1;
1135 3 : aom_obmc_sub_pixel_variance32x8 = aom_obmc_sub_pixel_variance32x8_c;
1136 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance32x8 = aom_obmc_sub_pixel_variance32x8_sse4_1;
1137 3 : aom_obmc_sub_pixel_variance4x16 = aom_obmc_sub_pixel_variance4x16_c;
1138 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance4x16 = aom_obmc_sub_pixel_variance4x16_sse4_1;
1139 3 : aom_obmc_sub_pixel_variance4x4 = aom_obmc_sub_pixel_variance4x4_c;
1140 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance4x4 = aom_obmc_sub_pixel_variance4x4_sse4_1;
1141 3 : aom_obmc_sub_pixel_variance4x8 = aom_obmc_sub_pixel_variance4x8_c;
1142 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance4x8 = aom_obmc_sub_pixel_variance4x8_sse4_1;
1143 3 : aom_obmc_sub_pixel_variance64x128 = aom_obmc_sub_pixel_variance64x128_c;
1144 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance64x128 = aom_obmc_sub_pixel_variance64x128_sse4_1;
1145 3 : aom_obmc_sub_pixel_variance64x16 = aom_obmc_sub_pixel_variance64x16_c;
1146 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance64x16 = aom_obmc_sub_pixel_variance64x16_sse4_1;
1147 3 : aom_obmc_sub_pixel_variance64x32 = aom_obmc_sub_pixel_variance64x32_c;
1148 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance64x32 = aom_obmc_sub_pixel_variance64x32_sse4_1;
1149 3 : aom_obmc_sub_pixel_variance64x64 = aom_obmc_sub_pixel_variance64x64_c;
1150 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance64x64 = aom_obmc_sub_pixel_variance64x64_sse4_1;
1151 3 : aom_obmc_sub_pixel_variance8x16 = aom_obmc_sub_pixel_variance8x16_c;
1152 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance8x16 = aom_obmc_sub_pixel_variance8x16_sse4_1;
1153 3 : aom_obmc_sub_pixel_variance8x32 = aom_obmc_sub_pixel_variance8x32_c;
1154 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance8x32 = aom_obmc_sub_pixel_variance8x32_sse4_1;
1155 3 : aom_obmc_sub_pixel_variance8x4 = aom_obmc_sub_pixel_variance8x4_c;
1156 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance8x4 = aom_obmc_sub_pixel_variance8x4_sse4_1;
1157 3 : aom_obmc_sub_pixel_variance8x8 = aom_obmc_sub_pixel_variance8x8_c;
1158 3 : if (flags & HAS_SSE4_1) aom_obmc_sub_pixel_variance8x8 = aom_obmc_sub_pixel_variance8x8_sse4_1;
1159 3 : aom_obmc_variance128x128 = aom_obmc_variance128x128_c;
1160 3 : if (flags & HAS_AVX2) aom_obmc_variance128x128 = aom_obmc_variance128x128_avx2;
1161 3 : aom_obmc_variance128x64 = aom_obmc_variance128x64_c;
1162 3 : if (flags & HAS_AVX2) aom_obmc_variance128x64 = aom_obmc_variance128x64_avx2;
1163 3 : aom_obmc_variance16x16 = aom_obmc_variance16x16_c;
1164 3 : if (flags & HAS_AVX2) aom_obmc_variance16x16 = aom_obmc_variance16x16_avx2;
1165 3 : aom_obmc_variance16x32 = aom_obmc_variance16x32_c;
1166 3 : if (flags & HAS_AVX2) aom_obmc_variance16x32 = aom_obmc_variance16x32_avx2;
1167 3 : aom_obmc_variance16x4 = aom_obmc_variance16x4_c;
1168 3 : if (flags & HAS_AVX2) aom_obmc_variance16x4 = aom_obmc_variance16x4_avx2;
1169 3 : aom_obmc_variance16x64 = aom_obmc_variance16x64_c;
1170 3 : if (flags & HAS_AVX2) aom_obmc_variance16x64 = aom_obmc_variance16x64_avx2;
1171 3 : aom_obmc_variance16x8 = aom_obmc_variance16x8_c;
1172 3 : if (flags & HAS_AVX2) aom_obmc_variance16x8 = aom_obmc_variance16x8_avx2;
1173 3 : aom_obmc_variance32x16 = aom_obmc_variance32x16_c;
1174 3 : if (flags & HAS_AVX2) aom_obmc_variance32x16 = aom_obmc_variance32x16_avx2;
1175 3 : aom_obmc_variance32x32 = aom_obmc_variance32x32_c;
1176 3 : if (flags & HAS_AVX2) aom_obmc_variance32x32 = aom_obmc_variance32x32_avx2;
1177 3 : aom_obmc_variance32x64 = aom_obmc_variance32x64_c;
1178 3 : if (flags & HAS_AVX2) aom_obmc_variance32x64 = aom_obmc_variance32x64_avx2;
1179 3 : aom_obmc_variance32x8 = aom_obmc_variance32x8_c;
1180 3 : if (flags & HAS_AVX2) aom_obmc_variance32x8 = aom_obmc_variance32x8_avx2;
1181 3 : aom_obmc_variance4x16 = aom_obmc_variance4x16_c;
1182 3 : if (flags & HAS_AVX2) aom_obmc_variance4x16 = aom_obmc_variance4x16_avx2;
1183 3 : aom_obmc_variance4x4 = aom_obmc_variance4x4_c;
1184 3 : if (flags & HAS_AVX2) aom_obmc_variance4x4 = aom_obmc_variance4x4_avx2;
1185 3 : aom_obmc_variance4x8 = aom_obmc_variance4x8_c;
1186 3 : if (flags & HAS_AVX2) aom_obmc_variance4x8 = aom_obmc_variance4x8_avx2;
1187 3 : aom_obmc_variance64x128 = aom_obmc_variance64x128_c;
1188 3 : if (flags & HAS_AVX2) aom_obmc_variance64x128 = aom_obmc_variance64x128_avx2;
1189 3 : aom_obmc_variance64x16 = aom_obmc_variance64x16_c;
1190 3 : if (flags & HAS_AVX2) aom_obmc_variance64x16 = aom_obmc_variance64x16_avx2;
1191 3 : aom_obmc_variance64x32 = aom_obmc_variance64x32_c;
1192 3 : if (flags & HAS_AVX2) aom_obmc_variance64x32 = aom_obmc_variance64x32_avx2;
1193 3 : aom_obmc_variance64x64 = aom_obmc_variance64x64_c;
1194 3 : if (flags & HAS_AVX2) aom_obmc_variance64x64 = aom_obmc_variance64x64_avx2;
1195 3 : aom_obmc_variance8x16 = aom_obmc_variance8x16_c;
1196 3 : if (flags & HAS_AVX2) aom_obmc_variance8x16 = aom_obmc_variance8x16_avx2;
1197 3 : aom_obmc_variance8x32 = aom_obmc_variance8x32_c;
1198 3 : if (flags & HAS_AVX2) aom_obmc_variance8x32 = aom_obmc_variance8x32_avx2;
1199 3 : aom_obmc_variance8x4 = aom_obmc_variance8x4_c;
1200 3 : if (flags & HAS_AVX2) aom_obmc_variance8x4 = aom_obmc_variance8x4_avx2;
1201 3 : aom_obmc_variance8x8 = aom_obmc_variance8x8_c;
1202 3 : if (flags & HAS_AVX2) aom_obmc_variance8x8 = aom_obmc_variance8x8_avx2;
1203 : #endif
1204 : //VARIANCE
1205 3 : eb_aom_variance4x4 = eb_aom_variance4x4_c;
1206 3 : if (flags & HAS_AVX2) eb_aom_variance4x4 = eb_aom_variance4x4_sse2;
1207 3 : eb_aom_variance4x8 = eb_aom_variance4x8_c;
1208 3 : if (flags & HAS_AVX2) eb_aom_variance4x8 = eb_aom_variance4x8_sse2;
1209 3 : eb_aom_variance4x16 = eb_aom_variance4x16_c;
1210 3 : if (flags & HAS_AVX2) eb_aom_variance4x16 = eb_aom_variance4x16_sse2;
1211 3 : eb_aom_variance8x4 = eb_aom_variance8x4_c;
1212 3 : if (flags & HAS_AVX2) eb_aom_variance8x4 = eb_aom_variance8x4_sse2;
1213 3 : eb_aom_variance8x8 = eb_aom_variance8x8_c;
1214 3 : if (flags & HAS_AVX2) eb_aom_variance8x8 = eb_aom_variance8x8_sse2;
1215 3 : eb_aom_variance8x16 = eb_aom_variance8x16_c;
1216 3 : if (flags & HAS_AVX2) eb_aom_variance8x16 = eb_aom_variance8x16_sse2;
1217 3 : eb_aom_variance8x32 = eb_aom_variance8x32_c;
1218 3 : if (flags & HAS_AVX2) eb_aom_variance8x32 = eb_aom_variance8x32_sse2;
1219 3 : eb_aom_variance16x4 = eb_aom_variance16x4_c;
1220 3 : if (flags & HAS_AVX2) eb_aom_variance16x4 = eb_aom_variance16x4_avx2;
1221 3 : eb_aom_variance16x8 = eb_aom_variance16x8_c;
1222 3 : if (flags & HAS_AVX2) eb_aom_variance16x8 = eb_aom_variance16x8_avx2;
1223 3 : eb_aom_variance16x16 = eb_aom_variance16x16_c;
1224 3 : if (flags & HAS_AVX2) eb_aom_variance16x16 = eb_aom_variance16x16_avx2;
1225 3 : eb_aom_variance16x32 = eb_aom_variance16x32_c;
1226 3 : if (flags & HAS_AVX2) eb_aom_variance16x32 = eb_aom_variance16x32_avx2;
1227 3 : eb_aom_variance16x64 = eb_aom_variance16x64_c;
1228 3 : if (flags & HAS_AVX2) eb_aom_variance16x64 = eb_aom_variance16x64_avx2;
1229 3 : eb_aom_variance32x8 = eb_aom_variance32x8_c;
1230 3 : if (flags & HAS_AVX2) eb_aom_variance32x8 = eb_aom_variance32x8_avx2;
1231 3 : eb_aom_variance32x16 = eb_aom_variance32x16_c;
1232 3 : if (flags & HAS_AVX2) eb_aom_variance32x16 = eb_aom_variance32x16_avx2;
1233 3 : eb_aom_variance32x32 = eb_aom_variance32x32_c;
1234 3 : if (flags & HAS_AVX2) eb_aom_variance32x32 = eb_aom_variance32x32_avx2;
1235 3 : eb_aom_variance32x64 = eb_aom_variance32x64_c;
1236 3 : if (flags & HAS_AVX2) eb_aom_variance32x64 = eb_aom_variance32x64_avx2;
1237 3 : eb_aom_variance64x16 = eb_aom_variance64x16_c;
1238 3 : if (flags & HAS_AVX2) eb_aom_variance64x16 = eb_aom_variance64x16_avx2;
1239 3 : eb_aom_variance64x32 = eb_aom_variance64x32_c;
1240 3 : if (flags & HAS_AVX2) eb_aom_variance64x32 = eb_aom_variance64x32_avx2;
1241 3 : eb_aom_variance64x64 = eb_aom_variance64x64_c;
1242 3 : if (flags & HAS_AVX2) eb_aom_variance64x64 = eb_aom_variance64x64_avx2;
1243 3 : eb_aom_variance64x128 = eb_aom_variance64x128_c;
1244 3 : if (flags & HAS_AVX2) eb_aom_variance64x128 = eb_aom_variance64x128_avx2;
1245 3 : eb_aom_variance128x64 = eb_aom_variance128x64_c;
1246 3 : if (flags & HAS_AVX2) eb_aom_variance128x64 = eb_aom_variance128x64_avx2;
1247 3 : eb_aom_variance128x128 = eb_aom_variance128x128_c;
1248 3 : if (flags & HAS_AVX2) eb_aom_variance128x128 = eb_aom_variance128x128_avx2;
1249 :
1250 : //QIQ
1251 3 : eb_aom_quantize_b_64x64 = eb_aom_quantize_b_64x64_c_II;
1252 3 : if (flags & HAS_AVX2) eb_aom_quantize_b_64x64 = eb_aom_quantize_b_64x64_avx2;
1253 :
1254 3 : eb_aom_highbd_quantize_b_64x64 = eb_aom_highbd_quantize_b_64x64_c;
1255 3 : if (flags & HAS_AVX2) eb_aom_highbd_quantize_b_64x64 = eb_aom_highbd_quantize_b_64x64_avx2;
1256 : // transform
1257 3 : eb_av1_fwd_txfm2d_16x8 = eb_av1_fwd_txfm2d_16x8_c;
1258 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_16x8 = eb_av1_fwd_txfm2d_16x8_avx2;
1259 3 : eb_av1_fwd_txfm2d_8x16 = eb_av1_fwd_txfm2d_8x16_c;
1260 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_8x16 = eb_av1_fwd_txfm2d_8x16_avx2;
1261 :
1262 3 : eb_av1_fwd_txfm2d_16x4 = eb_av1_fwd_txfm2d_16x4_c;
1263 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_16x4 = eb_av1_fwd_txfm2d_16x4_avx2;
1264 3 : eb_av1_fwd_txfm2d_4x16 = eb_av1_fwd_txfm2d_4x16_c;
1265 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_4x16 = eb_av1_fwd_txfm2d_4x16_avx2;
1266 :
1267 3 : eb_av1_fwd_txfm2d_8x4 = eb_av1_fwd_txfm2d_8x4_c;
1268 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_8x4 = eb_av1_fwd_txfm2d_8x4_avx2;
1269 3 : eb_av1_fwd_txfm2d_4x8 = eb_av1_fwd_txfm2d_4x8_c;
1270 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_4x8 = eb_av1_fwd_txfm2d_4x8_avx2;
1271 :
1272 3 : eb_av1_fwd_txfm2d_32x16 = eb_av1_fwd_txfm2d_32x16_c;
1273 3 : eb_av1_fwd_txfm2d_32x8 = eb_av1_fwd_txfm2d_32x8_c;
1274 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_32x8 = eb_av1_fwd_txfm2d_32x8_avx2;
1275 3 : eb_av1_fwd_txfm2d_8x32 = eb_av1_fwd_txfm2d_8x32_c;
1276 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_8x32 = eb_av1_fwd_txfm2d_8x32_avx2;
1277 3 : eb_av1_fwd_txfm2d_16x32 = eb_av1_fwd_txfm2d_16x32_c;
1278 3 : eb_av1_fwd_txfm2d_32x64 = eb_av1_fwd_txfm2d_32x64_c;
1279 3 : eb_av1_fwd_txfm2d_64x32 = eb_av1_fwd_txfm2d_64x32_c;
1280 3 : eb_av1_fwd_txfm2d_16x64 = eb_av1_fwd_txfm2d_16x64_c;
1281 3 : eb_av1_fwd_txfm2d_64x16 = eb_av1_fwd_txfm2d_64x16_c;
1282 3 : eb_av1_fwd_txfm2d_64x64 = Av1TransformTwoD_64x64_c;
1283 3 : eb_av1_fwd_txfm2d_32x32 = Av1TransformTwoD_32x32_c;
1284 3 : eb_av1_fwd_txfm2d_16x16 = Av1TransformTwoD_16x16_c;
1285 : #ifndef NON_AVX512_SUPPORT
1286 : if (CanUseIntelAVX512()) {
1287 : eb_av1_fwd_txfm2d_64x64 = av1_fwd_txfm2d_64x64_avx512;
1288 : eb_av1_fwd_txfm2d_32x32 = av1_fwd_txfm2d_32x32_avx512;
1289 : eb_av1_fwd_txfm2d_16x16 = av1_fwd_txfm2d_16x16_avx512;
1290 : eb_av1_fwd_txfm2d_32x64 = av1_fwd_txfm2d_32x64_avx512;
1291 : eb_av1_fwd_txfm2d_64x32 = av1_fwd_txfm2d_64x32_avx512;
1292 : eb_av1_fwd_txfm2d_16x64 = av1_fwd_txfm2d_16x64_avx512;
1293 : eb_av1_fwd_txfm2d_64x16 = av1_fwd_txfm2d_64x16_avx512;
1294 : eb_av1_fwd_txfm2d_32x16 = av1_fwd_txfm2d_32x16_avx512;
1295 : eb_av1_fwd_txfm2d_16x32 = av1_fwd_txfm2d_16x32_avx512;
1296 : }
1297 : #else
1298 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_64x64 = eb_av1_fwd_txfm2d_64x64_avx2;
1299 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_32x32 = eb_av1_fwd_txfm2d_32x32_avx2;
1300 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_16x16 = eb_av1_fwd_txfm2d_16x16_avx2;
1301 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_32x64 = eb_av1_fwd_txfm2d_32x64_avx2;
1302 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_64x32 = eb_av1_fwd_txfm2d_64x32_avx2;
1303 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_16x64 = eb_av1_fwd_txfm2d_16x64_avx2;
1304 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_64x16 = eb_av1_fwd_txfm2d_64x16_avx2;
1305 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_32x16 = eb_av1_fwd_txfm2d_32x16_avx2;
1306 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_16x32 = eb_av1_fwd_txfm2d_16x32_avx2;
1307 : #endif
1308 3 : eb_av1_fwd_txfm2d_8x8 = Av1TransformTwoD_8x8_c;
1309 3 : if (flags & HAS_AVX2) eb_av1_fwd_txfm2d_8x8 = eb_av1_fwd_txfm2d_8x8_avx2;
1310 3 : eb_av1_fwd_txfm2d_4x4 = Av1TransformTwoD_4x4_c;
1311 3 : if (flags & HAS_SSE4_1) eb_av1_fwd_txfm2d_4x4 = eb_av1_fwd_txfm2d_4x4_sse4_1;
1312 :
1313 3 : HandleTransform16x64 = HandleTransform16x64_c;
1314 3 : if (flags & HAS_AVX2) HandleTransform16x64 = HandleTransform16x64_avx2;
1315 3 : HandleTransform32x64 = HandleTransform32x64_c;
1316 3 : if (flags & HAS_AVX2) HandleTransform32x64 = HandleTransform32x64_avx2;
1317 3 : HandleTransform64x16 = HandleTransform64x16_c;
1318 3 : if (flags & HAS_AVX2) HandleTransform64x16 = HandleTransform64x16_avx2;
1319 3 : HandleTransform64x32 = HandleTransform64x32_c;
1320 3 : if (flags & HAS_AVX2) HandleTransform64x32 = HandleTransform64x32_avx2;
1321 3 : HandleTransform64x64 = HandleTransform64x64_c;
1322 3 : if (flags & HAS_AVX2) HandleTransform64x64 = HandleTransform64x64_avx2;
1323 :
1324 : // eb_aom_highbd_v_predictor
1325 3 : eb_aom_highbd_v_predictor_16x16 = eb_aom_highbd_v_predictor_16x16_c;
1326 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_16x16 = eb_aom_highbd_v_predictor_16x16_avx2;
1327 3 : eb_aom_highbd_v_predictor_16x32 = eb_aom_highbd_v_predictor_16x32_c;
1328 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_16x32 = eb_aom_highbd_v_predictor_16x32_avx2;
1329 3 : eb_aom_highbd_v_predictor_16x4 = eb_aom_highbd_v_predictor_16x4_c;
1330 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_16x4 = eb_aom_highbd_v_predictor_16x4_avx2;
1331 3 : eb_aom_highbd_v_predictor_16x64 = eb_aom_highbd_v_predictor_16x64_c;
1332 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_16x64 = eb_aom_highbd_v_predictor_16x64_avx2;
1333 3 : eb_aom_highbd_v_predictor_16x8 = eb_aom_highbd_v_predictor_16x8_c;
1334 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_16x8 = eb_aom_highbd_v_predictor_16x8_avx2;
1335 3 : eb_aom_highbd_v_predictor_2x2 = eb_aom_highbd_v_predictor_2x2_c;
1336 3 : eb_aom_highbd_v_predictor_32x16 = eb_aom_highbd_v_predictor_32x16_c;
1337 3 : eb_aom_highbd_v_predictor_32x32 = eb_aom_highbd_v_predictor_32x32_c;
1338 3 : eb_aom_highbd_v_predictor_32x64 = eb_aom_highbd_v_predictor_32x64_c;
1339 3 : eb_aom_highbd_v_predictor_32x8 = eb_aom_highbd_v_predictor_32x8_c;
1340 3 : eb_aom_highbd_v_predictor_4x16 = eb_aom_highbd_v_predictor_4x16_c;
1341 3 : if (flags & HAS_SSE2) eb_aom_highbd_v_predictor_4x16 = eb_aom_highbd_v_predictor_4x16_sse2;
1342 3 : eb_aom_highbd_v_predictor_4x4 = eb_aom_highbd_v_predictor_4x4_c;
1343 3 : if (flags & HAS_SSE2) eb_aom_highbd_v_predictor_4x4 = eb_aom_highbd_v_predictor_4x4_sse2;
1344 3 : eb_aom_highbd_v_predictor_4x8 = eb_aom_highbd_v_predictor_4x8_c;
1345 3 : if (flags & HAS_SSE2) eb_aom_highbd_v_predictor_4x8 = eb_aom_highbd_v_predictor_4x8_sse2;
1346 3 : eb_aom_highbd_v_predictor_64x16 = eb_aom_highbd_v_predictor_64x16_c;
1347 3 : eb_aom_highbd_v_predictor_64x32 = eb_aom_highbd_v_predictor_64x32_c;
1348 3 : eb_aom_highbd_v_predictor_8x32 = eb_aom_highbd_v_predictor_8x32_c;
1349 3 : if (flags & HAS_SSE2) eb_aom_highbd_v_predictor_8x32 = eb_aom_highbd_v_predictor_8x32_sse2;
1350 3 : eb_aom_highbd_v_predictor_64x64 = eb_aom_highbd_v_predictor_64x64_c;
1351 3 : eb_aom_highbd_v_predictor_8x16 = eb_aom_highbd_v_predictor_8x16_c;
1352 3 : if (flags & HAS_SSE2) eb_aom_highbd_v_predictor_8x16 = eb_aom_highbd_v_predictor_8x16_sse2;
1353 3 : eb_aom_highbd_v_predictor_8x4 = eb_aom_highbd_v_predictor_8x4_c;
1354 3 : if (flags & HAS_SSE2) eb_aom_highbd_v_predictor_8x4 = eb_aom_highbd_v_predictor_8x4_sse2;
1355 3 : eb_aom_highbd_v_predictor_8x8 = eb_aom_highbd_v_predictor_8x8_c;
1356 3 : if (flags & HAS_SSE2) eb_aom_highbd_v_predictor_8x8 = eb_aom_highbd_v_predictor_8x8_sse2;
1357 :
1358 : #ifndef NON_AVX512_SUPPORT
1359 : if (CanUseIntelAVX512()) {
1360 : eb_aom_highbd_v_predictor_32x8 = aom_highbd_v_predictor_32x8_avx512;
1361 : eb_aom_highbd_v_predictor_32x16 = aom_highbd_v_predictor_32x16_avx512;
1362 : eb_aom_highbd_v_predictor_32x32 = aom_highbd_v_predictor_32x32_avx512;
1363 : eb_aom_highbd_v_predictor_32x64 = aom_highbd_v_predictor_32x64_avx512;
1364 : eb_aom_highbd_v_predictor_64x16 = aom_highbd_v_predictor_64x16_avx512;
1365 : eb_aom_highbd_v_predictor_64x32 = aom_highbd_v_predictor_64x32_avx512;
1366 : eb_aom_highbd_v_predictor_64x64 = aom_highbd_v_predictor_64x64_avx512;
1367 : }
1368 : #else
1369 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_32x8 = eb_aom_highbd_v_predictor_32x8_avx2;
1370 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_32x16 = eb_aom_highbd_v_predictor_32x16_avx2;
1371 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_32x32 = eb_aom_highbd_v_predictor_32x32_avx2;
1372 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_32x64 = eb_aom_highbd_v_predictor_32x64_avx2;
1373 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_64x16 = eb_aom_highbd_v_predictor_64x16_avx2;
1374 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_64x32 = eb_aom_highbd_v_predictor_64x32_avx2;
1375 3 : if (flags & HAS_AVX2) eb_aom_highbd_v_predictor_64x64 = eb_aom_highbd_v_predictor_64x64_avx2;
1376 : #endif // !NON_AVX512_SUPPORT
1377 :
1378 : //aom_highbd_smooth_predictor
1379 3 : eb_aom_highbd_smooth_predictor_16x16 = eb_aom_highbd_smooth_predictor_16x16_c;
1380 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_16x16 = eb_aom_highbd_smooth_predictor_16x16_avx2;
1381 3 : eb_aom_highbd_smooth_predictor_16x32 = eb_aom_highbd_smooth_predictor_16x32_c;
1382 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_16x32 = eb_aom_highbd_smooth_predictor_16x32_avx2;
1383 3 : eb_aom_highbd_smooth_predictor_16x4 = eb_aom_highbd_smooth_predictor_16x4_c;
1384 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_16x4 = eb_aom_highbd_smooth_predictor_16x4_avx2;
1385 3 : eb_aom_highbd_smooth_predictor_16x64 = eb_aom_highbd_smooth_predictor_16x64_c;
1386 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_16x64 = eb_aom_highbd_smooth_predictor_16x64_avx2;
1387 3 : eb_aom_highbd_smooth_predictor_16x8 = eb_aom_highbd_smooth_predictor_16x8_c;
1388 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_16x8 = eb_aom_highbd_smooth_predictor_16x8_avx2;
1389 3 : eb_aom_highbd_smooth_predictor_2x2 = eb_aom_highbd_smooth_predictor_2x2_c;
1390 3 : eb_aom_highbd_smooth_predictor_32x16 = eb_aom_highbd_smooth_predictor_32x16_c;
1391 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_32x16 = eb_aom_highbd_smooth_predictor_32x16_avx2;
1392 3 : eb_aom_highbd_smooth_predictor_32x32 = eb_aom_highbd_smooth_predictor_32x32_c;
1393 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_32x32 = eb_aom_highbd_smooth_predictor_32x32_avx2;
1394 3 : eb_aom_highbd_smooth_predictor_32x64 = eb_aom_highbd_smooth_predictor_32x64_c;
1395 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_32x64 = eb_aom_highbd_smooth_predictor_32x64_avx2;
1396 3 : eb_aom_highbd_smooth_predictor_32x8 = eb_aom_highbd_smooth_predictor_32x8_c;
1397 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_32x8 = eb_aom_highbd_smooth_predictor_32x8_avx2;
1398 3 : eb_aom_highbd_smooth_predictor_4x16 = eb_aom_highbd_smooth_predictor_4x16_c;
1399 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_predictor_4x16 = eb_aom_highbd_smooth_predictor_4x16_ssse3;
1400 3 : eb_aom_highbd_smooth_predictor_4x4 = eb_aom_highbd_smooth_predictor_4x4_c;
1401 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_predictor_4x4 = eb_aom_highbd_smooth_predictor_4x4_ssse3;
1402 3 : eb_aom_highbd_smooth_predictor_4x8 = eb_aom_highbd_smooth_predictor_4x8_c;
1403 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_predictor_4x8 = eb_aom_highbd_smooth_predictor_4x8_ssse3;
1404 3 : eb_aom_highbd_smooth_predictor_64x16 = eb_aom_highbd_smooth_predictor_64x16_c;
1405 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_64x16 = eb_aom_highbd_smooth_predictor_64x16_avx2;
1406 3 : eb_aom_highbd_smooth_predictor_64x32 = eb_aom_highbd_smooth_predictor_64x32_c;
1407 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_64x32 = eb_aom_highbd_smooth_predictor_64x32_avx2;
1408 3 : eb_aom_highbd_smooth_predictor_64x64 = eb_aom_highbd_smooth_predictor_64x64_c;
1409 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_64x64 = eb_aom_highbd_smooth_predictor_64x64_avx2;
1410 3 : eb_aom_highbd_smooth_predictor_8x16 = eb_aom_highbd_smooth_predictor_8x16_c;
1411 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_8x16 = eb_aom_highbd_smooth_predictor_8x16_avx2;
1412 3 : eb_aom_highbd_smooth_predictor_8x32 = eb_aom_highbd_smooth_predictor_8x32_c;
1413 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_8x32 = eb_aom_highbd_smooth_predictor_8x32_avx2;
1414 3 : eb_aom_highbd_smooth_predictor_8x4 = eb_aom_highbd_smooth_predictor_8x4_c;
1415 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_8x4 = eb_aom_highbd_smooth_predictor_8x4_avx2;
1416 3 : eb_aom_highbd_smooth_predictor_8x8 = eb_aom_highbd_smooth_predictor_8x8_c;
1417 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_predictor_8x8 = eb_aom_highbd_smooth_predictor_8x8_avx2;
1418 :
1419 : //aom_highbd_smooth_h_predictor
1420 3 : eb_aom_highbd_smooth_h_predictor_16x16 = eb_aom_highbd_smooth_h_predictor_16x16_c;
1421 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_16x16 = eb_aom_highbd_smooth_h_predictor_16x16_avx2;
1422 3 : eb_aom_highbd_smooth_h_predictor_16x32 = eb_aom_highbd_smooth_h_predictor_16x32_c;
1423 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_16x32 = eb_aom_highbd_smooth_h_predictor_16x32_avx2;
1424 3 : eb_aom_highbd_smooth_h_predictor_16x4 = eb_aom_highbd_smooth_h_predictor_16x4_c;
1425 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_16x4 = eb_aom_highbd_smooth_h_predictor_16x4_avx2;
1426 3 : eb_aom_highbd_smooth_h_predictor_16x64 = eb_aom_highbd_smooth_h_predictor_16x64_c;
1427 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_16x64 = eb_aom_highbd_smooth_h_predictor_16x64_avx2;
1428 3 : eb_aom_highbd_smooth_h_predictor_16x8 = eb_aom_highbd_smooth_h_predictor_16x8_c;
1429 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_16x8 = eb_aom_highbd_smooth_h_predictor_16x8_avx2;
1430 3 : eb_aom_highbd_smooth_h_predictor_2x2 = eb_aom_highbd_smooth_h_predictor_2x2_c;
1431 3 : eb_aom_highbd_smooth_h_predictor_32x16 = eb_aom_highbd_smooth_h_predictor_32x16_c;
1432 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_32x16 = eb_aom_highbd_smooth_h_predictor_32x16_avx2;
1433 3 : eb_aom_highbd_smooth_h_predictor_32x32 = eb_aom_highbd_smooth_h_predictor_32x32_c;
1434 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_32x32 = eb_aom_highbd_smooth_h_predictor_32x32_avx2;
1435 3 : eb_aom_highbd_smooth_h_predictor_32x64 = eb_aom_highbd_smooth_h_predictor_32x64_c;
1436 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_32x64 = eb_aom_highbd_smooth_h_predictor_32x64_avx2;
1437 3 : eb_aom_highbd_smooth_h_predictor_32x8 = eb_aom_highbd_smooth_h_predictor_32x8_c;
1438 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_32x8 = eb_aom_highbd_smooth_h_predictor_32x8_avx2;
1439 3 : eb_aom_highbd_smooth_h_predictor_4x16 = eb_aom_highbd_smooth_h_predictor_4x16_c;
1440 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_h_predictor_4x16 = eb_aom_highbd_smooth_h_predictor_4x16_ssse3;
1441 3 : eb_aom_highbd_smooth_h_predictor_4x4 = eb_aom_highbd_smooth_h_predictor_4x4_c;
1442 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_h_predictor_4x4 = eb_aom_highbd_smooth_h_predictor_4x4_ssse3;
1443 3 : eb_aom_highbd_smooth_h_predictor_4x8 = eb_aom_highbd_smooth_h_predictor_4x8_c;
1444 3 : if (flags & HAS_SSSE3) eb_aom_highbd_smooth_h_predictor_4x8 = eb_aom_highbd_smooth_h_predictor_4x8_ssse3;
1445 3 : eb_aom_highbd_smooth_h_predictor_64x16 = eb_aom_highbd_smooth_h_predictor_64x16_c;
1446 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_64x16 = eb_aom_highbd_smooth_h_predictor_64x16_avx2;
1447 3 : eb_aom_highbd_smooth_h_predictor_64x32 = eb_aom_highbd_smooth_h_predictor_64x32_c;
1448 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_64x32 = eb_aom_highbd_smooth_h_predictor_64x32_avx2;
1449 3 : eb_aom_highbd_smooth_h_predictor_64x64 = eb_aom_highbd_smooth_h_predictor_64x64_c;
1450 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_64x64 = eb_aom_highbd_smooth_h_predictor_64x64_avx2;
1451 3 : eb_aom_highbd_smooth_h_predictor_8x16 = eb_aom_highbd_smooth_h_predictor_8x16_c;
1452 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_8x16 = eb_aom_highbd_smooth_h_predictor_8x16_avx2;
1453 3 : eb_aom_highbd_smooth_h_predictor_8x32 = eb_aom_highbd_smooth_h_predictor_8x32_c;
1454 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_8x32 = eb_aom_highbd_smooth_h_predictor_8x32_avx2;
1455 3 : eb_aom_highbd_smooth_h_predictor_8x4 = eb_aom_highbd_smooth_h_predictor_8x4_c;
1456 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_8x4 = eb_aom_highbd_smooth_h_predictor_8x4_avx2;
1457 3 : eb_aom_highbd_smooth_h_predictor_8x8 = eb_aom_highbd_smooth_h_predictor_8x8_c;
1458 3 : if (flags & HAS_AVX2) eb_aom_highbd_smooth_h_predictor_8x8 = eb_aom_highbd_smooth_h_predictor_8x8_avx2;
1459 :
1460 : //aom_highbd_dc_128_predictor
1461 3 : eb_aom_highbd_dc_128_predictor_16x16 = eb_aom_highbd_dc_128_predictor_16x16_c;
1462 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_16x16 = eb_aom_highbd_dc_128_predictor_16x16_avx2;
1463 3 : eb_aom_highbd_dc_128_predictor_16x32 = eb_aom_highbd_dc_128_predictor_16x32_c;
1464 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_16x32 = eb_aom_highbd_dc_128_predictor_16x32_avx2;
1465 3 : eb_aom_highbd_dc_128_predictor_16x4 = eb_aom_highbd_dc_128_predictor_16x4_c;
1466 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_16x4 = eb_aom_highbd_dc_128_predictor_16x4_avx2;
1467 3 : eb_aom_highbd_dc_128_predictor_16x64 = eb_aom_highbd_dc_128_predictor_16x64_c;
1468 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_16x64 = eb_aom_highbd_dc_128_predictor_16x64_avx2;
1469 3 : eb_aom_highbd_dc_128_predictor_16x8 = eb_aom_highbd_dc_128_predictor_16x8_c;
1470 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_16x8 = eb_aom_highbd_dc_128_predictor_16x8_avx2;
1471 3 : eb_aom_highbd_dc_128_predictor_2x2 = eb_aom_highbd_dc_128_predictor_2x2_c;
1472 3 : eb_aom_highbd_dc_128_predictor_32x16 = eb_aom_highbd_dc_128_predictor_32x16_c;
1473 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_32x16 = eb_aom_highbd_dc_128_predictor_32x16_avx2;
1474 3 : eb_aom_highbd_dc_128_predictor_32x32 = eb_aom_highbd_dc_128_predictor_32x32_c;
1475 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_32x32 = eb_aom_highbd_dc_128_predictor_32x32_avx2;
1476 3 : eb_aom_highbd_dc_128_predictor_32x64 = eb_aom_highbd_dc_128_predictor_32x64_c;
1477 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_32x64 = eb_aom_highbd_dc_128_predictor_32x64_avx2;
1478 3 : eb_aom_highbd_dc_128_predictor_32x8 = eb_aom_highbd_dc_128_predictor_32x8_c;
1479 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_32x8 = eb_aom_highbd_dc_128_predictor_32x8_avx2;
1480 3 : eb_aom_highbd_dc_128_predictor_4x16 = eb_aom_highbd_dc_128_predictor_4x16_c;
1481 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_128_predictor_4x16 = eb_aom_highbd_dc_128_predictor_4x16_sse2;
1482 3 : eb_aom_highbd_dc_128_predictor_4x4 = eb_aom_highbd_dc_128_predictor_4x4_c;
1483 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_128_predictor_4x4 = eb_aom_highbd_dc_128_predictor_4x4_sse2;
1484 3 : eb_aom_highbd_dc_128_predictor_4x8 = eb_aom_highbd_dc_128_predictor_4x8_c;
1485 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_128_predictor_4x8 = eb_aom_highbd_dc_128_predictor_4x8_sse2;
1486 3 : eb_aom_highbd_dc_128_predictor_8x32 = eb_aom_highbd_dc_128_predictor_8x32_c;
1487 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_128_predictor_8x32 = eb_aom_highbd_dc_128_predictor_8x32_sse2;
1488 3 : eb_aom_highbd_dc_128_predictor_64x16 = eb_aom_highbd_dc_128_predictor_64x16_c;
1489 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_64x16 = eb_aom_highbd_dc_128_predictor_64x16_avx2;
1490 3 : eb_aom_highbd_dc_128_predictor_64x32 = eb_aom_highbd_dc_128_predictor_64x32_c;
1491 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_64x32 = eb_aom_highbd_dc_128_predictor_64x32_avx2;
1492 3 : eb_aom_highbd_dc_128_predictor_64x64 = eb_aom_highbd_dc_128_predictor_64x64_c;
1493 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_128_predictor_64x64 = eb_aom_highbd_dc_128_predictor_64x64_avx2;
1494 3 : eb_aom_highbd_dc_128_predictor_8x16 = eb_aom_highbd_dc_128_predictor_8x16_c;
1495 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_128_predictor_8x16 = eb_aom_highbd_dc_128_predictor_8x16_sse2;
1496 3 : eb_aom_highbd_dc_128_predictor_8x4 = eb_aom_highbd_dc_128_predictor_8x4_c;
1497 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_128_predictor_8x4 = eb_aom_highbd_dc_128_predictor_8x4_sse2;
1498 3 : eb_aom_highbd_dc_128_predictor_8x8 = eb_aom_highbd_dc_128_predictor_8x8_c;
1499 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_128_predictor_8x8 = eb_aom_highbd_dc_128_predictor_8x8_sse2;
1500 :
1501 : //aom_highbd_dc_left_predictor
1502 3 : eb_aom_highbd_dc_left_predictor_16x16 = eb_aom_highbd_dc_left_predictor_16x16_c;
1503 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_16x16 = eb_aom_highbd_dc_left_predictor_16x16_avx2;
1504 3 : eb_aom_highbd_dc_left_predictor_16x32 = eb_aom_highbd_dc_left_predictor_16x32_c;
1505 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_16x32 = eb_aom_highbd_dc_left_predictor_16x32_avx2;
1506 3 : eb_aom_highbd_dc_left_predictor_16x4 = eb_aom_highbd_dc_left_predictor_16x4_c;
1507 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_16x4 = eb_aom_highbd_dc_left_predictor_16x4_avx2;
1508 3 : eb_aom_highbd_dc_left_predictor_16x64 = eb_aom_highbd_dc_left_predictor_16x64_c;
1509 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_16x64 = eb_aom_highbd_dc_left_predictor_16x64_avx2;
1510 3 : eb_aom_highbd_dc_left_predictor_16x8 = eb_aom_highbd_dc_left_predictor_16x8_c;
1511 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_16x8 = eb_aom_highbd_dc_left_predictor_16x8_avx2;
1512 3 : eb_aom_highbd_dc_left_predictor_2x2 = eb_aom_highbd_dc_left_predictor_2x2_c;
1513 3 : eb_aom_highbd_dc_left_predictor_32x16 = eb_aom_highbd_dc_left_predictor_32x16_c;
1514 3 : eb_aom_highbd_dc_left_predictor_32x32 = eb_aom_highbd_dc_left_predictor_32x32_c;
1515 3 : eb_aom_highbd_dc_left_predictor_32x64 = eb_aom_highbd_dc_left_predictor_32x64_c;
1516 3 : eb_aom_highbd_dc_left_predictor_32x8 = eb_aom_highbd_dc_left_predictor_32x8_c;
1517 3 : eb_aom_highbd_dc_left_predictor_4x16 = eb_aom_highbd_dc_left_predictor_4x16_c;
1518 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_left_predictor_4x16 = eb_aom_highbd_dc_left_predictor_4x16_sse2;
1519 3 : eb_aom_highbd_dc_left_predictor_4x4 = eb_aom_highbd_dc_left_predictor_4x4_c;
1520 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_left_predictor_4x4 = eb_aom_highbd_dc_left_predictor_4x4_sse2;
1521 3 : eb_aom_highbd_dc_left_predictor_4x8 = eb_aom_highbd_dc_left_predictor_4x8_c;
1522 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_left_predictor_4x8 = eb_aom_highbd_dc_left_predictor_4x8_sse2;
1523 3 : eb_aom_highbd_dc_left_predictor_8x32 = eb_aom_highbd_dc_left_predictor_8x32_c;
1524 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_left_predictor_8x32 = eb_aom_highbd_dc_left_predictor_8x32_sse2;
1525 3 : eb_aom_highbd_dc_left_predictor_64x16 = eb_aom_highbd_dc_left_predictor_64x16_c;
1526 3 : eb_aom_highbd_dc_left_predictor_64x32 = eb_aom_highbd_dc_left_predictor_64x32_c;
1527 3 : eb_aom_highbd_dc_left_predictor_64x64 = eb_aom_highbd_dc_left_predictor_64x64_c;
1528 3 : eb_aom_highbd_dc_left_predictor_8x16 = eb_aom_highbd_dc_left_predictor_8x16_c;
1529 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_left_predictor_8x16 = eb_aom_highbd_dc_left_predictor_8x16_sse2;
1530 3 : eb_aom_highbd_dc_left_predictor_8x4 = eb_aom_highbd_dc_left_predictor_8x4_c;
1531 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_left_predictor_8x4 = eb_aom_highbd_dc_left_predictor_8x4_sse2;
1532 3 : eb_aom_highbd_dc_left_predictor_8x8 = eb_aom_highbd_dc_left_predictor_8x8_c;
1533 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_left_predictor_8x8 = eb_aom_highbd_dc_left_predictor_8x8_sse2;
1534 :
1535 : #ifndef NON_AVX512_SUPPORT
1536 : if (CanUseIntelAVX512()) {
1537 : eb_aom_highbd_dc_left_predictor_32x8 = aom_highbd_dc_left_predictor_32x8_avx512;
1538 : eb_aom_highbd_dc_left_predictor_32x16 = aom_highbd_dc_left_predictor_32x16_avx512;
1539 : eb_aom_highbd_dc_left_predictor_32x32 = aom_highbd_dc_left_predictor_32x32_avx512;
1540 : eb_aom_highbd_dc_left_predictor_32x64 = aom_highbd_dc_left_predictor_32x64_avx512;
1541 : eb_aom_highbd_dc_left_predictor_64x16 = aom_highbd_dc_left_predictor_64x16_avx512;
1542 : eb_aom_highbd_dc_left_predictor_64x32 = aom_highbd_dc_left_predictor_64x32_avx512;
1543 : eb_aom_highbd_dc_left_predictor_64x64 = aom_highbd_dc_left_predictor_64x64_avx512;
1544 : }
1545 : #else
1546 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_32x8 = eb_aom_highbd_dc_left_predictor_32x8_avx2;
1547 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_32x16 = eb_aom_highbd_dc_left_predictor_32x16_avx2;
1548 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_32x32 = eb_aom_highbd_dc_left_predictor_32x32_avx2;
1549 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_32x64 = eb_aom_highbd_dc_left_predictor_32x64_avx2;
1550 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_64x16 = eb_aom_highbd_dc_left_predictor_64x16_avx2;
1551 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_64x32 = eb_aom_highbd_dc_left_predictor_64x32_avx2;
1552 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_left_predictor_64x64 = eb_aom_highbd_dc_left_predictor_64x64_avx2;
1553 : #endif // !NON_AVX512_SUPPORT
1554 :
1555 3 : eb_aom_highbd_dc_predictor_16x16 = eb_aom_highbd_dc_predictor_16x16_c;
1556 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_16x16 = eb_aom_highbd_dc_predictor_16x16_avx2;
1557 3 : eb_aom_highbd_dc_predictor_16x32 = eb_aom_highbd_dc_predictor_16x32_c;
1558 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_16x32 = eb_aom_highbd_dc_predictor_16x32_avx2;
1559 3 : eb_aom_highbd_dc_predictor_16x4 = eb_aom_highbd_dc_predictor_16x4_c;
1560 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_16x4 = eb_aom_highbd_dc_predictor_16x4_avx2;
1561 3 : eb_aom_highbd_dc_predictor_16x64 = eb_aom_highbd_dc_predictor_16x64_c;
1562 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_16x64 = eb_aom_highbd_dc_predictor_16x64_avx2;
1563 3 : eb_aom_highbd_dc_predictor_16x8 = eb_aom_highbd_dc_predictor_16x8_c;
1564 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_16x8 = eb_aom_highbd_dc_predictor_16x8_avx2;
1565 3 : eb_aom_highbd_dc_predictor_2x2 = eb_aom_highbd_dc_predictor_2x2_c;
1566 3 : eb_aom_highbd_dc_predictor_32x16 = eb_aom_highbd_dc_predictor_32x16_c;
1567 3 : eb_aom_highbd_dc_predictor_32x32 = eb_aom_highbd_dc_predictor_32x32_c;
1568 3 : eb_aom_highbd_dc_predictor_32x64 = eb_aom_highbd_dc_predictor_32x64_c;
1569 3 : eb_aom_highbd_dc_predictor_32x8 = eb_aom_highbd_dc_predictor_32x8_c;
1570 3 : eb_aom_highbd_dc_predictor_4x16 = eb_aom_highbd_dc_predictor_4x16_c;
1571 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_predictor_4x16 = eb_aom_highbd_dc_predictor_4x16_sse2;
1572 3 : eb_aom_highbd_dc_predictor_4x4 = eb_aom_highbd_dc_predictor_4x4_c;
1573 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_predictor_4x4 = eb_aom_highbd_dc_predictor_4x4_sse2;
1574 3 : eb_aom_highbd_dc_predictor_4x8 = eb_aom_highbd_dc_predictor_4x8_c;
1575 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_predictor_4x8 = eb_aom_highbd_dc_predictor_4x8_sse2;
1576 3 : eb_aom_highbd_dc_predictor_64x16 = eb_aom_highbd_dc_predictor_64x16_c;
1577 3 : eb_aom_highbd_dc_predictor_64x32 = eb_aom_highbd_dc_predictor_64x32_c;
1578 3 : eb_aom_highbd_dc_predictor_64x64 = eb_aom_highbd_dc_predictor_64x64_c;
1579 3 : eb_aom_highbd_dc_predictor_8x16 = eb_aom_highbd_dc_predictor_8x16_c;
1580 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_predictor_8x16 = eb_aom_highbd_dc_predictor_8x16_sse2;
1581 3 : eb_aom_highbd_dc_predictor_8x4 = eb_aom_highbd_dc_predictor_8x4_c;
1582 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_predictor_8x4 = eb_aom_highbd_dc_predictor_8x4_sse2;
1583 3 : eb_aom_highbd_dc_predictor_8x8 = eb_aom_highbd_dc_predictor_8x8_c;
1584 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_predictor_8x8 = eb_aom_highbd_dc_predictor_8x8_sse2;
1585 3 : eb_aom_highbd_dc_predictor_8x32 = eb_aom_highbd_dc_predictor_8x32_c;
1586 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_predictor_8x32 = eb_aom_highbd_dc_predictor_8x32_sse2;
1587 :
1588 : #ifndef NON_AVX512_SUPPORT
1589 : if (CanUseIntelAVX512()) {
1590 : eb_aom_highbd_dc_predictor_32x8 = aom_highbd_dc_predictor_32x8_avx512;
1591 : eb_aom_highbd_dc_predictor_32x16 = aom_highbd_dc_predictor_32x16_avx512;
1592 : eb_aom_highbd_dc_predictor_32x32 = aom_highbd_dc_predictor_32x32_avx512;
1593 : eb_aom_highbd_dc_predictor_32x64 = aom_highbd_dc_predictor_32x64_avx512;
1594 : eb_aom_highbd_dc_predictor_64x16 = aom_highbd_dc_predictor_64x16_avx512;
1595 : eb_aom_highbd_dc_predictor_64x32 = aom_highbd_dc_predictor_64x32_avx512;
1596 : eb_aom_highbd_dc_predictor_64x64 = aom_highbd_dc_predictor_64x64_avx512;
1597 : }
1598 : #else
1599 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_32x8 = eb_aom_highbd_dc_predictor_32x8_avx2;
1600 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_32x16 = eb_aom_highbd_dc_predictor_32x16_avx2;
1601 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_32x32 = eb_aom_highbd_dc_predictor_32x32_avx2;
1602 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_32x64 = eb_aom_highbd_dc_predictor_32x64_avx2;
1603 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_64x16 = eb_aom_highbd_dc_predictor_64x16_avx2;
1604 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_64x32 = eb_aom_highbd_dc_predictor_64x32_avx2;
1605 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_predictor_64x64 = eb_aom_highbd_dc_predictor_64x64_avx2;
1606 : #endif // !NON_AVX512_SUPPORT
1607 : //aom_highbd_dc_top_predictor
1608 3 : eb_aom_highbd_dc_top_predictor_16x16 = eb_aom_highbd_dc_top_predictor_16x16_c;
1609 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_16x16 = eb_aom_highbd_dc_top_predictor_16x16_avx2;
1610 3 : eb_aom_highbd_dc_top_predictor_16x32 = eb_aom_highbd_dc_top_predictor_16x32_c;
1611 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_16x32 = eb_aom_highbd_dc_top_predictor_16x32_avx2;
1612 3 : eb_aom_highbd_dc_top_predictor_16x4 = eb_aom_highbd_dc_top_predictor_16x4_c;
1613 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_16x4 = eb_aom_highbd_dc_top_predictor_16x4_avx2;
1614 3 : eb_aom_highbd_dc_top_predictor_16x64 = eb_aom_highbd_dc_top_predictor_16x64_c;
1615 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_16x64 = eb_aom_highbd_dc_top_predictor_16x64_avx2;
1616 3 : eb_aom_highbd_dc_top_predictor_16x8 = eb_aom_highbd_dc_top_predictor_16x8_c;
1617 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_16x8 = eb_aom_highbd_dc_top_predictor_16x8_avx2;
1618 3 : eb_aom_highbd_dc_top_predictor_2x2 = eb_aom_highbd_dc_top_predictor_2x2_c;
1619 3 : eb_aom_highbd_dc_top_predictor_32x16 = eb_aom_highbd_dc_top_predictor_32x16_c;
1620 3 : eb_aom_highbd_dc_top_predictor_32x32 = eb_aom_highbd_dc_top_predictor_32x32_c;
1621 3 : eb_aom_highbd_dc_top_predictor_32x64 = eb_aom_highbd_dc_top_predictor_32x64_c;
1622 3 : eb_aom_highbd_dc_top_predictor_32x8 = eb_aom_highbd_dc_top_predictor_32x8_c;
1623 3 : eb_aom_highbd_dc_top_predictor_4x16 = eb_aom_highbd_dc_top_predictor_4x16_c;
1624 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_top_predictor_4x16 = eb_aom_highbd_dc_top_predictor_4x16_sse2;
1625 3 : eb_aom_highbd_dc_top_predictor_4x4 = eb_aom_highbd_dc_top_predictor_4x4_c;
1626 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_top_predictor_4x4 = eb_aom_highbd_dc_top_predictor_4x4_sse2;
1627 3 : eb_aom_highbd_dc_top_predictor_4x8 = eb_aom_highbd_dc_top_predictor_4x8_c;
1628 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_top_predictor_4x8 = eb_aom_highbd_dc_top_predictor_4x8_sse2;
1629 3 : eb_aom_highbd_dc_top_predictor_64x16 = eb_aom_highbd_dc_top_predictor_64x16_c;
1630 3 : eb_aom_highbd_dc_top_predictor_64x32 = eb_aom_highbd_dc_top_predictor_64x32_c;
1631 3 : eb_aom_highbd_dc_top_predictor_64x64 = eb_aom_highbd_dc_top_predictor_64x64_c;
1632 3 : eb_aom_highbd_dc_top_predictor_8x16 = eb_aom_highbd_dc_top_predictor_8x16_c;
1633 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_top_predictor_8x16 = eb_aom_highbd_dc_top_predictor_8x16_sse2;
1634 3 : /*if (flags & HAS_SSE2) */eb_aom_highbd_dc_top_predictor_8x32 = eb_aom_highbd_dc_top_predictor_8x32_c;
1635 3 : eb_aom_highbd_dc_top_predictor_8x4 = eb_aom_highbd_dc_top_predictor_8x4_c;
1636 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_top_predictor_8x4 = eb_aom_highbd_dc_top_predictor_8x4_sse2;
1637 3 : eb_aom_highbd_dc_top_predictor_8x8 = eb_aom_highbd_dc_top_predictor_8x8_c;
1638 3 : if (flags & HAS_SSE2) eb_aom_highbd_dc_top_predictor_8x8 = eb_aom_highbd_dc_top_predictor_8x8_sse2;
1639 :
1640 : #ifndef NON_AVX512_SUPPORT
1641 : if (CanUseIntelAVX512()) {
1642 : eb_aom_highbd_dc_top_predictor_32x8 = aom_highbd_dc_top_predictor_32x8_avx512;
1643 : eb_aom_highbd_dc_top_predictor_32x16 = aom_highbd_dc_top_predictor_32x16_avx512;
1644 : eb_aom_highbd_dc_top_predictor_32x32 = aom_highbd_dc_top_predictor_32x32_avx512;
1645 : eb_aom_highbd_dc_top_predictor_32x64 = aom_highbd_dc_top_predictor_32x64_avx512;
1646 : eb_aom_highbd_dc_top_predictor_64x16 = aom_highbd_dc_top_predictor_64x16_avx512;
1647 : eb_aom_highbd_dc_top_predictor_64x32 = aom_highbd_dc_top_predictor_64x32_avx512;
1648 : eb_aom_highbd_dc_top_predictor_64x64 = aom_highbd_dc_top_predictor_64x64_avx512;
1649 : }
1650 : #else
1651 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_32x8 = eb_aom_highbd_dc_top_predictor_32x8_avx2;
1652 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_32x16 = eb_aom_highbd_dc_top_predictor_32x16_avx2;
1653 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_32x32 = eb_aom_highbd_dc_top_predictor_32x32_avx2;
1654 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_32x64 = eb_aom_highbd_dc_top_predictor_32x64_avx2;
1655 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_64x16 = eb_aom_highbd_dc_top_predictor_64x16_avx2;
1656 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_64x32 = eb_aom_highbd_dc_top_predictor_64x32_avx2;
1657 3 : if (flags & HAS_AVX2) eb_aom_highbd_dc_top_predictor_64x64 = eb_aom_highbd_dc_top_predictor_64x64_avx2;
1658 : #endif
1659 : // eb_aom_highbd_h_predictor
1660 3 : eb_aom_highbd_h_predictor_16x4 = eb_aom_highbd_h_predictor_16x4_c;
1661 3 : if (flags & HAS_AVX2) eb_aom_highbd_h_predictor_16x4 = eb_aom_highbd_h_predictor_16x4_avx2;
1662 3 : eb_aom_highbd_h_predictor_16x64 = eb_aom_highbd_h_predictor_16x64_c;
1663 3 : if (flags & HAS_AVX2) eb_aom_highbd_h_predictor_16x64 = eb_aom_highbd_h_predictor_16x64_avx2;
1664 3 : eb_aom_highbd_h_predictor_16x8 = eb_aom_highbd_h_predictor_16x8_c;
1665 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_16x8 = eb_aom_highbd_h_predictor_16x8_sse2;
1666 3 : eb_aom_highbd_h_predictor_2x2 = eb_aom_highbd_h_predictor_2x2_c;
1667 3 : eb_aom_highbd_h_predictor_32x16 = eb_aom_highbd_h_predictor_32x16_c;
1668 3 : eb_aom_highbd_h_predictor_32x32 = eb_aom_highbd_h_predictor_32x32_c;
1669 3 : eb_aom_highbd_h_predictor_32x64 = eb_aom_highbd_h_predictor_32x64_c;
1670 3 : eb_aom_highbd_h_predictor_32x8 = eb_aom_highbd_h_predictor_32x8_c;
1671 3 : eb_aom_highbd_h_predictor_4x16 = eb_aom_highbd_h_predictor_4x16_c;
1672 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_4x16 = eb_aom_highbd_h_predictor_4x16_sse2;
1673 3 : eb_aom_highbd_h_predictor_4x4 = eb_aom_highbd_h_predictor_4x4_c;
1674 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_4x4 = eb_aom_highbd_h_predictor_4x4_sse2;
1675 3 : eb_aom_highbd_h_predictor_4x8 = eb_aom_highbd_h_predictor_4x8_c;
1676 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_4x8 = eb_aom_highbd_h_predictor_4x8_sse2;
1677 3 : eb_aom_highbd_h_predictor_64x16 = eb_aom_highbd_h_predictor_64x16_c;
1678 3 : eb_aom_highbd_h_predictor_64x32 = eb_aom_highbd_h_predictor_64x32_c;
1679 3 : eb_aom_highbd_h_predictor_8x32 = eb_aom_highbd_h_predictor_8x32_c;
1680 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_8x32 = eb_aom_highbd_h_predictor_8x32_sse2;
1681 3 : eb_aom_highbd_h_predictor_64x64 = eb_aom_highbd_h_predictor_64x64_c;
1682 3 : eb_aom_highbd_h_predictor_8x16 = eb_aom_highbd_h_predictor_8x16_c;
1683 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_8x16 = eb_aom_highbd_h_predictor_8x16_sse2;
1684 3 : eb_aom_highbd_h_predictor_8x4 = eb_aom_highbd_h_predictor_8x4_c;
1685 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_8x4 = eb_aom_highbd_h_predictor_8x4_sse2;
1686 3 : eb_aom_highbd_h_predictor_8x8 = eb_aom_highbd_h_predictor_8x8_c;
1687 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_8x8 = eb_aom_highbd_h_predictor_8x8_sse2;
1688 3 : eb_aom_highbd_h_predictor_16x16 = eb_aom_highbd_h_predictor_16x16_c;
1689 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_16x16 = eb_aom_highbd_h_predictor_16x16_sse2;
1690 3 : eb_aom_highbd_h_predictor_16x32 = eb_aom_highbd_h_predictor_16x32_c;
1691 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_16x32 = eb_aom_highbd_h_predictor_16x32_sse2;
1692 :
1693 : #ifndef NON_AVX512_SUPPORT
1694 : if (CanUseIntelAVX512()) {
1695 : eb_aom_highbd_h_predictor_32x16 = aom_highbd_h_predictor_32x16_avx512;
1696 : eb_aom_highbd_h_predictor_32x32 = aom_highbd_h_predictor_32x32_avx512;
1697 : eb_aom_highbd_h_predictor_32x64 = aom_highbd_h_predictor_32x64_avx512;
1698 : eb_aom_highbd_h_predictor_32x8 = aom_highbd_h_predictor_32x8_avx512;
1699 : eb_aom_highbd_h_predictor_64x16 = aom_highbd_h_predictor_64x16_avx512;
1700 : eb_aom_highbd_h_predictor_64x32 = aom_highbd_h_predictor_64x32_avx512;
1701 : eb_aom_highbd_h_predictor_64x64 = aom_highbd_h_predictor_64x64_avx512;
1702 : }
1703 : #else
1704 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_32x16 = eb_aom_highbd_h_predictor_32x16_sse2;
1705 3 : if (flags & HAS_SSE2) eb_aom_highbd_h_predictor_32x32 = eb_aom_highbd_h_predictor_32x32_sse2;
1706 3 : if (flags & HAS_AVX2) eb_aom_highbd_h_predictor_32x64 = eb_aom_highbd_h_predictor_32x64_avx2;
1707 3 : if (flags & HAS_AVX2) eb_aom_highbd_h_predictor_32x8 = eb_aom_highbd_h_predictor_32x8_avx2;
1708 3 : if (flags & HAS_AVX2) eb_aom_highbd_h_predictor_64x16 = eb_aom_highbd_h_predictor_64x16_avx2;
1709 3 : if (flags & HAS_AVX2) eb_aom_highbd_h_predictor_64x32 = eb_aom_highbd_h_predictor_64x32_avx2;
1710 3 : if (flags & HAS_AVX2) eb_aom_highbd_h_predictor_64x64 = eb_aom_highbd_h_predictor_64x64_avx2;
1711 : #endif
1712 :
1713 3 : eb_aom_fft2x2_float = eb_aom_fft2x2_float_c;
1714 3 : eb_aom_fft4x4_float = eb_aom_fft4x4_float_c;
1715 3 : if (flags & HAS_SSE2) eb_aom_fft4x4_float = eb_aom_fft4x4_float_sse2;
1716 3 : eb_aom_fft16x16_float = eb_aom_fft16x16_float_c;
1717 3 : if (flags & HAS_AVX2) eb_aom_fft16x16_float = eb_aom_fft16x16_float_avx2;
1718 3 : eb_aom_fft32x32_float = eb_aom_fft32x32_float_c;
1719 3 : if (flags & HAS_AVX2) eb_aom_fft32x32_float = eb_aom_fft32x32_float_avx2;
1720 3 : eb_aom_fft8x8_float = eb_aom_fft8x8_float_c;
1721 3 : if (flags & HAS_AVX2) eb_aom_fft8x8_float = eb_aom_fft8x8_float_avx2;
1722 :
1723 :
1724 3 : eb_aom_ifft16x16_float = eb_aom_ifft16x16_float_c;
1725 3 : if (flags & HAS_AVX2) eb_aom_ifft16x16_float = eb_aom_ifft16x16_float_avx2;
1726 3 : eb_aom_ifft32x32_float = eb_aom_ifft32x32_float_c;
1727 3 : if (flags & HAS_AVX2) eb_aom_ifft32x32_float = eb_aom_ifft32x32_float_avx2;
1728 3 : eb_aom_ifft8x8_float = eb_aom_ifft8x8_float_c;
1729 3 : if (flags & HAS_AVX2) eb_aom_ifft8x8_float = eb_aom_ifft8x8_float_avx2;
1730 3 : eb_aom_ifft2x2_float = eb_aom_ifft2x2_float_c;
1731 3 : eb_aom_ifft4x4_float = eb_aom_ifft4x4_float_c;
1732 3 : if (flags & HAS_SSE2) eb_aom_ifft4x4_float = eb_aom_ifft4x4_float_sse2;
1733 3 : av1_get_gradient_hist = av1_get_gradient_hist_c;
1734 3 : if (flags & HAS_AVX2) av1_get_gradient_hist = av1_get_gradient_hist_avx2;
1735 :
1736 3 : SET_AVX2_AVX512(search_one_dual,
1737 : search_one_dual_c,
1738 : search_one_dual_avx2,
1739 : search_one_dual_avx512);
1740 3 : SET_AVX2_AVX512(spatial_full_distortion_kernel,
1741 : spatial_full_distortion_kernel_c,
1742 : spatial_full_distortion_kernel_avx2,
1743 : spatial_full_distortion_kernel_avx512);
1744 3 : SET_AVX2_AVX512(residual_kernel8bit,
1745 : residual_kernel8bit_c,
1746 : residual_kernel8bit_avx2,
1747 : residual_kernel8bit_avx512);
1748 3 : SET_SSE41_AVX2(sad_loop_kernel_sparse,
1749 : sad_loop_kernel_sparse_c,
1750 : sad_loop_kernel_sparse_sse4_1_intrin,
1751 : sad_loop_kernel_sparse_avx2_intrin);
1752 3 : SET_SSE41_AVX2_AVX512(sad_loop_kernel,
1753 : sad_loop_kernel_c,
1754 : sad_loop_kernel_sse4_1_intrin,
1755 : sad_loop_kernel_avx2_intrin,
1756 : sad_loop_kernel_avx512_intrin);
1757 3 : SET_SSE41_AVX2(sad_loop_kernel_hme_l0,
1758 : sad_loop_kernel_c,
1759 : sad_loop_kernel_sse4_1_hme_l0_intrin,
1760 : sad_loop_kernel_avx2_hme_l0_intrin);
1761 3 : SET_AVX2(noise_extract_luma_weak,
1762 : noise_extract_luma_weak_c,
1763 : noise_extract_luma_weak_avx2_intrin);
1764 3 : SET_AVX2(noise_extract_luma_weak_lcu,
1765 : noise_extract_luma_weak_lcu_c,
1766 : noise_extract_luma_weak_lcu_avx2_intrin);
1767 3 : SET_AVX2(noise_extract_luma_strong,
1768 : noise_extract_luma_strong_c,
1769 : noise_extract_luma_strong_avx2_intrin);
1770 3 : SET_AVX2(noise_extract_chroma_strong,
1771 : noise_extract_chroma_strong_c,
1772 : noise_extract_chroma_strong_avx2_intrin);
1773 3 : SET_AVX2(noise_extract_chroma_weak,
1774 : noise_extract_chroma_weak_c,
1775 : noise_extract_chroma_weak_avx2_intrin);
1776 3 : SET_SSE41(svt_av1_apply_filtering,
1777 : svt_av1_apply_filtering_c,
1778 : svt_av1_apply_temporal_filter_sse4_1);
1779 3 : SET_SSE41(svt_av1_apply_filtering_highbd,
1780 : svt_av1_apply_filtering_highbd_c,
1781 : svt_av1_highbd_apply_temporal_filter_sse4_1);
1782 3 : SET_AVX2_AVX512(combined_averaging_ssd,
1783 : combined_averaging_ssd_c,
1784 : combined_averaging_ssd_avx2,
1785 : combined_averaging_ssd_avx512);
1786 3 : SET_AVX2(ext_sad_calculation_8x8_16x16,
1787 : ext_sad_calculation_8x8_16x16_c,
1788 : ext_sad_calculation_8x8_16x16_avx2_intrin);
1789 3 : SET_SSE41(ext_sad_calculation_32x32_64x64,
1790 : ext_sad_calculation_32x32_64x64_c,
1791 : ext_sad_calculation_32x32_64x64_sse4_intrin);
1792 3 : SET_SSE2(sad_calculation_8x8_16x16,
1793 : sad_calculation_8x8_16x16_c,
1794 : sad_calculation_8x8_16x16_sse2_intrin);
1795 3 : SET_SSE2(sad_calculation_32x32_64x64,
1796 : sad_calculation_32x32_64x64_c,
1797 : sad_calculation_32x32_64x64_sse2_intrin);
1798 3 : SET_AVX2(ext_all_sad_calculation_8x8_16x16,
1799 : ext_all_sad_calculation_8x8_16x16_c,
1800 : ext_all_sad_calculation_8x8_16x16_avx2);
1801 3 : SET_AVX2(ext_eigth_sad_calculation_nsq,
1802 : ext_eigth_sad_calculation_nsq_c,
1803 : ext_eigth_sad_calculation_nsq_avx2);
1804 3 : SET_AVX2(ext_eight_sad_calculation_32x32_64x64,
1805 : ext_eight_sad_calculation_32x32_64x64_c,
1806 : ext_eight_sad_calculation_32x32_64x64_avx2);
1807 3 : SET_AVX2(eb_sad_kernel4x4,
1808 : fast_loop_nxm_sad_kernel,
1809 : eb_compute4x_m_sad_avx2_intrin);
1810 3 : SET_AVX2(sum_residual8bit,
1811 : sum_residual_c,
1812 : sum_residual8bit_avx2_intrin);
1813 3 : SET_AVX2(full_distortion_kernel_cbf_zero32_bits,
1814 : full_distortion_kernel_cbf_zero32_bits_c,
1815 : full_distortion_kernel_cbf_zero32_bits_avx2);
1816 3 : SET_AVX2(full_distortion_kernel32_bits,
1817 : full_distortion_kernel32_bits_c,
1818 : full_distortion_kernel32_bits_avx2);
1819 3 : SET_AVX2(compressed_packmsb,
1820 : compressed_packmsb_c,
1821 : compressed_packmsb_avx2_intrin);
1822 3 : SET_AVX2(c_pack,
1823 : c_pack_c,
1824 : c_pack_avx2_intrin);
1825 3 : SET_SSE2_AVX2(unpack_avg,
1826 : unpack_avg_c,
1827 : unpack_avg_sse2_intrin,
1828 : unpack_avg_avx2_intrin);
1829 3 : SET_AVX2(unpack_avg_safe_sub,
1830 : unpack_avg_safe_sub_c,
1831 : unpack_avg_safe_sub_avx2_intrin);
1832 3 : SET_AVX2(un_pack8_bit_data,
1833 : un_pack8_bit_data_c,
1834 : eb_enc_un_pack8_bit_data_avx2_intrin);
1835 3 : SET_SSE2(picture_average_kernel,
1836 : picture_average_kernel_c,
1837 : picture_average_kernel_sse2_intrin);
1838 3 : SET_SSE2(picture_average_kernel1_line,
1839 : picture_average_kernel1_line_c,
1840 : picture_average_kernel1_line_sse2_intrin);
1841 3 : SET_SSE41_AVX2(get_eight_horizontal_search_point_results_8x8_16x16_pu,
1842 : get_eight_horizontal_search_point_results_8x8_16x16_pu_c,
1843 : get_eight_horizontal_search_point_results_8x8_16x16_pu_sse41_intrin,
1844 : get_eight_horizontal_search_point_results_8x8_16x16_pu_avx2_intrin);
1845 3 : SET_SSE41_AVX2(get_eight_horizontal_search_point_results_32x32_64x64_pu,
1846 : get_eight_horizontal_search_point_results_32x32_64x64_pu_c,
1847 : get_eight_horizontal_search_point_results_32x32_64x64_pu_sse41_intrin,
1848 : get_eight_horizontal_search_point_results_32x32_64x64_pu_avx2_intrin);
1849 3 : SET_SSE2(initialize_buffer_32bits,
1850 : initialize_buffer_32bits_c,
1851 : initialize_buffer_32bits_sse2_intrin);
1852 3 : SET_SSE41(compute8x8_satd_u8,
1853 : compute8x8_satd_u8_c,
1854 : compute8x8_satd_u8_sse4);
1855 3 : SET_AVX2(nxm_sad_kernel_sub_sampled,
1856 : nxm_sad_kernel_helper_c,
1857 : nxm_sad_kernel_sub_sampled_helper_avx2);
1858 3 : SET_AVX2(nxm_sad_kernel,
1859 : nxm_sad_kernel_helper_c,
1860 : nxm_sad_kernel_helper_avx2);
1861 3 : SET_AVX2(nxm_sad_avg_kernel,
1862 : nxm_sad_avg_kernel_helper_c,
1863 : nxm_sad_avg_kernel_helper_avx2);
1864 3 : SET_SSSE3(avc_style_luma_interpolation_filter,
1865 : avc_style_luma_interpolation_filter_helper_ssse3, //Add C
1866 : avc_style_luma_interpolation_filter_helper_ssse3);
1867 3 : SET_SSE2_AVX2(compute_mean_8x8,
1868 : compute_mean8x8_sse2_intrin, //Add C
1869 : compute_mean8x8_sse2_intrin,
1870 : compute_mean8x8_avx2_intrin);
1871 3 : SET_SSE2(compute_mean_square_values_8x8,
1872 : compute_mean_of_squared_values8x8_sse2_intrin, //Add C
1873 : compute_mean_of_squared_values8x8_sse2_intrin);
1874 3 : SET_SSE2_AVX2(pack2d_16_bit_src_mul4,
1875 : eb_enc_msb_pack2_d,
1876 : eb_enc_msb_pack2d_sse2_intrin,
1877 : eb_enc_msb_pack2d_avx2_intrin_al);
1878 3 : SET_SSE2(un_pack2d_16_bit_src_mul4,
1879 : eb_enc_msb_un_pack2_d,
1880 : eb_enc_msb_un_pack2d_sse2_intrin);
1881 3 : SET_SSE2(picture_addition,
1882 : picture_addition_sse2, //Add C
1883 : picture_addition_sse2);
1884 3 : SET_SSE2_AVX2(compute_interm_var_four8x8,
1885 : compute_interm_var_four8x8_c,
1886 : compute_interm_var_four8x8_helper_sse2,
1887 : compute_interm_var_four8x8_avx2_intrin);
1888 :
1889 3 : }
1890 :
1891 :
|