<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;font-size:small"><font face="arial,helvetica,sans-serif">right.. but small correction - in #if 0 .... #endif disable only specific primitives and not all sizes  (expand the macro & keep only less than 3%)</font><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 18, 2015 at 12:05 PM,  <span dir="ltr"><<a href="mailto:aasaipriya@multicorewareinc.com" target="_blank">aasaipriya@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""># HG changeset patch<br>
# User Aasaipriya Chandran <<a href="mailto:aasaipriya@multicorewareinc.com">aasaipriya@multicorewareinc.com</a>><br>
</span># Date 1439879745 -19800<br>
#      Tue Aug 18 12:05:45 2015 +0530<br>
# Node ID 2d0d8be0f401aa4eac554a280118376a991f5475<br>
# Parent  996ebce8c874fc511d495cee227d24413e99d0c1<br>
<span class="">asm: disabled 10bpp AVX & AVX2 primitives having less than 3% speed up over SSE<br>
<br>
these primitives are slower than SSE primitives<br>
<br>
</span>diff -r 996ebce8c874 -r 2d0d8be0f401 source/common/x86/asm-primitives.cpp<br>
--- a/source/common/x86/asm-primitives.cpp      Mon Aug 17 10:52:15 2015 +0530<br>
+++ b/source/common/x86/asm-primitives.cpp      Tue Aug 18 12:05:45 2015 +0530<br>
@@ -1169,7 +1169,6 @@<br>
     }<br>
     if (cpuMask & X265_CPU_AVX)<br>
     {<br>
-        // p.pu[LUMA_4x4].satd = <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_4x4].sa8d = PFX(pixel_satd_4x4_avx); fails tests<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].satd = PFX(pixel_satd_16x24_avx);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].satd = PFX(pixel_satd_32x48_avx);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].satd = PFX(pixel_satd_24x64_avx);<br>
@@ -1177,32 +1176,36 @@<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].satd = PFX(pixel_satd_8x12_avx);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].satd = PFX(pixel_satd_12x32_avx);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].satd = PFX(pixel_satd_4x32_avx);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].satd = PFX(pixel_satd_4x8_avx);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].satd = PFX(pixel_satd_8x16_avx);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_4x4].satd = PFX(pixel_satd_4x4_avx);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].satd = PFX(pixel_satd_8x8_avx);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].satd = PFX(pixel_satd_4x16_avx);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].satd = PFX(pixel_satd_8x32_avx);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].satd = PFX(pixel_satd_8x4_avx);<br>
-<br>
-        ALL_LUMA_PU(satd, pixel_satd, avx);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].satd = PFX(pixel_satd_8x8_avx);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].satd = PFX(pixel_satd_8x4_avx);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].satd = PFX(pixel_satd_8x16_avx);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].satd = PFX(pixel_satd_8x32_avx);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].satd = PFX(pixel_satd_12x16_avx);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].satd = PFX(pixel_satd_24x32_avx);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].satd = PFX(pixel_satd_4x16_avx);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].satd = PFX(pixel_satd_4x8_avx);<br>
-#if X265_DEPTH <= 10<br>
-        ASSIGN_SA8D(avx);<br>
-#endif<br>
<span class="">-        p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].sa8d = PFX(pixel_sa8d_8x8_avx);<br>
-        p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].sa8d = PFX(pixel_sa8d_16x16_avx);<br>
-        p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].sa8d = PFX(pixel_sa8d_32x32_avx);<br>
</span>-        LUMA_VAR(avx);<br>
-        p.ssim_4x4x2_core = PFX(pixel_ssim_4x4x2_core_avx);<br>
-        p.ssim_end_4 = PFX(pixel_ssim_end4_avx);<br>
+<br>
+        p.pu[LUMA_8x8].satd = PFX(pixel_satd_8x8_avx);<br>
+        p.pu[LUMA_16x16].satd = PFX(pixel_satd_16x16_avx);<br>
+        p.pu[LUMA_32x32].satd = PFX(pixel_satd_32x32_avx);<br>
+        p.pu[LUMA_64x64].satd = PFX(pixel_satd_64x64_avx);<br>
+        p.pu[LUMA_16x8].satd = PFX(pixel_satd_16x8_avx);<br>
+        p.pu[LUMA_8x16].satd = PFX(pixel_satd_8x16_avx);<br>
+        p.pu[LUMA_16x32].satd = PFX(pixel_satd_16x32_avx);<br>
+        p.pu[LUMA_32x16].satd = PFX(pixel_satd_32x16_avx);<br>
+        p.pu[LUMA_64x32].satd = PFX(pixel_satd_64x32_avx);<br>
+        p.pu[LUMA_32x64].satd = PFX(pixel_satd_32x64_avx);<br>
+        p.pu[LUMA_16x12].satd = PFX(pixel_satd_16x12_avx);<br>
+        p.pu[LUMA_16x4].satd = PFX(pixel_satd_16x4_avx);<br>
+        p.pu[LUMA_32x24].satd = PFX(pixel_satd_32x24_avx);<br>
+        p.pu[LUMA_24x32].satd = PFX(pixel_satd_24x32_avx);<br>
+        p.pu[LUMA_32x8].satd = PFX(pixel_satd_32x8_avx);<br>
+        p.pu[LUMA_8x32].satd = PFX(pixel_satd_8x32_avx);<br>
+        p.pu[LUMA_64x48].satd = PFX(pixel_satd_64x48_avx);<br>
+        p.pu[LUMA_48x64].satd = PFX(pixel_satd_48x64_avx);<br>
+        p.pu[LUMA_64x16].satd = PFX(pixel_satd_64x16_avx);<br>
+        p.pu[LUMA_16x64].satd = PFX(pixel_satd_16x64_avx);<br>
+<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].var = PFX(pixel_var_16x16_avx);<br>
<br>
         // copy_pp primitives<br>
         // 16 x N<br>
@@ -1299,6 +1302,33 @@<br>
         p.pu[LUMA_64x32].copy_pp = (copy_pp_t)PFX(blockcopy_ss_64x32_avx);<br>
         p.pu[LUMA_64x48].copy_pp = (copy_pp_t)PFX(blockcopy_ss_64x48_avx);<br>
         p.pu[LUMA_64x64].copy_pp = (copy_pp_t)PFX(blockcopy_ss_64x64_avx);<br>
+<br>
+        /* The following primitives have been disabled since performance compared to SSE4 is negligible/negative */<br>
+#if 0<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].satd = PFX(pixel_satd_4x8_avx);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].satd = PFX(pixel_satd_4x8_avx);<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_4x4].satd = PFX(pixel_satd_4x4_avx);<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].satd = PFX(pixel_satd_4x16_avx);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].satd = PFX(pixel_satd_4x16_avx);<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].satd = PFX(pixel_satd_8x4_avx);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].satd = PFX(pixel_satd_8x4_avx);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].satd = PFX(pixel_satd_12x16_avx);<br>
+<br>
+        ALL_LUMA_PU(satd, pixel_satd, avx);<br>
+<br>
+        LUMA_VAR(avx);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_8x8].var = PFX(pixel_var_8x8_avx);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].var = PFX(pixel_var_32x32_avx);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_64x64].var = PFX(pixel_var_64x64_avx)<br>
+<br>
+        ASSIGN_SA8D(avx);<br>
<span class="">+        p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].sa8d = PFX(pixel_sa8d_8x8_avx);<br>
+        p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].sa8d = PFX(pixel_sa8d_16x16_avx);<br>
+        p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].sa8d = PFX(pixel_sa8d_32x32_avx);<br>
</span>+<br>
+        p.ssim_4x4x2_core = PFX(pixel_ssim_4x4x2_core_avx);<br>
+        p.ssim_end_4 = PFX(pixel_ssim_end4_avx);<br>
+#endif<br>
     }<br>
     if (cpuMask & X265_CPU_XOP)<br>
     {<br>
@@ -1396,12 +1426,6 @@<br>
<span class="">         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].intra_pred[34]    = PFX(intra_pred_ang32_2_avx2);<br>
<br>
         p.pu[LUMA_12x16].pixelavg_pp = PFX(pixel_avg_12x16_avx2);<br>
-        p.pu[LUMA_16x4].pixelavg_pp = PFX(pixel_avg_16x4_avx2);<br>
-        p.pu[LUMA_16x8].pixelavg_pp = PFX(pixel_avg_16x8_avx2);<br>
-        p.pu[LUMA_16x12].pixelavg_pp = PFX(pixel_avg_16x12_avx2);<br>
-        p.pu[LUMA_16x16].pixelavg_pp = PFX(pixel_avg_16x16_avx2);<br>
-        p.pu[LUMA_16x32].pixelavg_pp = PFX(pixel_avg_16x32_avx2);<br>
-        p.pu[LUMA_16x64].pixelavg_pp = PFX(pixel_avg_16x64_avx2);<br>
         p.pu[LUMA_24x32].pixelavg_pp = PFX(pixel_avg_24x32_avx2);<br>
         p.pu[LUMA_32x8].pixelavg_pp = PFX(pixel_avg_32x8_avx2);<br>
         p.pu[LUMA_32x16].pixelavg_pp = PFX(pixel_avg_32x16_avx2);<br>
</span>@@ -1414,11 +1438,8 @@<br>
<span class="">         p.pu[LUMA_64x64].pixelavg_pp = PFX(pixel_avg_64x64_avx2);<br>
         p.pu[LUMA_48x64].pixelavg_pp = PFX(pixel_avg_48x64_avx2);<br>
<br>
-        p.pu[LUMA_8x4].addAvg   = PFX(addAvg_8x4_avx2);<br>
-        p.pu[LUMA_8x8].addAvg   = PFX(addAvg_8x8_avx2);<br>
         p.pu[LUMA_8x16].addAvg  = PFX(addAvg_8x16_avx2);<br>
         p.pu[LUMA_8x32].addAvg  = PFX(addAvg_8x32_avx2);<br>
-        p.pu[LUMA_12x16].addAvg = PFX(addAvg_12x16_avx2);<br>
         p.pu[LUMA_16x4].addAvg  = PFX(addAvg_16x4_avx2);<br>
         p.pu[LUMA_16x8].addAvg  = PFX(addAvg_16x8_avx2);<br>
         p.pu[LUMA_16x12].addAvg = PFX(addAvg_16x12_avx2);<br>
</span>@@ -1437,13 +1458,9 @@<br>
<span class="">         p.pu[LUMA_64x48].addAvg = PFX(addAvg_64x48_avx2);<br>
         p.pu[LUMA_64x64].addAvg = PFX(addAvg_64x64_avx2);<br>
<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg   = PFX(addAvg_8x2_avx2);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg   = PFX(addAvg_8x4_avx2);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg   = PFX(addAvg_8x6_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg   = PFX(addAvg_8x8_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg  = PFX(addAvg_8x16_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg  = PFX(addAvg_8x32_avx2);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg = PFX(addAvg_12x16_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg  = PFX(addAvg_16x4_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg  = PFX(addAvg_16x8_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg = PFX(addAvg_16x12_avx2);<br>
</span>@@ -1453,7 +1470,6 @@<br>
<span class="">         p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg = PFX(addAvg_32x16_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg = PFX(addAvg_32x24_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg = PFX(addAvg_32x32_avx2);<br>
-<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg = PFX(addAvg_8x16_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg = PFX(addAvg_16x32_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg = PFX(addAvg_32x64_avx2);<br>
</span>@@ -1463,12 +1479,10 @@<br>
<span class="">         p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg = PFX(addAvg_32x32_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg = PFX(addAvg_16x64_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg = PFX(addAvg_8x12_avx2);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg = PFX(addAvg_8x4_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg = PFX(addAvg_16x24_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg = PFX(addAvg_16x8_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg = PFX(addAvg_8x64_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg = PFX(addAvg_24x64_avx2);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg = PFX(addAvg_12x32_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg = PFX(addAvg_32x16_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg = PFX(addAvg_32x48_avx2);<br>
<br>
</span>@@ -1491,20 +1505,14 @@<br>
<span class="">         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].intra_pred[DC_IDX] = PFX(intra_pred_dc32_avx2);<br>
<br>
         p.pu[LUMA_48x64].satd = PFX(pixel_satd_48x64_avx2);<br>
-<br>
         p.pu[LUMA_64x16].satd = PFX(pixel_satd_64x16_avx2);<br>
         p.pu[LUMA_64x32].satd = PFX(pixel_satd_64x32_avx2);<br>
         p.pu[LUMA_64x48].satd = PFX(pixel_satd_64x48_avx2);<br>
         p.pu[LUMA_64x64].satd = PFX(pixel_satd_64x64_avx2);<br>
-<br>
-        p.pu[LUMA_32x8].satd = PFX(pixel_satd_32x8_avx2);<br>
         p.pu[LUMA_32x16].satd = PFX(pixel_satd_32x16_avx2);<br>
         p.pu[LUMA_32x24].satd = PFX(pixel_satd_32x24_avx2);<br>
         p.pu[LUMA_32x32].satd = PFX(pixel_satd_32x32_avx2);<br>
         p.pu[LUMA_32x64].satd = PFX(pixel_satd_32x64_avx2);<br>
-<br>
-        p.pu[LUMA_16x4].satd = PFX(pixel_satd_16x4_avx2);<br>
-        p.pu[LUMA_16x8].satd = PFX(pixel_satd_16x8_avx2);<br>
         p.pu[LUMA_16x12].satd = PFX(pixel_satd_16x12_avx2);<br>
         p.pu[LUMA_16x16].satd = PFX(pixel_satd_16x16_avx2);<br>
         p.pu[LUMA_16x32].satd = PFX(pixel_satd_16x32_avx2);<br>
</span>@@ -1534,8 +1542,6 @@<br>
<span class="">         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].sse_ss = PFX(pixel_ssd_ss_32x32_avx2);<br>
         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_64x64].sse_ss = PFX(pixel_ssd_ss_64x64_avx2);<br>
<br>
-        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].sse_pp = PFX(pixel_ssd_16x16_avx2);<br>
-        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].sse_pp = PFX(pixel_ssd_32x32_avx2);<br>
         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_64x64].sse_pp = PFX(pixel_ssd_64x64_avx2);<br>
         p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].sse_pp = PFX(pixel_ssd_16x16_avx2);<br>
         p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].sse_pp = PFX(pixel_ssd_32x32_avx2);<br>
</span>@@ -1546,7 +1552,6 @@<br>
<span class="">         p.quant = PFX(quant_avx2);<br>
         p.nquant = PFX(nquant_avx2);<br>
         p.dequant_normal  = PFX(dequant_normal_avx2);<br>
-        p.dequant_scaling = PFX(dequant_scaling_avx2);<br>
         p.dst4x4 = PFX(dst4_avx2);<br>
         p.idst4x4 = PFX(idst4_avx2);<br>
         p.denoiseDct = PFX(denoise_dct_avx2);<br>
</span>@@ -1565,9 +1570,17 @@<br>
<span class="">         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].blockfill_s = PFX(blockfill_s_16x16_avx2);<br>
         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].blockfill_s = PFX(blockfill_s_32x32_avx2);<br>
<br>
-        ALL_LUMA_TU(count_nonzero, count_nonzero, avx2);<br>
-        ALL_LUMA_TU_S(cpy1Dto2D_shl, cpy1Dto2D_shl_, avx2);<br>
-        ALL_LUMA_TU_S(cpy1Dto2D_shr, cpy1Dto2D_shr_, avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_8x8].count_nonzero = PFX(count_nonzero_8x8_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].count_nonzero = PFX(count_nonzero_16x16_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].count_nonzero = PFX(count_nonzero_32x32_avx2);<br>
+<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_8x8].cpy1Dto2D_shl = PFX(cpy1Dto2D_shl_8_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].cpy1Dto2D_shl = PFX(cpy1Dto2D_shl_16_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].cpy1Dto2D_shl = PFX(cpy1Dto2D_shl_32_avx2);<br>
+<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_8x8].cpy1Dto2D_shr = PFX(cpy1Dto2D_shr_8_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].cpy1Dto2D_shr = PFX(cpy1Dto2D_shr_16_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].cpy1Dto2D_shr = PFX(cpy1Dto2D_shr_32_avx2);<br>
<br>
         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_8x8].copy_cnt = PFX(copy_cnt_8_avx2);<br>
         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].copy_cnt = PFX(copy_cnt_16_avx2);<br>
</span>@@ -1581,12 +1594,12 @@<br>
<span class="">         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_16_avx2);<br>
         <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_32_avx2);<br>
<br>
-#if X265_DEPTH <= 10<br>
-        ALL_LUMA_TU_S(dct, dct, avx2);<br>
-        ALL_LUMA_TU_S(idct, idct, avx2);<br>
-#endif<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_4x4].dct = PFX(dct4_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_8x8].dct = PFX(dct8_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_4x4].idct = PFX(idct4_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_8x8].idct = PFX(idct8_avx2);<br>
</span>+<br>
         ALL_LUMA_CU_S(transpose, transpose, avx2);<br>
-<br>
         ALL_LUMA_PU(luma_vpp, interp_8tap_vert_pp, avx2);<br>
         ALL_LUMA_PU(luma_vps, interp_8tap_vert_ps, avx2);<br>
 #if X265_DEPTH <= 10<br>
@@ -1650,16 +1663,7 @@<br>
<span class="">         p.pu[LUMA_64x64].sad_x3 = PFX(pixel_sad_x3_64x64_avx2);<br>
<br>
         p.pu[LUMA_16x4].sad_x4 = PFX(pixel_sad_x4_16x4_avx2);<br>
-        p.pu[LUMA_16x8].sad_x4 = PFX(pixel_sad_x4_16x8_avx2);<br>
-        p.pu[LUMA_16x12].sad_x4 = PFX(pixel_sad_x4_16x12_avx2);<br>
-        p.pu[LUMA_16x16].sad_x4 = PFX(pixel_sad_x4_16x16_avx2);<br>
-        p.pu[LUMA_16x32].sad_x4 = PFX(pixel_sad_x4_16x32_avx2);<br>
         p.pu[LUMA_16x64].sad_x4 = PFX(pixel_sad_x4_16x64_avx2);<br>
-        p.pu[LUMA_32x8].sad_x4 = PFX(pixel_sad_x4_32x8_avx2);<br>
-        p.pu[LUMA_32x16].sad_x4 = PFX(pixel_sad_x4_32x16_avx2);<br>
-        p.pu[LUMA_32x24].sad_x4 = PFX(pixel_sad_x4_32x24_avx2);<br>
-        p.pu[LUMA_32x32].sad_x4 = PFX(pixel_sad_x4_32x32_avx2);<br>
-        p.pu[LUMA_32x64].sad_x4 = PFX(pixel_sad_x4_32x64_avx2);<br>
         p.pu[LUMA_48x64].sad_x4 = PFX(pixel_sad_x4_48x64_avx2);<br>
         p.pu[LUMA_64x16].sad_x4 = PFX(pixel_sad_x4_64x16_avx2);<br>
         p.pu[LUMA_64x32].sad_x4 = PFX(pixel_sad_x4_64x32_avx2);<br>
</span>@@ -1879,7 +1883,6 @@<br>
<span class="">         p.chroma[X265_CSP_I444].pu[LUMA_48x64].filter_hpp = PFX(interp_4tap_horiz_pp_48x64_avx2);<br>
<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].filter_vpp = PFX(interp_4tap_vert_pp_4x2_avx2);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].filter_vps = PFX(interp_4tap_vert_ps_4x2_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].filter_vsp = PFX(interp_4tap_vert_sp_4x2_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].filter_vss = PFX(interp_4tap_vert_ss_4x2_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].filter_vpp = PFX(interp_4tap_vert_pp_4x4_avx2);<br>
</span>@@ -1988,19 +1991,14 @@<br>
<span class="">         p.chroma[X265_CSP_I444].pu[LUMA_8x32].filter_vsp = PFX(interp_4tap_vert_sp_8x32_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_8x32].filter_vss = PFX(interp_4tap_vert_ss_8x32_avx2);<br>
<br>
-<br>
</span><span class="">         p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].filter_vss = PFX(interp_4tap_vert_ss_6x8_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].filter_vsp = PFX(interp_4tap_vert_sp_6x8_avx2);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].filter_vps = PFX(interp_4tap_vert_ps_6x8_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].filter_vpp = PFX(interp_4tap_vert_pp_6x8_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].filter_vpp = PFX(interp_4tap_vert_pp_12x16_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].filter_vps = PFX(interp_4tap_vert_ps_12x16_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].filter_vss = PFX(interp_4tap_vert_ss_12x16_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].filter_vsp = PFX(interp_4tap_vert_sp_12x16_avx2);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].filter_vpp = PFX(interp_4tap_vert_pp_16x4_avx2);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].filter_vpp = PFX(interp_4tap_vert_pp_16x8_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].filter_vpp = PFX(interp_4tap_vert_pp_16x12_avx2);<br>
-        p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].filter_vpp = PFX(interp_4tap_vert_pp_16x16_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].filter_vpp = PFX(interp_4tap_vert_pp_16x32_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].filter_vps = PFX(interp_4tap_vert_ps_16x4_avx2);<br>
         p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].filter_vps = PFX(interp_4tap_vert_ps_16x8_avx2);<br>
</span>@@ -2045,9 +2043,6 @@<br>
<span class="">         p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].filter_vps = PFX(interp_4tap_vert_ps_12x32_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].filter_vss = PFX(interp_4tap_vert_ss_12x32_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].filter_vsp = PFX(interp_4tap_vert_sp_12x32_avx2);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].filter_vpp = PFX(interp_4tap_vert_pp_16x8_avx2);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].filter_vpp = PFX(interp_4tap_vert_pp_16x16_avx2);<br>
-        p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].filter_vpp = PFX(interp_4tap_vert_pp_16x24_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].filter_vpp = PFX(interp_4tap_vert_pp_16x32_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].filter_vpp = PFX(interp_4tap_vert_pp_16x64_avx2);<br>
         p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].filter_vps = PFX(interp_4tap_vert_ps_16x8_avx2);<br>
</span>@@ -2089,10 +2084,7 @@<br>
<span class="">         p.chroma[X265_CSP_I444].pu[LUMA_12x16].filter_vps = PFX(interp_4tap_vert_ps_12x16_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_12x16].filter_vss = PFX(interp_4tap_vert_ss_12x16_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_12x16].filter_vsp = PFX(interp_4tap_vert_sp_12x16_avx2);<br>
-        p.chroma[X265_CSP_I444].pu[LUMA_16x4].filter_vpp = PFX(interp_4tap_vert_pp_16x4_avx2);<br>
-        p.chroma[X265_CSP_I444].pu[LUMA_16x8].filter_vpp = PFX(interp_4tap_vert_pp_16x8_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_16x12].filter_vpp = PFX(interp_4tap_vert_pp_16x12_avx2);<br>
-        p.chroma[X265_CSP_I444].pu[LUMA_16x16].filter_vpp = PFX(interp_4tap_vert_pp_16x16_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_16x32].filter_vpp = PFX(interp_4tap_vert_pp_16x32_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_16x64].filter_vpp = PFX(interp_4tap_vert_pp_16x64_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_16x4].filter_vps = PFX(interp_4tap_vert_ps_16x4_avx2);<br>
</span>@@ -2157,6 +2149,73 @@<br>
<div class="HOEnZb"><div class="h5">         p.chroma[X265_CSP_I444].pu[LUMA_64x32].filter_vsp = PFX(interp_4tap_vert_sp_64x32_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_64x48].filter_vsp = PFX(interp_4tap_vert_sp_64x48_avx2);<br>
         p.chroma[X265_CSP_I444].pu[LUMA_64x64].filter_vsp = PFX(interp_4tap_vert_sp_64x64_avx2);<br>
+<br>
+        /* The following primitives have been disabled since performance compared to SSE is negligible/negative */<br>
+#if 0<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].filter_vpp = PFX(interp_4tap_vert_pp_16x4_avx2);<br>
+        p.chroma[X265_CSP_I444].pu[LUMA_16x4].filter_vpp = PFX(interp_4tap_vert_pp_16x4_avx2);<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].filter_vpp = PFX(interp_4tap_vert_pp_16x24_avx2);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].filter_vpp = PFX(interp_4tap_vert_pp_16x8_avx2);<br>
+        p.chroma[X265_CSP_I444].pu[LUMA_16x8].filter_vpp = PFX(interp_4tap_vert_pp_16x8_avx2);<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].filter_vpp = PFX(interp_4tap_vert_pp_16x8_avx2);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].filter_vpp = PFX(interp_4tap_vert_pp_16x16_avx2);<br>
+        p.chroma[X265_CSP_I444].pu[LUMA_16x16].filter_vpp = PFX(interp_4tap_vert_pp_16x16_avx2);<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].filter_vpp = PFX(interp_4tap_vert_pp_16x16_avx2);<br>
+<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].filter_vps = PFX(interp_4tap_vert_ps_4x2_avx2);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].filter_vps = PFX(interp_4tap_vert_ps_6x8_avx2);<br>
+<br>
+        p.pu[LUMA_12x16].addAvg = PFX(addAvg_12x16_avx2);<br>
+        p.pu[LUMA_8x4].addAvg = PFX(addAvg_8x4_avx2);<br>
+        p.pu[LUMA_8x8].addAvg = PFX(addAvg_8x8_avx2);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg = PFX(addAvg_12x16_avx2);<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg = PFX(addAvg_12x32_avx2);<br>
+        p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg = PFX(addAvg_8x4_avx2);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg = PFX(addAvg_8x4_avx2);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg = PFX(addAvg_8x6_avx2);<br>
+        p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg = PFX(addAvg_8x2_avx2);<br>
+<br>
+        ALL_LUMA_TU_S(cpy1Dto2D_shl, cpy1Dto2D_shl_, avx2);<br>
+        ALL_LUMA_TU_S(cpy1Dto2D_shr, cpy1Dto2D_shr_, avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_4x4].cpy1Dto2D_shl = PFX(cpy1Dto2D_shl_4_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_4x4].cpy1Dto2D_shr = PFX(cpy1Dto2D_shr_4_avx2);<br>
+<br>
+        ALL_LUMA_TU(count_nonzero, count_nonzero, avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_4x4].count_nonzero = PFX(count_nonzero_4x4_avx2);<br>
+<br>
+        p.pu[LUMA_16x4].pixelavg_pp = PFX(pixel_avg_16x4_avx2);<br>
+        p.pu[LUMA_16x8].pixelavg_pp = PFX(pixel_avg_16x8_avx2);<br>
+        p.pu[LUMA_16x12].pixelavg_pp = PFX(pixel_avg_16x12_avx2);<br>
+        p.pu[LUMA_16x16].pixelavg_pp = PFX(pixel_avg_16x16_avx2);<br>
+        p.pu[LUMA_16x32].pixelavg_pp = PFX(pixel_avg_16x32_avx2);<br>
+        p.pu[LUMA_16x64].pixelavg_pp = PFX(pixel_avg_16x64_avx2);<br>
+<br>
+        p.pu[LUMA_32x8].satd = PFX(pixel_satd_32x8_avx2);<br>
+        p.pu[LUMA_16x4].satd = PFX(pixel_satd_16x4_avx2);<br>
+        p.pu[LUMA_16x8].satd = PFX(pixel_satd_16x8_avx2);<br>
+<br>
+        p.pu[LUMA_16x8].sad_x4 = PFX(pixel_sad_x4_16x8_avx2);<br>
+        p.pu[LUMA_16x12].sad_x4 = PFX(pixel_sad_x4_16x12_avx2);<br>
+        p.pu[LUMA_16x16].sad_x4 = PFX(pixel_sad_x4_16x16_avx2);<br>
+        p.pu[LUMA_16x32].sad_x4 = PFX(pixel_sad_x4_16x32_avx2);<br>
+        p.pu[LUMA_32x8].sad_x4 = PFX(pixel_sad_x4_32x8_avx2);<br>
+        p.pu[LUMA_32x16].sad_x4 = PFX(pixel_sad_x4_32x16_avx2);<br>
+        p.pu[LUMA_32x24].sad_x4 = PFX(pixel_sad_x4_32x24_avx2);<br>
+        p.pu[LUMA_32x32].sad_x4 = PFX(pixel_sad_x4_32x32_avx2);<br>
+        p.pu[LUMA_32x64].sad_x4 = PFX(pixel_sad_x4_32x64_avx2);<br>
+<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].sse_pp = PFX(pixel_ssd_16x16_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].sse_pp = PFX(pixel_ssd_32x32_avx2);<br>
+<br>
+        p.dequant_scaling = PFX(dequant_scaling_avx2);<br>
+<br>
+        ALL_LUMA_TU_S(dct, dct, avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].dct = PFX(dct16_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].dct = PFX(dct32_avx2);<br>
+        ALL_LUMA_TU_S(idct, idct, avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_16x16].idct = PFX(idct16_avx2);<br>
+        <a href="http://p.cu" rel="noreferrer" target="_blank">p.cu</a>[BLOCK_32x32].idct = PFX(idct32_avx2);<br>
+#endif<br>
</div></div><div class="HOEnZb"><div class="h5"> #endif<br>
<br>
         p.frameInitLowres = PFX(frame_init_lowres_core_avx2);<br>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</div></div></blockquote></div><br></div>