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

        auto sizes = { 100000, 200000, 300000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000 };
        bench<std::vector<T>, microseconds, Empty, FillBack>("vector", sizes);
        bench<std::list<T>,   microseconds, Empty, FillBack>("list",   sizes);
        bench<std::deque<T>,  microseconds, Empty, FillBack>("deque",  sizes);

        bench<std::vector<T>, microseconds, Empty, ReserveSize, FillBack>("vector_reserve", sizes);

        bench<plf::colony<T>, microseconds, Empty, InsertSimple>("colony",  sizes);
        bench<plf::colony<T>, microseconds, Empty, ReserveSize, InsertSimple>("colony_reserve", sizes);

        bench<plf::colony<T,std::allocator<T>, unsigned int>, microseconds, Empty, InsertSimple>("colony",  sizes);
        bench<plf::colony<T,std::allocator<T>, unsigned int>, microseconds, Empty, ReserveSize, InsertSimple>("colony_reserve", sizes);
    }

// Assembly:
subq $0x228, %rsp            # imm = 0x228
leaq 0x207(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x5370
movq 0x48(%rsp), %rdx
leaq 0x16d30f(%rip), %rsi    # 0x17f4c4
leaq 0x208(%rsp), %rdi
callq 0x52a0
jmp 0x121c4
leaq 0x1cf(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x5370
movq 0x40(%rsp), %rdx
leaq 0x16d2ec(%rip), %rsi    # 0x17f4ce
leaq 0x1d0(%rsp), %rdi
callq 0x52a0
jmp 0x121f1
leaq 0x208(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x12830
jmp 0x12208
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 $0xf4240000dbba0, %rax  # imm = 0xF4240000DBBA0
movq %rax, 0x1b0(%rsp)
vmovdqu 0x16d456(%rip), %ymm0   # 0x17f6ac
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 0x16d235(%rip), %rsi    # 0x17f4d1
leaq 0x170(%rsp), %rdi
callq 0x52a0
jmp 0x122ab
leaq 0x170(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x129a0
jmp 0x122c2
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 0x16d1de(%rip), %rsi    # 0x17f4d8
leaq 0x148(%rsp), %rdi
callq 0x52a0
jmp 0x12309
leaq 0x148(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x12bf0
jmp 0x12320
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 0x16d185(%rip), %rsi    # 0x17f4dd
leaq 0x120(%rsp), %rdi
callq 0x52a0
jmp 0x12367
leaq 0x120(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x12e20
jmp 0x1237e
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 0x16d12d(%rip), %rsi    # 0x17f4e3
leaq 0xf8(%rsp), %rdi
callq 0x52a0
jmp 0x123c5
leaq 0xf8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x13060
jmp 0x123dc
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 0x16d0de(%rip), %rsi    # 0x17f4f2
leaq 0xd0(%rsp), %rdi
callq 0x52a0
jmp 0x12423
leaq 0xd0(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x13290
jmp 0x1243a
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 0x16d087(%rip), %rsi    # 0x17f4f9
leaq 0xa8(%rsp), %rdi
callq 0x52a0
jmp 0x12481
leaq 0xa8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x134d0
jmp 0x12498
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 0x16d025(%rip), %rsi    # 0x17f4f2
leaq 0x80(%rsp), %rdi
callq 0x52a0
jmp 0x124dc
leaq 0x80(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x13710
jmp 0x124f3
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 0x16cfd6(%rip), %rsi    # 0x17f4f9
leaq 0x58(%rsp), %rdi
callq 0x52a0
jmp 0x1252f
leaq 0x58(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x13950
jmp 0x12543
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 0x125c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x125ac
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 0x1280f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x1260f
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 0x1280f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x12658
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 0x1280f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x126a1
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 0x1280f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x126ea
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 0x1280f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x12733
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 0x1280f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x1277c
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 0x1280f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x127c5
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 0x1280f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x12805
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)