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.995003
64*512	0.960018
64*4096	0.87416
64*32768	0.873534
512*64	0.881017
512*512	0.910166
512*4096	0.86552
512*32768	0.864772
4096*64	0.87316
4096*512	0.864518
4096*4096	0.943572
4096*32768	0.863203
32768*64	0.873534
32768*512	0.863762
32768*4096	0.914293
32768*32768	0.862405