$^*$ For our super-simplified example pipeline
movq -8(%rbp), %rax subq $1, %rax
addq %rbx, %rax subq $1, %rax
sequence: pushq %rbp movq %rsp, %rbp subq $16, %rsp movq %rdi, -8(%rbp) cmpq $1, -8(%rbp) ja .L2 movl $1, %eax jmp .L3 .L2: movq -8(%rbp), %rax subq $1, %rax movq %rax, %rdi call sequence movq -8(%rbp), %rdx addq %rdx, %rax .L3: leave .cfi_def_cfa 7, 8 ret .cfi_endproc
$ ./a.out Thread 1 is running! Thread 2 is running! Thread 4 is running! Thread 0 is running! Thread 3 is running! Thread 6 is running! Thread 5 is running! Thread 7 is running! Thread 8 is running! Thread 9 is running!
$ ./a.out 100000000 1 Thread 0 is running! Sum is 4999999950000000 wall time used is 193.23 ms CPU time used is 192.79 ms $ ./a.out 100000000 2 Thread 0 is running! Thread 1 is running! Sum is 4999999950000000 wall time used is 98.23 ms CPU time used is 195.57 ms