1cabdff1aSopenharmony_ci/*
2cabdff1aSopenharmony_ci * Copyright (c) 2015 Manojkumar Bhosale (Manojkumar.Bhosale@imgtec.com)
3cabdff1aSopenharmony_ci *
4cabdff1aSopenharmony_ci * This file is part of FFmpeg.
5cabdff1aSopenharmony_ci *
6cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or
7cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public
8cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either
9cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version.
10cabdff1aSopenharmony_ci *
11cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful,
12cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of
13cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14cabdff1aSopenharmony_ci * Lesser General Public License for more details.
15cabdff1aSopenharmony_ci *
16cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public
17cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software
18cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19cabdff1aSopenharmony_ci */
20cabdff1aSopenharmony_ci
21cabdff1aSopenharmony_ci#include "libavutil/mips/cpu.h"
22cabdff1aSopenharmony_ci#include "libavcodec/mips/hevcdsp_mips.h"
23cabdff1aSopenharmony_ci
24cabdff1aSopenharmony_civoid ff_hevc_dsp_init_mips(HEVCDSPContext *c, const int bit_depth)
25cabdff1aSopenharmony_ci{
26cabdff1aSopenharmony_ci    int cpu_flags = av_get_cpu_flags();
27cabdff1aSopenharmony_ci
28cabdff1aSopenharmony_ci    if (have_mmi(cpu_flags)) {
29cabdff1aSopenharmony_ci        if (bit_depth == 8) {
30cabdff1aSopenharmony_ci            c->put_hevc_qpel[1][0][1] = ff_hevc_put_hevc_qpel_h4_8_mmi;
31cabdff1aSopenharmony_ci            c->put_hevc_qpel[3][0][1] = ff_hevc_put_hevc_qpel_h8_8_mmi;
32cabdff1aSopenharmony_ci            c->put_hevc_qpel[4][0][1] = ff_hevc_put_hevc_qpel_h12_8_mmi;
33cabdff1aSopenharmony_ci            c->put_hevc_qpel[5][0][1] = ff_hevc_put_hevc_qpel_h16_8_mmi;
34cabdff1aSopenharmony_ci            c->put_hevc_qpel[6][0][1] = ff_hevc_put_hevc_qpel_h24_8_mmi;
35cabdff1aSopenharmony_ci            c->put_hevc_qpel[7][0][1] = ff_hevc_put_hevc_qpel_h32_8_mmi;
36cabdff1aSopenharmony_ci            c->put_hevc_qpel[8][0][1] = ff_hevc_put_hevc_qpel_h48_8_mmi;
37cabdff1aSopenharmony_ci            c->put_hevc_qpel[9][0][1] = ff_hevc_put_hevc_qpel_h64_8_mmi;
38cabdff1aSopenharmony_ci
39cabdff1aSopenharmony_ci            c->put_hevc_qpel[1][1][1] = ff_hevc_put_hevc_qpel_hv4_8_mmi;
40cabdff1aSopenharmony_ci            c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_mmi;
41cabdff1aSopenharmony_ci            c->put_hevc_qpel[4][1][1] = ff_hevc_put_hevc_qpel_hv12_8_mmi;
42cabdff1aSopenharmony_ci            c->put_hevc_qpel[5][1][1] = ff_hevc_put_hevc_qpel_hv16_8_mmi;
43cabdff1aSopenharmony_ci            c->put_hevc_qpel[6][1][1] = ff_hevc_put_hevc_qpel_hv24_8_mmi;
44cabdff1aSopenharmony_ci            c->put_hevc_qpel[7][1][1] = ff_hevc_put_hevc_qpel_hv32_8_mmi;
45cabdff1aSopenharmony_ci            c->put_hevc_qpel[8][1][1] = ff_hevc_put_hevc_qpel_hv48_8_mmi;
46cabdff1aSopenharmony_ci            c->put_hevc_qpel[9][1][1] = ff_hevc_put_hevc_qpel_hv64_8_mmi;
47cabdff1aSopenharmony_ci
48cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[1][0][1] = ff_hevc_put_hevc_qpel_bi_h4_8_mmi;
49cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[3][0][1] = ff_hevc_put_hevc_qpel_bi_h8_8_mmi;
50cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[4][0][1] = ff_hevc_put_hevc_qpel_bi_h12_8_mmi;
51cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[5][0][1] = ff_hevc_put_hevc_qpel_bi_h16_8_mmi;
52cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[6][0][1] = ff_hevc_put_hevc_qpel_bi_h24_8_mmi;
53cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[7][0][1] = ff_hevc_put_hevc_qpel_bi_h32_8_mmi;
54cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[8][0][1] = ff_hevc_put_hevc_qpel_bi_h48_8_mmi;
55cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[9][0][1] = ff_hevc_put_hevc_qpel_bi_h64_8_mmi;
56cabdff1aSopenharmony_ci
57cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[1][1][1] = ff_hevc_put_hevc_qpel_bi_hv4_8_mmi;
58cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[3][1][1] = ff_hevc_put_hevc_qpel_bi_hv8_8_mmi;
59cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[4][1][1] = ff_hevc_put_hevc_qpel_bi_hv12_8_mmi;
60cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[5][1][1] = ff_hevc_put_hevc_qpel_bi_hv16_8_mmi;
61cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[6][1][1] = ff_hevc_put_hevc_qpel_bi_hv24_8_mmi;
62cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[7][1][1] = ff_hevc_put_hevc_qpel_bi_hv32_8_mmi;
63cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[8][1][1] = ff_hevc_put_hevc_qpel_bi_hv48_8_mmi;
64cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[9][1][1] = ff_hevc_put_hevc_qpel_bi_hv64_8_mmi;
65cabdff1aSopenharmony_ci
66cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[3][0][0] = ff_hevc_put_hevc_pel_bi_pixels8_8_mmi;
67cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[5][0][0] = ff_hevc_put_hevc_pel_bi_pixels16_8_mmi;
68cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[6][0][0] = ff_hevc_put_hevc_pel_bi_pixels24_8_mmi;
69cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[7][0][0] = ff_hevc_put_hevc_pel_bi_pixels32_8_mmi;
70cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[8][0][0] = ff_hevc_put_hevc_pel_bi_pixels48_8_mmi;
71cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[9][0][0] = ff_hevc_put_hevc_pel_bi_pixels64_8_mmi;
72cabdff1aSopenharmony_ci
73cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[3][0][0] = ff_hevc_put_hevc_pel_bi_pixels8_8_mmi;
74cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[5][0][0] = ff_hevc_put_hevc_pel_bi_pixels16_8_mmi;
75cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[6][0][0] = ff_hevc_put_hevc_pel_bi_pixels24_8_mmi;
76cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[7][0][0] = ff_hevc_put_hevc_pel_bi_pixels32_8_mmi;
77cabdff1aSopenharmony_ci
78cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[1][1][1] = ff_hevc_put_hevc_epel_bi_hv4_8_mmi;
79cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[3][1][1] = ff_hevc_put_hevc_epel_bi_hv8_8_mmi;
80cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[4][1][1] = ff_hevc_put_hevc_epel_bi_hv12_8_mmi;
81cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[5][1][1] = ff_hevc_put_hevc_epel_bi_hv16_8_mmi;
82cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[6][1][1] = ff_hevc_put_hevc_epel_bi_hv24_8_mmi;
83cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[7][1][1] = ff_hevc_put_hevc_epel_bi_hv32_8_mmi;
84cabdff1aSopenharmony_ci
85cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[1][1][1] = ff_hevc_put_hevc_qpel_uni_hv4_8_mmi;
86cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[3][1][1] = ff_hevc_put_hevc_qpel_uni_hv8_8_mmi;
87cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[4][1][1] = ff_hevc_put_hevc_qpel_uni_hv12_8_mmi;
88cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[5][1][1] = ff_hevc_put_hevc_qpel_uni_hv16_8_mmi;
89cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[6][1][1] = ff_hevc_put_hevc_qpel_uni_hv24_8_mmi;
90cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[7][1][1] = ff_hevc_put_hevc_qpel_uni_hv32_8_mmi;
91cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[8][1][1] = ff_hevc_put_hevc_qpel_uni_hv48_8_mmi;
92cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[9][1][1] = ff_hevc_put_hevc_qpel_uni_hv64_8_mmi;
93cabdff1aSopenharmony_ci        }
94cabdff1aSopenharmony_ci    }
95cabdff1aSopenharmony_ci
96cabdff1aSopenharmony_ci    if (have_msa(cpu_flags)) {
97cabdff1aSopenharmony_ci        if (bit_depth == 8) {
98cabdff1aSopenharmony_ci            c->put_hevc_qpel[1][0][0] = ff_hevc_put_hevc_pel_pixels4_8_msa;
99cabdff1aSopenharmony_ci            c->put_hevc_qpel[2][0][0] = ff_hevc_put_hevc_pel_pixels6_8_msa;
100cabdff1aSopenharmony_ci            c->put_hevc_qpel[3][0][0] = ff_hevc_put_hevc_pel_pixels8_8_msa;
101cabdff1aSopenharmony_ci            c->put_hevc_qpel[4][0][0] = ff_hevc_put_hevc_pel_pixels12_8_msa;
102cabdff1aSopenharmony_ci            c->put_hevc_qpel[5][0][0] = ff_hevc_put_hevc_pel_pixels16_8_msa;
103cabdff1aSopenharmony_ci            c->put_hevc_qpel[6][0][0] = ff_hevc_put_hevc_pel_pixels24_8_msa;
104cabdff1aSopenharmony_ci            c->put_hevc_qpel[7][0][0] = ff_hevc_put_hevc_pel_pixels32_8_msa;
105cabdff1aSopenharmony_ci            c->put_hevc_qpel[8][0][0] = ff_hevc_put_hevc_pel_pixels48_8_msa;
106cabdff1aSopenharmony_ci            c->put_hevc_qpel[9][0][0] = ff_hevc_put_hevc_pel_pixels64_8_msa;
107cabdff1aSopenharmony_ci
108cabdff1aSopenharmony_ci            c->put_hevc_qpel[1][0][1] = ff_hevc_put_hevc_qpel_h4_8_msa;
109cabdff1aSopenharmony_ci            c->put_hevc_qpel[3][0][1] = ff_hevc_put_hevc_qpel_h8_8_msa;
110cabdff1aSopenharmony_ci            c->put_hevc_qpel[4][0][1] = ff_hevc_put_hevc_qpel_h12_8_msa;
111cabdff1aSopenharmony_ci            c->put_hevc_qpel[5][0][1] = ff_hevc_put_hevc_qpel_h16_8_msa;
112cabdff1aSopenharmony_ci            c->put_hevc_qpel[6][0][1] = ff_hevc_put_hevc_qpel_h24_8_msa;
113cabdff1aSopenharmony_ci            c->put_hevc_qpel[7][0][1] = ff_hevc_put_hevc_qpel_h32_8_msa;
114cabdff1aSopenharmony_ci            c->put_hevc_qpel[8][0][1] = ff_hevc_put_hevc_qpel_h48_8_msa;
115cabdff1aSopenharmony_ci            c->put_hevc_qpel[9][0][1] = ff_hevc_put_hevc_qpel_h64_8_msa;
116cabdff1aSopenharmony_ci
117cabdff1aSopenharmony_ci            c->put_hevc_qpel[1][1][0] = ff_hevc_put_hevc_qpel_v4_8_msa;
118cabdff1aSopenharmony_ci            c->put_hevc_qpel[3][1][0] = ff_hevc_put_hevc_qpel_v8_8_msa;
119cabdff1aSopenharmony_ci            c->put_hevc_qpel[4][1][0] = ff_hevc_put_hevc_qpel_v12_8_msa;
120cabdff1aSopenharmony_ci            c->put_hevc_qpel[5][1][0] = ff_hevc_put_hevc_qpel_v16_8_msa;
121cabdff1aSopenharmony_ci            c->put_hevc_qpel[6][1][0] = ff_hevc_put_hevc_qpel_v24_8_msa;
122cabdff1aSopenharmony_ci            c->put_hevc_qpel[7][1][0] = ff_hevc_put_hevc_qpel_v32_8_msa;
123cabdff1aSopenharmony_ci            c->put_hevc_qpel[8][1][0] = ff_hevc_put_hevc_qpel_v48_8_msa;
124cabdff1aSopenharmony_ci            c->put_hevc_qpel[9][1][0] = ff_hevc_put_hevc_qpel_v64_8_msa;
125cabdff1aSopenharmony_ci
126cabdff1aSopenharmony_ci            c->put_hevc_qpel[1][1][1] = ff_hevc_put_hevc_qpel_hv4_8_msa;
127cabdff1aSopenharmony_ci            c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_msa;
128cabdff1aSopenharmony_ci            c->put_hevc_qpel[4][1][1] = ff_hevc_put_hevc_qpel_hv12_8_msa;
129cabdff1aSopenharmony_ci            c->put_hevc_qpel[5][1][1] = ff_hevc_put_hevc_qpel_hv16_8_msa;
130cabdff1aSopenharmony_ci            c->put_hevc_qpel[6][1][1] = ff_hevc_put_hevc_qpel_hv24_8_msa;
131cabdff1aSopenharmony_ci            c->put_hevc_qpel[7][1][1] = ff_hevc_put_hevc_qpel_hv32_8_msa;
132cabdff1aSopenharmony_ci            c->put_hevc_qpel[8][1][1] = ff_hevc_put_hevc_qpel_hv48_8_msa;
133cabdff1aSopenharmony_ci            c->put_hevc_qpel[9][1][1] = ff_hevc_put_hevc_qpel_hv64_8_msa;
134cabdff1aSopenharmony_ci
135cabdff1aSopenharmony_ci            c->put_hevc_epel[1][0][0] = ff_hevc_put_hevc_pel_pixels4_8_msa;
136cabdff1aSopenharmony_ci            c->put_hevc_epel[2][0][0] = ff_hevc_put_hevc_pel_pixels6_8_msa;
137cabdff1aSopenharmony_ci            c->put_hevc_epel[3][0][0] = ff_hevc_put_hevc_pel_pixels8_8_msa;
138cabdff1aSopenharmony_ci            c->put_hevc_epel[4][0][0] = ff_hevc_put_hevc_pel_pixels12_8_msa;
139cabdff1aSopenharmony_ci            c->put_hevc_epel[5][0][0] = ff_hevc_put_hevc_pel_pixels16_8_msa;
140cabdff1aSopenharmony_ci            c->put_hevc_epel[6][0][0] = ff_hevc_put_hevc_pel_pixels24_8_msa;
141cabdff1aSopenharmony_ci            c->put_hevc_epel[7][0][0] = ff_hevc_put_hevc_pel_pixels32_8_msa;
142cabdff1aSopenharmony_ci
143cabdff1aSopenharmony_ci            c->put_hevc_epel[1][0][1] = ff_hevc_put_hevc_epel_h4_8_msa;
144cabdff1aSopenharmony_ci            c->put_hevc_epel[2][0][1] = ff_hevc_put_hevc_epel_h6_8_msa;
145cabdff1aSopenharmony_ci            c->put_hevc_epel[3][0][1] = ff_hevc_put_hevc_epel_h8_8_msa;
146cabdff1aSopenharmony_ci            c->put_hevc_epel[4][0][1] = ff_hevc_put_hevc_epel_h12_8_msa;
147cabdff1aSopenharmony_ci            c->put_hevc_epel[5][0][1] = ff_hevc_put_hevc_epel_h16_8_msa;
148cabdff1aSopenharmony_ci            c->put_hevc_epel[6][0][1] = ff_hevc_put_hevc_epel_h24_8_msa;
149cabdff1aSopenharmony_ci            c->put_hevc_epel[7][0][1] = ff_hevc_put_hevc_epel_h32_8_msa;
150cabdff1aSopenharmony_ci
151cabdff1aSopenharmony_ci            c->put_hevc_epel[1][1][0] = ff_hevc_put_hevc_epel_v4_8_msa;
152cabdff1aSopenharmony_ci            c->put_hevc_epel[2][1][0] = ff_hevc_put_hevc_epel_v6_8_msa;
153cabdff1aSopenharmony_ci            c->put_hevc_epel[3][1][0] = ff_hevc_put_hevc_epel_v8_8_msa;
154cabdff1aSopenharmony_ci            c->put_hevc_epel[4][1][0] = ff_hevc_put_hevc_epel_v12_8_msa;
155cabdff1aSopenharmony_ci            c->put_hevc_epel[5][1][0] = ff_hevc_put_hevc_epel_v16_8_msa;
156cabdff1aSopenharmony_ci            c->put_hevc_epel[6][1][0] = ff_hevc_put_hevc_epel_v24_8_msa;
157cabdff1aSopenharmony_ci            c->put_hevc_epel[7][1][0] = ff_hevc_put_hevc_epel_v32_8_msa;
158cabdff1aSopenharmony_ci
159cabdff1aSopenharmony_ci            c->put_hevc_epel[1][1][1] = ff_hevc_put_hevc_epel_hv4_8_msa;
160cabdff1aSopenharmony_ci            c->put_hevc_epel[2][1][1] = ff_hevc_put_hevc_epel_hv6_8_msa;
161cabdff1aSopenharmony_ci            c->put_hevc_epel[3][1][1] = ff_hevc_put_hevc_epel_hv8_8_msa;
162cabdff1aSopenharmony_ci            c->put_hevc_epel[4][1][1] = ff_hevc_put_hevc_epel_hv12_8_msa;
163cabdff1aSopenharmony_ci            c->put_hevc_epel[5][1][1] = ff_hevc_put_hevc_epel_hv16_8_msa;
164cabdff1aSopenharmony_ci            c->put_hevc_epel[6][1][1] = ff_hevc_put_hevc_epel_hv24_8_msa;
165cabdff1aSopenharmony_ci            c->put_hevc_epel[7][1][1] = ff_hevc_put_hevc_epel_hv32_8_msa;
166cabdff1aSopenharmony_ci
167cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[3][0][0] = ff_hevc_put_hevc_uni_pel_pixels8_8_msa;
168cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[4][0][0] = ff_hevc_put_hevc_uni_pel_pixels12_8_msa;
169cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[5][0][0] = ff_hevc_put_hevc_uni_pel_pixels16_8_msa;
170cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[6][0][0] = ff_hevc_put_hevc_uni_pel_pixels24_8_msa;
171cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[7][0][0] = ff_hevc_put_hevc_uni_pel_pixels32_8_msa;
172cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[8][0][0] = ff_hevc_put_hevc_uni_pel_pixels48_8_msa;
173cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[9][0][0] = ff_hevc_put_hevc_uni_pel_pixels64_8_msa;
174cabdff1aSopenharmony_ci
175cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[1][0][1] = ff_hevc_put_hevc_uni_qpel_h4_8_msa;
176cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[3][0][1] = ff_hevc_put_hevc_uni_qpel_h8_8_msa;
177cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[4][0][1] = ff_hevc_put_hevc_uni_qpel_h12_8_msa;
178cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[5][0][1] = ff_hevc_put_hevc_uni_qpel_h16_8_msa;
179cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[6][0][1] = ff_hevc_put_hevc_uni_qpel_h24_8_msa;
180cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[7][0][1] = ff_hevc_put_hevc_uni_qpel_h32_8_msa;
181cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[8][0][1] = ff_hevc_put_hevc_uni_qpel_h48_8_msa;
182cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[9][0][1] = ff_hevc_put_hevc_uni_qpel_h64_8_msa;
183cabdff1aSopenharmony_ci
184cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[1][1][0] = ff_hevc_put_hevc_uni_qpel_v4_8_msa;
185cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[3][1][0] = ff_hevc_put_hevc_uni_qpel_v8_8_msa;
186cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[4][1][0] = ff_hevc_put_hevc_uni_qpel_v12_8_msa;
187cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[5][1][0] = ff_hevc_put_hevc_uni_qpel_v16_8_msa;
188cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[6][1][0] = ff_hevc_put_hevc_uni_qpel_v24_8_msa;
189cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[7][1][0] = ff_hevc_put_hevc_uni_qpel_v32_8_msa;
190cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[8][1][0] = ff_hevc_put_hevc_uni_qpel_v48_8_msa;
191cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[9][1][0] = ff_hevc_put_hevc_uni_qpel_v64_8_msa;
192cabdff1aSopenharmony_ci
193cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[1][1][1] = ff_hevc_put_hevc_uni_qpel_hv4_8_msa;
194cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[3][1][1] = ff_hevc_put_hevc_uni_qpel_hv8_8_msa;
195cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[4][1][1] = ff_hevc_put_hevc_uni_qpel_hv12_8_msa;
196cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[5][1][1] = ff_hevc_put_hevc_uni_qpel_hv16_8_msa;
197cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[6][1][1] = ff_hevc_put_hevc_uni_qpel_hv24_8_msa;
198cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[7][1][1] = ff_hevc_put_hevc_uni_qpel_hv32_8_msa;
199cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[8][1][1] = ff_hevc_put_hevc_uni_qpel_hv48_8_msa;
200cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni[9][1][1] = ff_hevc_put_hevc_uni_qpel_hv64_8_msa;
201cabdff1aSopenharmony_ci
202cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[3][0][0] = ff_hevc_put_hevc_uni_pel_pixels8_8_msa;
203cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[4][0][0] = ff_hevc_put_hevc_uni_pel_pixels12_8_msa;
204cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[5][0][0] = ff_hevc_put_hevc_uni_pel_pixels16_8_msa;
205cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[6][0][0] = ff_hevc_put_hevc_uni_pel_pixels24_8_msa;
206cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[7][0][0] = ff_hevc_put_hevc_uni_pel_pixels32_8_msa;
207cabdff1aSopenharmony_ci
208cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[1][0][1] = ff_hevc_put_hevc_uni_epel_h4_8_msa;
209cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[2][0][1] = ff_hevc_put_hevc_uni_epel_h6_8_msa;
210cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[3][0][1] = ff_hevc_put_hevc_uni_epel_h8_8_msa;
211cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[4][0][1] = ff_hevc_put_hevc_uni_epel_h12_8_msa;
212cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[5][0][1] = ff_hevc_put_hevc_uni_epel_h16_8_msa;
213cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[6][0][1] = ff_hevc_put_hevc_uni_epel_h24_8_msa;
214cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[7][0][1] = ff_hevc_put_hevc_uni_epel_h32_8_msa;
215cabdff1aSopenharmony_ci
216cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[1][1][0] = ff_hevc_put_hevc_uni_epel_v4_8_msa;
217cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[2][1][0] = ff_hevc_put_hevc_uni_epel_v6_8_msa;
218cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[3][1][0] = ff_hevc_put_hevc_uni_epel_v8_8_msa;
219cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[4][1][0] = ff_hevc_put_hevc_uni_epel_v12_8_msa;
220cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[5][1][0] = ff_hevc_put_hevc_uni_epel_v16_8_msa;
221cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[6][1][0] = ff_hevc_put_hevc_uni_epel_v24_8_msa;
222cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[7][1][0] = ff_hevc_put_hevc_uni_epel_v32_8_msa;
223cabdff1aSopenharmony_ci
224cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[1][1][1] = ff_hevc_put_hevc_uni_epel_hv4_8_msa;
225cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[2][1][1] = ff_hevc_put_hevc_uni_epel_hv6_8_msa;
226cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[3][1][1] = ff_hevc_put_hevc_uni_epel_hv8_8_msa;
227cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[4][1][1] = ff_hevc_put_hevc_uni_epel_hv12_8_msa;
228cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[5][1][1] = ff_hevc_put_hevc_uni_epel_hv16_8_msa;
229cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[6][1][1] = ff_hevc_put_hevc_uni_epel_hv24_8_msa;
230cabdff1aSopenharmony_ci            c->put_hevc_epel_uni[7][1][1] = ff_hevc_put_hevc_uni_epel_hv32_8_msa;
231cabdff1aSopenharmony_ci
232cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[1][0][0] =
233cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels4_8_msa;
234cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[3][0][0] =
235cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels8_8_msa;
236cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[4][0][0] =
237cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels12_8_msa;
238cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[5][0][0] =
239cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels16_8_msa;
240cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[6][0][0] =
241cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels24_8_msa;
242cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[7][0][0] =
243cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels32_8_msa;
244cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[8][0][0] =
245cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels48_8_msa;
246cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[9][0][0] =
247cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels64_8_msa;
248cabdff1aSopenharmony_ci
249cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[1][0][1] = ff_hevc_put_hevc_uni_w_qpel_h4_8_msa;
250cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[3][0][1] = ff_hevc_put_hevc_uni_w_qpel_h8_8_msa;
251cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[4][0][1] = ff_hevc_put_hevc_uni_w_qpel_h12_8_msa;
252cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[5][0][1] = ff_hevc_put_hevc_uni_w_qpel_h16_8_msa;
253cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[6][0][1] = ff_hevc_put_hevc_uni_w_qpel_h24_8_msa;
254cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[7][0][1] = ff_hevc_put_hevc_uni_w_qpel_h32_8_msa;
255cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[8][0][1] = ff_hevc_put_hevc_uni_w_qpel_h48_8_msa;
256cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[9][0][1] = ff_hevc_put_hevc_uni_w_qpel_h64_8_msa;
257cabdff1aSopenharmony_ci
258cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[1][1][0] = ff_hevc_put_hevc_uni_w_qpel_v4_8_msa;
259cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[3][1][0] = ff_hevc_put_hevc_uni_w_qpel_v8_8_msa;
260cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[4][1][0] = ff_hevc_put_hevc_uni_w_qpel_v12_8_msa;
261cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[5][1][0] = ff_hevc_put_hevc_uni_w_qpel_v16_8_msa;
262cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[6][1][0] = ff_hevc_put_hevc_uni_w_qpel_v24_8_msa;
263cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[7][1][0] = ff_hevc_put_hevc_uni_w_qpel_v32_8_msa;
264cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[8][1][0] = ff_hevc_put_hevc_uni_w_qpel_v48_8_msa;
265cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[9][1][0] = ff_hevc_put_hevc_uni_w_qpel_v64_8_msa;
266cabdff1aSopenharmony_ci
267cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[1][1][1] = ff_hevc_put_hevc_uni_w_qpel_hv4_8_msa;
268cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[3][1][1] = ff_hevc_put_hevc_uni_w_qpel_hv8_8_msa;
269cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[4][1][1] =
270cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_qpel_hv12_8_msa;
271cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[5][1][1] =
272cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_qpel_hv16_8_msa;
273cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[6][1][1] =
274cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_qpel_hv24_8_msa;
275cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[7][1][1] =
276cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_qpel_hv32_8_msa;
277cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[8][1][1] =
278cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_qpel_hv48_8_msa;
279cabdff1aSopenharmony_ci            c->put_hevc_qpel_uni_w[9][1][1] =
280cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_qpel_hv64_8_msa;
281cabdff1aSopenharmony_ci
282cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[1][0][0] =
283cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels4_8_msa;
284cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[2][0][0] =
285cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels6_8_msa;
286cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[3][0][0] =
287cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels8_8_msa;
288cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[4][0][0] =
289cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels12_8_msa;
290cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[5][0][0] =
291cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels16_8_msa;
292cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[6][0][0] =
293cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels24_8_msa;
294cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[7][0][0] =
295cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_pel_pixels32_8_msa;
296cabdff1aSopenharmony_ci
297cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[1][0][1] = ff_hevc_put_hevc_uni_w_epel_h4_8_msa;
298cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[2][0][1] = ff_hevc_put_hevc_uni_w_epel_h6_8_msa;
299cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[3][0][1] = ff_hevc_put_hevc_uni_w_epel_h8_8_msa;
300cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[4][0][1] = ff_hevc_put_hevc_uni_w_epel_h12_8_msa;
301cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[5][0][1] = ff_hevc_put_hevc_uni_w_epel_h16_8_msa;
302cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[6][0][1] = ff_hevc_put_hevc_uni_w_epel_h24_8_msa;
303cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[7][0][1] = ff_hevc_put_hevc_uni_w_epel_h32_8_msa;
304cabdff1aSopenharmony_ci
305cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[1][1][0] = ff_hevc_put_hevc_uni_w_epel_v4_8_msa;
306cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[2][1][0] = ff_hevc_put_hevc_uni_w_epel_v6_8_msa;
307cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[3][1][0] = ff_hevc_put_hevc_uni_w_epel_v8_8_msa;
308cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[4][1][0] = ff_hevc_put_hevc_uni_w_epel_v12_8_msa;
309cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[5][1][0] = ff_hevc_put_hevc_uni_w_epel_v16_8_msa;
310cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[6][1][0] = ff_hevc_put_hevc_uni_w_epel_v24_8_msa;
311cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[7][1][0] = ff_hevc_put_hevc_uni_w_epel_v32_8_msa;
312cabdff1aSopenharmony_ci
313cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[1][1][1] = ff_hevc_put_hevc_uni_w_epel_hv4_8_msa;
314cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[2][1][1] = ff_hevc_put_hevc_uni_w_epel_hv6_8_msa;
315cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[3][1][1] = ff_hevc_put_hevc_uni_w_epel_hv8_8_msa;
316cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[4][1][1] =
317cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_epel_hv12_8_msa;
318cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[5][1][1] =
319cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_epel_hv16_8_msa;
320cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[6][1][1] =
321cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_epel_hv24_8_msa;
322cabdff1aSopenharmony_ci            c->put_hevc_epel_uni_w[7][1][1] =
323cabdff1aSopenharmony_ci                ff_hevc_put_hevc_uni_w_epel_hv32_8_msa;
324cabdff1aSopenharmony_ci
325cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[1][0][0] = ff_hevc_put_hevc_bi_pel_pixels4_8_msa;
326cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[3][0][0] = ff_hevc_put_hevc_bi_pel_pixels8_8_msa;
327cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[4][0][0] = ff_hevc_put_hevc_bi_pel_pixels12_8_msa;
328cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[5][0][0] = ff_hevc_put_hevc_bi_pel_pixels16_8_msa;
329cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[6][0][0] = ff_hevc_put_hevc_bi_pel_pixels24_8_msa;
330cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[7][0][0] = ff_hevc_put_hevc_bi_pel_pixels32_8_msa;
331cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[8][0][0] = ff_hevc_put_hevc_bi_pel_pixels48_8_msa;
332cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[9][0][0] = ff_hevc_put_hevc_bi_pel_pixels64_8_msa;
333cabdff1aSopenharmony_ci
334cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[1][0][1] = ff_hevc_put_hevc_bi_qpel_h4_8_msa;
335cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[3][0][1] = ff_hevc_put_hevc_bi_qpel_h8_8_msa;
336cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[4][0][1] = ff_hevc_put_hevc_bi_qpel_h12_8_msa;
337cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[5][0][1] = ff_hevc_put_hevc_bi_qpel_h16_8_msa;
338cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[6][0][1] = ff_hevc_put_hevc_bi_qpel_h24_8_msa;
339cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[7][0][1] = ff_hevc_put_hevc_bi_qpel_h32_8_msa;
340cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[8][0][1] = ff_hevc_put_hevc_bi_qpel_h48_8_msa;
341cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[9][0][1] = ff_hevc_put_hevc_bi_qpel_h64_8_msa;
342cabdff1aSopenharmony_ci
343cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[1][1][0] = ff_hevc_put_hevc_bi_qpel_v4_8_msa;
344cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[3][1][0] = ff_hevc_put_hevc_bi_qpel_v8_8_msa;
345cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[4][1][0] = ff_hevc_put_hevc_bi_qpel_v12_8_msa;
346cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[5][1][0] = ff_hevc_put_hevc_bi_qpel_v16_8_msa;
347cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[6][1][0] = ff_hevc_put_hevc_bi_qpel_v24_8_msa;
348cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[7][1][0] = ff_hevc_put_hevc_bi_qpel_v32_8_msa;
349cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[8][1][0] = ff_hevc_put_hevc_bi_qpel_v48_8_msa;
350cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[9][1][0] = ff_hevc_put_hevc_bi_qpel_v64_8_msa;
351cabdff1aSopenharmony_ci
352cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[1][1][1] = ff_hevc_put_hevc_bi_qpel_hv4_8_msa;
353cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[3][1][1] = ff_hevc_put_hevc_bi_qpel_hv8_8_msa;
354cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[4][1][1] = ff_hevc_put_hevc_bi_qpel_hv12_8_msa;
355cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[5][1][1] = ff_hevc_put_hevc_bi_qpel_hv16_8_msa;
356cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[6][1][1] = ff_hevc_put_hevc_bi_qpel_hv24_8_msa;
357cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[7][1][1] = ff_hevc_put_hevc_bi_qpel_hv32_8_msa;
358cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[8][1][1] = ff_hevc_put_hevc_bi_qpel_hv48_8_msa;
359cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi[9][1][1] = ff_hevc_put_hevc_bi_qpel_hv64_8_msa;
360cabdff1aSopenharmony_ci
361cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[1][0][0] = ff_hevc_put_hevc_bi_pel_pixels4_8_msa;
362cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[2][0][0] = ff_hevc_put_hevc_bi_pel_pixels6_8_msa;
363cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[3][0][0] = ff_hevc_put_hevc_bi_pel_pixels8_8_msa;
364cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[4][0][0] = ff_hevc_put_hevc_bi_pel_pixels12_8_msa;
365cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[5][0][0] = ff_hevc_put_hevc_bi_pel_pixels16_8_msa;
366cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[6][0][0] = ff_hevc_put_hevc_bi_pel_pixels24_8_msa;
367cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[7][0][0] = ff_hevc_put_hevc_bi_pel_pixels32_8_msa;
368cabdff1aSopenharmony_ci
369cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[1][0][1] = ff_hevc_put_hevc_bi_epel_h4_8_msa;
370cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[2][0][1] = ff_hevc_put_hevc_bi_epel_h6_8_msa;
371cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[3][0][1] = ff_hevc_put_hevc_bi_epel_h8_8_msa;
372cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[4][0][1] = ff_hevc_put_hevc_bi_epel_h12_8_msa;
373cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[5][0][1] = ff_hevc_put_hevc_bi_epel_h16_8_msa;
374cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[6][0][1] = ff_hevc_put_hevc_bi_epel_h24_8_msa;
375cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[7][0][1] = ff_hevc_put_hevc_bi_epel_h32_8_msa;
376cabdff1aSopenharmony_ci
377cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[1][1][0] = ff_hevc_put_hevc_bi_epel_v4_8_msa;
378cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[2][1][0] = ff_hevc_put_hevc_bi_epel_v6_8_msa;
379cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[3][1][0] = ff_hevc_put_hevc_bi_epel_v8_8_msa;
380cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[4][1][0] = ff_hevc_put_hevc_bi_epel_v12_8_msa;
381cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[5][1][0] = ff_hevc_put_hevc_bi_epel_v16_8_msa;
382cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[6][1][0] = ff_hevc_put_hevc_bi_epel_v24_8_msa;
383cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[7][1][0] = ff_hevc_put_hevc_bi_epel_v32_8_msa;
384cabdff1aSopenharmony_ci
385cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[1][1][1] = ff_hevc_put_hevc_bi_epel_hv4_8_msa;
386cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[2][1][1] = ff_hevc_put_hevc_bi_epel_hv6_8_msa;
387cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[3][1][1] = ff_hevc_put_hevc_bi_epel_hv8_8_msa;
388cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[4][1][1] = ff_hevc_put_hevc_bi_epel_hv12_8_msa;
389cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[5][1][1] = ff_hevc_put_hevc_bi_epel_hv16_8_msa;
390cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[6][1][1] = ff_hevc_put_hevc_bi_epel_hv24_8_msa;
391cabdff1aSopenharmony_ci            c->put_hevc_epel_bi[7][1][1] = ff_hevc_put_hevc_bi_epel_hv32_8_msa;
392cabdff1aSopenharmony_ci
393cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[1][0][0] =
394cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels4_8_msa;
395cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[3][0][0] =
396cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels8_8_msa;
397cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[4][0][0] =
398cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels12_8_msa;
399cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[5][0][0] =
400cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels16_8_msa;
401cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[6][0][0] =
402cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels24_8_msa;
403cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[7][0][0] =
404cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels32_8_msa;
405cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[8][0][0] =
406cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels48_8_msa;
407cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[9][0][0] =
408cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels64_8_msa;
409cabdff1aSopenharmony_ci
410cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[1][0][1] = ff_hevc_put_hevc_bi_w_qpel_h4_8_msa;
411cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[3][0][1] = ff_hevc_put_hevc_bi_w_qpel_h8_8_msa;
412cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[4][0][1] = ff_hevc_put_hevc_bi_w_qpel_h12_8_msa;
413cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[5][0][1] = ff_hevc_put_hevc_bi_w_qpel_h16_8_msa;
414cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[6][0][1] = ff_hevc_put_hevc_bi_w_qpel_h24_8_msa;
415cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[7][0][1] = ff_hevc_put_hevc_bi_w_qpel_h32_8_msa;
416cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[8][0][1] = ff_hevc_put_hevc_bi_w_qpel_h48_8_msa;
417cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[9][0][1] = ff_hevc_put_hevc_bi_w_qpel_h64_8_msa;
418cabdff1aSopenharmony_ci
419cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[1][1][0] = ff_hevc_put_hevc_bi_w_qpel_v4_8_msa;
420cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[3][1][0] = ff_hevc_put_hevc_bi_w_qpel_v8_8_msa;
421cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[4][1][0] = ff_hevc_put_hevc_bi_w_qpel_v12_8_msa;
422cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[5][1][0] = ff_hevc_put_hevc_bi_w_qpel_v16_8_msa;
423cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[6][1][0] = ff_hevc_put_hevc_bi_w_qpel_v24_8_msa;
424cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[7][1][0] = ff_hevc_put_hevc_bi_w_qpel_v32_8_msa;
425cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[8][1][0] = ff_hevc_put_hevc_bi_w_qpel_v48_8_msa;
426cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[9][1][0] = ff_hevc_put_hevc_bi_w_qpel_v64_8_msa;
427cabdff1aSopenharmony_ci
428cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[1][1][1] = ff_hevc_put_hevc_bi_w_qpel_hv4_8_msa;
429cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[3][1][1] = ff_hevc_put_hevc_bi_w_qpel_hv8_8_msa;
430cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[4][1][1] = ff_hevc_put_hevc_bi_w_qpel_hv12_8_msa;
431cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[5][1][1] = ff_hevc_put_hevc_bi_w_qpel_hv16_8_msa;
432cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[6][1][1] = ff_hevc_put_hevc_bi_w_qpel_hv24_8_msa;
433cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[7][1][1] = ff_hevc_put_hevc_bi_w_qpel_hv32_8_msa;
434cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[8][1][1] = ff_hevc_put_hevc_bi_w_qpel_hv48_8_msa;
435cabdff1aSopenharmony_ci            c->put_hevc_qpel_bi_w[9][1][1] = ff_hevc_put_hevc_bi_w_qpel_hv64_8_msa;
436cabdff1aSopenharmony_ci
437cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[1][0][0] =
438cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels4_8_msa;
439cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[2][0][0] =
440cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels6_8_msa;
441cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[3][0][0] =
442cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels8_8_msa;
443cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[4][0][0] =
444cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels12_8_msa;
445cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[5][0][0] =
446cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels16_8_msa;
447cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[6][0][0] =
448cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels24_8_msa;
449cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[7][0][0] =
450cabdff1aSopenharmony_ci                ff_hevc_put_hevc_bi_w_pel_pixels32_8_msa;
451cabdff1aSopenharmony_ci
452cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[1][0][1] = ff_hevc_put_hevc_bi_w_epel_h4_8_msa;
453cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[2][0][1] = ff_hevc_put_hevc_bi_w_epel_h6_8_msa;
454cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[3][0][1] = ff_hevc_put_hevc_bi_w_epel_h8_8_msa;
455cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[4][0][1] = ff_hevc_put_hevc_bi_w_epel_h12_8_msa;
456cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[5][0][1] = ff_hevc_put_hevc_bi_w_epel_h16_8_msa;
457cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[6][0][1] = ff_hevc_put_hevc_bi_w_epel_h24_8_msa;
458cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[7][0][1] = ff_hevc_put_hevc_bi_w_epel_h32_8_msa;
459cabdff1aSopenharmony_ci
460cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[1][1][0] = ff_hevc_put_hevc_bi_w_epel_v4_8_msa;
461cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[2][1][0] = ff_hevc_put_hevc_bi_w_epel_v6_8_msa;
462cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[3][1][0] = ff_hevc_put_hevc_bi_w_epel_v8_8_msa;
463cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[4][1][0] = ff_hevc_put_hevc_bi_w_epel_v12_8_msa;
464cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[5][1][0] = ff_hevc_put_hevc_bi_w_epel_v16_8_msa;
465cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[6][1][0] = ff_hevc_put_hevc_bi_w_epel_v24_8_msa;
466cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[7][1][0] = ff_hevc_put_hevc_bi_w_epel_v32_8_msa;
467cabdff1aSopenharmony_ci
468cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[1][1][1] = ff_hevc_put_hevc_bi_w_epel_hv4_8_msa;
469cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[2][1][1] = ff_hevc_put_hevc_bi_w_epel_hv6_8_msa;
470cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[3][1][1] = ff_hevc_put_hevc_bi_w_epel_hv8_8_msa;
471cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[4][1][1] = ff_hevc_put_hevc_bi_w_epel_hv12_8_msa;
472cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[5][1][1] = ff_hevc_put_hevc_bi_w_epel_hv16_8_msa;
473cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[6][1][1] = ff_hevc_put_hevc_bi_w_epel_hv24_8_msa;
474cabdff1aSopenharmony_ci            c->put_hevc_epel_bi_w[7][1][1] = ff_hevc_put_hevc_bi_w_epel_hv32_8_msa;
475cabdff1aSopenharmony_ci
476cabdff1aSopenharmony_ci            c->sao_band_filter[0] =
477cabdff1aSopenharmony_ci            c->sao_band_filter[1] =
478cabdff1aSopenharmony_ci            c->sao_band_filter[2] =
479cabdff1aSopenharmony_ci            c->sao_band_filter[3] =
480cabdff1aSopenharmony_ci            c->sao_band_filter[4] = ff_hevc_sao_band_filter_0_8_msa;
481cabdff1aSopenharmony_ci
482cabdff1aSopenharmony_ci            c->sao_edge_filter[0] =
483cabdff1aSopenharmony_ci            c->sao_edge_filter[1] =
484cabdff1aSopenharmony_ci            c->sao_edge_filter[2] =
485cabdff1aSopenharmony_ci            c->sao_edge_filter[3] =
486cabdff1aSopenharmony_ci            c->sao_edge_filter[4] = ff_hevc_sao_edge_filter_8_msa;
487cabdff1aSopenharmony_ci
488cabdff1aSopenharmony_ci            c->hevc_h_loop_filter_luma = ff_hevc_loop_filter_luma_h_8_msa;
489cabdff1aSopenharmony_ci            c->hevc_v_loop_filter_luma = ff_hevc_loop_filter_luma_v_8_msa;
490cabdff1aSopenharmony_ci
491cabdff1aSopenharmony_ci            c->hevc_h_loop_filter_chroma = ff_hevc_loop_filter_chroma_h_8_msa;
492cabdff1aSopenharmony_ci            c->hevc_v_loop_filter_chroma = ff_hevc_loop_filter_chroma_v_8_msa;
493cabdff1aSopenharmony_ci
494cabdff1aSopenharmony_ci            c->hevc_h_loop_filter_luma_c = ff_hevc_loop_filter_luma_h_8_msa;
495cabdff1aSopenharmony_ci            c->hevc_v_loop_filter_luma_c = ff_hevc_loop_filter_luma_v_8_msa;
496cabdff1aSopenharmony_ci
497cabdff1aSopenharmony_ci            c->hevc_h_loop_filter_chroma_c =
498cabdff1aSopenharmony_ci                ff_hevc_loop_filter_chroma_h_8_msa;
499cabdff1aSopenharmony_ci            c->hevc_v_loop_filter_chroma_c =
500cabdff1aSopenharmony_ci                ff_hevc_loop_filter_chroma_v_8_msa;
501cabdff1aSopenharmony_ci
502cabdff1aSopenharmony_ci            c->idct[0] = ff_hevc_idct_4x4_msa;
503cabdff1aSopenharmony_ci            c->idct[1] = ff_hevc_idct_8x8_msa;
504cabdff1aSopenharmony_ci            c->idct[2] = ff_hevc_idct_16x16_msa;
505cabdff1aSopenharmony_ci            c->idct[3] = ff_hevc_idct_32x32_msa;
506cabdff1aSopenharmony_ci            c->idct_dc[0] = ff_hevc_idct_dc_4x4_msa;
507cabdff1aSopenharmony_ci            c->idct_dc[1] = ff_hevc_idct_dc_8x8_msa;
508cabdff1aSopenharmony_ci            c->idct_dc[2] = ff_hevc_idct_dc_16x16_msa;
509cabdff1aSopenharmony_ci            c->idct_dc[3] = ff_hevc_idct_dc_32x32_msa;
510cabdff1aSopenharmony_ci            c->add_residual[0] = ff_hevc_addblk_4x4_msa;
511cabdff1aSopenharmony_ci            c->add_residual[1] = ff_hevc_addblk_8x8_msa;
512cabdff1aSopenharmony_ci            c->add_residual[2] = ff_hevc_addblk_16x16_msa;
513cabdff1aSopenharmony_ci            c->add_residual[3] = ff_hevc_addblk_32x32_msa;
514cabdff1aSopenharmony_ci            c->transform_4x4_luma = ff_hevc_idct_luma_4x4_msa;
515cabdff1aSopenharmony_ci        }
516cabdff1aSopenharmony_ci    }
517cabdff1aSopenharmony_ci}
518