GCC Code Coverage Report
Directory: ../../../ffmpeg/ Exec Total Coverage
File: src/libavcodec/x86/h264_intrapred_init.c Lines: 173 173 100.0 %
Date: 2020-08-14 10:39:37 Branches: 90 96 93.8 %

Line Branch Exec Source
1
/*
2
 * Copyright (c) 2010 Fiona Glaser <fiona@x264.com>
3
 *
4
 * This file is part of FFmpeg.
5
 *
6
 * FFmpeg is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Lesser General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2.1 of the License, or (at your option) any later version.
10
 *
11
 * FFmpeg is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Lesser General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Lesser General Public
17
 * License along with FFmpeg; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
 */
20
21
#include "libavutil/attributes.h"
22
#include "libavutil/cpu.h"
23
#include "libavutil/x86/cpu.h"
24
#include "libavcodec/avcodec.h"
25
#include "libavcodec/h264pred.h"
26
27
#define PRED4x4(TYPE, DEPTH, OPT) \
28
void ff_pred4x4_ ## TYPE ## _ ## DEPTH ## _ ## OPT (uint8_t *src, \
29
                                                    const uint8_t *topright, \
30
                                                    ptrdiff_t stride);
31
32
PRED4x4(dc, 10, mmxext)
33
PRED4x4(down_left, 10, sse2)
34
PRED4x4(down_left, 10, avx)
35
PRED4x4(down_right, 10, sse2)
36
PRED4x4(down_right, 10, ssse3)
37
PRED4x4(down_right, 10, avx)
38
PRED4x4(vertical_left, 10, sse2)
39
PRED4x4(vertical_left, 10, avx)
40
PRED4x4(vertical_right, 10, sse2)
41
PRED4x4(vertical_right, 10, ssse3)
42
PRED4x4(vertical_right, 10, avx)
43
PRED4x4(horizontal_up, 10, mmxext)
44
PRED4x4(horizontal_down, 10, sse2)
45
PRED4x4(horizontal_down, 10, ssse3)
46
PRED4x4(horizontal_down, 10, avx)
47
48
#define PRED8x8(TYPE, DEPTH, OPT) \
49
void ff_pred8x8_ ## TYPE ## _ ## DEPTH ## _ ## OPT (uint8_t *src, \
50
                                                    ptrdiff_t stride);
51
52
PRED8x8(dc, 10, mmxext)
53
PRED8x8(dc, 10, sse2)
54
PRED8x8(top_dc, 10, sse2)
55
PRED8x8(plane, 10, sse2)
56
PRED8x8(vertical, 10, sse2)
57
PRED8x8(horizontal, 10, sse2)
58
59
#define PRED8x8L(TYPE, DEPTH, OPT)\
60
void ff_pred8x8l_ ## TYPE ## _ ## DEPTH ## _ ## OPT (uint8_t *src, \
61
                                                     int has_topleft, \
62
                                                     int has_topright, \
63
                                                     ptrdiff_t stride);
64
65
PRED8x8L(dc, 10, sse2)
66
PRED8x8L(dc, 10, avx)
67
PRED8x8L(128_dc, 10, mmxext)
68
PRED8x8L(128_dc, 10, sse2)
69
PRED8x8L(top_dc, 10, sse2)
70
PRED8x8L(top_dc, 10, avx)
71
PRED8x8L(vertical, 10, sse2)
72
PRED8x8L(vertical, 10, avx)
73
PRED8x8L(horizontal, 10, sse2)
74
PRED8x8L(horizontal, 10, ssse3)
75
PRED8x8L(horizontal, 10, avx)
76
PRED8x8L(down_left, 10, sse2)
77
PRED8x8L(down_left, 10, ssse3)
78
PRED8x8L(down_left, 10, avx)
79
PRED8x8L(down_right, 10, sse2)
80
PRED8x8L(down_right, 10, ssse3)
81
PRED8x8L(down_right, 10, avx)
82
PRED8x8L(vertical_right, 10, sse2)
83
PRED8x8L(vertical_right, 10, ssse3)
84
PRED8x8L(vertical_right, 10, avx)
85
PRED8x8L(horizontal_up, 10, sse2)
86
PRED8x8L(horizontal_up, 10, ssse3)
87
PRED8x8L(horizontal_up, 10, avx)
88
89
#define PRED16x16(TYPE, DEPTH, OPT)\
90
void ff_pred16x16_ ## TYPE ## _ ## DEPTH ## _ ## OPT (uint8_t *src, \
91
                                                      ptrdiff_t stride);
92
93
PRED16x16(dc, 10, mmxext)
94
PRED16x16(dc, 10, sse2)
95
PRED16x16(top_dc, 10, mmxext)
96
PRED16x16(top_dc, 10, sse2)
97
PRED16x16(128_dc, 10, mmxext)
98
PRED16x16(128_dc, 10, sse2)
99
PRED16x16(left_dc, 10, mmxext)
100
PRED16x16(left_dc, 10, sse2)
101
PRED16x16(vertical, 10, mmxext)
102
PRED16x16(vertical, 10, sse2)
103
PRED16x16(horizontal, 10, mmxext)
104
PRED16x16(horizontal, 10, sse2)
105
106
/* 8-bit versions */
107
PRED16x16(vertical, 8, mmx)
108
PRED16x16(vertical, 8, sse)
109
PRED16x16(horizontal, 8, mmx)
110
PRED16x16(horizontal, 8, mmxext)
111
PRED16x16(horizontal, 8, ssse3)
112
PRED16x16(dc, 8, mmxext)
113
PRED16x16(dc, 8, sse2)
114
PRED16x16(dc, 8, ssse3)
115
PRED16x16(plane_h264, 8, mmx)
116
PRED16x16(plane_h264, 8, mmxext)
117
PRED16x16(plane_h264, 8, sse2)
118
PRED16x16(plane_h264, 8, ssse3)
119
PRED16x16(plane_rv40, 8, mmx)
120
PRED16x16(plane_rv40, 8, mmxext)
121
PRED16x16(plane_rv40, 8, sse2)
122
PRED16x16(plane_rv40, 8, ssse3)
123
PRED16x16(plane_svq3, 8, mmx)
124
PRED16x16(plane_svq3, 8, mmxext)
125
PRED16x16(plane_svq3, 8, sse2)
126
PRED16x16(plane_svq3, 8, ssse3)
127
PRED16x16(tm_vp8, 8, mmx)
128
PRED16x16(tm_vp8, 8, mmxext)
129
PRED16x16(tm_vp8, 8, sse2)
130
PRED16x16(tm_vp8, 8, avx2)
131
132
PRED8x8(top_dc, 8, mmxext)
133
PRED8x8(dc_rv40, 8, mmxext)
134
PRED8x8(dc, 8, mmxext)
135
PRED8x8(vertical, 8, mmx)
136
PRED8x8(horizontal, 8, mmx)
137
PRED8x8(horizontal, 8, mmxext)
138
PRED8x8(horizontal, 8, ssse3)
139
PRED8x8(plane, 8, mmx)
140
PRED8x8(plane, 8, mmxext)
141
PRED8x8(plane, 8, sse2)
142
PRED8x8(plane, 8, ssse3)
143
PRED8x8(tm_vp8, 8, mmx)
144
PRED8x8(tm_vp8, 8, mmxext)
145
PRED8x8(tm_vp8, 8, sse2)
146
PRED8x8(tm_vp8, 8, ssse3)
147
148
PRED8x8L(top_dc, 8, mmxext)
149
PRED8x8L(top_dc, 8, ssse3)
150
PRED8x8L(dc, 8, mmxext)
151
PRED8x8L(dc, 8, ssse3)
152
PRED8x8L(horizontal, 8, mmxext)
153
PRED8x8L(horizontal, 8, ssse3)
154
PRED8x8L(vertical, 8, mmxext)
155
PRED8x8L(vertical, 8, ssse3)
156
PRED8x8L(down_left, 8, mmxext)
157
PRED8x8L(down_left, 8, sse2)
158
PRED8x8L(down_left, 8, ssse3)
159
PRED8x8L(down_right, 8, mmxext)
160
PRED8x8L(down_right, 8, sse2)
161
PRED8x8L(down_right, 8, ssse3)
162
PRED8x8L(vertical_right, 8, mmxext)
163
PRED8x8L(vertical_right, 8, sse2)
164
PRED8x8L(vertical_right, 8, ssse3)
165
PRED8x8L(vertical_left, 8, sse2)
166
PRED8x8L(vertical_left, 8, ssse3)
167
PRED8x8L(horizontal_up, 8, mmxext)
168
PRED8x8L(horizontal_up, 8, ssse3)
169
PRED8x8L(horizontal_down, 8, mmxext)
170
PRED8x8L(horizontal_down, 8, sse2)
171
PRED8x8L(horizontal_down, 8, ssse3)
172
173
PRED4x4(dc, 8, mmxext)
174
PRED4x4(down_left, 8, mmxext)
175
PRED4x4(down_right, 8, mmxext)
176
PRED4x4(vertical_left, 8, mmxext)
177
PRED4x4(vertical_right, 8, mmxext)
178
PRED4x4(horizontal_up, 8, mmxext)
179
PRED4x4(horizontal_down, 8, mmxext)
180
PRED4x4(tm_vp8, 8, mmx)
181
PRED4x4(tm_vp8, 8, mmxext)
182
PRED4x4(tm_vp8, 8, ssse3)
183
PRED4x4(vertical_vp8, 8, mmxext)
184
185
1079
av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
186
                                   const int bit_depth,
187
                                   const int chroma_format_idc)
188
{
189
1079
    int cpu_flags = av_get_cpu_flags();
190
191
1079
    if (bit_depth == 8) {
192
829
        if (EXTERNAL_MMX(cpu_flags)) {
193
284
            h->pred16x16[VERT_PRED8x8         ] = ff_pred16x16_vertical_8_mmx;
194
284
            h->pred16x16[HOR_PRED8x8          ] = ff_pred16x16_horizontal_8_mmx;
195
284
            if (chroma_format_idc <= 1) {
196
231
                h->pred8x8  [VERT_PRED8x8     ] = ff_pred8x8_vertical_8_mmx;
197
231
                h->pred8x8  [HOR_PRED8x8      ] = ff_pred8x8_horizontal_8_mmx;
198
            }
199

284
            if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {
200
56
                h->pred16x16[PLANE_PRED8x8    ] = ff_pred16x16_tm_vp8_8_mmx;
201
56
                h->pred8x8  [PLANE_PRED8x8    ] = ff_pred8x8_tm_vp8_8_mmx;
202
56
                h->pred4x4  [TM_VP8_PRED      ] = ff_pred4x4_tm_vp8_8_mmx;
203
            } else {
204
228
                if (chroma_format_idc <= 1)
205
175
                    h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmx;
206
228
                if (codec_id == AV_CODEC_ID_SVQ3) {
207
52
                    if (cpu_flags & AV_CPU_FLAG_CMOV)
208
52
                        h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_mmx;
209
176
                } else if (codec_id == AV_CODEC_ID_RV40) {
210
48
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_8_mmx;
211
                } else {
212
128
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_h264_8_mmx;
213
                }
214
            }
215
        }
216
217
829
        if (EXTERNAL_MMXEXT(cpu_flags)) {
218
264
            h->pred16x16[HOR_PRED8x8            ] = ff_pred16x16_horizontal_8_mmxext;
219
264
            h->pred16x16[DC_PRED8x8             ] = ff_pred16x16_dc_8_mmxext;
220
264
            if (chroma_format_idc <= 1)
221
215
                h->pred8x8[HOR_PRED8x8          ] = ff_pred8x8_horizontal_8_mmxext;
222
264
            h->pred8x8l [TOP_DC_PRED            ] = ff_pred8x8l_top_dc_8_mmxext;
223
264
            h->pred8x8l [DC_PRED                ] = ff_pred8x8l_dc_8_mmxext;
224
264
            h->pred8x8l [HOR_PRED               ] = ff_pred8x8l_horizontal_8_mmxext;
225
264
            h->pred8x8l [VERT_PRED              ] = ff_pred8x8l_vertical_8_mmxext;
226
264
            h->pred8x8l [DIAG_DOWN_RIGHT_PRED   ] = ff_pred8x8l_down_right_8_mmxext;
227
264
            h->pred8x8l [VERT_RIGHT_PRED        ] = ff_pred8x8l_vertical_right_8_mmxext;
228
264
            h->pred8x8l [HOR_UP_PRED            ] = ff_pred8x8l_horizontal_up_8_mmxext;
229
264
            h->pred8x8l [DIAG_DOWN_LEFT_PRED    ] = ff_pred8x8l_down_left_8_mmxext;
230
264
            h->pred8x8l [HOR_DOWN_PRED          ] = ff_pred8x8l_horizontal_down_8_mmxext;
231
264
            h->pred4x4  [DIAG_DOWN_RIGHT_PRED   ] = ff_pred4x4_down_right_8_mmxext;
232
264
            h->pred4x4  [VERT_RIGHT_PRED        ] = ff_pred4x4_vertical_right_8_mmxext;
233
264
            h->pred4x4  [HOR_DOWN_PRED          ] = ff_pred4x4_horizontal_down_8_mmxext;
234
264
            h->pred4x4  [DC_PRED                ] = ff_pred4x4_dc_8_mmxext;
235

264
            if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8 ||
236
                codec_id == AV_CODEC_ID_H264) {
237
172
                h->pred4x4  [DIAG_DOWN_LEFT_PRED] = ff_pred4x4_down_left_8_mmxext;
238
            }
239

264
            if (codec_id == AV_CODEC_ID_SVQ3 || codec_id == AV_CODEC_ID_H264) {
240
168
                h->pred4x4  [VERT_LEFT_PRED     ] = ff_pred4x4_vertical_left_8_mmxext;
241
            }
242
264
            if (codec_id != AV_CODEC_ID_RV40) {
243
220
                h->pred4x4  [HOR_UP_PRED        ] = ff_pred4x4_horizontal_up_8_mmxext;
244
            }
245

264
            if (codec_id == AV_CODEC_ID_SVQ3 || codec_id == AV_CODEC_ID_H264) {
246
168
                if (chroma_format_idc <= 1) {
247
119
                    h->pred8x8[TOP_DC_PRED8x8   ] = ff_pred8x8_top_dc_8_mmxext;
248
119
                    h->pred8x8[DC_PRED8x8       ] = ff_pred8x8_dc_8_mmxext;
249
                }
250
            }
251

264
            if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {
252
52
                h->pred16x16[PLANE_PRED8x8      ] = ff_pred16x16_tm_vp8_8_mmxext;
253
52
                h->pred8x8  [DC_PRED8x8         ] = ff_pred8x8_dc_rv40_8_mmxext;
254
52
                h->pred8x8  [PLANE_PRED8x8      ] = ff_pred8x8_tm_vp8_8_mmxext;
255
52
                h->pred4x4  [TM_VP8_PRED        ] = ff_pred4x4_tm_vp8_8_mmxext;
256
52
                h->pred4x4  [VERT_PRED          ] = ff_pred4x4_vertical_vp8_8_mmxext;
257
            } else {
258
212
                if (chroma_format_idc <= 1)
259
163
                    h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmxext;
260
212
                if (codec_id == AV_CODEC_ID_SVQ3) {
261
48
                    h->pred16x16[PLANE_PRED8x8  ] = ff_pred16x16_plane_svq3_8_mmxext;
262
164
                } else if (codec_id == AV_CODEC_ID_RV40) {
263
44
                    h->pred16x16[PLANE_PRED8x8  ] = ff_pred16x16_plane_rv40_8_mmxext;
264
                } else {
265
120
                    h->pred16x16[PLANE_PRED8x8  ] = ff_pred16x16_plane_h264_8_mmxext;
266
                }
267
            }
268
        }
269
270
829
        if (EXTERNAL_SSE(cpu_flags)) {
271
244
            h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_8_sse;
272
        }
273
274
829
        if (EXTERNAL_SSE2(cpu_flags)) {
275
224
            h->pred16x16[DC_PRED8x8           ] = ff_pred16x16_dc_8_sse2;
276
224
            h->pred8x8l [DIAG_DOWN_LEFT_PRED  ] = ff_pred8x8l_down_left_8_sse2;
277
224
            h->pred8x8l [DIAG_DOWN_RIGHT_PRED ] = ff_pred8x8l_down_right_8_sse2;
278
224
            h->pred8x8l [VERT_RIGHT_PRED      ] = ff_pred8x8l_vertical_right_8_sse2;
279
224
            h->pred8x8l [VERT_LEFT_PRED       ] = ff_pred8x8l_vertical_left_8_sse2;
280
224
            h->pred8x8l [HOR_DOWN_PRED        ] = ff_pred8x8l_horizontal_down_8_sse2;
281

224
            if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {
282
44
                h->pred16x16[PLANE_PRED8x8    ] = ff_pred16x16_tm_vp8_8_sse2;
283
44
                h->pred8x8  [PLANE_PRED8x8    ] = ff_pred8x8_tm_vp8_8_sse2;
284
            } else {
285
180
                if (chroma_format_idc <= 1)
286
139
                    h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_plane_8_sse2;
287
180
                if (codec_id == AV_CODEC_ID_SVQ3) {
288
40
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_sse2;
289
140
                } else if (codec_id == AV_CODEC_ID_RV40) {
290
36
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_8_sse2;
291
                } else {
292
104
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_h264_8_sse2;
293
                }
294
            }
295
        }
296
297
829
        if (EXTERNAL_SSSE3(cpu_flags)) {
298
184
            h->pred16x16[HOR_PRED8x8          ] = ff_pred16x16_horizontal_8_ssse3;
299
184
            h->pred16x16[DC_PRED8x8           ] = ff_pred16x16_dc_8_ssse3;
300
184
            if (chroma_format_idc <= 1)
301
151
                h->pred8x8  [HOR_PRED8x8      ] = ff_pred8x8_horizontal_8_ssse3;
302
184
            h->pred8x8l [TOP_DC_PRED          ] = ff_pred8x8l_top_dc_8_ssse3;
303
184
            h->pred8x8l [DC_PRED              ] = ff_pred8x8l_dc_8_ssse3;
304
184
            h->pred8x8l [HOR_PRED             ] = ff_pred8x8l_horizontal_8_ssse3;
305
184
            h->pred8x8l [VERT_PRED            ] = ff_pred8x8l_vertical_8_ssse3;
306
184
            h->pred8x8l [DIAG_DOWN_LEFT_PRED  ] = ff_pred8x8l_down_left_8_ssse3;
307
184
            h->pred8x8l [DIAG_DOWN_RIGHT_PRED ] = ff_pred8x8l_down_right_8_ssse3;
308
184
            h->pred8x8l [VERT_RIGHT_PRED      ] = ff_pred8x8l_vertical_right_8_ssse3;
309
184
            h->pred8x8l [VERT_LEFT_PRED       ] = ff_pred8x8l_vertical_left_8_ssse3;
310
184
            h->pred8x8l [HOR_UP_PRED          ] = ff_pred8x8l_horizontal_up_8_ssse3;
311
184
            h->pred8x8l [HOR_DOWN_PRED        ] = ff_pred8x8l_horizontal_down_8_ssse3;
312

184
            if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {
313
36
                h->pred8x8  [PLANE_PRED8x8    ] = ff_pred8x8_tm_vp8_8_ssse3;
314
36
                h->pred4x4  [TM_VP8_PRED      ] = ff_pred4x4_tm_vp8_8_ssse3;
315
            } else {
316
148
                if (chroma_format_idc <= 1)
317
115
                    h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_plane_8_ssse3;
318
148
                if (codec_id == AV_CODEC_ID_SVQ3) {
319
32
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_ssse3;
320
116
                } else if (codec_id == AV_CODEC_ID_RV40) {
321
28
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_8_ssse3;
322
                } else {
323
88
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_h264_8_ssse3;
324
                }
325
            }
326
        }
327
328
829
        if(EXTERNAL_AVX2(cpu_flags)){
329
64
            if (codec_id == AV_CODEC_ID_VP8) {
330
12
                h->pred16x16[PLANE_PRED8x8    ] = ff_pred16x16_tm_vp8_8_avx2;
331
            }
332
        }
333
250
    } else if (bit_depth == 10) {
334
141
        if (EXTERNAL_MMXEXT(cpu_flags)) {
335
88
            h->pred4x4[DC_PRED             ] = ff_pred4x4_dc_10_mmxext;
336
88
            h->pred4x4[HOR_UP_PRED         ] = ff_pred4x4_horizontal_up_10_mmxext;
337
338
88
            if (chroma_format_idc <= 1)
339
44
                h->pred8x8[DC_PRED8x8      ] = ff_pred8x8_dc_10_mmxext;
340
341
88
            h->pred8x8l[DC_128_PRED        ] = ff_pred8x8l_128_dc_10_mmxext;
342
343
88
            h->pred16x16[DC_PRED8x8        ] = ff_pred16x16_dc_10_mmxext;
344
88
            h->pred16x16[TOP_DC_PRED8x8    ] = ff_pred16x16_top_dc_10_mmxext;
345
88
            h->pred16x16[DC_128_PRED8x8    ] = ff_pred16x16_128_dc_10_mmxext;
346
88
            h->pred16x16[LEFT_DC_PRED8x8   ] = ff_pred16x16_left_dc_10_mmxext;
347
88
            h->pred16x16[VERT_PRED8x8      ] = ff_pred16x16_vertical_10_mmxext;
348
88
            h->pred16x16[HOR_PRED8x8       ] = ff_pred16x16_horizontal_10_mmxext;
349
        }
350
141
        if (EXTERNAL_SSE2(cpu_flags)) {
351
72
            h->pred4x4[DIAG_DOWN_LEFT_PRED ] = ff_pred4x4_down_left_10_sse2;
352
72
            h->pred4x4[DIAG_DOWN_RIGHT_PRED] = ff_pred4x4_down_right_10_sse2;
353
72
            h->pred4x4[VERT_LEFT_PRED      ] = ff_pred4x4_vertical_left_10_sse2;
354
72
            h->pred4x4[VERT_RIGHT_PRED     ] = ff_pred4x4_vertical_right_10_sse2;
355
72
            h->pred4x4[HOR_DOWN_PRED       ] = ff_pred4x4_horizontal_down_10_sse2;
356
357
72
            if (chroma_format_idc <= 1) {
358
36
                h->pred8x8[DC_PRED8x8      ] = ff_pred8x8_dc_10_sse2;
359
36
                h->pred8x8[TOP_DC_PRED8x8  ] = ff_pred8x8_top_dc_10_sse2;
360
36
                h->pred8x8[PLANE_PRED8x8   ] = ff_pred8x8_plane_10_sse2;
361
36
                h->pred8x8[VERT_PRED8x8    ] = ff_pred8x8_vertical_10_sse2;
362
36
                h->pred8x8[HOR_PRED8x8     ] = ff_pred8x8_horizontal_10_sse2;
363
            }
364
365
72
            h->pred8x8l[VERT_PRED           ] = ff_pred8x8l_vertical_10_sse2;
366
72
            h->pred8x8l[HOR_PRED            ] = ff_pred8x8l_horizontal_10_sse2;
367
72
            h->pred8x8l[DC_PRED             ] = ff_pred8x8l_dc_10_sse2;
368
72
            h->pred8x8l[DC_128_PRED         ] = ff_pred8x8l_128_dc_10_sse2;
369
72
            h->pred8x8l[TOP_DC_PRED         ] = ff_pred8x8l_top_dc_10_sse2;
370
72
            h->pred8x8l[DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_10_sse2;
371
72
            h->pred8x8l[DIAG_DOWN_RIGHT_PRED] = ff_pred8x8l_down_right_10_sse2;
372
72
            h->pred8x8l[VERT_RIGHT_PRED     ] = ff_pred8x8l_vertical_right_10_sse2;
373
72
            h->pred8x8l[HOR_UP_PRED         ] = ff_pred8x8l_horizontal_up_10_sse2;
374
375
72
            h->pred16x16[DC_PRED8x8        ] = ff_pred16x16_dc_10_sse2;
376
72
            h->pred16x16[TOP_DC_PRED8x8    ] = ff_pred16x16_top_dc_10_sse2;
377
72
            h->pred16x16[DC_128_PRED8x8    ] = ff_pred16x16_128_dc_10_sse2;
378
72
            h->pred16x16[LEFT_DC_PRED8x8   ] = ff_pred16x16_left_dc_10_sse2;
379
72
            h->pred16x16[VERT_PRED8x8      ] = ff_pred16x16_vertical_10_sse2;
380
72
            h->pred16x16[HOR_PRED8x8       ] = ff_pred16x16_horizontal_10_sse2;
381
        }
382
141
        if (EXTERNAL_SSSE3(cpu_flags)) {
383
56
            h->pred4x4[DIAG_DOWN_RIGHT_PRED] = ff_pred4x4_down_right_10_ssse3;
384
56
            h->pred4x4[VERT_RIGHT_PRED     ] = ff_pred4x4_vertical_right_10_ssse3;
385
56
            h->pred4x4[HOR_DOWN_PRED       ] = ff_pred4x4_horizontal_down_10_ssse3;
386
387
56
            h->pred8x8l[HOR_PRED            ] = ff_pred8x8l_horizontal_10_ssse3;
388
56
            h->pred8x8l[DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_10_ssse3;
389
56
            h->pred8x8l[DIAG_DOWN_RIGHT_PRED] = ff_pred8x8l_down_right_10_ssse3;
390
56
            h->pred8x8l[VERT_RIGHT_PRED     ] = ff_pred8x8l_vertical_right_10_ssse3;
391
56
            h->pred8x8l[HOR_UP_PRED         ] = ff_pred8x8l_horizontal_up_10_ssse3;
392
        }
393
141
        if (EXTERNAL_AVX(cpu_flags)) {
394
24
            h->pred4x4[DIAG_DOWN_LEFT_PRED ] = ff_pred4x4_down_left_10_avx;
395
24
            h->pred4x4[DIAG_DOWN_RIGHT_PRED] = ff_pred4x4_down_right_10_avx;
396
24
            h->pred4x4[VERT_LEFT_PRED      ] = ff_pred4x4_vertical_left_10_avx;
397
24
            h->pred4x4[VERT_RIGHT_PRED     ] = ff_pred4x4_vertical_right_10_avx;
398
24
            h->pred4x4[HOR_DOWN_PRED       ] = ff_pred4x4_horizontal_down_10_avx;
399
400
24
            h->pred8x8l[VERT_PRED           ] = ff_pred8x8l_vertical_10_avx;
401
24
            h->pred8x8l[HOR_PRED            ] = ff_pred8x8l_horizontal_10_avx;
402
24
            h->pred8x8l[DC_PRED             ] = ff_pred8x8l_dc_10_avx;
403
24
            h->pred8x8l[TOP_DC_PRED         ] = ff_pred8x8l_top_dc_10_avx;
404
24
            h->pred8x8l[DIAG_DOWN_RIGHT_PRED] = ff_pred8x8l_down_right_10_avx;
405
24
            h->pred8x8l[DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_10_avx;
406
24
            h->pred8x8l[VERT_RIGHT_PRED     ] = ff_pred8x8l_vertical_right_10_avx;
407
24
            h->pred8x8l[HOR_UP_PRED         ] = ff_pred8x8l_horizontal_up_10_avx;
408
        }
409
    }
410
1079
}