Skip to content

Instantly share code, notes, and snippets.

@HappyCerberus
Created November 6, 2012 02:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HappyCerberus/4022145 to your computer and use it in GitHub Desktop.
Save HappyCerberus/4022145 to your computer and use it in GitHub Desktop.
simon@lenovo:~/repos/teaching/examples/PB161> ./a.out
dry run 499994165
Accumulate runtime 28169000 - 499994165
Manual sum runtime 44949000 - 499994165
simon@lenovo:~/repos/teaching/examples/PB161> ./a.out
dry run 499996968
Accumulate runtime 32467000 - 499996968
Manual sum runtime 44659000 - 499996968
simon@lenovo:~/repos/teaching/examples/PB161> ./a.out
dry run 500024233
Accumulate runtime 30345000 - 500024233
Manual sum runtime 44849000 - 500024233
simon@lenovo:~/repos/teaching/examples/PB161> ./a.out
dry run 499979701
Accumulate runtime 28184000 - 499979701
Manual sum runtime 45376000 - 499979701
simon@lenovo:~/repos/teaching/examples/PB161> ./a.out
dry run 499981730
Accumulate runtime 30010000 - 499981730
Manual sum runtime 45032000 - 499981730
.file "test.cpp"
.section .text._ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,"axG",@progbits,_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,comdat
.align 2
.p2align 4,,15
.weak _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
.type _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv, @function
_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv:
.LFB3336:
.cfi_startproc
movq 4992(%rdi), %rax
cmpq $623, %rax
jbe .L15
movq (%rdi), %r8
leaq 8(%rdi), %rdx
xorl %esi, %esi
movl $2567483615, %r10d
xorl %r9d, %r9d
.p2align 4,,10
.p2align 3
.L6:
movq %r8, %rax
movq (%rdx), %r8
addq $1, %rsi
andq $-2147483648, %rax
movq %r8, %rcx
andl $2147483647, %ecx
orq %rax, %rcx
movq %r9, %rax
testb $1, %cl
cmovne %r10, %rax
xorq 3168(%rdx), %rax
shrq %rcx
xorq %rcx, %rax
movq %rax, -8(%rdx)
addq $8, %rdx
cmpq $227, %rsi
jne .L6
movq 1816(%rdi), %r8
leaq 1824(%rdi), %rdx
movl $2567483615, %r10d
xorl %r9d, %r9d
.p2align 4,,10
.p2align 3
.L9:
movq %r8, %rax
movq (%rdx), %r8
addq $1, %rsi
andq $-2147483648, %rax
movq %r8, %rcx
andl $2147483647, %ecx
orq %rax, %rcx
movq %r9, %rax
testb $1, %cl
cmovne %r10, %rax
xorq -1824(%rdx), %rax
shrq %rcx
xorq %rcx, %rax
movq %rax, -8(%rdx)
addq $8, %rdx
cmpq $623, %rsi
jne .L9
movq (%rdi), %rcx
movq 4984(%rdi), %rax
movl $2567483615, %esi
movq %rcx, %rdx
andq $-2147483648, %rax
andl $2147483647, %edx
orq %rax, %rdx
movq %rdx, %rax
shrq %rax
xorq 3168(%rdi), %rax
andl $1, %edx
movl $0, %edx
cmove %rdx, %rsi
xorq %rsi, %rax
movq %rax, 4984(%rdi)
movl $1, %eax
.L3:
movq %rcx, %rdx
movq %rax, 4992(%rdi)
shrq $11, %rdx
movl %edx, %edx
xorq %rcx, %rdx
movq %rdx, %rax
salq $7, %rax
andl $2636928640, %eax
xorq %rdx, %rax
movq %rax, %rdx
salq $15, %rdx
andl $4022730752, %edx
xorq %rax, %rdx
movq %rdx, %rax
shrq $18, %rax
xorq %rdx, %rax
ret
.L15:
movq (%rdi,%rax,8), %rcx
addq $1, %rax
jmp .L3
.cfi_endproc
.LFE3336:
.size _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv, .-_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
.section .text._ZNSt24uniform_int_distributionIjEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEjRT_RKNS0_10param_typeE,"axG",@progbits,_ZNSt24uniform_int_distributionIjEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEjRT_RKNS0_10param_typeE,comdat
.align 2
.p2align 4,,15
.weak _ZNSt24uniform_int_distributionIjEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEjRT_RKNS0_10param_typeE
.type _ZNSt24uniform_int_distributionIjEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEjRT_RKNS0_10param_typeE, @function
_ZNSt24uniform_int_distributionIjEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEjRT_RKNS0_10param_typeE:
.LFB3266:
.cfi_startproc
pushq %r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
pushq %r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
movq %rdx, %r14
pushq %r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
pushq %r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
pushq %rbp
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
pushq %rbx
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
movq %rsi, %rbx
subq $24, %rsp
.cfi_def_cfa_offset 80
movl (%rdx), %eax
movl 4(%rdx), %r12d
subq %rax, %r12
movl $4294967294, %eax
cmpq %rax, %r12
ja .L17
addq $1, %r12
movb $-1, %al
xorl %edx, %edx
divq %r12
imulq %rax, %r12
movq %rax, %rbp
.p2align 4,,10
.p2align 3
.L18:
movq %rbx, %rdi
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmpq %rax, %r12
jbe .L18
xorl %edx, %edx
divq %rbp
.L19:
addl (%r14), %eax
addq $24, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 56
popq %rbx
.cfi_def_cfa_offset 48
popq %rbp
.cfi_def_cfa_offset 40
popq %r12
.cfi_def_cfa_offset 32
popq %r13
.cfi_def_cfa_offset 24
popq %r14
.cfi_def_cfa_offset 16
popq %r15
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L17:
.cfi_restore_state
movl $4294967295, %r13d
cmpq %r13, %r12
je .L20
movq %r12, %r15
shrq $32, %r15
leaq 1(%r15), %rax
movq %rax, 8(%rsp)
jmp .L29
.p2align 4,,10
.p2align 3
.L21:
movq %rbx, %rdi
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
.L23:
movq %rax, %rbp
movq %rbx, %rdi
salq $32, %rbp
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
addq %rbp, %rax
jae .L31
.L29:
cmpq %r13, %r15
je .L21
movq %r13, %rax
xorl %edx, %edx
divq 8(%rsp)
movq %rax, %rbp
movq %rax, (%rsp)
imulq 8(%rsp), %rbp
.p2align 4,,10
.p2align 3
.L22:
movq %rbx, %rdi
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmpq %rax, %rbp
jbe .L22
xorl %edx, %edx
divq (%rsp)
jmp .L23
.p2align 4,,10
.p2align 3
.L20:
movq %rsi, %rdi
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
jmp .L19
.p2align 4,,10
.p2align 3
.L31:
cmpq %r12, %rax
ja .L29
.p2align 4,,8
jmp .L19
.cfi_endproc
.LFE3266:
.size _ZNSt24uniform_int_distributionIjEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEjRT_RKNS0_10param_typeE, .-_ZNSt24uniform_int_distributionIjEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEjRT_RKNS0_10param_typeE
.section .text._ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_,"axG",@progbits,_ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_,comdat
.align 2
.p2align 4,,15
.weak _ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_
.type _ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_, @function
_ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_:
.LFB3338:
.cfi_startproc
movq %rbx, -32(%rsp)
movq %r12, -16(%rsp)
.cfi_offset 3, -40
.cfi_offset 12, -24
movq %rdi, %rbx
movq %r13, -8(%rsp)
movq %rbp, -24(%rsp)
subq $40, %rsp
.cfi_def_cfa_offset 48
.cfi_offset 13, -16
.cfi_offset 6, -32
movq 8(%rdi), %rdx
subq (%rdi), %rdx
movq %rsi, %r13
movl $4, %r12d
sarq $2, %rdx
testq %rdx, %rdx
je .L34
leaq (%rdx,%rdx), %rax
cmpq %rax, %rdx
jbe .L52
movq $-4, %r12
.L34:
movq %r12, %rdi
call _Znwm
movq (%rbx), %rdi
movq 8(%rbx), %rcx
movq %rax, %rbp
movl 0(%r13), %eax
movq %rbp, %r13
subq %rdi, %rcx
sarq $2, %rcx
leaq 0(,%rcx,4), %rdx
addq %rdx, %r13
je .L35
movl %eax, 0(%r13)
.L35:
testq %rcx, %rcx
je .L36
movq %rdi, %rsi
movq %rbp, %rdi
call memmove
movq (%rbx), %rdi
.L36:
addq $4, %r13
testq %rdi, %rdi
je .L37
call _ZdlPv
.L37:
movq %rbp, (%rbx)
addq %r12, %rbp
movq %r13, 8(%rbx)
movq %rbp, 16(%rbx)
movq 24(%rsp), %r12
movq 8(%rsp), %rbx
movq 16(%rsp), %rbp
movq 32(%rsp), %r13
addq $40, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 8
ret
.L52:
.cfi_restore_state
movabsq $4611686018427387903, %rcx
salq $3, %rdx
movq $-4, %r12
cmpq %rcx, %rax
cmovbe %rdx, %r12
jmp .L34
.cfi_endproc
.LFE3338:
.size _ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_, .-_ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_
.weak _ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIJiEEEvDpOT_
.set _ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIJiEEEvDpOT_,_ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_
.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string "dry run "
.LC1:
.string "Accumulate runtime "
.LC2:
.string " - "
.LC3:
.string "Manual sum runtime "
.section .text.startup,"ax",@progbits
.p2align 4,,15
.globl main
.type main, @function
main:
.LFB3088:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA3088
pushq %r14
.cfi_def_cfa_offset 16
.cfi_offset 14, -16
movl $400000000, %edi
pushq %r13
.cfi_def_cfa_offset 24
.cfi_offset 13, -24
pushq %r12
.cfi_def_cfa_offset 32
.cfi_offset 12, -32
pushq %rbp
.cfi_def_cfa_offset 40
.cfi_offset 6, -40
pushq %rbx
.cfi_def_cfa_offset 48
.cfi_offset 3, -48
subq $5104, %rsp
.cfi_def_cfa_offset 5152
movq $0, 64(%rsp)
movq $0, 72(%rsp)
movq $0, 80(%rsp)
.LEHB0:
call _Znwm
movq 64(%rsp), %rdi
movq %rax, %rbx
testq %rdi, %rdi
je .L54
call _ZdlPv
.L54:
movq %rbx, 64(%rsp)
movq %rbx, 72(%rsp)
addq $400000000, %rbx
movq %rbx, 80(%rsp)
movq $5489, 96(%rsp)
movl $5489, %eax
movl $1, %ecx
movabsq $945986875574848801, %rdi
.p2align 4,,10
.p2align 3
.L55:
movq %rax, %rdx
shrq $30, %rdx
xorq %rax, %rdx
imulq $1812433253, %rdx, %rsi
movq %rcx, %rdx
shrq $4, %rdx
movq %rdx, %rax
mulq %rdi
movq %rcx, %rax
shrq %rdx
imulq $624, %rdx, %rdx
subq %rdx, %rax
leal (%rax,%rsi), %eax
movq %rax, 96(%rsp,%rcx,8)
addq $1, %rcx
cmpq $624, %rcx
jne .L55
movq $624, 5088(%rsp)
call _ZNSt6chrono12system_clock3nowEv
movabsq $4835703278458516699, %rdx
movq %rax, %rcx
movabsq $945986875574848801, %rdi
imulq %rdx
sarq $63, %rcx
sarq $18, %rdx
movl %edx, %eax
subl %ecx, %eax
movl $1, %ecx
movq %rax, 96(%rsp)
.p2align 4,,10
.p2align 3
.L56:
movq %rax, %rdx
shrq $30, %rdx
xorq %rax, %rdx
imulq $1812433253, %rdx, %rsi
movq %rcx, %rdx
shrq $4, %rdx
movq %rdx, %rax
mulq %rdi
movq %rcx, %rax
shrq %rdx
imulq $624, %rdx, %rdx
subq %rdx, %rax
leal (%rax,%rsi), %eax
movq %rax, 96(%rsp,%rcx,8)
addq $1, %rcx
cmpq $624, %rcx
jne .L56
xorl %r13d, %r13d
movl $10, %ebp
movq $624, 5088(%rsp)
movl %r13d, %eax
movl $0, 32(%rsp)
movl $10, 36(%rsp)
subq %rax, %rbp
movl $4294967294, %eax
movl $100000000, %r12d
cmpq %rax, %rbp
ja .L57
.p2align 4,,10
.p2align 3
.L134:
addq $1, %rbp
movb $-1, %al
xorl %edx, %edx
divq %rbp
imulq %rax, %rbp
movq %rax, %r14
.p2align 4,,10
.p2align 3
.L58:
leaq 96(%rsp), %rdi
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmpq %rax, %rbp
jbe .L58
xorl %edx, %edx
divq %r14
.L59:
movq 72(%rsp), %rdx
cmpq 80(%rsp), %rdx
leal 0(%r13,%rax), %ebx
movl %ebx, 16(%rsp)
je .L62
testq %rdx, %rdx
je .L63
movl %ebx, (%rdx)
.L63:
addq $4, %rdx
subl $1, %r12d
movq %rdx, 72(%rsp)
je .L65
.L135:
movl 32(%rsp), %r13d
movl 36(%rsp), %ebp
movl %r13d, %eax
subq %rax, %rbp
movl $4294967294, %eax
cmpq %rax, %rbp
jbe .L134
.L57:
movl $4294967295, %eax
cmpq %rax, %rbp
je .L60
movq %rbp, %r14
shrq $32, %r14
.p2align 4,,10
.p2align 3
.L132:
leaq 48(%rsp), %rdx
leaq 96(%rsp), %rsi
leaq 32(%rsp), %rdi
movl $0, 48(%rsp)
movl %r14d, 52(%rsp)
call _ZNSt24uniform_int_distributionIjEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEjRT_RKNS0_10param_typeE
leaq 96(%rsp), %rdi
movq %rax, %rbx
salq $32, %rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
addq %rbx, %rax
jb .L132
cmpq %rax, %rbp
jb .L132
.p2align 4,,5
jmp .L59
.p2align 4,,10
.p2align 3
.L60:
leaq 96(%rsp), %rdi
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
.p2align 4,,3
jmp .L59
.p2align 4,,10
.p2align 3
.L62:
leaq 16(%rsp), %rsi
leaq 64(%rsp), %rdi
call _ZNSt6vectorIiSaIiEE19_M_emplace_back_auxIIiEEEvDpOT_
subl $1, %r12d
jne .L135
.L65:
movq 64(%rsp), %rsi
movq %rsi, %rcx
andl $15, %ecx
shrq $2, %rcx
negq %rcx
andl $3, %ecx
je .L91
xorl %edx, %edx
xorl %ebx, %ebx
movl $99999999, %r8d
.p2align 4,,10
.p2align 3
.L68:
movslq (%rsi,%rdx,4), %rax
movq %r8, %rdi
subq %rdx, %rdi
addq %rax, %rbx
leaq 1(%rdx), %rax
cmpq %rax, %rcx
movq %rax, %rdx
ja .L68
.L67:
movl $100000000, %r10d
subq %rcx, %r10
movq %r10, %r8
shrq $2, %r8
leaq 0(,%r8,4), %r9
testq %r9, %r9
je .L69
pxor %xmm0, %xmm0
leaq (%rsi,%rcx,4), %rcx
pxor %xmm4, %xmm4
xorl %edx, %edx
.p2align 4,,10
.p2align 3
.L70:
movdqa (%rcx), %xmm1
addq $1, %rdx
movdqa %xmm4, %xmm2
addq $16, %rcx
movdqa %xmm1, %xmm3
cmpq %r8, %rdx
pcmpgtd %xmm1, %xmm2
punpckldq %xmm2, %xmm3
punpckhdq %xmm2, %xmm1
paddq %xmm3, %xmm0
paddq %xmm1, %xmm0
jb .L70
movdqa %xmm0, %xmm1
addq %r9, %rax
subq %r9, %rdi
psrldq $8, %xmm1
paddq %xmm1, %xmm0
movq %xmm0, 8(%rsp)
addq 8(%rsp), %rbx
cmpq %r9, %r10
je .L71
.L69:
addq %rax, %rdi
.p2align 4,,10
.p2align 3
.L72:
movslq (%rsi,%rax,4), %rdx
addq $1, %rax
addq %rdx, %rbx
cmpq %rdi, %rax
jne .L72
.L71:
movl $.LC0, %esi
movl $_ZSt4cout, %edi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
movq %rbx, %rsi
movq %rax, %rdi
call _ZNSo9_M_insertIxEERSoT_
movq %rax, %rdi
call _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
call _ZNSt6chrono12system_clock3nowEv
movq 72(%rsp), %r8
movq 64(%rsp), %r9
movq %rax, %rbx
cmpq %r9, %r8
je .L92
leaq 4(%r9), %rax
movq %r9, %rsi
movq %r8, %rdi
andl $15, %esi
movq %r9, %rcx
subq %rax, %rdi
shrq $2, %rsi
shrq $2, %rdi
negq %rsi
addq $1, %rdi
andl $3, %esi
cmpq %rdi, %rsi
cmova %rdi, %rsi
cmpq $8, %rdi
cmovbe %rdi, %rsi
testq %rsi, %rsi
je .L93
xorl %eax, %eax
xorl %edx, %edx
.p2align 4,,10
.p2align 3
.L76:
addq $1, %rax
addl (%rcx), %edx
addq $4, %rcx
cmpq %rax, %rsi
ja .L76
cmpq %rsi, %rdi
je .L73
.L75:
movq %rdi, %r11
subq %rsi, %r11
movq %r11, %rax
shrq $2, %rax
leaq 0(,%rax,4), %r10
testq %r10, %r10
je .L81
pxor %xmm0, %xmm0
leaq (%r9,%rsi,4), %rdi
xorl %esi, %esi
.p2align 4,,10
.p2align 3
.L79:
addq $1, %rsi
paddd (%rdi), %xmm0
addq $16, %rdi
cmpq %rax, %rsi
jb .L79
movdqa %xmm0, %xmm1
leaq (%rcx,%r10,4), %rcx
psrldq $8, %xmm1
paddd %xmm1, %xmm0
movdqa %xmm0, %xmm1
psrldq $4, %xmm1
paddd %xmm1, %xmm0
movd %xmm0, 8(%rsp)
addl 8(%rsp), %edx
cmpq %r10, %r11
je .L73
.p2align 4,,10
.p2align 3
.L81:
addl (%rcx), %edx
addq $4, %rcx
cmpq %rcx, %r8
jne .L81
.L73:
movslq %edx, %rbp
call _ZNSt6chrono12system_clock3nowEv
movl $.LC1, %esi
subq %rbx, %rax
movl $_ZSt4cout, %edi
imulq $1000, %rax, %rbx
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
movq %rbx, %rsi
movq %rax, %rdi
call _ZNSo9_M_insertIlEERSoT_
movl $.LC2, %esi
movq %rax, %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
movq %rbp, %rsi
movq %rax, %rdi
call _ZNSo9_M_insertIxEERSoT_
movq %rax, %rdi
call _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
call _ZNSt6chrono12system_clock3nowEv
movq %rax, %rbp
movq 64(%rsp), %rax
movq %rax, %rsi
andl $15, %esi
shrq $2, %rsi
negq %rsi
andl $3, %esi
je .L94
xorl %ecx, %ecx
xorl %ebx, %ebx
movl $99999999, %r8d
.p2align 4,,10
.p2align 3
.L83:
movslq (%rax,%rcx,4), %rdx
movq %r8, %rdi
subq %rcx, %rdi
addq %rdx, %rbx
leaq 1(%rcx), %rdx
cmpq %rdx, %rsi
movq %rdx, %rcx
ja .L83
.L82:
movl $100000000, %r10d
subq %rsi, %r10
movq %r10, %r8
shrq $2, %r8
leaq 0(,%r8,4), %r9
testq %r9, %r9
je .L84
pxor %xmm0, %xmm0
leaq (%rax,%rsi,4), %rsi
pxor %xmm4, %xmm4
xorl %ecx, %ecx
.p2align 4,,10
.p2align 3
.L85:
movdqa (%rsi), %xmm1
addq $1, %rcx
movdqa %xmm4, %xmm2
addq $16, %rsi
movdqa %xmm1, %xmm3
cmpq %r8, %rcx
pcmpgtd %xmm1, %xmm2
punpckldq %xmm2, %xmm3
punpckhdq %xmm2, %xmm1
paddq %xmm3, %xmm0
paddq %xmm1, %xmm0
jb .L85
movdqa %xmm0, %xmm1
addq %r9, %rdx
subq %r9, %rdi
psrldq $8, %xmm1
paddq %xmm1, %xmm0
movq %xmm0, 8(%rsp)
addq 8(%rsp), %rbx
cmpq %r9, %r10
je .L86
.L84:
addq %rdx, %rdi
.p2align 4,,10
.p2align 3
.L87:
movslq (%rax,%rdx,4), %rcx
addq $1, %rdx
addq %rcx, %rbx
cmpq %rdi, %rdx
jne .L87
.L86:
call _ZNSt6chrono12system_clock3nowEv
movl $.LC3, %esi
subq %rbp, %rax
movl $_ZSt4cout, %edi
imulq $1000, %rax, %rbp
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
movq %rbp, %rsi
movq %rax, %rdi
call _ZNSo9_M_insertIlEERSoT_
movl $.LC2, %esi
movq %rax, %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
movq %rbx, %rsi
movq %rax, %rdi
call _ZNSo9_M_insertIxEERSoT_
movq %rax, %rdi
call _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.LEHE0:
movq 64(%rsp), %rdi
testq %rdi, %rdi
je .L104
call _ZdlPv
.L104:
addq $5104, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 48
xorl %eax, %eax
popq %rbx
.cfi_def_cfa_offset 40
popq %rbp
.cfi_def_cfa_offset 32
popq %r12
.cfi_def_cfa_offset 24
popq %r13
.cfi_def_cfa_offset 16
popq %r14
.cfi_def_cfa_offset 8
ret
.L92:
.cfi_restore_state
xorl %edx, %edx
jmp .L73
.L93:
xorl %edx, %edx
jmp .L75
.L91:
movl $100000000, %edi
xorl %eax, %eax
xorl %ebx, %ebx
jmp .L67
.L95:
movq 64(%rsp), %rdi
movq %rax, %rbx
testq %rdi, %rdi
je .L90
call _ZdlPv
.L90:
movq %rbx, %rdi
.LEHB1:
call _Unwind_Resume
.LEHE1:
.L94:
movl $100000000, %edi
xorl %edx, %edx
xorl %ebx, %ebx
jmp .L82
.cfi_endproc
.LFE3088:
.globl __gxx_personality_v0
.section .gcc_except_table,"a",@progbits
.LLSDA3088:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE3088-.LLSDACSB3088
.LLSDACSB3088:
.uleb128 .LEHB0-.LFB3088
.uleb128 .LEHE0-.LEHB0
.uleb128 .L95-.LFB3088
.uleb128 0
.uleb128 .LEHB1-.LFB3088
.uleb128 .LEHE1-.LEHB1
.uleb128 0
.uleb128 0
.LLSDACSE3088:
.section .text.startup
.size main, .-main
.p2align 4,,15
.type _GLOBAL__sub_I_main, @function
_GLOBAL__sub_I_main:
.LFB3408:
.cfi_startproc
subq $8, %rsp
.cfi_def_cfa_offset 16
movl $_ZStL8__ioinit, %edi
call _ZNSt8ios_base4InitC1Ev
movl $__dso_handle, %edx
movl $_ZStL8__ioinit, %esi
movl $_ZNSt8ios_base4InitD1Ev, %edi
addq $8, %rsp
.cfi_def_cfa_offset 8
jmp __cxa_atexit
.cfi_endproc
.LFE3408:
.size _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main
.section .init_array,"aw"
.align 8
.quad _GLOBAL__sub_I_main
.local _ZStL8__ioinit
.comm _ZStL8__ioinit,1,1
.hidden __dso_handle
.ident "GCC: (SUSE Linux) 4.7.1 20120723 [gcc-4_7-branch revision 189773]"
.section .comment.SUSE.OPTs,"MS",@progbits,1
.string "Ospwg"
.section .note.GNU-stack,"",@progbits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment