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