ff_hevc_put_hevc_qpel_h16_8_sse4 3290870 ff_hevc_put_hevc_qpel_h16_8_avx512icl 1730033
Showing the changes to libavcodec (3 of 3 files). Show all
Unified · Split
| @@ -89,6 +89,7 @@ QPEL_TABLE 10, 8, w, avx2 · 88 unmodified lines | |||
| 89 | 89 | ||
| 90 | QPEL_TABLE 8, 1, b, avx512icl_h | 90 | QPEL_TABLE 8, 1, b, avx512icl_h |
| 91 | QPEL_TABLE 8, 1, d, avx512icl_v | 91 | QPEL_TABLE 8, 1, d, avx512icl_v |
| 92 | QPEL_TABLE 16, 1, b, avx512icl_h | ||
| 92 | 93 | ||
| 93 | pb_qpel_shuffle_index: db 0, 1, 2, 3 | 94 | pb_qpel_shuffle_index: db 0, 1, 2, 3 |
| 94 | db 1, 2, 3, 4 | 95 | db 1, 2, 3, 4 |
| @@ -98,6 +99,14 @@ pb_qpel_shuffle_index: db 0, 1, 2, 3 · 3 unmodified lines | |||
| 98 | db 5, 6, 7, 8 | 99 | db 5, 6, 7, 8 |
| 99 | db 6, 7, 8, 9 | 100 | db 6, 7, 8, 9 |
| 100 | db 7, 8, 9, 10 | 101 | db 7, 8, 9, 10 |
| 102 | db 8, 9, 10, 11 | ||
| 103 | db 9, 10, 11, 12 | ||
| 104 | db 10, 11, 12, 13 | ||
| 105 | db 11, 12, 13, 14 | ||
| 106 | db 12, 13, 14, 15 | ||
| 107 | db 13, 14, 15, 16 | ||
| 108 | db 14, 15, 16, 17 | ||
| 109 | db 15, 16, 17, 18 | ||
| 101 | db 4, 5, 6, 7 | 110 | db 4, 5, 6, 7 |
| 102 | db 5, 6, 7, 8 | 111 | db 5, 6, 7, 8 |
| 103 | db 6, 7, 8, 9 | 112 | db 6, 7, 8, 9 |
| @@ -106,6 +115,14 @@ pb_qpel_shuffle_index: db 0, 1, 2, 3 · 2 unmodified lines | |||
| 106 | db 9, 10, 11, 12 | 115 | db 9, 10, 11, 12 |
| 107 | db 10, 11, 12, 13 | 116 | db 10, 11, 12, 13 |
| 108 | db 11, 12, 13, 14 | 117 | db 11, 12, 13, 14 |
| 118 | db 12, 13, 14, 15 | ||
| 119 | db 13, 14, 15, 16 | ||
| 120 | db 14, 15, 16, 17 | ||
| 121 | db 15, 16, 17, 18 | ||
| 122 | db 16, 17, 18, 19 | ||
| 123 | db 17, 18, 19, 20 | ||
| 124 | db 18, 19, 20, 21 | ||
| 125 | db 19, 20, 21, 22 | ||
| 109 | 126 | ||
| 110 | SECTION .text | 127 | SECTION .text |
| 111 | 128 | ||
| @@ -1712,7 +1729,7 @@ HEVC_PUT_HEVC_QPEL_HV 16, 10 · 1600 unmodified lines | |||
| 1712 | 1729 | ||
| 1713 | %macro QPEL_LOAD_SHUF 2 | 1730 | %macro QPEL_LOAD_SHUF 2 |
| 1714 | movu m%1, [pb_qpel_shuffle_index + 0] | 1731 | movu m%1, [pb_qpel_shuffle_index + 0] |
| 1715 | movu m%2, [pb_qpel_shuffle_index + 32] | 1732 | movu m%2, [pb_qpel_shuffle_index + 64] |
| 1716 | %endmacro | 1733 | %endmacro |
| 1717 | 1734 | ||
| 1718 | ; required: m0-m5 | 1735 | ; required: m0-m5 |
| @@ -1720,7 +1737,11 @@ HEVC_PUT_HEVC_QPEL_HV 16, 10 · 1 unmodified line | |||
| 1720 | ; %2: name for src | 1737 | ; %2: name for src |
| 1721 | %macro QPEL_H_LOAD_COMPUTE 2 | 1738 | %macro QPEL_H_LOAD_COMPUTE 2 |
| 1722 | pxor m%1, m%1 | 1739 | pxor m%1, m%1 |
| 1740 | %if mmsize == 64 | ||
| 1741 | movu ym4, [%2q - 3] | ||
| 1742 | %else | ||
| 1723 | movu xm4, [%2q - 3] | 1743 | movu xm4, [%2q - 3] |
| 1744 | %endif | ||
| 1724 | vpermb m5, m2, m4 | 1745 | vpermb m5, m2, m4 |
| 1725 | vpermb m4, m3, m4 | 1746 | vpermb m4, m3, m4 |
| 1726 | vpdpbusd m%1, m5, m0 | 1747 | vpdpbusd m%1, m5, m0 |
| @@ -1805,5 +1826,8 @@ INIT_YMM avx512icl · 78 unmodified lines | |||
| 1805 | HEVC_PUT_HEVC_QPEL_AVX512ICL 8, 8 | 1826 | HEVC_PUT_HEVC_QPEL_AVX512ICL 8, 8 |
| 1806 | HEVC_PUT_HEVC_QPEL_HV_AVX512ICL 8, 8 | 1827 | HEVC_PUT_HEVC_QPEL_HV_AVX512ICL 8, 8 |
| 1807 | 1828 | ||
| 1829 | INIT_ZMM avx512icl | ||
| 1830 | HEVC_PUT_HEVC_QPEL_AVX512ICL 16, 8 | ||
| 1831 | |||
| 1808 | %endif | 1832 | %endif |
| 1809 | %endif | 1833 | %endif |
| @@ -234,6 +234,7 @@ WEIGHTING_PROTOTYPES(10, sse4); · 233 unmodified lines | |||
| 234 | WEIGHTING_PROTOTYPES(12, sse4); | 234 | WEIGHTING_PROTOTYPES(12, sse4); |
| 235 | 235 | ||
| 236 | void ff_hevc_put_hevc_qpel_h8_8_avx512icl(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width); | 236 | void ff_hevc_put_hevc_qpel_h8_8_avx512icl(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width); |
| 237 | void ff_hevc_put_hevc_qpel_h16_8_avx512icl(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width); | ||
| 237 | void ff_hevc_put_hevc_qpel_hv8_8_avx512icl(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width); | 238 | void ff_hevc_put_hevc_qpel_hv8_8_avx512icl(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width); |
| 238 | 239 | ||
| 239 | /////////////////////////////////////////////////////////////////////////////// | 240 | /////////////////////////////////////////////////////////////////////////////// |
| @@ -880,6 +880,7 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int bit_depth) · 879 unmodified lines | |||
| 880 | } | 880 | } |
| 881 | if (EXTERNAL_AVX512ICL(cpu_flags) && ARCH_X86_64) { | 881 | if (EXTERNAL_AVX512ICL(cpu_flags) && ARCH_X86_64) { |
| 882 | c->put_hevc_qpel[3][0][1] = ff_hevc_put_hevc_qpel_h8_8_avx512icl; | 882 | c->put_hevc_qpel[3][0][1] = ff_hevc_put_hevc_qpel_h8_8_avx512icl; |
| 883 | c->put_hevc_qpel[5][0][1] = ff_hevc_put_hevc_qpel_h16_8_avx512icl; | ||
| 883 | c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_avx512icl; | 884 | c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_avx512icl; |
| 884 | } | 885 | } |
| 885 | } else if (bit_depth == 10) { | 886 | } else if (bit_depth == 10) { |