History

avcodec/mips: Reduced conditional cases in avc inter lpf msa functions

Kaustubh Raste committed 9 years ago

Commit bba9c1c1 parent b5da07d1 file · +110 −164Browse files

Unified · Split

libavcodec/mips/h264dsp_msa.c+110−164
@@ -1250,21 +1250,7 @@ static void avc_loopfilter_luma_inter_edge_ver_msa(uint8_t *data, · 1249 unmodified lines
1250 uint8_t beta_in,1250 uint8_t beta_in,
1251 uint32_t img_width)1251 uint32_t img_width)
1252{1252{
1253 uint8_t *src;1253 v16u8 tmp_vec, bs = { 0 };
1254 v16u8 beta, tmp_vec, bs = { 0 };
1255 v16u8 tc = { 0 };
1256 v16u8 is_less_than, is_less_than_beta;
1257 v16u8 p1, p0, q0, q1;
1258 v8i16 p0_r, q0_r, p1_r = { 0 };
1259 v8i16 q1_r = { 0 };
1260 v8i16 p0_l, q0_l, p1_l = { 0 };
1261 v8i16 q1_l = { 0 };
1262 v16u8 p3_org, p2_org, p1_org, p0_org, q0_org, q1_org, q2_org, q3_org;
1263 v8i16 p2_org_r, p1_org_r, p0_org_r, q0_org_r, q1_org_r, q2_org_r;
1264 v8i16 p2_org_l, p1_org_l, p0_org_l, q0_org_l, q1_org_l, q2_org_l;
1265 v8i16 tc_r, tc_l;
1266 v16i8 zero = { 0 };
1267 v16u8 is_bs_greater_than0;
1268 1254
1269 tmp_vec = (v16u8) __msa_fill_b(bs0);1255 tmp_vec = (v16u8) __msa_fill_b(bs0);
1270 bs = (v16u8) __msa_insve_w((v4i32) bs, 0, (v4i32) tmp_vec);1256 bs = (v16u8) __msa_insve_w((v4i32) bs, 0, (v4i32) tmp_vec);
@@ -1276,6 +1262,14 @@ static void avc_loopfilter_luma_inter_edge_ver_msa(uint8_t *data, · 5 unmodified lines
1276 bs = (v16u8) __msa_insve_w((v4i32) bs, 3, (v4i32) tmp_vec);1262 bs = (v16u8) __msa_insve_w((v4i32) bs, 3, (v4i32) tmp_vec);
1277 1263
1278 if (!__msa_test_bz_v(bs)) {1264 if (!__msa_test_bz_v(bs)) {
1265 uint8_t *src = data - 4;
1266 v16u8 p3_org, p2_org, p1_org, p0_org, q0_org, q1_org, q2_org, q3_org;
1267 v16u8 p0_asub_q0, p1_asub_p0, q1_asub_q0, alpha, beta;
1268 v16u8 is_less_than, is_less_than_beta, is_less_than_alpha;
1269 v16u8 is_bs_greater_than0;
1270 v16u8 tc = { 0 };
1271 v16i8 zero = { 0 };
1272
1279 tmp_vec = (v16u8) __msa_fill_b(tc0);1273 tmp_vec = (v16u8) __msa_fill_b(tc0);
1280 tc = (v16u8) __msa_insve_w((v4i32) tc, 0, (v4i32) tmp_vec);1274 tc = (v16u8) __msa_insve_w((v4i32) tc, 0, (v4i32) tmp_vec);
1281 tmp_vec = (v16u8) __msa_fill_b(tc1);1275 tmp_vec = (v16u8) __msa_fill_b(tc1);
@@ -1291,9 +1285,6 @@ static void avc_loopfilter_luma_inter_edge_ver_msa(uint8_t *data, · 9 unmodified lines
1291 v16u8 row0, row1, row2, row3, row4, row5, row6, row7;1285 v16u8 row0, row1, row2, row3, row4, row5, row6, row7;
1292 v16u8 row8, row9, row10, row11, row12, row13, row14, row15;1286 v16u8 row8, row9, row10, row11, row12, row13, row14, row15;
1293 1287
1294 src = data;
1295 src -= 4;
1296
1297 LD_UB8(src, img_width,1288 LD_UB8(src, img_width,
1298 row0, row1, row2, row3, row4, row5, row6, row7);1289 row0, row1, row2, row3, row4, row5, row6, row7);
1299 src += (8 * img_width);1290 src += (8 * img_width);
@@ -1306,27 +1297,28 @@ static void avc_loopfilter_luma_inter_edge_ver_msa(uint8_t *data, · 6 unmodified lines
1306 p3_org, p2_org, p1_org, p0_org,1297 p3_org, p2_org, p1_org, p0_org,
1307 q0_org, q1_org, q2_org, q3_org);1298 q0_org, q1_org, q2_org, q3_org);
1308 }1299 }
1309 {1300
1310 v16u8 p0_asub_q0, p1_asub_p0, q1_asub_q0, alpha;1301 p0_asub_q0 = __msa_asub_u_b(p0_org, q0_org);
1311 v16u8 is_less_than_alpha;1302 p1_asub_p0 = __msa_asub_u_b(p1_org, p0_org);
1312 1303 q1_asub_q0 = __msa_asub_u_b(q1_org, q0_org);
1313 p0_asub_q0 = __msa_asub_u_b(p0_org, q0_org);1304
1314 p1_asub_p0 = __msa_asub_u_b(p1_org, p0_org);1305 alpha = (v16u8) __msa_fill_b(alpha_in);
1315 q1_asub_q0 = __msa_asub_u_b(q1_org, q0_org);1306 beta = (v16u8) __msa_fill_b(beta_in);
1316 1307
1317 alpha = (v16u8) __msa_fill_b(alpha_in);1308 is_less_than_alpha = (p0_asub_q0 < alpha);
1318 beta = (v16u8) __msa_fill_b(beta_in);1309 is_less_than_beta = (p1_asub_p0 < beta);
1319 1310 is_less_than = is_less_than_beta & is_less_than_alpha;
1320 is_less_than_alpha = (p0_asub_q0 < alpha);1311 is_less_than_beta = (q1_asub_q0 < beta);
1321 is_less_than_beta = (p1_asub_p0 < beta);1312 is_less_than = is_less_than_beta & is_less_than;
1322 is_less_than = is_less_than_beta & is_less_than_alpha;1313 is_less_than = is_less_than & is_bs_greater_than0;
1323 is_less_than_beta = (q1_asub_q0 < beta);1314
1324 is_less_than = is_less_than_beta & is_less_than;
1325 is_less_than = is_less_than & is_bs_greater_than0;
1326 }
1327 if (!__msa_test_bz_v(is_less_than)) {1315 if (!__msa_test_bz_v(is_less_than)) {
1328 v16i8 negate_tc, sign_negate_tc;1316 v16i8 negate_tc, sign_negate_tc;
1329 v8i16 negate_tc_r, i16_negatetc_l;1317 v16u8 p0, q0, p2_asub_p0, q2_asub_q0;
1318 v8i16 tc_r, tc_l, negate_tc_r, i16_negatetc_l;
1319 v8i16 p1_org_r, p0_org_r, q0_org_r, q1_org_r;
1320 v8i16 p1_org_l, p0_org_l, q0_org_l, q1_org_l;
1321 v8i16 p0_r, q0_r, p0_l, q0_l;
1330 1322
1331 negate_tc = zero - (v16i8) tc;1323 negate_tc = zero - (v16i8) tc;
1332 sign_negate_tc = __msa_clti_s_b(negate_tc, 0);1324 sign_negate_tc = __msa_clti_s_b(negate_tc, 0);
@@ -1338,34 +1330,22 @@ static void avc_loopfilter_luma_inter_edge_ver_msa(uint8_t *data, · 5 unmodified lines
1338 UNPCK_UB_SH(p0_org, p0_org_r, p0_org_l);1330 UNPCK_UB_SH(p0_org, p0_org_r, p0_org_l);
1339 UNPCK_UB_SH(q0_org, q0_org_r, q0_org_l);1331 UNPCK_UB_SH(q0_org, q0_org_r, q0_org_l);
1340 1332
1341 {1333 p2_asub_p0 = __msa_asub_u_b(p2_org, p0_org);
1342 v16u8 p2_asub_p0;1334 is_less_than_beta = (p2_asub_p0 < beta);
1343 v16u8 is_less_than_beta_r, is_less_than_beta_l;1335 is_less_than_beta = is_less_than_beta & is_less_than;
1344
1345 p2_asub_p0 = __msa_asub_u_b(p2_org, p0_org);
1346 is_less_than_beta = (p2_asub_p0 < beta);
1347 is_less_than_beta = is_less_than_beta & is_less_than;
1348
1349 is_less_than_beta_r =
1350 (v16u8) __msa_sldi_b((v16i8) is_less_than_beta, zero, 8);
1351 if (!__msa_test_bz_v(is_less_than_beta_r)) {
1352 p2_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) p2_org);
1353
1354 AVC_LPF_P1_OR_Q1(p0_org_r, q0_org_r, p1_org_r, p2_org_r,
1355 negate_tc_r, tc_r, p1_r);
1356 }
1357
1358 is_less_than_beta_l =
1359 (v16u8) __msa_sldi_b(zero, (v16i8) is_less_than_beta, 8);
1360 if (!__msa_test_bz_v(is_less_than_beta_l)) {
1361 p2_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) p2_org);
1362
1363 AVC_LPF_P1_OR_Q1(p0_org_l, q0_org_l, p1_org_l, p2_org_l,
1364 i16_negatetc_l, tc_l, p1_l);
1365 }
1366 }
1367 1336
1368 if (!__msa_test_bz_v(is_less_than_beta)) {1337 if (!__msa_test_bz_v(is_less_than_beta)) {
1338 v16u8 p1;
1339 v8i16 p1_r = { 0 };
1340 v8i16 p1_l = { 0 };
1341 v8i16 p2_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) p2_org);
1342 v8i16 p2_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) p2_org);
1343
1344 AVC_LPF_P1_OR_Q1(p0_org_r, q0_org_r, p1_org_r, p2_org_r,
1345 negate_tc_r, tc_r, p1_r);
1346 AVC_LPF_P1_OR_Q1(p0_org_l, q0_org_l, p1_org_l, p2_org_l,
1347 i16_negatetc_l, tc_l, p1_l);
1348
1369 p1 = (v16u8) __msa_pckev_b((v16i8) p1_l, (v16i8) p1_r);1349 p1 = (v16u8) __msa_pckev_b((v16i8) p1_l, (v16i8) p1_r);
1370 p1_org = __msa_bmnz_v(p1_org, p1, is_less_than_beta);1350 p1_org = __msa_bmnz_v(p1_org, p1, is_less_than_beta);
1371 1351
@@ -1373,36 +1353,25 @@ static void avc_loopfilter_luma_inter_edge_ver_msa(uint8_t *data, · 1 unmodified line
1373 tc = tc + is_less_than_beta;1353 tc = tc + is_less_than_beta;
1374 }1354 }
1375 1355
1376 {1356 q2_asub_q0 = __msa_asub_u_b(q2_org, q0_org);
1377 v16u8 u8_q2asub_q0;1357 is_less_than_beta = (q2_asub_q0 < beta);
1378 v16u8 is_less_than_beta_l, is_less_than_beta_r;1358 is_less_than_beta = is_less_than_beta & is_less_than;
1379 1359
1380 u8_q2asub_q0 = __msa_asub_u_b(q2_org, q0_org);1360 q1_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) q1_org);
1381 is_less_than_beta = (u8_q2asub_q0 < beta);1361 q1_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) q1_org);
1382 is_less_than_beta = is_less_than_beta & is_less_than;
1383
1384 q1_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) q1_org);
1385
1386 is_less_than_beta_r =
1387 (v16u8) __msa_sldi_b((v16i8) is_less_than_beta, zero, 8);
1388 if (!__msa_test_bz_v(is_less_than_beta_r)) {
1389 q2_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) q2_org);
1390 AVC_LPF_P1_OR_Q1(p0_org_r, q0_org_r, q1_org_r, q2_org_r,
1391 negate_tc_r, tc_r, q1_r);
1392 }
1393
1394 q1_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) q1_org);
1395
1396 is_less_than_beta_l =
1397 (v16u8) __msa_sldi_b(zero, (v16i8) is_less_than_beta, 8);
1398 if (!__msa_test_bz_v(is_less_than_beta_l)) {
1399 q2_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) q2_org);
1400 AVC_LPF_P1_OR_Q1(p0_org_l, q0_org_l, q1_org_l, q2_org_l,
1401 i16_negatetc_l, tc_l, q1_l);
1402 }
1403 }
1404 1362
1405 if (!__msa_test_bz_v(is_less_than_beta)) {1363 if (!__msa_test_bz_v(is_less_than_beta)) {
1364 v16u8 q1;
1365 v8i16 q1_r = { 0 };
1366 v8i16 q1_l = { 0 };
1367 v8i16 q2_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) q2_org);
1368 v8i16 q2_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) q2_org);
1369
1370 AVC_LPF_P1_OR_Q1(p0_org_r, q0_org_r, q1_org_r, q2_org_r,
1371 negate_tc_r, tc_r, q1_r);
1372 AVC_LPF_P1_OR_Q1(p0_org_l, q0_org_l, q1_org_l, q2_org_l,
1373 i16_negatetc_l, tc_l, q1_l);
1374
1406 q1 = (v16u8) __msa_pckev_b((v16i8) q1_l, (v16i8) q1_r);1375 q1 = (v16u8) __msa_pckev_b((v16i8) q1_l, (v16i8) q1_r);
1407 q1_org = __msa_bmnz_v(q1_org, q1, is_less_than_beta);1376 q1_org = __msa_bmnz_v(q1_org, q1, is_less_than_beta);
1408 1377
@@ -1436,7 +1405,7 @@ static void avc_loopfilter_luma_inter_edge_ver_msa(uint8_t *data, · 27 unmodified lines
1436 1405
1437 p0_org = __msa_bmnz_v(p0_org, p0, is_less_than);1406 p0_org = __msa_bmnz_v(p0_org, p0, is_less_than);
1438 q0_org = __msa_bmnz_v(q0_org, q0, is_less_than);1407 q0_org = __msa_bmnz_v(q0_org, q0, is_less_than);
1439 }1408
1440 {1409 {
1441 v16i8 tp0, tp1, tp2, tp3;1410 v16i8 tp0, tp1, tp2, tp3;
1442 v8i16 tmp2, tmp5;1411 v8i16 tmp2, tmp5;
@@ -1548,6 +1517,7 @@ static void avc_loopfilter_luma_inter_edge_ver_msa(uint8_t *data, · 105 unmodified lines
1548 SW(out2, src);1517 SW(out2, src);
1549 SH(out3, (src + 4));1518 SH(out3, (src + 4));
1550 }1519 }
1520 }
1551 }1521 }
1552}1522}
1553 1523
@@ -1560,20 +1530,8 @@ static void avc_loopfilter_luma_inter_edge_hor_msa(uint8_t *data, · 6 unmodified lines
1560 uint8_t beta_in,1530 uint8_t beta_in,
1561 uint32_t image_width)1531 uint32_t image_width)
1562{1532{
1563 v16u8 p2_asub_p0, u8_q2asub_q0;
1564 v16u8 alpha, beta, is_less_than, is_less_than_beta;
1565 v16u8 p1, p0, q0, q1;
1566 v8i16 p1_r = { 0 };
1567 v8i16 p0_r, q0_r, q1_r = { 0 };
1568 v8i16 p1_l = { 0 };
1569 v8i16 p0_l, q0_l, q1_l = { 0 };
1570 v16u8 p2_org, p1_org, p0_org, q0_org, q1_org, q2_org;
1571 v8i16 p2_org_r, p1_org_r, p0_org_r, q0_org_r, q1_org_r, q2_org_r;
1572 v8i16 p2_org_l, p1_org_l, p0_org_l, q0_org_l, q1_org_l, q2_org_l;
1573 v16i8 zero = { 0 };
1574 v16u8 tmp_vec;1533 v16u8 tmp_vec;
1575 v16u8 bs = { 0 };1534 v16u8 bs = { 0 };
1576 v16i8 tc = { 0 };
1577 1535
1578 tmp_vec = (v16u8) __msa_fill_b(bs0);1536 tmp_vec = (v16u8) __msa_fill_b(bs0);
1579 bs = (v16u8) __msa_insve_w((v4i32) bs, 0, (v4i32) tmp_vec);1537 bs = (v16u8) __msa_insve_w((v4i32) bs, 0, (v4i32) tmp_vec);
@@ -1585,6 +1543,16 @@ static void avc_loopfilter_luma_inter_edge_hor_msa(uint8_t *data, · 5 unmodified lines
1585 bs = (v16u8) __msa_insve_w((v4i32) bs, 3, (v4i32) tmp_vec);1543 bs = (v16u8) __msa_insve_w((v4i32) bs, 3, (v4i32) tmp_vec);
1586 1544
1587 if (!__msa_test_bz_v(bs)) {1545 if (!__msa_test_bz_v(bs)) {
1546 v16u8 alpha, beta, is_less_than, is_less_than_beta;
1547 v16u8 p0, q0, p2_org, p1_org, p0_org, q0_org, q1_org, q2_org;
1548 v16u8 p0_asub_q0, p1_asub_p0, q1_asub_q0;
1549 v16u8 is_less_than_alpha, is_bs_greater_than0;
1550 v8i16 p0_r, q0_r, p0_l, q0_l;
1551 v8i16 p1_org_r, p0_org_r, q0_org_r, q1_org_r;
1552 v8i16 p1_org_l, p0_org_l, q0_org_l, q1_org_l;
1553 v16i8 zero = { 0 };
1554 v16i8 tc = { 0 };
1555
1588 tmp_vec = (v16u8) __msa_fill_b(tc0);1556 tmp_vec = (v16u8) __msa_fill_b(tc0);
1589 tc = (v16i8) __msa_insve_w((v4i32) tc, 0, (v4i32) tmp_vec);1557 tc = (v16i8) __msa_insve_w((v4i32) tc, 0, (v4i32) tmp_vec);
1590 tmp_vec = (v16u8) __msa_fill_b(tc1);1558 tmp_vec = (v16u8) __msa_fill_b(tc1);
@@ -1600,26 +1568,22 @@ static void avc_loopfilter_luma_inter_edge_hor_msa(uint8_t *data, · 9 unmodified lines
1600 LD_UB5(data - (3 * image_width), image_width,1568 LD_UB5(data - (3 * image_width), image_width,
1601 p2_org, p1_org, p0_org, q0_org, q1_org);1569 p2_org, p1_org, p0_org, q0_org, q1_org);
1602 1570
1603 {1571 is_bs_greater_than0 = ((v16u8) zero < bs);
1604 v16u8 p0_asub_q0, p1_asub_p0, q1_asub_q0;1572 p0_asub_q0 = __msa_asub_u_b(p0_org, q0_org);
1605 v16u8 is_less_than_alpha, is_bs_greater_than0;1573 p1_asub_p0 = __msa_asub_u_b(p1_org, p0_org);
1606 1574 q1_asub_q0 = __msa_asub_u_b(q1_org, q0_org);
1607 is_bs_greater_than0 = ((v16u8) zero < bs);1575
1608 p0_asub_q0 = __msa_asub_u_b(p0_org, q0_org);1576 is_less_than_alpha = (p0_asub_q0 < alpha);
1609 p1_asub_p0 = __msa_asub_u_b(p1_org, p0_org);1577 is_less_than_beta = (p1_asub_p0 < beta);
1610 q1_asub_q0 = __msa_asub_u_b(q1_org, q0_org);1578 is_less_than = is_less_than_beta & is_less_than_alpha;
1611 1579 is_less_than_beta = (q1_asub_q0 < beta);
1612 is_less_than_alpha = (p0_asub_q0 < alpha);1580 is_less_than = is_less_than_beta & is_less_than;
1613 is_less_than_beta = (p1_asub_p0 < beta);1581 is_less_than = is_less_than & is_bs_greater_than0;
1614 is_less_than = is_less_than_beta & is_less_than_alpha;
1615 is_less_than_beta = (q1_asub_q0 < beta);
1616 is_less_than = is_less_than_beta & is_less_than;
1617 is_less_than = is_less_than & is_bs_greater_than0;
1618 }
1619 1582
1620 if (!__msa_test_bz_v(is_less_than)) {1583 if (!__msa_test_bz_v(is_less_than)) {
1621 v16i8 sign_negate_tc, negate_tc;1584 v16i8 sign_negate_tc, negate_tc;
1622 v8i16 negate_tc_r, i16_negatetc_l, tc_l, tc_r;1585 v8i16 negate_tc_r, i16_negatetc_l, tc_l, tc_r;
1586 v16u8 p2_asub_p0, q2_asub_q0;
1623 1587
1624 q2_org = LD_UB(data + (2 * image_width));1588 q2_org = LD_UB(data + (2 * image_width));
1625 negate_tc = zero - tc;1589 negate_tc = zero - tc;
@@ -1635,28 +1599,19 @@ static void avc_loopfilter_luma_inter_edge_hor_msa(uint8_t *data, · 9 unmodified lines
1635 p2_asub_p0 = __msa_asub_u_b(p2_org, p0_org);1599 p2_asub_p0 = __msa_asub_u_b(p2_org, p0_org);
1636 is_less_than_beta = (p2_asub_p0 < beta);1600 is_less_than_beta = (p2_asub_p0 < beta);
1637 is_less_than_beta = is_less_than_beta & is_less_than;1601 is_less_than_beta = is_less_than_beta & is_less_than;
1638 {
1639 v8u16 is_less_than_beta_r, is_less_than_beta_l;
1640
1641 is_less_than_beta_r =
1642 (v8u16) __msa_sldi_b((v16i8) is_less_than_beta, zero, 8);
1643 if (!__msa_test_bz_v((v16u8) is_less_than_beta_r)) {
1644 p2_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) p2_org);
1645 1602
1646 AVC_LPF_P1_OR_Q1(p0_org_r, q0_org_r, p1_org_r, p2_org_r,1603 if (!__msa_test_bz_v(is_less_than_beta)) {
1647 negate_tc_r, tc_r, p1_r);1604 v16u8 p1;
1648 }1605 v8i16 p1_r = { 0 };
1606 v8i16 p1_l = { 0 };
1607 v8i16 p2_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) p2_org);
1608 v8i16 p2_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) p2_org);
1649 1609
1650 is_less_than_beta_l =1610 AVC_LPF_P1_OR_Q1(p0_org_r, q0_org_r, p1_org_r, p2_org_r,
1651 (v8u16) __msa_sldi_b(zero, (v16i8) is_less_than_beta, 8);1611 negate_tc_r, tc_r, p1_r);
1652 if (!__msa_test_bz_v((v16u8) is_less_than_beta_l)) {1612 AVC_LPF_P1_OR_Q1(p0_org_l, q0_org_l, p1_org_l, p2_org_l,
1653 p2_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) p2_org);1613 i16_negatetc_l, tc_l, p1_l);
1654 1614
1655 AVC_LPF_P1_OR_Q1(p0_org_l, q0_org_l, p1_org_l, p2_org_l,
1656 i16_negatetc_l, tc_l, p1_l);
1657 }
1658 }
1659 if (!__msa_test_bz_v(is_less_than_beta)) {
1660 p1 = (v16u8) __msa_pckev_b((v16i8) p1_l, (v16i8) p1_r);1615 p1 = (v16u8) __msa_pckev_b((v16i8) p1_l, (v16i8) p1_r);
1661 p1_org = __msa_bmnz_v(p1_org, p1, is_less_than_beta);1616 p1_org = __msa_bmnz_v(p1_org, p1, is_less_than_beta);
1662 ST_UB(p1_org, data - (2 * image_width));1617 ST_UB(p1_org, data - (2 * image_width));
@@ -1665,34 +1620,25 @@ static void avc_loopfilter_luma_inter_edge_hor_msa(uint8_t *data, · 2 unmodified lines
1665 tc = tc + (v16i8) is_less_than_beta;1620 tc = tc + (v16i8) is_less_than_beta;
1666 }1621 }
1667 1622
1668 u8_q2asub_q0 = __msa_asub_u_b(q2_org, q0_org);1623 q2_asub_q0 = __msa_asub_u_b(q2_org, q0_org);
1669 is_less_than_beta = (u8_q2asub_q0 < beta);1624 is_less_than_beta = (q2_asub_q0 < beta);
1670 is_less_than_beta = is_less_than_beta & is_less_than;1625 is_less_than_beta = is_less_than_beta & is_less_than;
1671 1626
1672 {1627 q1_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) q1_org);
1673 v8u16 is_less_than_beta_r, is_less_than_beta_l;1628 q1_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) q1_org);
1674 is_less_than_beta_r =1629
1675 (v8u16) __msa_sldi_b((v16i8) is_less_than_beta, zero, 8);
1676
1677 q1_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) q1_org);
1678 if (!__msa_test_bz_v((v16u8) is_less_than_beta_r)) {
1679 q2_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) q2_org);
1680
1681 AVC_LPF_P1_OR_Q1(p0_org_r, q0_org_r, q1_org_r, q2_org_r,
1682 negate_tc_r, tc_r, q1_r);
1683 }
1684 is_less_than_beta_l =
1685 (v8u16) __msa_sldi_b(zero, (v16i8) is_less_than_beta, 8);
1686
1687 q1_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) q1_org);
1688 if (!__msa_test_bz_v((v16u8) is_less_than_beta_l)) {
1689 q2_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) q2_org);
1690
1691 AVC_LPF_P1_OR_Q1(p0_org_l, q0_org_l, q1_org_l, q2_org_l,
1692 i16_negatetc_l, tc_l, q1_l);
1693 }
1694 }
1695 if (!__msa_test_bz_v(is_less_than_beta)) {1630 if (!__msa_test_bz_v(is_less_than_beta)) {
1631 v16u8 q1;
1632 v8i16 q1_r = { 0 };
1633 v8i16 q1_l = { 0 };
1634 v8i16 q2_org_r = (v8i16) __msa_ilvr_b(zero, (v16i8) q2_org);
1635 v8i16 q2_org_l = (v8i16) __msa_ilvl_b(zero, (v16i8) q2_org);
1636
1637 AVC_LPF_P1_OR_Q1(p0_org_r, q0_org_r, q1_org_r, q2_org_r,
1638 negate_tc_r, tc_r, q1_r);
1639 AVC_LPF_P1_OR_Q1(p0_org_l, q0_org_l, q1_org_l, q2_org_l,
1640 i16_negatetc_l, tc_l, q1_l);
1641
1696 q1 = (v16u8) __msa_pckev_b((v16i8) q1_l, (v16i8) q1_r);1642 q1 = (v16u8) __msa_pckev_b((v16i8) q1_l, (v16i8) q1_r);
1697 q1_org = __msa_bmnz_v(q1_org, q1, is_less_than_beta);1643 q1_org = __msa_bmnz_v(q1_org, q1, is_less_than_beta);
1698 ST_UB(q1_org, data + image_width);1644 ST_UB(q1_org, data + image_width);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t