Skip to content

x86: Add high bitdepth mc AVX-512 (Ice Lake) asm

Henrik Gramner requested to merge gramner/dav1d:avx512icl_10bpc into master
avg_w4_16bpc_avx2: 13.3
avg_w4_16bpc_avx512icl: 9.7
avg_w8_16bpc_avx2: 19.1
avg_w8_16bpc_avx512icl: 17.1
avg_w16_16bpc_avx2: 41.0
avg_w16_16bpc_avx512icl: 37.8
avg_w32_16bpc_avx2: 145.5
avg_w32_16bpc_avx512icl: 143.0
avg_w64_16bpc_avx2: 350.9
avg_w64_16bpc_avx512icl: 345.7
avg_w128_16bpc_avx2: 1486.2
avg_w128_16bpc_avx512icl: 1386.7

blend_h_w2_16bpc_avx2: 18.0
blend_h_w2_16bpc_avx512icl: 18.0
blend_h_w4_16bpc_avx2: 17.8
blend_h_w4_16bpc_avx512icl: 17.3
blend_h_w8_16bpc_avx2: 18.8
blend_h_w8_16bpc_avx512icl: 18.3
blend_h_w16_16bpc_avx2: 19.7
blend_h_w16_16bpc_avx512icl: 18.4
blend_h_w32_16bpc_avx2: 30.1
blend_h_w32_16bpc_avx512icl: 21.5
blend_h_w64_16bpc_avx2: 43.6
blend_h_w64_16bpc_avx512icl: 34.7
blend_h_w128_16bpc_avx2: 95.3
blend_h_w128_16bpc_avx512icl: 70.3

blend_v_w2_16bpc_avx2: 30.9
blend_v_w2_16bpc_avx512icl: 30.8
blend_v_w4_16bpc_avx2: 41.2
blend_v_w4_16bpc_avx512icl: 41.3
blend_v_w8_16bpc_avx2: 45.0
blend_v_w8_16bpc_avx512icl: 45.1
blend_v_w16_16bpc_avx2: 49.0
blend_v_w16_16bpc_avx512icl: 44.3
blend_v_w32_16bpc_avx2: 77.8
blend_v_w32_16bpc_avx512icl: 56.0

blend_w4_16bpc_avx2: 16.9
blend_w4_16bpc_avx512icl: 16.2
blend_w8_16bpc_avx2: 17.5
blend_w8_16bpc_avx512icl: 17.5
blend_w16_16bpc_avx2: 33.1
blend_w16_16bpc_avx512icl: 28.3
blend_w32_16bpc_avx2: 80.6
blend_w32_16bpc_avx512icl: 54.4

mask_w4_16bpc_avx2: 31.4
mask_w4_16bpc_avx512icl: 24.9
mask_w8_16bpc_avx2: 47.0
mask_w8_16bpc_avx512icl: 32.1
mask_w16_16bpc_avx2: 114.2
mask_w16_16bpc_avx512icl: 67.5
mask_w32_16bpc_avx2: 412.0
mask_w32_16bpc_avx512icl: 241.0
mask_w64_16bpc_avx2: 973.9
mask_w64_16bpc_avx512icl: 645.0
mask_w128_16bpc_avx2: 2446.4
mask_w128_16bpc_avx512icl: 1832.4

mc_8tap_regular_w2_0_16bpc_avx2: 14.4
mc_8tap_regular_w2_0_16bpc_avx512icl: 14.5
mc_8tap_regular_w2_h_16bpc_avx2: 32.9
mc_8tap_regular_w2_h_16bpc_avx512icl: 29.9
mc_8tap_regular_w2_hv_16bpc_avx2: 71.2
mc_8tap_regular_w2_hv_16bpc_avx512icl: 57.3
mc_8tap_regular_w2_v_16bpc_avx2: 43.1
mc_8tap_regular_w2_v_16bpc_avx512icl: 38.0
mc_8tap_regular_w4_0_16bpc_avx2: 14.6
mc_8tap_regular_w4_0_16bpc_avx512icl: 14.7
mc_8tap_regular_w4_h_16bpc_avx2: 34.3
mc_8tap_regular_w4_h_16bpc_avx512icl: 31.8
mc_8tap_regular_w4_hv_16bpc_avx2: 72.7
mc_8tap_regular_w4_hv_16bpc_avx512icl: 56.9
mc_8tap_regular_w4_v_16bpc_avx2: 43.8
mc_8tap_regular_w4_v_16bpc_avx512icl: 38.1
mc_8tap_regular_w8_0_16bpc_avx2: 14.2
mc_8tap_regular_w8_0_16bpc_avx512icl: 14.4
mc_8tap_regular_w8_h_16bpc_avx2: 65.6
mc_8tap_regular_w8_h_16bpc_avx512icl: 44.1
mc_8tap_regular_w8_hv_16bpc_avx2: 166.8
mc_8tap_regular_w8_hv_16bpc_avx512icl: 82.6
mc_8tap_regular_w8_v_16bpc_avx2: 60.9
mc_8tap_regular_w8_v_16bpc_avx512icl: 45.0
mc_8tap_regular_w16_0_16bpc_avx2: 21.1
mc_8tap_regular_w16_0_16bpc_avx512icl: 21.1
mc_8tap_regular_w16_h_16bpc_avx2: 144.4
mc_8tap_regular_w16_h_16bpc_avx512icl: 82.6
mc_8tap_regular_w16_hv_16bpc_avx2: 410.6
mc_8tap_regular_w16_hv_16bpc_avx512icl: 176.6
mc_8tap_regular_w16_v_16bpc_avx2: 146.0
mc_8tap_regular_w16_v_16bpc_avx512icl: 89.1
mc_8tap_regular_w32_0_16bpc_avx2: 48.5
mc_8tap_regular_w32_0_16bpc_avx512icl: 40.7
mc_8tap_regular_w32_h_16bpc_avx2: 419.7
mc_8tap_regular_w32_h_16bpc_avx512icl: 243.2
mc_8tap_regular_w32_hv_16bpc_avx2: 1193.8
mc_8tap_regular_w32_hv_16bpc_avx512icl: 473.9
mc_8tap_regular_w32_v_16bpc_avx2: 429.2
mc_8tap_regular_w32_v_16bpc_avx512icl: 240.7
mc_8tap_regular_w64_0_16bpc_avx2: 169.5
mc_8tap_regular_w64_0_16bpc_avx512icl: 139.0
mc_8tap_regular_w64_h_16bpc_avx2: 1517.7
mc_8tap_regular_w64_h_16bpc_avx512icl: 845.0
mc_8tap_regular_w64_hv_16bpc_avx2: 4033.1
mc_8tap_regular_w64_hv_16bpc_avx512icl: 1604.6
mc_8tap_regular_w64_v_16bpc_avx2: 1483.6
mc_8tap_regular_w64_v_16bpc_avx512icl: 841.4
mc_8tap_regular_w128_0_16bpc_avx2: 771.5
mc_8tap_regular_w128_0_16bpc_avx512icl: 697.1
mc_8tap_regular_w128_h_16bpc_avx2: 4258.1
mc_8tap_regular_w128_h_16bpc_avx512icl: 2369.5
mc_8tap_regular_w128_hv_16bpc_avx2: 11284.0
mc_8tap_regular_w128_hv_16bpc_avx512icl: 4475.9
mc_8tap_regular_w128_v_16bpc_avx2: 4420.5
mc_8tap_regular_w128_v_16bpc_avx512icl: 2378.4

mc_bilinear_w2_0_16bpc_avx2: 13.6
mc_bilinear_w2_0_16bpc_avx512icl: 13.5
mc_bilinear_w2_h_16bpc_avx2: 23.9
mc_bilinear_w2_h_16bpc_avx512icl: 23.7
mc_bilinear_w2_hv_16bpc_avx2: 39.4
mc_bilinear_w2_hv_16bpc_avx512icl: 40.0
mc_bilinear_w2_v_16bpc_avx2: 21.6
mc_bilinear_w2_v_16bpc_avx512icl: 21.1
mc_bilinear_w4_0_16bpc_avx2: 13.2
mc_bilinear_w4_0_16bpc_avx512icl: 13.2
mc_bilinear_w4_h_16bpc_avx2: 24.7
mc_bilinear_w4_h_16bpc_avx512icl: 23.7
mc_bilinear_w4_hv_16bpc_avx2: 38.6
mc_bilinear_w4_hv_16bpc_avx512icl: 38.2
mc_bilinear_w4_v_16bpc_avx2: 20.7
mc_bilinear_w4_v_16bpc_avx512icl: 19.8
mc_bilinear_w8_0_16bpc_avx2: 13.1
mc_bilinear_w8_0_16bpc_avx512icl: 13.1
mc_bilinear_w8_h_16bpc_avx2: 25.2
mc_bilinear_w8_h_16bpc_avx512icl: 24.8
mc_bilinear_w8_hv_16bpc_avx2: 41.5
mc_bilinear_w8_hv_16bpc_avx512icl: 41.8
mc_bilinear_w8_v_16bpc_avx2: 22.4
mc_bilinear_w8_v_16bpc_avx512icl: 22.2
mc_bilinear_w16_0_16bpc_avx2: 20.1
mc_bilinear_w16_0_16bpc_avx512icl: 20.0
mc_bilinear_w16_h_16bpc_avx2: 37.2
mc_bilinear_w16_h_16bpc_avx512icl: 37.6
mc_bilinear_w16_hv_16bpc_avx2: 68.5
mc_bilinear_w16_hv_16bpc_avx512icl: 58.4
mc_bilinear_w16_v_16bpc_avx2: 33.1
mc_bilinear_w16_v_16bpc_avx512icl: 31.2
mc_bilinear_w32_0_16bpc_avx2: 51.0
mc_bilinear_w32_0_16bpc_avx512icl: 40.5
mc_bilinear_w32_h_16bpc_avx2: 99.6
mc_bilinear_w32_h_16bpc_avx512icl: 83.7
mc_bilinear_w32_hv_16bpc_avx2: 193.3
mc_bilinear_w32_hv_16bpc_avx512icl: 126.3
mc_bilinear_w32_v_16bpc_avx2: 71.6
mc_bilinear_w32_v_16bpc_avx512icl: 56.5
mc_bilinear_w64_0_16bpc_avx2: 169.4
mc_bilinear_w64_0_16bpc_avx512icl: 137.0
mc_bilinear_w64_h_16bpc_avx2: 350.1
mc_bilinear_w64_h_16bpc_avx512icl: 294.2
mc_bilinear_w64_hv_16bpc_avx2: 663.0
mc_bilinear_w64_hv_16bpc_avx512icl: 429.6
mc_bilinear_w64_v_16bpc_avx2: 289.9
mc_bilinear_w64_v_16bpc_avx512icl: 193.1
mc_bilinear_w128_0_16bpc_avx2: 771.5
mc_bilinear_w128_0_16bpc_avx512icl: 698.8
mc_bilinear_w128_h_16bpc_avx2: 1204.1
mc_bilinear_w128_h_16bpc_avx512icl: 963.8
mc_bilinear_w128_hv_16bpc_avx2: 2047.6
mc_bilinear_w128_hv_16bpc_avx512icl: 1272.5
mc_bilinear_w128_v_16bpc_avx2: 1230.8
mc_bilinear_w128_v_16bpc_avx512icl: 765.2

mct_8tap_regular_w4_0_16bpc_avx2: 13.0
mct_8tap_regular_w4_0_16bpc_avx512icl: 13.1
mct_8tap_regular_w4_h_16bpc_avx2: 20.6
mct_8tap_regular_w4_h_16bpc_avx512icl: 18.8
mct_8tap_regular_w4_hv_16bpc_avx2: 56.9
mct_8tap_regular_w4_hv_16bpc_avx512icl: 40.8
mct_8tap_regular_w4_v_16bpc_avx2: 33.1
mct_8tap_regular_w4_v_16bpc_avx512icl: 27.6
mct_8tap_regular_w8_0_16bpc_avx2: 16.7
mct_8tap_regular_w8_0_16bpc_avx512icl: 16.7
mct_8tap_regular_w8_h_16bpc_avx2: 68.9
mct_8tap_regular_w8_h_16bpc_avx512icl: 38.7
mct_8tap_regular_w8_hv_16bpc_avx2: 181.0
mct_8tap_regular_w8_hv_16bpc_avx512icl: 78.9
mct_8tap_regular_w8_v_16bpc_avx2: 67.1
mct_8tap_regular_w8_v_16bpc_avx512icl: 40.7
mct_8tap_regular_w16_0_16bpc_avx2: 29.3
mct_8tap_regular_w16_0_16bpc_avx512icl: 28.5
mct_8tap_regular_w16_h_16bpc_avx2: 177.9
mct_8tap_regular_w16_h_16bpc_avx512icl: 101.2
mct_8tap_regular_w16_hv_16bpc_avx2: 502.6
mct_8tap_regular_w16_hv_16bpc_avx512icl: 197.9
mct_8tap_regular_w16_v_16bpc_avx2: 188.3
mct_8tap_regular_w16_v_16bpc_avx512icl: 93.1
mct_8tap_regular_w32_0_16bpc_avx2: 97.5
mct_8tap_regular_w32_0_16bpc_avx512icl: 79.0
mct_8tap_regular_w32_h_16bpc_avx2: 664.5
mct_8tap_regular_w32_h_16bpc_avx512icl: 330.6
mct_8tap_regular_w32_hv_16bpc_avx2: 1875.9
mct_8tap_regular_w32_hv_16bpc_avx512icl: 667.7
mct_8tap_regular_w32_v_16bpc_avx2: 687.4
mct_8tap_regular_w32_v_16bpc_avx512icl: 297.5
mct_8tap_regular_w64_0_16bpc_avx2: 229.9
mct_8tap_regular_w64_0_16bpc_avx512icl: 185.9
mct_8tap_regular_w64_h_16bpc_avx2: 1657.7
mct_8tap_regular_w64_h_16bpc_avx512icl: 791.7
mct_8tap_regular_w64_hv_16bpc_avx2: 4357.6
mct_8tap_regular_w64_hv_16bpc_avx512icl: 1612.3
mct_8tap_regular_w64_v_16bpc_avx2: 1645.5
mct_8tap_regular_w64_v_16bpc_avx512icl: 709.4
mct_8tap_regular_w128_0_16bpc_avx2: 800.0
mct_8tap_regular_w128_0_16bpc_avx512icl: 721.5
mct_8tap_regular_w128_h_16bpc_avx2: 4078.0
mct_8tap_regular_w128_h_16bpc_avx512icl: 2029.6
mct_8tap_regular_w128_hv_16bpc_avx2: 10947.2
mct_8tap_regular_w128_hv_16bpc_avx512icl: 4017.2
mct_8tap_regular_w128_v_16bpc_avx2: 4351.6
mct_8tap_regular_w128_v_16bpc_avx512icl: 1804.9

mct_bilinear_w4_0_16bpc_avx2: 12.0
mct_bilinear_w4_0_16bpc_avx512icl: 11.8
mct_bilinear_w4_h_16bpc_avx2: 16.0
mct_bilinear_w4_h_16bpc_avx512icl: 14.7
mct_bilinear_w4_hv_16bpc_avx2: 22.5
mct_bilinear_w4_hv_16bpc_avx512icl: 22.1
mct_bilinear_w4_v_16bpc_avx2: 14.6
mct_bilinear_w4_v_16bpc_avx512icl: 14.7
mct_bilinear_w8_0_16bpc_avx2: 16.1
mct_bilinear_w8_0_16bpc_avx512icl: 16.0
mct_bilinear_w8_h_16bpc_avx2: 28.5
mct_bilinear_w8_h_16bpc_avx512icl: 22.0
mct_bilinear_w8_hv_16bpc_avx2: 39.1
mct_bilinear_w8_hv_16bpc_avx512icl: 30.9
mct_bilinear_w8_v_16bpc_avx2: 25.2
mct_bilinear_w8_v_16bpc_avx512icl: 19.6
mct_bilinear_w16_0_16bpc_avx2: 28.4
mct_bilinear_w16_0_16bpc_avx512icl: 28.5
mct_bilinear_w16_h_16bpc_avx2: 46.9
mct_bilinear_w16_h_16bpc_avx512icl: 46.4
mct_bilinear_w16_hv_16bpc_avx2: 73.1
mct_bilinear_w16_hv_16bpc_avx512icl: 61.7
mct_bilinear_w16_v_16bpc_avx2: 47.4
mct_bilinear_w16_v_16bpc_avx512icl: 38.2
mct_bilinear_w32_0_16bpc_avx2: 97.9
mct_bilinear_w32_0_16bpc_avx512icl: 78.1
mct_bilinear_w32_h_16bpc_avx2: 177.9
mct_bilinear_w32_h_16bpc_avx512icl: 135.9
mct_bilinear_w32_hv_16bpc_avx2: 259.1
mct_bilinear_w32_hv_16bpc_avx512icl: 174.0
mct_bilinear_w32_v_16bpc_avx2: 177.1
mct_bilinear_w32_v_16bpc_avx512icl: 114.3
mct_bilinear_w64_0_16bpc_avx2: 229.7
mct_bilinear_w64_0_16bpc_avx512icl: 184.8
mct_bilinear_w64_h_16bpc_avx2: 400.2
mct_bilinear_w64_h_16bpc_avx512icl: 331.7
mct_bilinear_w64_hv_16bpc_avx2: 615.6
mct_bilinear_w64_hv_16bpc_avx512icl: 414.3
mct_bilinear_w64_v_16bpc_avx2: 413.9
mct_bilinear_w64_v_16bpc_avx512icl: 267.6
mct_bilinear_w128_0_16bpc_avx2: 797.9
mct_bilinear_w128_0_16bpc_avx512icl: 719.3
mct_bilinear_w128_h_16bpc_avx2: 1206.6
mct_bilinear_w128_h_16bpc_avx512icl: 959.4
mct_bilinear_w128_hv_16bpc_avx2: 1723.2
mct_bilinear_w128_hv_16bpc_avx512icl: 1075.6
mct_bilinear_w128_v_16bpc_avx2: 1316.3
mct_bilinear_w128_v_16bpc_avx512icl: 851.8

w_avg_w4_16bpc_avx2: 19.9
w_avg_w4_16bpc_avx512icl: 15.6
w_avg_w8_16bpc_avx2: 31.0
w_avg_w8_16bpc_avx512icl: 23.4
w_avg_w16_16bpc_avx2: 71.4
w_avg_w16_16bpc_avx512icl: 50.4
w_avg_w32_16bpc_avx2: 261.2
w_avg_w32_16bpc_avx512icl: 179.5
w_avg_w64_16bpc_avx2: 620.9
w_avg_w64_16bpc_avx512icl: 434.5
w_avg_w128_16bpc_avx2: 1802.9
w_avg_w128_16bpc_avx512icl: 1485.5

w_mask_420_w4_16bpc_avx2: 34.3
w_mask_420_w4_16bpc_avx512icl: 19.4
w_mask_420_w8_16bpc_avx2: 57.2
w_mask_420_w8_16bpc_avx512icl: 32.8
w_mask_420_w16_16bpc_avx2: 150.2
w_mask_420_w16_16bpc_avx512icl: 88.6
w_mask_420_w32_16bpc_avx2: 543.1
w_mask_420_w32_16bpc_avx512icl: 339.3
w_mask_420_w64_16bpc_avx2: 1306.6
w_mask_420_w64_16bpc_avx512icl: 820.5
w_mask_420_w128_16bpc_avx2: 3246.2
w_mask_420_w128_16bpc_avx512icl: 2040.8

w_mask_422_w4_16bpc_avx2: 33.8
w_mask_422_w4_16bpc_avx512icl: 18.6
w_mask_422_w8_16bpc_avx2: 55.9
w_mask_422_w8_16bpc_avx512icl: 33.2
w_mask_422_w16_16bpc_avx2: 141.9
w_mask_422_w16_16bpc_avx512icl: 91.1
w_mask_422_w32_16bpc_avx2: 535.6
w_mask_422_w32_16bpc_avx512icl: 357.1
w_mask_422_w64_16bpc_avx2: 1293.0
w_mask_422_w64_16bpc_avx512icl: 863.2
w_mask_422_w128_16bpc_avx2: 3261.2
w_mask_422_w128_16bpc_avx512icl: 2148.4

w_mask_444_w4_16bpc_avx2: 24.5
w_mask_444_w4_16bpc_avx512icl: 18.2
w_mask_444_w8_16bpc_avx2: 48.9
w_mask_444_w8_16bpc_avx512icl: 31.0
w_mask_444_w16_16bpc_avx2: 133.0
w_mask_444_w16_16bpc_avx512icl: 82.9
w_mask_444_w32_16bpc_avx2: 506.9
w_mask_444_w32_16bpc_avx512icl: 321.9
w_mask_444_w64_16bpc_avx2: 1265.5
w_mask_444_w64_16bpc_avx512icl: 797.3
w_mask_444_w128_16bpc_avx2: 3216.8
w_mask_444_w128_16bpc_avx512icl: 2172.5

warp_8x8_16bpc_avx2: 239.7
warp_8x8_16bpc_avx512icl: 125.6

warp_8x8t_16bpc_avx2: 233.5
warp_8x8t_16bpc_avx512icl: 124.5

Merge request reports