19b35249446b07f40ac5fcc3205f2c048616efacchkuang/*
29b35249446b07f40ac5fcc3205f2c048616efacchkuang *  Copyright (c) 2013 The WebM project authors. All Rights Reserved.
39b35249446b07f40ac5fcc3205f2c048616efacchkuang *
49b35249446b07f40ac5fcc3205f2c048616efacchkuang *  Use of this source code is governed by a BSD-style license
59b35249446b07f40ac5fcc3205f2c048616efacchkuang *  that can be found in the LICENSE file in the root of the source
69b35249446b07f40ac5fcc3205f2c048616efacchkuang *  tree. An additional intellectual property rights grant can be found
79b35249446b07f40ac5fcc3205f2c048616efacchkuang *  in the file PATENTS.  All contributing project authors may
89b35249446b07f40ac5fcc3205f2c048616efacchkuang *  be found in the AUTHORS file in the root of the source tree.
99b35249446b07f40ac5fcc3205f2c048616efacchkuang */
109b35249446b07f40ac5fcc3205f2c048616efacchkuang#include <stdlib.h>
119b35249446b07f40ac5fcc3205f2c048616efacchkuang
129b35249446b07f40ac5fcc3205f2c048616efacchkuang#include "./vp9_rtcd.h"
139b35249446b07f40ac5fcc3205f2c048616efacchkuang#include "vp9/common/vp9_common.h"
149b35249446b07f40ac5fcc3205f2c048616efacchkuang#include "vp9/common/mips/dspr2/vp9_common_dspr2.h"
159b35249446b07f40ac5fcc3205f2c048616efacchkuang
169b35249446b07f40ac5fcc3205f2c048616efacchkuang#if HAVE_DSPR2
179b35249446b07f40ac5fcc3205f2c048616efacchkuangvoid vp9_h_predictor_8x8_dspr2(uint8_t *dst, ptrdiff_t stride,
189b35249446b07f40ac5fcc3205f2c048616efacchkuang                               const uint8_t *above, const uint8_t *left) {
199b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t  tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8;
209b35249446b07f40ac5fcc3205f2c048616efacchkuang
219b35249446b07f40ac5fcc3205f2c048616efacchkuang  __asm__ __volatile__ (
229b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lb         %[tmp1],      (%[left])                   \n\t"
239b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lb         %[tmp2],      1(%[left])                  \n\t"
249b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lb         %[tmp3],      2(%[left])                  \n\t"
259b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lb         %[tmp4],      3(%[left])                  \n\t"
269b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lb         %[tmp5],      4(%[left])                  \n\t"
279b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lb         %[tmp6],      5(%[left])                  \n\t"
289b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lb         %[tmp7],      6(%[left])                  \n\t"
299b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lb         %[tmp8],      7(%[left])                  \n\t"
309b35249446b07f40ac5fcc3205f2c048616efacchkuang
319b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb   %[tmp1],      %[tmp1]                     \n\t"
329b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb   %[tmp2],      %[tmp2]                     \n\t"
339b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb   %[tmp3],      %[tmp3]                     \n\t"
349b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb   %[tmp4],      %[tmp4]                     \n\t"
359b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb   %[tmp5],      %[tmp5]                     \n\t"
369b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb   %[tmp6],      %[tmp6]                     \n\t"
379b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb   %[tmp7],      %[tmp7]                     \n\t"
389b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb   %[tmp8],      %[tmp8]                     \n\t"
399b35249446b07f40ac5fcc3205f2c048616efacchkuang
409b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp1],      (%[dst])                    \n\t"
419b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp1],      4(%[dst])                   \n\t"
429b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add        %[dst],       %[dst],         %[stride]   \n\t"
439b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp2],      (%[dst])                    \n\t"
449b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp2],      4(%[dst])                   \n\t"
459b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add        %[dst],       %[dst],         %[stride]   \n\t"
469b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp3],      (%[dst])                    \n\t"
479b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp3],      4(%[dst])                   \n\t"
489b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add        %[dst],       %[dst],         %[stride]   \n\t"
499b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp4],      (%[dst])                    \n\t"
509b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp4],      4(%[dst])                   \n\t"
519b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add        %[dst],       %[dst],         %[stride]   \n\t"
529b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp5],      (%[dst])                    \n\t"
539b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp5],      4(%[dst])                   \n\t"
549b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add        %[dst],       %[dst],         %[stride]   \n\t"
559b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp6],      (%[dst])                    \n\t"
569b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp6],      4(%[dst])                   \n\t"
579b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add        %[dst],       %[dst],         %[stride]   \n\t"
589b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp7],      (%[dst])                    \n\t"
599b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp7],      4(%[dst])                   \n\t"
609b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add        %[dst],       %[dst],         %[stride]   \n\t"
619b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp8],      (%[dst])                    \n\t"
629b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw         %[tmp8],      4(%[dst])                   \n\t"
639b35249446b07f40ac5fcc3205f2c048616efacchkuang
649b35249446b07f40ac5fcc3205f2c048616efacchkuang      : [tmp1] "=&r" (tmp1), [tmp2] "=&r" (tmp2),
659b35249446b07f40ac5fcc3205f2c048616efacchkuang        [tmp3] "=&r" (tmp3), [tmp4] "=&r" (tmp4),
669b35249446b07f40ac5fcc3205f2c048616efacchkuang        [tmp5] "=&r" (tmp5), [tmp7] "=&r" (tmp7),
679b35249446b07f40ac5fcc3205f2c048616efacchkuang        [tmp6] "=&r" (tmp6), [tmp8] "=&r" (tmp8)
689b35249446b07f40ac5fcc3205f2c048616efacchkuang      : [left] "r" (left), [dst] "r" (dst),
699b35249446b07f40ac5fcc3205f2c048616efacchkuang        [stride] "r" (stride)
709b35249446b07f40ac5fcc3205f2c048616efacchkuang  );
719b35249446b07f40ac5fcc3205f2c048616efacchkuang}
729b35249446b07f40ac5fcc3205f2c048616efacchkuang
739b35249446b07f40ac5fcc3205f2c048616efacchkuangvoid vp9_dc_predictor_8x8_dspr2(uint8_t *dst, ptrdiff_t stride,
749b35249446b07f40ac5fcc3205f2c048616efacchkuang                                const uint8_t *above, const uint8_t *left) {
759b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t  expected_dc;
769b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t  average;
779b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t  tmp, above1, above_l1, above_r1, left1, left_r1, left_l1;
789b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t  above2, above_l2, above_r2, left2, left_r2, left_l2;
799b35249446b07f40ac5fcc3205f2c048616efacchkuang
809b35249446b07f40ac5fcc3205f2c048616efacchkuang  __asm__ __volatile__ (
819b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lw              %[above1],         (%[above])                      \n\t"
829b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lw              %[above2],         4(%[above])                     \n\t"
839b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lw              %[left1],          (%[left])                       \n\t"
849b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lw              %[left2],          4(%[left])                      \n\t"
859b35249446b07f40ac5fcc3205f2c048616efacchkuang
869b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbl   %[above_l1],       %[above1]                       \n\t"
879b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbr   %[above_r1],       %[above1]                       \n\t"
889b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbl   %[left_l1],        %[left1]                        \n\t"
899b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbr   %[left_r1],        %[left1]                        \n\t"
909b35249446b07f40ac5fcc3205f2c048616efacchkuang
919b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbl   %[above_l2],       %[above2]                       \n\t"
929b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbr   %[above_r2],       %[above2]                       \n\t"
939b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbl   %[left_l2],        %[left2]                        \n\t"
949b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbr   %[left_r2],        %[left2]                        \n\t"
959b35249446b07f40ac5fcc3205f2c048616efacchkuang
969b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[average],        %[above_r1],      %[above_l1]   \n\t"
979b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[average],        %[average],       %[left_l1]    \n\t"
989b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[average],        %[average],       %[left_r1]    \n\t"
999b35249446b07f40ac5fcc3205f2c048616efacchkuang
1009b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[average],        %[average],       %[above_l2]   \n\t"
1019b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[average],        %[average],       %[above_r2]   \n\t"
1029b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[average],        %[average],       %[left_l2]    \n\t"
1039b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[average],        %[average],       %[left_r2]    \n\t"
1049b35249446b07f40ac5fcc3205f2c048616efacchkuang
1059b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addiu           %[average],        %[average],       8             \n\t"
1069b35249446b07f40ac5fcc3205f2c048616efacchkuang
1079b35249446b07f40ac5fcc3205f2c048616efacchkuang      "srl             %[tmp],            %[average],       16            \n\t"
1089b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[average],        %[tmp],           %[average]    \n\t"
1099b35249446b07f40ac5fcc3205f2c048616efacchkuang      "srl             %[expected_dc],    %[average],       4             \n\t"
1109b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.qb        %[expected_dc],    %[expected_dc]                  \n\t"
1119b35249446b07f40ac5fcc3205f2c048616efacchkuang
1129b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    (%[dst])                        \n\t"
1139b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    4(%[dst])                       \n\t"
1149b35249446b07f40ac5fcc3205f2c048616efacchkuang
1159b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],             %[dst],          %[stride]     \n\t"
1169b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    (%[dst])                        \n\t"
1179b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    4(%[dst])                       \n\t"
1189b35249446b07f40ac5fcc3205f2c048616efacchkuang
1199b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],             %[dst],          %[stride]     \n\t"
1209b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    (%[dst])                        \n\t"
1219b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    4(%[dst])                       \n\t"
1229b35249446b07f40ac5fcc3205f2c048616efacchkuang
1239b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],             %[dst],          %[stride]     \n\t"
1249b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    (%[dst])                        \n\t"
1259b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    4(%[dst])                       \n\t"
1269b35249446b07f40ac5fcc3205f2c048616efacchkuang
1279b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],             %[dst],          %[stride]     \n\t"
1289b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    (%[dst])                        \n\t"
1299b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    4(%[dst])                       \n\t"
1309b35249446b07f40ac5fcc3205f2c048616efacchkuang
1319b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],             %[dst],          %[stride]     \n\t"
1329b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    (%[dst])                        \n\t"
1339b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    4(%[dst])                       \n\t"
1349b35249446b07f40ac5fcc3205f2c048616efacchkuang
1359b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],             %[dst],          %[stride]     \n\t"
1369b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    (%[dst])                        \n\t"
1379b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    4(%[dst])                       \n\t"
1389b35249446b07f40ac5fcc3205f2c048616efacchkuang
1399b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],             %[dst],          %[stride]     \n\t"
1409b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    (%[dst])                        \n\t"
1419b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sw              %[expected_dc],    4(%[dst])                       \n\t"
1429b35249446b07f40ac5fcc3205f2c048616efacchkuang
1439b35249446b07f40ac5fcc3205f2c048616efacchkuang      : [above1] "=&r" (above1), [above_l1] "=&r" (above_l1),
1449b35249446b07f40ac5fcc3205f2c048616efacchkuang        [above_r1] "=&r" (above_r1), [left1] "=&r" (left1),
1459b35249446b07f40ac5fcc3205f2c048616efacchkuang        [left_l1] "=&r" (left_l1), [left_r1] "=&r" (left_r1),
1469b35249446b07f40ac5fcc3205f2c048616efacchkuang        [above2] "=&r" (above2), [above_l2] "=&r" (above_l2),
1479b35249446b07f40ac5fcc3205f2c048616efacchkuang        [above_r2] "=&r" (above_r2), [left2] "=&r" (left2),
1489b35249446b07f40ac5fcc3205f2c048616efacchkuang        [left_l2] "=&r" (left_l2), [left_r2] "=&r" (left_r2),
1499b35249446b07f40ac5fcc3205f2c048616efacchkuang        [average] "=&r" (average), [tmp] "=&r" (tmp),
1509b35249446b07f40ac5fcc3205f2c048616efacchkuang        [expected_dc] "=&r" (expected_dc)
1519b35249446b07f40ac5fcc3205f2c048616efacchkuang      : [above] "r" (above), [left] "r" (left), [dst] "r" (dst),
1529b35249446b07f40ac5fcc3205f2c048616efacchkuang        [stride] "r" (stride)
1539b35249446b07f40ac5fcc3205f2c048616efacchkuang  );
1549b35249446b07f40ac5fcc3205f2c048616efacchkuang}
1559b35249446b07f40ac5fcc3205f2c048616efacchkuang
1569b35249446b07f40ac5fcc3205f2c048616efacchkuangvoid vp9_tm_predictor_8x8_dspr2(uint8_t *dst, ptrdiff_t stride,
1579b35249446b07f40ac5fcc3205f2c048616efacchkuang                                const uint8_t *above, const uint8_t *left) {
1589b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t   abovel, abover;
1599b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t   abovel_1, abover_1;
1609b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t   left0;
1619b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t   res0, res1, res2, res3;
1629b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t   reshw;
1639b35249446b07f40ac5fcc3205f2c048616efacchkuang  int32_t   top_left;
1649b35249446b07f40ac5fcc3205f2c048616efacchkuang  uint8_t   *cm = vp9_ff_cropTbl;
1659b35249446b07f40ac5fcc3205f2c048616efacchkuang
1669b35249446b07f40ac5fcc3205f2c048616efacchkuang  __asm__ __volatile__ (
1679b35249446b07f40ac5fcc3205f2c048616efacchkuang      "ulw             %[reshw],       (%[above])                         \n\t"
1689b35249446b07f40ac5fcc3205f2c048616efacchkuang      "ulw             %[top_left],    4(%[above])                        \n\t"
1699b35249446b07f40ac5fcc3205f2c048616efacchkuang
1709b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[left0],       (%[left])                          \n\t"
1719b35249446b07f40ac5fcc3205f2c048616efacchkuang
1729b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbl   %[abovel],      %[reshw]                           \n\t"
1739b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbr   %[abover],      %[reshw]                           \n\t"
1749b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbl   %[abovel_1],    %[top_left]                        \n\t"
1759b35249446b07f40ac5fcc3205f2c048616efacchkuang      "preceu.ph.qbr   %[abover_1],    %[top_left]                        \n\t"
1769b35249446b07f40ac5fcc3205f2c048616efacchkuang
1779b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[top_left],    -1(%[above])                       \n\t"
1789b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[left0],       %[left0]                           \n\t"
1799b35249446b07f40ac5fcc3205f2c048616efacchkuang
1809b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[top_left],    %[top_left]                        \n\t"
1819b35249446b07f40ac5fcc3205f2c048616efacchkuang
1829b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel],           %[left0]      \n\t"
1839b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
1849b35249446b07f40ac5fcc3205f2c048616efacchkuang
1859b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
1869b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
1879b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
1889b35249446b07f40ac5fcc3205f2c048616efacchkuang
1899b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover],           %[left0]      \n\t"
1909b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
1919b35249446b07f40ac5fcc3205f2c048616efacchkuang
1929b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
1939b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
1949b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
1959b35249446b07f40ac5fcc3205f2c048616efacchkuang
1969b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
1979b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
1989b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
1999b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
2009b35249446b07f40ac5fcc3205f2c048616efacchkuang
2019b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        (%[dst])                           \n\t"
2029b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        1(%[dst])                          \n\t"
2039b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        2(%[dst])                          \n\t"
2049b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        3(%[dst])                          \n\t"
2059b35249446b07f40ac5fcc3205f2c048616efacchkuang
2069b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel_1],         %[left0]      \n\t"
2079b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
2089b35249446b07f40ac5fcc3205f2c048616efacchkuang
2099b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
2109b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
2119b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
2129b35249446b07f40ac5fcc3205f2c048616efacchkuang
2139b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover_1],         %[left0]      \n\t"
2149b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
2159b35249446b07f40ac5fcc3205f2c048616efacchkuang
2169b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
2179b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
2189b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
2199b35249446b07f40ac5fcc3205f2c048616efacchkuang
2209b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[left0],       1(%[left])                         \n\t"
2219b35249446b07f40ac5fcc3205f2c048616efacchkuang
2229b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
2239b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
2249b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
2259b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
2269b35249446b07f40ac5fcc3205f2c048616efacchkuang
2279b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        4(%[dst])                          \n\t"
2289b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        5(%[dst])                          \n\t"
2299b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        6(%[dst])                          \n\t"
2309b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        7(%[dst])                          \n\t"
2319b35249446b07f40ac5fcc3205f2c048616efacchkuang
2329b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[left0],       %[left0]                           \n\t"
2339b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],          %[dst],             %[stride]     \n\t"
2349b35249446b07f40ac5fcc3205f2c048616efacchkuang
2359b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel],           %[left0]      \n\t"
2369b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
2379b35249446b07f40ac5fcc3205f2c048616efacchkuang
2389b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
2399b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
2409b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
2419b35249446b07f40ac5fcc3205f2c048616efacchkuang
2429b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover],           %[left0]      \n\t"
2439b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
2449b35249446b07f40ac5fcc3205f2c048616efacchkuang
2459b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
2469b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
2479b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
2489b35249446b07f40ac5fcc3205f2c048616efacchkuang
2499b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
2509b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
2519b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
2529b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
2539b35249446b07f40ac5fcc3205f2c048616efacchkuang
2549b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        (%[dst])                           \n\t"
2559b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        1(%[dst])                          \n\t"
2569b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        2(%[dst])                          \n\t"
2579b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        3(%[dst])                          \n\t"
2589b35249446b07f40ac5fcc3205f2c048616efacchkuang
2599b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel_1],         %[left0]      \n\t"
2609b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
2619b35249446b07f40ac5fcc3205f2c048616efacchkuang
2629b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
2639b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
2649b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
2659b35249446b07f40ac5fcc3205f2c048616efacchkuang
2669b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover_1],         %[left0]      \n\t"
2679b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
2689b35249446b07f40ac5fcc3205f2c048616efacchkuang
2699b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
2709b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
2719b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
2729b35249446b07f40ac5fcc3205f2c048616efacchkuang
2739b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[left0],       2(%[left])                         \n\t"
2749b35249446b07f40ac5fcc3205f2c048616efacchkuang
2759b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
2769b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
2779b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
2789b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
2799b35249446b07f40ac5fcc3205f2c048616efacchkuang
2809b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        4(%[dst])                          \n\t"
2819b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        5(%[dst])                          \n\t"
2829b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        6(%[dst])                          \n\t"
2839b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        7(%[dst])                          \n\t"
2849b35249446b07f40ac5fcc3205f2c048616efacchkuang
2859b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[left0],       %[left0]                           \n\t"
2869b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],          %[dst],             %[stride]     \n\t"
2879b35249446b07f40ac5fcc3205f2c048616efacchkuang
2889b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel],           %[left0]      \n\t"
2899b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
2909b35249446b07f40ac5fcc3205f2c048616efacchkuang
2919b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
2929b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
2939b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
2949b35249446b07f40ac5fcc3205f2c048616efacchkuang
2959b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover],           %[left0]      \n\t"
2969b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
2979b35249446b07f40ac5fcc3205f2c048616efacchkuang
2989b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
2999b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
3009b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
3019b35249446b07f40ac5fcc3205f2c048616efacchkuang
3029b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
3039b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
3049b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
3059b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
3069b35249446b07f40ac5fcc3205f2c048616efacchkuang
3079b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        (%[dst])                           \n\t"
3089b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        1(%[dst])                          \n\t"
3099b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        2(%[dst])                          \n\t"
3109b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        3(%[dst])                          \n\t"
3119b35249446b07f40ac5fcc3205f2c048616efacchkuang
3129b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel_1],         %[left0]      \n\t"
3139b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
3149b35249446b07f40ac5fcc3205f2c048616efacchkuang
3159b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
3169b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
3179b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
3189b35249446b07f40ac5fcc3205f2c048616efacchkuang
3199b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover_1],         %[left0]      \n\t"
3209b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
3219b35249446b07f40ac5fcc3205f2c048616efacchkuang
3229b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
3239b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
3249b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
3259b35249446b07f40ac5fcc3205f2c048616efacchkuang
3269b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[left0],       3(%[left])                         \n\t"
3279b35249446b07f40ac5fcc3205f2c048616efacchkuang
3289b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
3299b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
3309b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
3319b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
3329b35249446b07f40ac5fcc3205f2c048616efacchkuang
3339b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        4(%[dst])                          \n\t"
3349b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        5(%[dst])                          \n\t"
3359b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        6(%[dst])                          \n\t"
3369b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        7(%[dst])                          \n\t"
3379b35249446b07f40ac5fcc3205f2c048616efacchkuang
3389b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[left0],       %[left0]                           \n\t"
3399b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],          %[dst],             %[stride]     \n\t"
3409b35249446b07f40ac5fcc3205f2c048616efacchkuang
3419b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel],           %[left0]      \n\t"
3429b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
3439b35249446b07f40ac5fcc3205f2c048616efacchkuang
3449b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
3459b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
3469b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
3479b35249446b07f40ac5fcc3205f2c048616efacchkuang
3489b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover],           %[left0]      \n\t"
3499b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
3509b35249446b07f40ac5fcc3205f2c048616efacchkuang
3519b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
3529b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
3539b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
3549b35249446b07f40ac5fcc3205f2c048616efacchkuang
3559b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
3569b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
3579b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
3589b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
3599b35249446b07f40ac5fcc3205f2c048616efacchkuang
3609b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        (%[dst])                           \n\t"
3619b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        1(%[dst])                          \n\t"
3629b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        2(%[dst])                          \n\t"
3639b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        3(%[dst])                          \n\t"
3649b35249446b07f40ac5fcc3205f2c048616efacchkuang
3659b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel_1],         %[left0]      \n\t"
3669b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
3679b35249446b07f40ac5fcc3205f2c048616efacchkuang
3689b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
3699b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
3709b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
3719b35249446b07f40ac5fcc3205f2c048616efacchkuang
3729b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover_1],         %[left0]      \n\t"
3739b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
3749b35249446b07f40ac5fcc3205f2c048616efacchkuang
3759b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
3769b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
3779b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
3789b35249446b07f40ac5fcc3205f2c048616efacchkuang
3799b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[left0],       4(%[left])                         \n\t"
3809b35249446b07f40ac5fcc3205f2c048616efacchkuang
3819b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
3829b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
3839b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
3849b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
3859b35249446b07f40ac5fcc3205f2c048616efacchkuang
3869b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        4(%[dst])                          \n\t"
3879b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        5(%[dst])                          \n\t"
3889b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        6(%[dst])                          \n\t"
3899b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        7(%[dst])                          \n\t"
3909b35249446b07f40ac5fcc3205f2c048616efacchkuang
3919b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[left0],       %[left0]                           \n\t"
3929b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],          %[dst],             %[stride]     \n\t"
3939b35249446b07f40ac5fcc3205f2c048616efacchkuang
3949b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel],           %[left0]      \n\t"
3959b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
3969b35249446b07f40ac5fcc3205f2c048616efacchkuang
3979b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
3989b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
3999b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
4009b35249446b07f40ac5fcc3205f2c048616efacchkuang
4019b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover],           %[left0]      \n\t"
4029b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
4039b35249446b07f40ac5fcc3205f2c048616efacchkuang
4049b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
4059b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
4069b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
4079b35249446b07f40ac5fcc3205f2c048616efacchkuang
4089b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
4099b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
4109b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
4119b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
4129b35249446b07f40ac5fcc3205f2c048616efacchkuang
4139b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        (%[dst])                           \n\t"
4149b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        1(%[dst])                          \n\t"
4159b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        2(%[dst])                          \n\t"
4169b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        3(%[dst])                          \n\t"
4179b35249446b07f40ac5fcc3205f2c048616efacchkuang
4189b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel_1],         %[left0]      \n\t"
4199b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
4209b35249446b07f40ac5fcc3205f2c048616efacchkuang
4219b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
4229b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
4239b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
4249b35249446b07f40ac5fcc3205f2c048616efacchkuang
4259b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover_1],         %[left0]      \n\t"
4269b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
4279b35249446b07f40ac5fcc3205f2c048616efacchkuang
4289b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
4299b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
4309b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
4319b35249446b07f40ac5fcc3205f2c048616efacchkuang
4329b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[left0],       5(%[left])                         \n\t"
4339b35249446b07f40ac5fcc3205f2c048616efacchkuang
4349b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
4359b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
4369b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
4379b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
4389b35249446b07f40ac5fcc3205f2c048616efacchkuang
4399b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        4(%[dst])                          \n\t"
4409b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        5(%[dst])                          \n\t"
4419b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        6(%[dst])                          \n\t"
4429b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        7(%[dst])                          \n\t"
4439b35249446b07f40ac5fcc3205f2c048616efacchkuang
4449b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[left0],       %[left0]                           \n\t"
4459b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],          %[dst],             %[stride]     \n\t"
4469b35249446b07f40ac5fcc3205f2c048616efacchkuang
4479b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel],           %[left0]      \n\t"
4489b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
4499b35249446b07f40ac5fcc3205f2c048616efacchkuang
4509b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
4519b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
4529b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
4539b35249446b07f40ac5fcc3205f2c048616efacchkuang
4549b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover],           %[left0]      \n\t"
4559b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
4569b35249446b07f40ac5fcc3205f2c048616efacchkuang
4579b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
4589b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
4599b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
4609b35249446b07f40ac5fcc3205f2c048616efacchkuang
4619b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
4629b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
4639b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
4649b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
4659b35249446b07f40ac5fcc3205f2c048616efacchkuang
4669b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        (%[dst])                           \n\t"
4679b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        1(%[dst])                          \n\t"
4689b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        2(%[dst])                          \n\t"
4699b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        3(%[dst])                          \n\t"
4709b35249446b07f40ac5fcc3205f2c048616efacchkuang
4719b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel_1],         %[left0]      \n\t"
4729b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
4739b35249446b07f40ac5fcc3205f2c048616efacchkuang
4749b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
4759b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
4769b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
4779b35249446b07f40ac5fcc3205f2c048616efacchkuang
4789b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover_1],         %[left0]      \n\t"
4799b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
4809b35249446b07f40ac5fcc3205f2c048616efacchkuang
4819b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
4829b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
4839b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
4849b35249446b07f40ac5fcc3205f2c048616efacchkuang
4859b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[left0],       6(%[left])                         \n\t"
4869b35249446b07f40ac5fcc3205f2c048616efacchkuang
4879b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
4889b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
4899b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
4909b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
4919b35249446b07f40ac5fcc3205f2c048616efacchkuang
4929b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        4(%[dst])                          \n\t"
4939b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        5(%[dst])                          \n\t"
4949b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        6(%[dst])                          \n\t"
4959b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        7(%[dst])                          \n\t"
4969b35249446b07f40ac5fcc3205f2c048616efacchkuang
4979b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[left0],       %[left0]                           \n\t"
4989b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],          %[dst],             %[stride]     \n\t"
4999b35249446b07f40ac5fcc3205f2c048616efacchkuang
5009b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel],           %[left0]      \n\t"
5019b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
5029b35249446b07f40ac5fcc3205f2c048616efacchkuang
5039b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
5049b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
5059b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
5069b35249446b07f40ac5fcc3205f2c048616efacchkuang
5079b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover],           %[left0]      \n\t"
5089b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
5099b35249446b07f40ac5fcc3205f2c048616efacchkuang
5109b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
5119b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
5129b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
5139b35249446b07f40ac5fcc3205f2c048616efacchkuang
5149b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
5159b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
5169b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
5179b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
5189b35249446b07f40ac5fcc3205f2c048616efacchkuang
5199b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        (%[dst])                           \n\t"
5209b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        1(%[dst])                          \n\t"
5219b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        2(%[dst])                          \n\t"
5229b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        3(%[dst])                          \n\t"
5239b35249446b07f40ac5fcc3205f2c048616efacchkuang
5249b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel_1],         %[left0]      \n\t"
5259b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
5269b35249446b07f40ac5fcc3205f2c048616efacchkuang
5279b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
5289b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
5299b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
5309b35249446b07f40ac5fcc3205f2c048616efacchkuang
5319b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover_1],         %[left0]      \n\t"
5329b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
5339b35249446b07f40ac5fcc3205f2c048616efacchkuang
5349b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
5359b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
5369b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
5379b35249446b07f40ac5fcc3205f2c048616efacchkuang
5389b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbu             %[left0],       7(%[left])                         \n\t"
5399b35249446b07f40ac5fcc3205f2c048616efacchkuang
5409b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
5419b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
5429b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
5439b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
5449b35249446b07f40ac5fcc3205f2c048616efacchkuang
5459b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        4(%[dst])                          \n\t"
5469b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        5(%[dst])                          \n\t"
5479b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        6(%[dst])                          \n\t"
5489b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        7(%[dst])                          \n\t"
5499b35249446b07f40ac5fcc3205f2c048616efacchkuang
5509b35249446b07f40ac5fcc3205f2c048616efacchkuang      "replv.ph        %[left0],       %[left0]                           \n\t"
5519b35249446b07f40ac5fcc3205f2c048616efacchkuang      "add             %[dst],          %[dst],             %[stride]     \n\t"
5529b35249446b07f40ac5fcc3205f2c048616efacchkuang
5539b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel],           %[left0]      \n\t"
5549b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
5559b35249446b07f40ac5fcc3205f2c048616efacchkuang
5569b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
5579b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
5589b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
5599b35249446b07f40ac5fcc3205f2c048616efacchkuang
5609b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover],           %[left0]      \n\t"
5619b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
5629b35249446b07f40ac5fcc3205f2c048616efacchkuang
5639b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
5649b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
5659b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
5669b35249446b07f40ac5fcc3205f2c048616efacchkuang
5679b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
5689b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
5699b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
5709b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
5719b35249446b07f40ac5fcc3205f2c048616efacchkuang
5729b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        (%[dst])                           \n\t"
5739b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        1(%[dst])                          \n\t"
5749b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        2(%[dst])                          \n\t"
5759b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        3(%[dst])                          \n\t"
5769b35249446b07f40ac5fcc3205f2c048616efacchkuang
5779b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abovel_1],         %[left0]      \n\t"
5789b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
5799b35249446b07f40ac5fcc3205f2c048616efacchkuang
5809b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res2],        %[reshw],            16            \n\t"
5819b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res2],        %[res2],             16            \n\t"
5829b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res3],        %[reshw],            16            \n\t"
5839b35249446b07f40ac5fcc3205f2c048616efacchkuang
5849b35249446b07f40ac5fcc3205f2c048616efacchkuang      "addu.ph         %[reshw],       %[abover_1],         %[left0]      \n\t"
5859b35249446b07f40ac5fcc3205f2c048616efacchkuang      "subu.ph         %[reshw],       %[reshw],            %[top_left]   \n\t"
5869b35249446b07f40ac5fcc3205f2c048616efacchkuang
5879b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sll             %[res0],        %[reshw],            16            \n\t"
5889b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res0],        %[res0],             16            \n\t"
5899b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sra             %[res1],        %[reshw],            16            \n\t"
5909b35249446b07f40ac5fcc3205f2c048616efacchkuang
5919b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res0],        %[res0](%[cm])                     \n\t"
5929b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res1],        %[res1](%[cm])                     \n\t"
5939b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res2],        %[res2](%[cm])                     \n\t"
5949b35249446b07f40ac5fcc3205f2c048616efacchkuang      "lbux            %[res3],        %[res3](%[cm])                     \n\t"
5959b35249446b07f40ac5fcc3205f2c048616efacchkuang
5969b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res0],        4(%[dst])                          \n\t"
5979b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res1],        5(%[dst])                          \n\t"
5989b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res2],        6(%[dst])                          \n\t"
5999b35249446b07f40ac5fcc3205f2c048616efacchkuang      "sb              %[res3],        7(%[dst])                          \n\t"
6009b35249446b07f40ac5fcc3205f2c048616efacchkuang
6019b35249446b07f40ac5fcc3205f2c048616efacchkuang      : [abovel] "=&r" (abovel), [abover] "=&r" (abover),
6029b35249446b07f40ac5fcc3205f2c048616efacchkuang        [abovel_1] "=&r" (abovel_1), [abover_1] "=&r" (abover_1),
6039b35249446b07f40ac5fcc3205f2c048616efacchkuang        [left0] "=&r" (left0), [res2] "=&r" (res2), [res3] "=&r" (res3),
6049b35249446b07f40ac5fcc3205f2c048616efacchkuang        [res0] "=&r" (res0), [res1] "=&r" (res1),
6059b35249446b07f40ac5fcc3205f2c048616efacchkuang        [reshw] "=&r" (reshw), [top_left] "=&r" (top_left)
6069b35249446b07f40ac5fcc3205f2c048616efacchkuang      : [above] "r" (above), [left] "r" (left),
6079b35249446b07f40ac5fcc3205f2c048616efacchkuang        [dst] "r" (dst), [stride] "r" (stride), [cm] "r" (cm)
6089b35249446b07f40ac5fcc3205f2c048616efacchkuang  );
6099b35249446b07f40ac5fcc3205f2c048616efacchkuang}
6109b35249446b07f40ac5fcc3205f2c048616efacchkuang#endif  // #if HAVE_DSPR2
611