GCC Code Coverage Report
Directory: ../../../ffmpeg/ Exec Total Coverage
File: src/libavcodec/x86/h264_intrapred_init.c Lines: 173 173 100.0 %
Date: 2021-04-15 16:04:23 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
1095
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
1095
    int cpu_flags = av_get_cpu_flags();
190
191
1095
    if (bit_depth == 8) {
192
845
        if (EXTERNAL_MMX(cpu_flags)) {
193
290
            h->pred16x16[VERT_PRED8x8         ] = ff_pred16x16_vertical_8_mmx;
194
290
            h->pred16x16[HOR_PRED8x8          ] = ff_pred16x16_horizontal_8_mmx;
195
290
            if (chroma_format_idc <= 1) {
196
235
                h->pred8x8  [VERT_PRED8x8     ] = ff_pred8x8_vertical_8_mmx;
197
235
                h->pred8x8  [HOR_PRED8x8      ] = ff_pred8x8_horizontal_8_mmx;
198
            }
199

290
            if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {
200
58
                h->pred16x16[PLANE_PRED8x8    ] = ff_pred16x16_tm_vp8_8_mmx;
201
58
                h->pred8x8  [PLANE_PRED8x8    ] = ff_pred8x8_tm_vp8_8_mmx;
202
58
                h->pred4x4  [TM_VP8_PRED      ] = ff_pred4x4_tm_vp8_8_mmx;
203
            } else {
204
232
                if (chroma_format_idc <= 1)
205
177
                    h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmx;
206
232
                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
180
                } else if (codec_id == AV_CODEC_ID_RV40) {
210
48
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_8_mmx;
211
                } else {
212
132
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_h264_8_mmx;
213
                }
214
            }
215
        }
216
217
845
        if (EXTERNAL_MMXEXT(cpu_flags)) {
218
270
            h->pred16x16[HOR_PRED8x8            ] = ff_pred16x16_horizontal_8_mmxext;
219
270
            h->pred16x16[DC_PRED8x8             ] = ff_pred16x16_dc_8_mmxext;
220
270
            if (chroma_format_idc <= 1)
221
219
                h->pred8x8[HOR_PRED8x8          ] = ff_pred8x8_horizontal_8_mmxext;
222
270
            h->pred8x8l [TOP_DC_PRED            ] = ff_pred8x8l_top_dc_8_mmxext;
223
270
            h->pred8x8l [DC_PRED                ] = ff_pred8x8l_dc_8_mmxext;
224
270
            h->pred8x8l [HOR_PRED               ] = ff_pred8x8l_horizontal_8_mmxext;
225
270
            h->pred8x8l [VERT_PRED              ] = ff_pred8x8l_vertical_8_mmxext;
226
270
            h->pred8x8l [DIAG_DOWN_RIGHT_PRED   ] = ff_pred8x8l_down_right_8_mmxext;
227
270
            h->pred8x8l [VERT_RIGHT_PRED        ] = ff_pred8x8l_vertical_right_8_mmxext;
228
270
            h->pred8x8l [HOR_UP_PRED            ] = ff_pred8x8l_horizontal_up_8_mmxext;
229
270
            h->pred8x8l [DIAG_DOWN_LEFT_PRED    ] = ff_pred8x8l_down_left_8_mmxext;
230
270
            h->pred8x8l [HOR_DOWN_PRED          ] = ff_pred8x8l_horizontal_down_8_mmxext;
231
270
            h->pred4x4  [DIAG_DOWN_RIGHT_PRED   ] = ff_pred4x4_down_right_8_mmxext;
232
270
            h->pred4x4  [VERT_RIGHT_PRED        ] = ff_pred4x4_vertical_right_8_mmxext;
233
270
            h->pred4x4  [HOR_DOWN_PRED          ] = ff_pred4x4_horizontal_down_8_mmxext;
234
270
            h->pred4x4  [DC_PRED                ] = ff_pred4x4_dc_8_mmxext;
235

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

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

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

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

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

190
            if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {
313
38
                h->pred8x8  [PLANE_PRED8x8    ] = ff_pred8x8_tm_vp8_8_ssse3;
314
38
                h->pred4x4  [TM_VP8_PRED      ] = ff_pred4x4_tm_vp8_8_ssse3;
315
            } else {
316
152
                if (chroma_format_idc <= 1)
317
117
                    h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_plane_8_ssse3;
318
152
                if (codec_id == AV_CODEC_ID_SVQ3) {
319
32
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_ssse3;
320
120
                } else if (codec_id == AV_CODEC_ID_RV40) {
321
28
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_8_ssse3;
322
                } else {
323
92
                    h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_h264_8_ssse3;
324
                }
325
            }
326
        }
327
328
845
        if(EXTERNAL_AVX2(cpu_flags)){
329
70
            if (codec_id == AV_CODEC_ID_VP8) {
330
14
                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
1095
}