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

        auto sizes = {100000, 200000, 300000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000};
        bench<std::vector<T>, milliseconds, FilledRandom, Sort>("vector", sizes);
        bench<std::list<T>,   milliseconds, FilledRandom, Sort>("list",   sizes);
        bench<std::deque<T>,  milliseconds, FilledRandom, Sort>("deque",  sizes);
        bench<plf::colony<T>,  milliseconds, FilledRandomInsert, Sort>("colony",  sizes);
        bench<plf::colony<T>,  milliseconds, FilledRandomInsert, TimSort>("colony_timsort",  sizes);
    }

// Assembly:
subq $0x198, %rsp            # imm = 0x198
leaq 0x177(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x5370
movq 0x30(%rsp), %rdx
leaq 0xa0140(%rip), %rsi     # 0x17f665
leaq 0x178(%rsp), %rdi
callq 0x52a0
jmp 0xdf534
leaq 0x13f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x5370
movq 0x28(%rsp), %rdx
leaq 0xa00cf(%rip), %rsi     # 0x17f621
leaq 0x140(%rsp), %rdi
callq 0x52a0
jmp 0xdf561
leaq 0x178(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x12830
jmp 0xdf578
leaq 0x140(%rsp), %rdi
callq 0x5150
leaq 0x13f(%rsp), %rdi
callq 0x5240
leaq 0x178(%rsp), %rdi
callq 0x5150
leaq 0x177(%rsp), %rdi
callq 0x5240
movabsq $0xf4240000dbba0, %rax  # imm = 0xF4240000DBBA0
movq %rax, 0x120(%rsp)
vmovdqu 0xa0ae6(%rip), %ymm0    # 0x1800ac
vmovdqu %ymm0, 0x100(%rsp)
leaq 0x100(%rsp), %rax
movq %rax, 0x128(%rsp)
movq $0xa, 0x130(%rsp)
leaq 0xdf(%rsp), %rdi
movq %rdi, 0x20(%rsp)
vzeroupper
callq 0x5370
movq 0x20(%rsp), %rdx
leaq 0x9fec5(%rip), %rsi     # 0x17f4d1
leaq 0xe0(%rsp), %rdi
callq 0x52a0
jmp 0xdf61b
leaq 0xe0(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0xdf9a0
jmp 0xdf632
leaq 0xe0(%rsp), %rdi
callq 0x5150
leaq 0xdf(%rsp), %rdi
callq 0x5240
leaq 0xb7(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x5370
movq 0x18(%rsp), %rdx
leaq 0x9fe6e(%rip), %rsi     # 0x17f4d8
leaq 0xb8(%rsp), %rdi
callq 0x52a0
jmp 0xdf679
leaq 0xb8(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0xdfbd0
jmp 0xdf690
leaq 0xb8(%rsp), %rdi
callq 0x5150
leaq 0xb7(%rsp), %rdi
callq 0x5240
leaq 0x8f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x5370
movq 0x10(%rsp), %rdx
leaq 0x9fe15(%rip), %rsi     # 0x17f4dd
leaq 0x90(%rsp), %rdi
callq 0x52a0
jmp 0xdf6d7
leaq 0x90(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0xdfe00
jmp 0xdf6ee
leaq 0x90(%rsp), %rdi
callq 0x5150
leaq 0x8f(%rsp), %rdi
callq 0x5240
leaq 0x67(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x5370
movq 0x8(%rsp), %rdx
leaq 0x9fdcf(%rip), %rsi     # 0x17f4f2
leaq 0x68(%rsp), %rdi
callq 0x52a0
jmp 0xdf72f
leaq 0x68(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0xe0040
jmp 0xdf743
leaq 0x68(%rsp), %rdi
callq 0x5150
leaq 0x67(%rsp), %rdi
callq 0x5240
leaq 0x3f(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x5370
movq (%rsp), %rdx
leaq 0x9feeb(%rip), %rsi     # 0x17f65b
leaq 0x40(%rsp), %rdi
callq 0x52a0
jmp 0xdf77c
leaq 0x40(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0xe0280
jmp 0xdf790
leaq 0x40(%rsp), %rdi
callq 0x5150
leaq 0x3f(%rsp), %rdi
callq 0x5240
addq $0x198, %rsp            # imm = 0x198
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
jmp 0xdf813
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
jmp 0xdf7f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
leaq 0x140(%rsp), %rdi
callq 0x5150
leaq 0x13f(%rsp), %rdi
callq 0x5240
leaq 0x178(%rsp), %rdi
callq 0x5150
leaq 0x177(%rsp), %rdi
callq 0x5240
jmp 0xdf97b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
jmp 0xdf85c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x5150
leaq 0xdf(%rsp), %rdi
callq 0x5240
jmp 0xdf97b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
jmp 0xdf8a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x5150
leaq 0xb7(%rsp), %rdi
callq 0x5240
jmp 0xdf97b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
jmp 0xdf8ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x5150
leaq 0x8f(%rsp), %rdi
callq 0x5240
jmp 0xdf97b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
jmp 0xdf931
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
leaq 0x68(%rsp), %rdi
callq 0x5150
leaq 0x67(%rsp), %rdi
callq 0x5240
jmp 0xdf97b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
jmp 0xdf971
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x168(%rsp)
movl %eax, 0x164(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x5150
leaq 0x3f(%rsp), %rdi
callq 0x5240
movq 0x168(%rsp), %rdi
callq 0x5360
nopl (%rax,%rax)