1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
gettimeofday(&start, 0);
{
std::vector<int> v(size, 1);
sum = std::accumulate(v.begin(), v.end(), 0);
}
gettimeofday(&end, 0);
call gettimeofday
movl $28000000, %edi
call _Znwm
movq %rax, %r9
movq %rax, %rcx
andl $15, %r9d
shrq $2, %r9
negq %r9
andl $3, %r9d
sete %bl
je .L33
movl $7000000, %esi
movl $7000001, %r8d
jmp .L3
.p2align 4,,10
.p2align 3
.L34:
movq %rdx, %rsi
.L3:
movl $1, (%rcx)
movq %r8, %rdi
addq $4, %rcx
leaq -1(%rsi), %rdx
subq %rsi, %rdi
cmpq %rdi, %r9
ja .L34
.L2:
movl $7000000, %ebp
subq %r9, %rbp
movq %rbp, %r10
shrq $2, %r10
leaq 0(,%r10,4), %r11
testq %r11, %r11
sete %dil
je .L7
movdqa .LC0(%rip), %xmm0
leaq (%rax,%r9,4), %r8
xorl %esi, %esi
.p2align 4,,10
.p2align 3
.L5:
addq $1, %rsi
movdqa %xmm0, (%r8)
addq $16, %r8
cmpq %r10, %rsi
jb .L5
leaq (%rcx,%r11,4), %rcx
subq %r11, %rdx
cmpq %r11, %rbp
je .L6
.p2align 4,,10
.p2align 3
.L7:
movl $1, (%rcx)
addq $4, %rcx
subq $1, %rdx
jne .L7
.L6:
testb %bl, %bl
movq %rax, %rcx
jne .L35
movl $7000000, %esi
xorl %ebx, %ebx
movl $7000001, %r8d
jmp .L9
.p2align 4,,10
.p2align 3
.L36:
movq %rdx, %rsi
.L9:
addl (%rcx), %ebx
movq %r8, %r12
addq $4, %rcx
subq %rsi, %r12
leaq -1(%rsi), %rdx
cmpq %r9, %r12
jb .L36
.L8:
testb %dil, %dil
jne .L14
leaq (%rax,%r9,4), %rdi
xorl %esi, %esi
pxor %xmm0, %xmm0
.p2align 4,,10
.p2align 3
.L12:
addq $1, %rsi
paddd (%rdi), %xmm0
addq $16, %rdi
cmpq %r10, %rsi
jb .L12
leaq (%rcx,%r11,4), %rcx
movdqa %xmm0, %xmm1
subq %r11, %rdx
psrldq $8, %xmm1
paddd %xmm1, %xmm0
movdqa %xmm0, %xmm1
psrldq $4, %xmm1
paddd %xmm1, %xmm0
movd %xmm0, %esi
addl %esi, %ebx
cmpq %r11, %rbp
je .L13
.p2align 4,,10
.p2align 3
.L14:
addl (%rcx), %ebx
addq $4, %rcx
subq $1, %rdx
jne .L14
.L13:
testq %rax, %rax
je .L19
movq %rax, %rdi
call _ZdlPv
.L19:
leaq 16(%rsp), %rdi
xorl %esi, %esi
call gettimeofday
|
gettimeofday(&start, 0);
int * const arr = new int[size];
std::fill(arr, arr + size, 1);
sum = std::accumulate(arr, arr + size, 0);
delete [] arr;
gettimeofday(&end, 0);
call gettimeofday
movl $28000000, %edi
call _Znam
movq %rax, %r9
movq %rax, %rdx
andl $15, %r9d
shrq $2, %r9
negq %r9
andl $3, %r9d
sete %bl
je .L37
movl $7000000, %esi
movl $7000001, %edi
jmp .L21
.p2align 4,,10
.p2align 3
.L38:
movq %rcx, %rsi
.L21:
movl $1, (%rdx)
movq %rdi, %r8
addq $4, %rdx
leaq -1(%rsi), %rcx
subq %rsi, %r8
cmpq %r8, %r9
ja .L38
.L20:
movl $7000000, %r11d
subq %r9, %r11
movq %r11, %r10
shrq $2, %r10
leaq 0(,%r10,4), %rdi
testq %rdi, %rdi
sete %bpl
je .L42
movdqa .LC0(%rip), %xmm0
leaq (%rax,%r9,4), %r8
xorl %esi, %esi
.p2align 4,,10
.p2align 3
.L23:
addq $1, %rsi
movdqa %xmm0, (%r8)
addq $16, %r8
cmpq %r10, %rsi
jb .L23
leaq (%rdx,%rdi,4), %rdx
subq %rdi, %rcx
cmpq %rdi, %r11
je .L24
.p2align 4,,10
.p2align 3
.L42:
movl $1, (%rdx)
addq $4, %rdx
subq $1, %rcx
jne .L42
.L24:
testb %bl, %bl
movq %rax, %rdx
jne .L39
movl $7000000, %esi
xorl %ebx, %ebx
movl $7000001, %r8d
jmp .L27
.p2align 4,,10
.p2align 3
.L40:
movq %rcx, %rsi
.L27:
addl (%rdx), %ebx
movq %r8, %r12
addq $4, %rdx
subq %rsi, %r12
leaq -1(%rsi), %rcx
cmpq %r9, %r12
jb .L40
.L26:
testb %bpl, %bpl
jne .L41
leaq (%rax,%r9,4), %r8
xorl %esi, %esi
pxor %xmm0, %xmm0
.p2align 4,,10
.p2align 3
.L29:
addq $1, %rsi
paddd (%r8), %xmm0
addq $16, %r8
cmpq %r10, %rsi
jb .L29
leaq (%rdx,%rdi,4), %rdx
movdqa %xmm0, %xmm1
subq %rdi, %rcx
psrldq $8, %xmm1
paddd %xmm1, %xmm0
movdqa %xmm0, %xmm1
psrldq $4, %xmm1
paddd %xmm1, %xmm0
movd %xmm0, %esi
addl %esi, %ebx
cmpq %rdi, %r11
je .L30
.p2align 4,,10
.p2align 3
.L41:
addl (%rdx), %ebx
addq $4, %rdx
subq $1, %rcx
jne .L41
.L30:
testq %rax, %rax
je .L32
movq %rax, %rdi
call _ZdaPv
.L32:
leaq 16(%rsp), %rdi
xorl %esi, %esi
call gettimeofday |