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

        auto sizes = { 100000, 200000, 300000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000 };
        bench<std::list<T>,                                 microseconds, EmptyPrepareBackup, FillBackBackup>("list",   sizes);
        bench<typename intrusive_list_type<T::size>::L1,    microseconds, EmptyPrepareBackup, FillBackBackup>("normal_ilist",       sizes);
        bench<typename intrusive_list_type<T::size>::L2,    microseconds, EmptyPrepareBackup, FillBackBackup>("safe_list",          sizes);
        bench<typename intrusive_list_type<T::size>::L3,    microseconds, EmptyPrepareBackup, FillBackBackup>("auto_unlink_list",   sizes);
    }

// Assembly:
subq $0x168, %rsp            # imm = 0x168
leaq 0x147(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x3350
movq 0x28(%rsp), %rdx
leaq 0x68235(%rip), %rsi     # 0x710aa
leaq 0x148(%rsp), %rdi
callq 0x32a0
jmp 0x8e84
leaq 0x10f(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x3350
movq 0x20(%rsp), %rdx
leaq 0x6816e(%rip), %rsi     # 0x71010
leaq 0x110(%rsp), %rdi
callq 0x32a0
jmp 0x8eb1
leaq 0x148(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x10130
jmp 0x8ec8
leaq 0x110(%rsp), %rdi
callq 0x3140
leaq 0x10f(%rsp), %rdi
callq 0x3230
leaq 0x148(%rsp), %rdi
callq 0x3140
leaq 0x147(%rsp), %rdi
callq 0x3230
movabsq $0xf4240000dbba0, %rax  # imm = 0xF4240000DBBA0
movq %rax, 0xf0(%rsp)
vmovdqu 0x683aa(%rip), %ymm0    # 0x712c0
vmovdqu %ymm0, 0xd0(%rsp)
leaq 0xd0(%rsp), %rax
movq %rax, 0xf8(%rsp)
movq $0xa, 0x100(%rsp)
leaq 0xaf(%rsp), %rdi
movq %rdi, 0x18(%rsp)
vzeroupper
callq 0x3350
movq 0x18(%rsp), %rdx
leaq 0x680c9(%rip), %rsi     # 0x71025
leaq 0xb0(%rsp), %rdi
callq 0x32a0
jmp 0x8f6b
leaq 0xb0(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x505c0
jmp 0x8f82
leaq 0xb0(%rsp), %rdi
callq 0x3140
leaq 0xaf(%rsp), %rdi
callq 0x3230
leaq 0x87(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x3350
movq 0x10(%rsp), %rdx
leaq 0x68059(%rip), %rsi     # 0x71013
leaq 0x88(%rsp), %rdi
callq 0x32a0
jmp 0x8fc9
leaq 0x88(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x507f0
jmp 0x8fe0
leaq 0x88(%rsp), %rdi
callq 0x3140
leaq 0x87(%rsp), %rdi
callq 0x3230
leaq 0x5f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x3350
movq 0x8(%rsp), %rdx
leaq 0x6800b(%rip), %rsi     # 0x71020
leaq 0x60(%rsp), %rdi
callq 0x32a0
jmp 0x9021
leaq 0x60(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x50a30
jmp 0x9035
leaq 0x60(%rsp), %rdi
callq 0x3140
leaq 0x5f(%rsp), %rdi
callq 0x3230
leaq 0x37(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x3350
movq (%rsp), %rdx
leaq 0x67fc8(%rip), %rsi     # 0x7102a
leaq 0x38(%rsp), %rdi
callq 0x32a0
jmp 0x906e
leaq 0x38(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x50c70
jmp 0x9082
leaq 0x38(%rsp), %rdi
callq 0x3140
leaq 0x37(%rsp), %rdi
callq 0x3230
addq $0x168, %rsp            # imm = 0x168
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x9105
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x90eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0x110(%rsp), %rdi
callq 0x3140
leaq 0x10f(%rsp), %rdi
callq 0x3230
leaq 0x148(%rsp), %rdi
callq 0x3140
leaq 0x147(%rsp), %rdi
callq 0x3230
jmp 0x9224
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x914e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x3140
leaq 0xaf(%rsp), %rdi
callq 0x3230
jmp 0x9224
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x9197
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0x88(%rsp), %rdi
callq 0x3140
leaq 0x87(%rsp), %rdi
callq 0x3230
jmp 0x9224
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x91da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x3140
leaq 0x5f(%rsp), %rdi
callq 0x3230
jmp 0x9224
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
jmp 0x921a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x138(%rsp)
movl %eax, 0x134(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x3140
leaq 0x37(%rsp), %rdi
callq 0x3230
movq 0x138(%rsp), %rdi
callq 0x3340
nopw %cs:(%rax,%rax)