// File: wichtounet[P]articles/src/vector_list_update_1/bench.cpp
// Function: bench_random_remove<Trivial<8>>::run()
static void run(){
        new_graph<T>("random_remove", "us");

        auto sizes = {10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000};
        bench<std::vector<T>, microseconds, FilledRandom, Erase>("vector", sizes);
        bench<std::list<T>,   microseconds, FilledRandom, Erase>("list",   sizes);
        bench<std::deque<T>,  microseconds, FilledRandom, Erase>("deque",  sizes);
        bench<plf::colony<T>,  microseconds, FilledRandomInsert, Erase>("colony",  sizes);

        bench<std::vector<T>, microseconds, FilledRandom, RemoveErase>("vector_rem", sizes);
        bench<std::list<T>,   microseconds, FilledRandom, RemoveErase>("list_rem",   sizes);
        bench<std::deque<T>,  microseconds, FilledRandom, RemoveErase>("deque_rem",  sizes);
        bench<plf::colony<T>,  microseconds, FilledRandomInsert, RemoveErase>("colony_rem",  sizes);
    }

// Assembly:
subq $0x228, %rsp            # imm = 0x228
leaq 0x207(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x5370
movq 0x48(%rsp), %rdx
leaq 0xd5d1f(%rip), %rsi     # 0x17f624
leaq 0x208(%rsp), %rdi
callq 0x52a0
jmp 0xa9914
leaq 0x1cf(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x5370
movq 0x40(%rsp), %rdx
leaq 0xd5b9c(%rip), %rsi     # 0x17f4ce
leaq 0x1d0(%rsp), %rdi
callq 0x52a0
jmp 0xa9941
leaq 0x208(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x12830
jmp 0xa9958
leaq 0x1d0(%rsp), %rdi
callq 0x5150
leaq 0x1cf(%rsp), %rdi
callq 0x5240
leaq 0x208(%rsp), %rdi
callq 0x5150
leaq 0x207(%rsp), %rdi
callq 0x5240
movabsq $0x186a000015f90, %rax  # imm = 0x186A000015F90
movq %rax, 0x1b0(%rsp)
vmovdqu 0xd65c6(%rip), %ymm0    # 0x17ff6c
vmovdqu %ymm0, 0x190(%rsp)
leaq 0x190(%rsp), %rax
movq %rax, 0x1b8(%rsp)
movq $0xa, 0x1c0(%rsp)
leaq 0x16f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
vzeroupper
callq 0x5370
movq 0x38(%rsp), %rdx
leaq 0xd5ae5(%rip), %rsi     # 0x17f4d1
leaq 0x170(%rsp), %rdi
callq 0x52a0
jmp 0xa99fb
leaq 0x170(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xa9f80
jmp 0xa9a12
leaq 0x170(%rsp), %rdi
callq 0x5150
leaq 0x16f(%rsp), %rdi
callq 0x5240
leaq 0x147(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x5370
movq 0x30(%rsp), %rdx
leaq 0xd5a8e(%rip), %rsi     # 0x17f4d8
leaq 0x148(%rsp), %rdi
callq 0x52a0
jmp 0xa9a59
leaq 0x148(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xaa1b0
jmp 0xa9a70
leaq 0x148(%rsp), %rdi
callq 0x5150
leaq 0x147(%rsp), %rdi
callq 0x5240
leaq 0x11f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x5370
movq 0x28(%rsp), %rdx
leaq 0xd5a35(%rip), %rsi     # 0x17f4dd
leaq 0x120(%rsp), %rdi
callq 0x52a0
jmp 0xa9ab7
leaq 0x120(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xaa3e0
jmp 0xa9ace
leaq 0x120(%rsp), %rdi
callq 0x5150
leaq 0x11f(%rsp), %rdi
callq 0x5240
leaq 0xf7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x5370
movq 0x20(%rsp), %rdx
leaq 0xd59ec(%rip), %rsi     # 0x17f4f2
leaq 0xf8(%rsp), %rdi
callq 0x52a0
jmp 0xa9b15
leaq 0xf8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xaa620
jmp 0xa9b2c
leaq 0xf8(%rsp), %rdi
callq 0x5150
leaq 0xf7(%rsp), %rdi
callq 0x5240
leaq 0xcf(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x5370
movq 0x18(%rsp), %rdx
leaq 0xd5ace(%rip), %rsi     # 0x17f632
leaq 0xd0(%rsp), %rdi
callq 0x52a0
jmp 0xa9b73
leaq 0xd0(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xaa860
jmp 0xa9b8a
leaq 0xd0(%rsp), %rdi
callq 0x5150
leaq 0xcf(%rsp), %rdi
callq 0x5240
leaq 0xa7(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x5370
movq 0x10(%rsp), %rdx
leaq 0xd5a7b(%rip), %rsi     # 0x17f63d
leaq 0xa8(%rsp), %rdi
callq 0x52a0
jmp 0xa9bd1
leaq 0xa8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xaaa90
jmp 0xa9be8
leaq 0xa8(%rsp), %rdi
callq 0x5150
leaq 0xa7(%rsp), %rdi
callq 0x5240
leaq 0x7f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x5370
movq 0x8(%rsp), %rdx
leaq 0xd5a29(%rip), %rsi     # 0x17f646
leaq 0x80(%rsp), %rdi
callq 0x52a0
jmp 0xa9c2c
leaq 0x80(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xaacc0
jmp 0xa9c43
leaq 0x80(%rsp), %rdi
callq 0x5150
leaq 0x7f(%rsp), %rdi
callq 0x5240
leaq 0x57(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x5370
movq (%rsp), %rdx
leaq 0xd59dd(%rip), %rsi     # 0x17f650
leaq 0x58(%rsp), %rdi
callq 0x52a0
jmp 0xa9c7f
leaq 0x58(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xaaf00
jmp 0xa9c93
leaq 0x58(%rsp), %rdi
callq 0x5150
leaq 0x57(%rsp), %rdi
callq 0x5240
addq $0x228, %rsp            # imm = 0x228
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9d16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9cfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x1d0(%rsp), %rdi
callq 0x5150
leaq 0x1cf(%rsp), %rdi
callq 0x5240
leaq 0x208(%rsp), %rdi
callq 0x5150
leaq 0x207(%rsp), %rdi
callq 0x5240
jmp 0xa9f5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9d5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x170(%rsp), %rdi
callq 0x5150
leaq 0x16f(%rsp), %rdi
callq 0x5240
jmp 0xa9f5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9da8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x148(%rsp), %rdi
callq 0x5150
leaq 0x147(%rsp), %rdi
callq 0x5240
jmp 0xa9f5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9df1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x5150
leaq 0x11f(%rsp), %rdi
callq 0x5240
jmp 0xa9f5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9e3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0x5150
leaq 0xf7(%rsp), %rdi
callq 0x5240
jmp 0xa9f5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9e83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x5150
leaq 0xcf(%rsp), %rdi
callq 0x5240
jmp 0xa9f5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9ecc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x5150
leaq 0xa7(%rsp), %rdi
callq 0x5240
jmp 0xa9f5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9f15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x5150
leaq 0x7f(%rsp), %rdi
callq 0x5240
jmp 0xa9f5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0xa9f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x5150
leaq 0x57(%rsp), %rdi
callq 0x5240
movq 0x1f8(%rsp), %rdi
callq 0x5360
nopl (%rax)