// File: wichtounet[P]articles/src/vector_list/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<std::vector<T>, microseconds, Empty, FillBackInserter>("vector_inserter", sizes);
        bench<std::list<T>,   microseconds, Empty, FillBackInserter>("list_inserter",   sizes);
        bench<std::deque<T>,  microseconds, Empty, FillBackInserter>("deque_inserter",  sizes);
    }

// Assembly:
subq $0x1f8, %rsp            # imm = 0x1F8
leaq 0x1d7(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x3370
movq 0x40(%rsp), %rdx
leaq 0xbed2f(%rip), %rsi     # 0xc83c4
leaq 0x1d8(%rsp), %rdi
callq 0x32a0
jmp 0x96a4
leaq 0x19f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x3370
movq 0x38(%rsp), %rdx
leaq 0xbed0c(%rip), %rsi     # 0xc83ce
leaq 0x1a0(%rsp), %rdi
callq 0x32a0
jmp 0x96d1
leaq 0x1d8(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x9c60
jmp 0x96e8
leaq 0x1a0(%rsp), %rdi
callq 0x3150
leaq 0x19f(%rsp), %rdi
callq 0x3240
leaq 0x1d8(%rsp), %rdi
callq 0x3150
leaq 0x1d7(%rsp), %rdi
callq 0x3240
movabsq $0xf4240000dbba0, %rax  # imm = 0xF4240000DBBA0
movq %rax, 0x180(%rsp)
vmovdqu 0xbee3a(%rip), %ymm0    # 0xc8570
vmovdqu %ymm0, 0x160(%rsp)
leaq 0x160(%rsp), %rax
movq %rax, 0x188(%rsp)
movq $0xa, 0x190(%rsp)
leaq 0x13f(%rsp), %rdi
movq %rdi, 0x30(%rsp)
vzeroupper
callq 0x3370
movq 0x30(%rsp), %rdx
leaq 0xbec55(%rip), %rsi     # 0xc83d1
leaq 0x140(%rsp), %rdi
callq 0x32a0
jmp 0x978b
leaq 0x140(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0x9dd0
jmp 0x97a2
leaq 0x140(%rsp), %rdi
callq 0x3150
leaq 0x13f(%rsp), %rdi
callq 0x3240
leaq 0x117(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x3370
movq 0x28(%rsp), %rdx
leaq 0xbebfe(%rip), %rsi     # 0xc83d8
leaq 0x118(%rsp), %rdi
callq 0x32a0
jmp 0x97e9
leaq 0x118(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0xa020
jmp 0x9800
leaq 0x118(%rsp), %rdi
callq 0x3150
leaq 0x117(%rsp), %rdi
callq 0x3240
leaq 0xef(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x3370
movq 0x20(%rsp), %rdx
leaq 0xbeba5(%rip), %rsi     # 0xc83dd
leaq 0xf0(%rsp), %rdi
callq 0x32a0
jmp 0x9847
leaq 0xf0(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0xa250
jmp 0x985e
leaq 0xf0(%rsp), %rdi
callq 0x3150
leaq 0xef(%rsp), %rdi
callq 0x3240
leaq 0xc7(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x3370
movq 0x18(%rsp), %rdx
leaq 0xbeb4d(%rip), %rsi     # 0xc83e3
leaq 0xc8(%rsp), %rdi
callq 0x32a0
jmp 0x98a5
leaq 0xc8(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0xa490
jmp 0x98bc
leaq 0xc8(%rsp), %rdi
callq 0x3150
leaq 0xc7(%rsp), %rdi
callq 0x3240
leaq 0x9f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x3370
movq 0x10(%rsp), %rdx
leaq 0xbeafe(%rip), %rsi     # 0xc83f2
leaq 0xa0(%rsp), %rdi
callq 0x32a0
jmp 0x9903
leaq 0xa0(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0xa6c0
jmp 0x991a
leaq 0xa0(%rsp), %rdi
callq 0x3150
leaq 0x9f(%rsp), %rdi
callq 0x3240
leaq 0x77(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x3370
movq 0x8(%rsp), %rdx
leaq 0xbeab3(%rip), %rsi     # 0xc8402
leaq 0x78(%rsp), %rdi
callq 0x32a0
jmp 0x995b
leaq 0x78(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0xa8f0
jmp 0x996f
leaq 0x78(%rsp), %rdi
callq 0x3150
leaq 0x77(%rsp), %rdi
callq 0x3240
leaq 0x4f(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x3370
movq (%rsp), %rdx
leaq 0xbea74(%rip), %rsi     # 0xc8410
leaq 0x50(%rsp), %rdi
callq 0x32a0
jmp 0x99a8
leaq 0x50(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0xab20
jmp 0x99bc
leaq 0x50(%rsp), %rdi
callq 0x3150
leaq 0x4f(%rsp), %rdi
callq 0x3240
addq $0x1f8, %rsp            # imm = 0x1F8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9a3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9a25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0x3150
leaq 0x19f(%rsp), %rdi
callq 0x3240
leaq 0x1d8(%rsp), %rdi
callq 0x3150
leaq 0x1d7(%rsp), %rdi
callq 0x3240
jmp 0x9c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9a88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0x140(%rsp), %rdi
callq 0x3150
leaq 0x13f(%rsp), %rdi
callq 0x3240
jmp 0x9c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9ad1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0x118(%rsp), %rdi
callq 0x3150
leaq 0x117(%rsp), %rdi
callq 0x3240
jmp 0x9c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9b1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0x3150
leaq 0xef(%rsp), %rdi
callq 0x3240
jmp 0x9c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9b63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0xc8(%rsp), %rdi
callq 0x3150
leaq 0xc7(%rsp), %rdi
callq 0x3240
jmp 0x9c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9bac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x3150
leaq 0x9f(%rsp), %rdi
callq 0x3240
jmp 0x9c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9bef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x3150
leaq 0x77(%rsp), %rdi
callq 0x3240
jmp 0x9c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x9c2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x3150
leaq 0x4f(%rsp), %rdi
callq 0x3240
movq 0x1c8(%rsp), %rdi
callq 0x3360
nopw %cs:(%rax,%rax)