Add Neon implementation of std::swap_ranges by hazzlim · Pull Request #5819 · microsoft/STL (original) (raw)

std_swap_ranges<uint8_t, highly_aligned_allocator>/1

0.5x

std_swap_ranges<uint8_t, highly_aligned_allocator>/5

0.9x

std_swap_ranges<uint8_t, highly_aligned_allocator>/15

1.9x

std_swap_ranges<uint8_t, highly_aligned_allocator>/26

4.1x

std_swap_ranges<uint8_t, highly_aligned_allocator>/38

4.8x

std_swap_ranges<uint8_t, highly_aligned_allocator>/60

7.3x

std_swap_ranges<uint8_t, highly_aligned_allocator>/125

12.3x

std_swap_ranges<uint8_t, highly_aligned_allocator>/800

21.9x

std_swap_ranges<uint8_t, highly_aligned_allocator>/3000

22.4x

std_swap_ranges<uint8_t, highly_aligned_allocator>/9000

22.5x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/1

0.5x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/5

1x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/15

1.9x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/26

3.9x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/38

4.9x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/60

7.5x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/125

11.8x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/800

14.6x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/3000

15.1x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/9000

14.7x

clang-cl Speedup

std_swap_ranges<uint8_t, highly_aligned_allocator>/1

0.6x

std_swap_ranges<uint8_t, highly_aligned_allocator>/5

1.1x

std_swap_ranges<uint8_t, highly_aligned_allocator>/15

1.5x

std_swap_ranges<uint8_t, highly_aligned_allocator>/26

1.4x

std_swap_ranges<uint8_t, highly_aligned_allocator>/38

1.4x

std_swap_ranges<uint8_t, highly_aligned_allocator>/60

1.5x

std_swap_ranges<uint8_t, highly_aligned_allocator>/125

1.5x

std_swap_ranges<uint8_t, highly_aligned_allocator>/800

1x

std_swap_ranges<uint8_t, highly_aligned_allocator>/3000

1x

std_swap_ranges<uint8_t, highly_aligned_allocator>/9000

1x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/1

0.6x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/5

1.2x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/15

1.5x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/26

1x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/38

1.2x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/60

1.4x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/125

1.4x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/800

1x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/3000

1x

std_swap_ranges<uint8_t, not_highly_aligned_allocator>/9000

1.1x