Skip to content

x86: MC scaled SSSE3 (64-bit only) + minor changes to MC scaled AVX2

8-tap:

mc_scaled_8tap_regular_w2_8bpc_c: 672.1
mc_scaled_8tap_regular_w2_8bpc_ssse3: 193.2
mc_scaled_8tap_regular_w2_8bpc_avx2: 185.0
mc_scaled_8tap_regular_w2_dy1_8bpc_c: 631.0
mc_scaled_8tap_regular_w2_dy1_8bpc_ssse3: 93.9
mc_scaled_8tap_regular_w2_dy1_8bpc_avx2: 88.7
mc_scaled_8tap_regular_w2_dy2_8bpc_c: 847.0
mc_scaled_8tap_regular_w2_dy2_8bpc_ssse3: 138.2
mc_scaled_8tap_regular_w2_dy2_8bpc_avx2: 118.9

mc_scaled_8tap_regular_w4_8bpc_c: 1175.8
mc_scaled_8tap_regular_w4_8bpc_ssse3: 184.1
mc_scaled_8tap_regular_w4_8bpc_avx2: 173.6
mc_scaled_8tap_regular_w4_dy1_8bpc_c: 1085.7
mc_scaled_8tap_regular_w4_dy1_8bpc_ssse3: 120.8
mc_scaled_8tap_regular_w4_dy1_8bpc_avx2: 113.2
mc_scaled_8tap_regular_w4_dy2_8bpc_c: 1471.0
mc_scaled_8tap_regular_w4_dy2_8bpc_ssse3: 141.2
mc_scaled_8tap_regular_w4_dy2_8bpc_avx2: 117.1

mc_scaled_8tap_regular_w8_8bpc_c: 2089.8
mc_scaled_8tap_regular_w8_8bpc_ssse3: 399.2
mc_scaled_8tap_regular_w8_8bpc_avx2: 282.8
mc_scaled_8tap_regular_w8_dy1_8bpc_c: 1922.2
mc_scaled_8tap_regular_w8_dy1_8bpc_ssse3: 363.8
mc_scaled_8tap_regular_w8_dy1_8bpc_avx2: 214.9
mc_scaled_8tap_regular_w8_dy2_8bpc_c: 2728.4
mc_scaled_8tap_regular_w8_dy2_8bpc_ssse3: 354.4
mc_scaled_8tap_regular_w8_dy2_8bpc_avx2: 271.9

mc_scaled_8tap_regular_w16_8bpc_c: 4617.0
mc_scaled_8tap_regular_w16_8bpc_ssse3: 1012.3
mc_scaled_8tap_regular_w16_8bpc_avx2: 691.8
mc_scaled_8tap_regular_w16_dy1_8bpc_c: 4682.0
mc_scaled_8tap_regular_w16_dy1_8bpc_ssse3: 951.2
mc_scaled_8tap_regular_w16_dy1_8bpc_avx2: 540.4
mc_scaled_8tap_regular_w16_dy2_8bpc_c: 7036.3
mc_scaled_8tap_regular_w16_dy2_8bpc_ssse3: 903.7
mc_scaled_8tap_regular_w16_dy2_8bpc_avx2: 681.3

mc_scaled_8tap_regular_w32_8bpc_c: 14324.6
mc_scaled_8tap_regular_w32_8bpc_ssse3: 3145.5
mc_scaled_8tap_regular_w32_8bpc_avx2: 2171.8
mc_scaled_8tap_regular_w32_dy1_8bpc_c: 13437.3
mc_scaled_8tap_regular_w32_dy1_8bpc_ssse3: 2828.8
mc_scaled_8tap_regular_w32_dy1_8bpc_avx2: 1532.3
mc_scaled_8tap_regular_w32_dy2_8bpc_c: 21149.3
mc_scaled_8tap_regular_w32_dy2_8bpc_ssse3: 2703.4
mc_scaled_8tap_regular_w32_dy2_8bpc_avx2: 2116.0

mc_scaled_8tap_regular_w64_8bpc_c: 60470.0
mc_scaled_8tap_regular_w64_8bpc_ssse3: 11334.0
mc_scaled_8tap_regular_w64_8bpc_avx2: 8604.8
mc_scaled_8tap_regular_w64_dy1_8bpc_c: 35726.3
mc_scaled_8tap_regular_w64_dy1_8bpc_ssse3: 9740.5
mc_scaled_8tap_regular_w64_dy1_8bpc_avx2: 5343.6
mc_scaled_8tap_regular_w64_dy2_8bpc_c: 62578.3
mc_scaled_8tap_regular_w64_dy2_8bpc_ssse3: 9496.5
mc_scaled_8tap_regular_w64_dy2_8bpc_avx2: 7385.7

mc_scaled_8tap_regular_w128_8bpc_c: 152648.1
mc_scaled_8tap_regular_w128_8bpc_ssse3: 31854.2
mc_scaled_8tap_regular_w128_8bpc_avx2: 22784.0
mc_scaled_8tap_regular_w128_dy1_8bpc_c: 121636.6
mc_scaled_8tap_regular_w128_dy1_8bpc_ssse3: 27127.7
mc_scaled_8tap_regular_w128_dy1_8bpc_avx2: 14778.3
mc_scaled_8tap_regular_w128_dy2_8bpc_c: 197553.2
mc_scaled_8tap_regular_w128_dy2_8bpc_ssse3: 27023.1
mc_scaled_8tap_regular_w128_dy2_8bpc_avx2: 20944.9
bilin:

mc_scaled_bilinear_w2_8bpc_c: 246.6
mc_scaled_bilinear_w2_8bpc_ssse3: 190.6
mc_scaled_bilinear_w2_8bpc_avx2: 185.4
mc_scaled_bilinear_w2_dy1_8bpc_c: 230.9
mc_scaled_bilinear_w2_dy1_8bpc_ssse3: 93.3
mc_scaled_bilinear_w2_dy1_8bpc_avx2: 88.6
mc_scaled_bilinear_w2_dy2_8bpc_c: 327.6
mc_scaled_bilinear_w2_dy2_8bpc_ssse3: 138.3
mc_scaled_bilinear_w2_dy2_8bpc_avx2: 118.2

mc_scaled_bilinear_w4_8bpc_c: 421.8
mc_scaled_bilinear_w4_8bpc_ssse3: 183.6
mc_scaled_bilinear_w4_8bpc_avx2: 173.0
mc_scaled_bilinear_w4_dy1_8bpc_c: 396.1
mc_scaled_bilinear_w4_dy1_8bpc_ssse3: 120.7
mc_scaled_bilinear_w4_dy1_8bpc_avx2: 113.1
mc_scaled_bilinear_w4_dy2_8bpc_c: 564.1
mc_scaled_bilinear_w4_dy2_8bpc_ssse3: 141.7
mc_scaled_bilinear_w4_dy2_8bpc_avx2: 117.1

mc_scaled_bilinear_w8_8bpc_c: 585.6
mc_scaled_bilinear_w8_8bpc_ssse3: 398.8
mc_scaled_bilinear_w8_8bpc_avx2: 281.8
mc_scaled_bilinear_w8_dy1_8bpc_c: 516.2
mc_scaled_bilinear_w8_dy1_8bpc_ssse3: 363.5
mc_scaled_bilinear_w8_dy1_8bpc_avx2: 213.4
mc_scaled_bilinear_w8_dy2_8bpc_c: 842.4
mc_scaled_bilinear_w8_dy2_8bpc_ssse3: 354.7
mc_scaled_bilinear_w8_dy2_8bpc_avx2: 272.1

mc_scaled_bilinear_w16_8bpc_c: 1306.8
mc_scaled_bilinear_w16_8bpc_ssse3: 1010.9
mc_scaled_bilinear_w16_8bpc_avx2: 698.9
mc_scaled_bilinear_w16_dy1_8bpc_c: 1334.2
mc_scaled_bilinear_w16_dy1_8bpc_ssse3: 956.5
mc_scaled_bilinear_w16_dy1_8bpc_avx2: 535.4
mc_scaled_bilinear_w16_dy2_8bpc_c: 2288.2
mc_scaled_bilinear_w16_dy2_8bpc_ssse3: 901.6
mc_scaled_bilinear_w16_dy2_8bpc_avx2: 686.0

mc_scaled_bilinear_w32_8bpc_c: 4437.5
mc_scaled_bilinear_w32_8bpc_ssse3: 3152.2
mc_scaled_bilinear_w32_8bpc_avx2: 2198.6
mc_scaled_bilinear_w32_dy1_8bpc_c: 4036.0
mc_scaled_bilinear_w32_dy1_8bpc_ssse3: 2848.7
mc_scaled_bilinear_w32_dy1_8bpc_avx2: 1542.0
mc_scaled_bilinear_w32_dy2_8bpc_c: 7097.9
mc_scaled_bilinear_w32_dy2_8bpc_ssse3: 2700.2
mc_scaled_bilinear_w32_dy2_8bpc_avx2: 2058.0

mc_scaled_bilinear_w64_8bpc_c: 21062.3
mc_scaled_bilinear_w64_8bpc_ssse3: 11309.5
mc_scaled_bilinear_w64_8bpc_avx2: 8557.0
mc_scaled_bilinear_w64_dy1_8bpc_c: 14103.3
mc_scaled_bilinear_w64_dy1_8bpc_ssse3: 9755.9
mc_scaled_bilinear_w64_dy1_8bpc_avx2: 5297.6
mc_scaled_bilinear_w64_dy2_8bpc_c: 25232.0
mc_scaled_bilinear_w64_dy2_8bpc_ssse3: 9510.5
mc_scaled_bilinear_w64_dy2_8bpc_avx2: 7376.5

mc_scaled_bilinear_w128_8bpc_c: 49186.3
mc_scaled_bilinear_w128_8bpc_ssse3: 31919.3
mc_scaled_bilinear_w128_8bpc_avx2: 22853.6
mc_scaled_bilinear_w128_dy1_8bpc_c: 37405.7
mc_scaled_bilinear_w128_dy1_8bpc_ssse3: 27204.5
mc_scaled_bilinear_w128_dy1_8bpc_avx2: 15100.9
mc_scaled_bilinear_w128_dy2_8bpc_c: 67103.9
mc_scaled_bilinear_w128_dy2_8bpc_ssse3: 26962.9
mc_scaled_bilinear_w128_dy2_8bpc_avx2: 20800.8
Edited by Victorien Le Couviour--Tuffet

Merge request reports