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

        auto sizes = {1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000};
        bench<std::vector<T>, microseconds, FilledRandom, Find>("vector", sizes);
        bench<std::list<T>,   microseconds, FilledRandom, Find>("list",   sizes);
        bench<std::deque<T>,  microseconds, FilledRandom, Find>("deque",  sizes);
    }

// Assembly:
subq $0x138, %rsp            # imm = 0x138
leaq 0x117(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x3370
movq 0x20(%rsp), %rdx
leaq 0x89dee(%rip), %rsi     # 0xc84a3
leaq 0x118(%rsp), %rdi
callq 0x32a0
jmp 0x3e6c4
leaq 0xdf(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x3370
movq 0x18(%rsp), %rdx
leaq 0x89cec(%rip), %rsi     # 0xc83ce
leaq 0xe0(%rsp), %rdi
callq 0x32a0
jmp 0x3e6f1
leaq 0x118(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x9c60
jmp 0x3e708
leaq 0xe0(%rsp), %rdi
callq 0x3150
leaq 0xdf(%rsp), %rdi
callq 0x3240
leaq 0x118(%rsp), %rdi
callq 0x3150
leaq 0x117(%rsp), %rdi
callq 0x3240
movabsq $0x271000002328, %rax   # imm = 0x271000002328
movq %rax, 0xc0(%rsp)
vmovdqu 0x8a31a(%rip), %ymm0    # 0xc8a70
vmovdqu %ymm0, 0xa0(%rsp)
leaq 0xa0(%rsp), %rax
movq %rax, 0xc8(%rsp)
movq $0xa, 0xd0(%rsp)
leaq 0x7f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
vzeroupper
callq 0x3370
movq 0x10(%rsp), %rdx
leaq 0x89c38(%rip), %rsi     # 0xc83d1
leaq 0x80(%rsp), %rdi
callq 0x32a0
jmp 0x3e7a8
leaq 0x80(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x3e9e0
jmp 0x3e7bf
leaq 0x80(%rsp), %rdi
callq 0x3150
leaq 0x7f(%rsp), %rdi
callq 0x3240
leaq 0x57(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x3370
movq 0x8(%rsp), %rdx
leaq 0x89be7(%rip), %rsi     # 0xc83d8
leaq 0x58(%rsp), %rdi
callq 0x32a0
jmp 0x3e7fd
leaq 0x58(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x3ec10
jmp 0x3e811
leaq 0x58(%rsp), %rdi
callq 0x3150
leaq 0x57(%rsp), %rdi
callq 0x3240
leaq 0x2f(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x3370
movq (%rsp), %rdx
leaq 0x89b9f(%rip), %rsi     # 0xc83dd
leaq 0x30(%rsp), %rdi
callq 0x32a0
jmp 0x3e84a
leaq 0x30(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x3ee40
jmp 0x3e85e
leaq 0x30(%rsp), %rdi
callq 0x3150
leaq 0x2f(%rsp), %rdi
callq 0x3240
addq $0x138, %rsp            # imm = 0x138
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x3e8e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x3e8c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x3150
leaq 0xdf(%rsp), %rdi
callq 0x3240
leaq 0x118(%rsp), %rdi
callq 0x3150
leaq 0x117(%rsp), %rdi
callq 0x3240
jmp 0x3e9b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x3e92a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x3150
leaq 0x7f(%rsp), %rdi
callq 0x3240
jmp 0x3e9b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x3e96a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x3150
leaq 0x57(%rsp), %rdi
callq 0x3240
jmp 0x3e9b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x3e9aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x3150
leaq 0x2f(%rsp), %rdi
callq 0x3240
movq 0x108(%rsp), %rdi
callq 0x3360
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)