DU Results -

Source patches

du4levenstein.hpp

275a276,277
> const policy_sse::stripe_t policy_sse::ones = policy_sse::stripe_bcast(1);
> 
313a316,317
> const policy_avx::stripe_t policy_avx::ones = policy_avx::stripe_bcast(1);
> const policy_avx::stripe_t policy_avx::shift_right = _mm256_set_epi32(6, 5, 4, 3, 2, 1, 0, 7);
356a361,364
> const policy_avx512::stripe_t policy_avx512::zeroes = _mm512_setzero_si512();
> const policy_avx512::stripe_t policy_avx512::ones = policy_avx512::stripe_bcast(1);
> const policy_avx512::stripe_t policy_avx512::shift_right = _mm512_set_epi32(14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 15);
> const __mmask16 policy_avx512::only_right = _mm512_int2mask(0x0001);

du4levenstein.cpp

3,14d2
< const policy_sse::stripe_t policy_sse::ones = policy_sse::stripe_bcast(1);
< #ifdef USE_AVX
< const policy_avx::stripe_t policy_avx::ones = policy_avx::stripe_bcast(1);
< const policy_avx::stripe_t policy_avx::shift_right = _mm256_set_epi32(6, 5, 4, 3, 2, 1, 0, 7);
< #endif
< #ifdef USE_AVX512
< const policy_avx512::stripe_t policy_avx512::zeroes = _mm512_setzero_si512();
< const policy_avx512::stripe_t policy_avx512::ones = policy_avx512::stripe_bcast(1);
< const policy_avx512::stripe_t policy_avx512::shift_right = _mm512_set_epi32(14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 15);
< const __mmask16 policy_avx512::only_right = _mm512_int2mask(0x0001);
< #endif
< 

Flex error reports

C++ error reports

Linker error reports

Run output diffs

empty.in

size	levenstein/du4_random
64*64	0.940002
64*512	0.761014
64*4096	0.755138
64*32768	0.766345
512*64	0.763014
512*512	0.754138
512*4096	0.749316
512*32768	0.749604
4096*64	0.754138
4096*512	0.748314
4096*4096	0.747584
4096*32768	0.749316
32768*64	0.756328
32768*512	0.748594
32768*4096	0.748251
32768*32768	0.747852