Skip to content

Instantly share code, notes, and snippets.

@splinterofchaos
Created November 4, 2012 16:01
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 splinterofchaos/4012385 to your computer and use it in GitHub Desktop.
Save splinterofchaos/4012385 to your computer and use it in GitHub Desktop.
.file "func-effic.cpp"
# GNU C++ (Ubuntu/Linaro 4.7.2-4precise1) version 4.7.2 (x86_64-linux-gnu)
# compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed: -imultiarch x86_64-linux-gnu -D_GNU_SOURCE
# func-effic.cpp -mtune=generic -march=x86-64 -O4 -std=c++11 -fverbose-asm
# -fstack-protector
# options enabled: -fasynchronous-unwind-tables -fauto-inc-dec
# -fbranch-count-reg -fcaller-saves -fcombine-stack-adjustments -fcommon
# -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps
# -fdebug-types-section -fdefer-pop -fdelete-null-pointer-checks
# -fdevirtualize -fdwarf2-cfi-asm -fearly-inlining
# -feliminate-unused-debug-types -fexceptions -fexpensive-optimizations
# -fforward-propagate -ffunction-cse -fgcse -fgcse-after-reload -fgcse-lm
# -fgnu-runtime -fguess-branch-probability -fident -fif-conversion
# -fif-conversion2 -findirect-inlining -finline -finline-atomics
# -finline-functions -finline-functions-called-once
# -finline-small-functions -fipa-cp -fipa-cp-clone -fipa-profile
# -fipa-pure-const -fipa-reference -fipa-sra -fira-share-save-slots
# -fira-share-spill-slots -fivopts -fkeep-static-consts
# -fleading-underscore -fmath-errno -fmerge-constants -fmerge-debug-strings
# -fmove-loop-invariants -fomit-frame-pointer -foptimize-register-move
# -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole
# -fpeephole2 -fpredictive-commoning -fprefetch-loop-arrays -free
# -freg-struct-return -fregmove -freorder-blocks -freorder-functions
# -frerun-cse-after-loop -fsched-critical-path-heuristic
# -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock
# -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec
# -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fschedule-insns2
# -fshow-column -fshrink-wrap -fsigned-zeros -fsplit-ivs-in-unroller
# -fsplit-wide-types -fstack-protector -fstrict-aliasing -fstrict-overflow
# -fstrict-volatile-bitfields -fthread-jumps -ftoplevel-reorder
# -ftrapping-math -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp
# -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-cselim -ftree-dce
# -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre
# -ftree-loop-distribute-patterns -ftree-loop-if-convert -ftree-loop-im
# -ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
# -ftree-partial-pre -ftree-phiprop -ftree-pre -ftree-pta -ftree-reassoc
# -ftree-scev-cprop -ftree-sink -ftree-slp-vectorize -ftree-sra
# -ftree-switch-conversion -ftree-tail-merge -ftree-ter
# -ftree-vect-loop-version -ftree-vectorize -ftree-vrp -funit-at-a-time
# -funswitch-loops -funwind-tables -fvect-cost-model -fverbose-asm
# -fzero-initialized-in-bss -m128bit-long-double -m64 -m80387
# -maccumulate-outgoing-args -malign-stringops -mfancy-math-387
# -mfp-ret-in-387 -mglibc -mieee-fp -mmmx -mno-sse4 -mpush-args -mred-zone
# -msse -msse2 -mtls-direct-seg-refs
.text
.p2align 4,,15
.globl _Z3sumRKSt6vectorIdSaIdEE
.type _Z3sumRKSt6vectorIdSaIdEE, @function
_Z3sumRKSt6vectorIdSaIdEE:
.LFB3046:
.cfi_startproc
movq 8(%rdi), %rcx # MEM[(const struct vector *)v_1(D) + 8B], D.57783
movq (%rdi), %rax # MEM[(const struct vector *)v_1(D)], __first$_M_current
cmpq %rax, %rcx # __first$_M_current, D.57783
je .L4 #,
xorl %edx, %edx # __init
.p2align 4,,10
.p2align 3
.L3:
cvtsi2sd %edx, %xmm0 # __init, D.57800
addsd (%rax), %xmm0 # MEM[base: D.58928_42, offset: 0], D.57800
addq $8, %rax #, ivtmp.280
cmpq %rax, %rcx # ivtmp.280, D.57783
cvttsd2si %xmm0, %edx # D.57800, __init
jne .L3 #,
cvtsi2sd %edx, %xmm0 # __init, prephitmp.273
ret
.L4:
xorpd %xmm0, %xmm0 # prephitmp.273
ret
.cfi_endproc
.LFE3046:
.size _Z3sumRKSt6vectorIdSaIdEE, .-_Z3sumRKSt6vectorIdSaIdEE
.p2align 4,,15
.globl _Z4meanRKSt6vectorIdSaIdEE
.type _Z4meanRKSt6vectorIdSaIdEE, @function
_Z4meanRKSt6vectorIdSaIdEE:
.LFB3047:
.cfi_startproc
movq 8(%rdi), %rcx # MEM[(const struct vector *)v_1(D) + 8B], D.57819
movq (%rdi), %rsi # MEM[(const struct vector *)v_1(D)], __first$_M_current
xorpd %xmm0, %xmm0 # prephitmp.293
cmpq %rsi, %rcx # __first$_M_current, D.57819
je .L8 #,
movq %rsi, %rax # __first$_M_current, ivtmp.300
xorl %edx, %edx # __init
.p2align 4,,10
.p2align 3
.L9:
cvtsi2sd %edx, %xmm0 # __init, D.57814
addsd (%rax), %xmm0 # MEM[base: D.58948_44, offset: 0], D.57814
addq $8, %rax #, ivtmp.300
cmpq %rax, %rcx # ivtmp.300, D.57819
cvttsd2si %xmm0, %edx # D.57814, __init
jne .L9 #,
cvtsi2sd %edx, %xmm0 # __init, prephitmp.293
.L8:
subq %rsi, %rcx # __first$_M_current, tmp92
sarq $3, %rcx #, tmp92
testq %rcx, %rcx # tmp92
js .L10 #,
cvtsi2sdq %rcx, %xmm1 # tmp92, tmp93
divsd %xmm1, %xmm0 # tmp93, tmp89
ret
.p2align 4,,10
.p2align 3
.L10:
movq %rcx, %rax # tmp92, tmp95
andl $1, %ecx #, tmp96
shrq %rax # tmp95
orq %rcx, %rax # tmp96, tmp95
cvtsi2sdq %rax, %xmm1 # tmp95, tmp93
addsd %xmm1, %xmm1 # tmp93, tmp93
divsd %xmm1, %xmm0 # tmp93, tmp89
ret
.cfi_endproc
.LFE3047:
.size _Z4meanRKSt6vectorIdSaIdEE, .-_Z4meanRKSt6vectorIdSaIdEE
.p2align 4,,15
.globl _Z7squaredd
.type _Z7squaredd, @function
_Z7squaredd:
.LFB3048:
.cfi_startproc
mulsd %xmm0, %xmm0 # tmp62, tmp62
ret
.cfi_endproc
.LFE3048:
.size _Z7squaredd, .-_Z7squaredd
.p2align 4,,15
.globl _ZN8stateful6squareERSt6vectorIdSaIdEE
.type _ZN8stateful6squareERSt6vectorIdSaIdEE, @function
_ZN8stateful6squareERSt6vectorIdSaIdEE:
.LFB3049:
.cfi_startproc
movq (%rdi), %r9 # MEM[(double * const &)v_1(D)], __first$_M_current
movq 8(%rdi), %rdi # MEM[(double * const &)v_1(D) + 8], D.57942
cmpq %rdi, %r9 # D.57942, __first$_M_current
je .L15 #,
leaq 8(%r9), %rax #, tmp112
movq %rdi, %rsi # D.57942, tmp114
movq %r9, %rcx # __first$_M_current, tmp118
salq $60, %rcx #, tmp118
subq %rax, %rsi # tmp112, tmp114
shrq $63, %rcx #, tmp118
movq %r9, %rax # __first$_M_current, __first$_M_current
shrq $3, %rsi #, tmp114
addq $1, %rsi #, prologue_after_cost_adjust.312
cmpq %rsi, %rcx # prologue_after_cost_adjust.312, tmp118
cmova %rsi, %rcx # tmp118,, prologue_after_cost_adjust.312, prologue_after_cost_adjust.312
cmpq $2, %rsi #, prologue_after_cost_adjust.312
cmovbe %rsi, %rcx # prologue_after_cost_adjust.312,, prologue_after_cost_adjust.312, prologue_after_cost_adjust.312
testq %rcx, %rcx # prologue_after_cost_adjust.312
je .L18 #,
xorl %edx, %edx # ivtmp.338
.p2align 4,,10
.p2align 3
.L19:
movsd (%rax), %xmm0 # MEM[base: __first$_M_current_53, offset: 0], tmp119
addq $1, %rdx #, ivtmp.338
mulsd %xmm0, %xmm0 # tmp119, tmp119
movsd %xmm0, (%rax) # tmp119, MEM[base: __first$_M_current_53, offset: 0]
addq $8, %rax #, __first$_M_current
cmpq %rdx, %rcx # ivtmp.338, prologue_after_cost_adjust.312
ja .L19 #,
cmpq %rcx, %rsi # prologue_after_cost_adjust.312, prologue_after_cost_adjust.312
je .L33 #,
.L18:
movq %rsi, %r11 # prologue_after_cost_adjust.312, niters.314
subq %rcx, %r11 # prologue_after_cost_adjust.312, niters.314
movq %r11, %r8 # niters.314, bnd.315
shrq %r8 # bnd.315
movq %r8, %r10 # bnd.315, ratio_mult_vf.316
addq %r10, %r10 # ratio_mult_vf.316
je .L21 #,
leaq (%r9,%rcx,8), %rsi #, vect_p.322
xorl %edx, %edx # ivtmp.346
xorl %ecx, %ecx # ivtmp.344
.p2align 4,,10
.p2align 3
.L22:
movapd (%rsi,%rdx), %xmm0 # MEM[base: vect_p.322_116, index: ivtmp.346_54, offset: 0], tmp121
addq $1, %rcx #, ivtmp.344
mulpd %xmm0, %xmm0 # tmp121, tmp121
movapd %xmm0, (%rsi,%rdx) # tmp121, MEM[base: vect_p.322_116, index: ivtmp.346_54, offset: 0]
addq $16, %rdx #, ivtmp.346
cmpq %r8, %rcx # bnd.315, ivtmp.344
jb .L22 #,
cmpq %r10, %r11 # ratio_mult_vf.316, niters.314
leaq (%rax,%r10,8), %rax #, __first$_M_current
je .L15 #,
.L21:
movq %rax, %rdx # ivtmp.332, ivtmp.332
.p2align 4,,10
.p2align 3
.L24:
movsd (%rdx), %xmm0 # MEM[base: D.59017_80, offset: 0], tmp123
addq $8, %rdx #, ivtmp.332
mulsd %xmm0, %xmm0 # tmp123, tmp123
movsd %xmm0, (%rax) # tmp123, MEM[base: D.59018_128, offset: 0]
addq $8, %rax #, ivtmp.332
cmpq %rdx, %rdi # ivtmp.332, D.57942
jne .L24 #,
.L15:
rep
ret
.L33:
ret
.cfi_endproc
.LFE3049:
.size _ZN8stateful6squareERSt6vectorIdSaIdEE, .-_ZN8stateful6squareERSt6vectorIdSaIdEE
.p2align 4,,15
.globl _ZN8stateful3rmsERSt6vectorIdSaIdEE
.type _ZN8stateful3rmsERSt6vectorIdSaIdEE, @function
_ZN8stateful3rmsERSt6vectorIdSaIdEE:
.LFB3053:
.cfi_startproc
pushq %rbx #
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movq (%rdi), %r10 # MEM[(double * const &)v_1(D)], __first$_M_current
movq 8(%rdi), %rdi # MEM[(double * const &)v_1(D) + 8], end
cmpq %rdi, %r10 # end, __first$_M_current
je .L51 #,
leaq 8(%r10), %rax #, tmp122
movq %rdi, %r8 # end, tmp124
movq %r10, %rsi # __first$_M_current, tmp128
salq $60, %rsi #, tmp128
movq %r10, %rdx # __first$_M_current, dIt
subq %rax, %r8 # tmp122, tmp124
shrq $63, %rsi #, tmp128
movq %r10, %rax # __first$_M_current, __first$_M_current
shrq $3, %r8 #, tmp124
addq $1, %r8 #, prologue_after_cost_adjust.367
cmpq %r8, %rsi # prologue_after_cost_adjust.367, tmp128
cmova %r8, %rsi # tmp128,, prologue_after_cost_adjust.367, prologue_after_cost_adjust.367
cmpq $2, %r8 #, prologue_after_cost_adjust.367
cmovbe %r8, %rsi # prologue_after_cost_adjust.367,, prologue_after_cost_adjust.367, prologue_after_cost_adjust.367
testq %rsi, %rsi # if( prologue_after_cost_adjust.367 == 0 )
je .L37 # skip the following loop.
xorl %ecx, %ecx # count = 0
.L38: # while( count < prologue_after_cost_adjust.367 ) {
movsd (%rax), %xmm0 # MEM[base: __first$_M_current_66, offset: 0] -> unSquared
addq $1, %rcx # count = 1
mulsd %xmm0, %xmm0 # unSquared *= unSquared
movsd %xmm0, (%rax) # unSquared -> MEM[base: __first$_M_current_66, offset: 0]
addq $8, %rax # __first$_M_current++
cmpq %rcx, %rsi # (check condition)
ja .L38 # }
cmpq %rsi, %r8 # prologue_after_cost_adjust.367, prologue_after_cost_adjust.367
je .L39 #,
.L37:
movq %r8, %rbx # prologue_after_cost_adjust.367, niters.369
subq %rsi, %rbx # prologue_after_cost_adjust.367, niters.369
movq %rbx, %r9 # niters.369, bnd.370
shrq %r9 # bnd.370
movq %r9, %r11 # bnd.370, ratio_mult_vf.371
addq %r11, %r11 # ratio_mult_vf.371
je .L40 #,
leaq (%r10,%rsi,8), %r8 #, vect_p.377
xorl %ecx, %ecx # offset = 0
xorl %esi, %esi # count = 0
.p2align 4,,10
.p2align 3
.L41: # while( bnd.370 < count ) {
movapd (%r8,%rcx), %xmm0 # MEM[base: vect_p.377_129, index: offset_13, offset: 0], unSquared
addq $1, %rsi # count++
mulpd %xmm0, %xmm0 # unSquared *= unSquared
movapd %xmm0, (%r8,%rcx) # unSquared -> MEM[base: vect_p.377_129, index: offset_13, offset: 0]
addq $16, %rcx # offset++
cmpq %r9, %rsi # (check condition)
jb .L41 # }
cmpq %r11, %rbx # ratio_mult_vf.371, niters.369
leaq (%rax,%r11,8), %rax #, __first$_M_current
je .L39 #,
.L40:
movq %rax, %rcx # __first$_M_current -> cIt
.L43: # while( cIt != end ) {
movsd (%rcx), %xmm0 # MEM[base: D.59108_93, offset: 0] -> unSquared
addq $8, %rcx # cIt++;
mulsd %xmm0, %xmm0 # unSquared *= unSquared
movsd %xmm0, (%rax) # unSquared -> MEM[base: D.59109_141, offset: 0]
addq $8, %rax # cIt
cmpq %rcx, %rdi # (check condition)
jne .L43 # }
.L39:
xorl %eax, %eax # __init = 0
.p2align 4,,10
.p2align 3
.L44: # while( dIt != end ) {
cvtsi2sd %eax, %xmm0 # intToFloat(__init) -> adder
addsd (%rdx), %xmm0 # adder += MEM[base: D.59121_113, offset: 0]
addq $8, %rdx # dIt++
cmpq %rdx, %rdi # (check condition)
cvttsd2si %xmm0, %eax # floatToInt(adder) -> __init
jne .L44 # }
.L35: #
cvtsi2sd %eax, %xmm1 # intToFloat(__init) -> tmp155
movq %rdi, %rax # end -> tmp139
subq %r10, %rax # tmp139 -= __first$_M_current
sarq $3, %rax # tmp139 >>= 3
testq %rax, %rax # tmp139
js .L45 #
cvtsi2sdq %rax, %xmm0 # longIntToDouble(tmp139) -> tmp140
.L46:
movapd %xmm1, %xmm2 # tmp155 -> tmp135
divsd %xmm0, %xmm2 # tmp135 /= tmp140
sqrtsd %xmm2, %xmm0 # tmp135 = sqrt( tmp144 )
ucomisd %xmm0, %xmm0 # if( tmp135 > 0 )
jp .L61 # goto L61 (I think)
popq %rbx # else return
ret
.L45:
.cfi_restore_state
movq %rax, %rdx # tmp139, tmp142
andl $1, %eax #,tmp143
shrq %rdx # tmp142
orq %rax, %rdx # tmp143, tmp142
cvtsi2sdq %rdx, %xmm0 # longIntToDouble(tmp142) -> tmp140
addsd %xmm0, %xmm0 # tmp140, tmp140
jmp .L46 #
.L51:
xorl %eax, %eax # __init
jmp .L35 #
.L61:
subq %r10, %rdi # __first$_M_current, tmp148
sarq $3, %rdi #, tmp148
testq %rdi, %rdi # tmp148
js .L49 #,
cvtsi2sdq %rdi, %xmm0 # longIntToDouble(tmp148) -> tmp149
.L50:
divsd %xmm0, %xmm1 # tmp149, tmp155
movapd %xmm1, %xmm0 # tmp155, tmp153
call sqrt #
popq %rbx #
.cfi_remember_state
.cfi_def_cfa_offset 8
ret
.L49:
.cfi_restore_state
movq %rdi, %rax # tmp148, tmp151
andl $1, %edi #, tmp152
shrq %rax # tmp151
orq %rdi, %rax # tmp152, tmp151
cvtsi2sdq %rax, %xmm0 # tmp151, tmp149
addsd %xmm0, %xmm0 # tmp149, tmp149
jmp .L50 #
.cfi_endproc
.LFE3053:
.size _ZN8stateful3rmsERSt6vectorIdSaIdEE, .-_ZN8stateful3rmsERSt6vectorIdSaIdEE
.p2align 4,,15
.globl _ZN4slow7squaredESt6vectorIdSaIdEE
.type _ZN4slow7squaredESt6vectorIdSaIdEE, @function
_ZN4slow7squaredESt6vectorIdSaIdEE:
.LFB3055:
.cfi_startproc
movq (%rsi), %r9 # MEM[(double * const &)v_1(D)], __first$_M_current
movq 8(%rsi), %r10 # MEM[(double * const &)v_1(D) + 8], D.58278
movq %rdi, %rax # .result_ptr, <retval>
pushq %rbx #
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
cmpq %r10, %r9 # D.58278, __first$_M_current
je .L72 #,
leaq 8(%r9), %rdx #, tmp106
movq %r10, %rdi # D.58278, tmp108
movq %r9, %r8 # __first$_M_current, tmp112
salq $60, %r8 #, tmp112
subq %rdx, %rdi # tmp106, tmp108
shrq $63, %r8 #, tmp112
movq %r9, %rdx # __first$_M_current, __first$_M_current
shrq $3, %rdi #, tmp108
addq $1, %rdi #, prologue_after_cost_adjust.420
cmpq %rdi, %r8 # prologue_after_cost_adjust.420, tmp112
cmova %rdi, %r8 # tmp112,, prologue_after_cost_adjust.420, prologue_after_cost_adjust.420
cmpq $2, %rdi #, prologue_after_cost_adjust.420
cmovbe %rdi, %r8 # prologue_after_cost_adjust.420,, prologue_after_cost_adjust.420, prologue_after_cost_adjust.420
testq %r8, %r8 # prologue_after_cost_adjust.420
je .L65 #,
xorl %ecx, %ecx # ivtmp.446
.p2align 4,,10
.p2align 3
.L66:
movsd (%rdx), %xmm0 # MEM[base: __first$_M_current_69, offset: 0], tmp113
addq $1, %rcx #, ivtmp.446
mulsd %xmm0, %xmm0 # tmp113, tmp113
movsd %xmm0, (%rdx) # tmp113, MEM[base: __first$_M_current_69, offset: 0]
addq $8, %rdx #, __first$_M_current
cmpq %rcx, %r8 # ivtmp.446, prologue_after_cost_adjust.420
ja .L66 #,
cmpq %r8, %rdi # prologue_after_cost_adjust.420, prologue_after_cost_adjust.420
je .L72 #,
.L65:
subq %r8, %rdi # prologue_after_cost_adjust.420, niters.422
movq %rdi, %r11 # niters.422, bnd.423
shrq %r11 # bnd.423
movq %r11, %rbx # bnd.423, ratio_mult_vf.424
addq %rbx, %rbx # ratio_mult_vf.424
je .L68 #,
leaq (%r9,%r8,8), %r9 #, vect_p.430
xorl %ecx, %ecx # ivtmp.454
xorl %r8d, %r8d # ivtmp.452
.p2align 4,,10
.p2align 3
.L69:
movapd (%r9,%rcx), %xmm0 # MEM[base: vect_p.430_132, index: ivtmp.454_70, offset: 0], tmp115
addq $1, %r8 #, ivtmp.452
mulpd %xmm0, %xmm0 # tmp115, tmp115
movapd %xmm0, (%r9,%rcx) # tmp115, MEM[base: vect_p.430_132, index: ivtmp.454_70, offset: 0]
addq $16, %rcx #, ivtmp.454
cmpq %r11, %r8 # bnd.423, ivtmp.452
jb .L69 #,
cmpq %rbx, %rdi # ratio_mult_vf.424, niters.422
leaq (%rdx,%rbx,8), %rdx #, __first$_M_current
je .L72 #,
.L68:
movq %rdx, %rcx # ivtmp.440, ivtmp.440
.p2align 4,,10
.p2align 3
.L71:
movsd (%rcx), %xmm0 # MEM[base: D.59199_96, offset: 0], tmp117
addq $8, %rcx #, ivtmp.440
mulsd %xmm0, %xmm0 # tmp117, tmp117
movsd %xmm0, (%rdx) # tmp117, MEM[base: D.59200_144, offset: 0]
addq $8, %rdx #, ivtmp.440
cmpq %rcx, %r10 # ivtmp.440, D.58278
jne .L71 #,
.L72:
movq $0, 8(%rax) #, MEM[(struct _Vector_impl *)<retval>_2(D)]._M_finish
movq $0, 16(%rax) #, MEM[(struct _Vector_impl *)<retval>_2(D)]._M_end_of_storage
movq $0, (%rax) #, MEM[(struct _Vector_impl *)<retval>_2(D)]._M_start
movq (%rsi), %rdx # MEM[(double * &)v_1(D)], D.58306
movq %rdx, (%rax) # D.58306, MEM[(double * &)<retval>_2(D)]
movq $0, (%rsi) #, MEM[(double * &)v_1(D)]
movq 8(%rsi), %rcx # MEM[(double * &)v_1(D) + 8], D.58305
movq 8(%rax), %rdx # MEM[(double * &)<retval>_2(D) + 8], __tmp.61
movq %rcx, 8(%rax) # D.58305, MEM[(double * &)<retval>_2(D) + 8]
movq %rdx, 8(%rsi) # __tmp.61, MEM[(double * &)v_1(D) + 8]
movq 16(%rsi), %rcx # MEM[(double * &)v_1(D) + 16], D.58302
movq 16(%rax), %rdx # MEM[(double * &)<retval>_2(D) + 16], __tmp.61
movq %rcx, 16(%rax) # D.58302, MEM[(double * &)<retval>_2(D) + 16]
movq %rdx, 16(%rsi) # __tmp.61, MEM[(double * &)v_1(D) + 16]
popq %rbx #
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE3055:
.size _ZN4slow7squaredESt6vectorIdSaIdEE, .-_ZN4slow7squaredESt6vectorIdSaIdEE
.p2align 4,,15
.globl _ZN4slow3rmsERKSt6vectorIdSaIdEE
.type _ZN4slow3rmsERKSt6vectorIdSaIdEE, @function
_ZN4slow3rmsERKSt6vectorIdSaIdEE:
.LFB3059:
.cfi_startproc
pushq %r12 #
.cfi_def_cfa_offset 16
.cfi_offset 12, -16
movq %rdi, %r12 # v, v
pushq %rbp #
.cfi_def_cfa_offset 24
.cfi_offset 6, -24
pushq %rbx #
.cfi_def_cfa_offset 32
.cfi_offset 3, -32
subq $16, %rsp #,
.cfi_def_cfa_offset 48
movq 8(%rdi), %rax # MEM[(const struct vector *)v_1(D) + 8B], tmp156
subq (%rdi), %rax # MEM[(const struct vector *)v_1(D)], tmp156
sarq $3, %rax #, tmp156
testq %rax, %rax # tmp156
je .L104 #,
movabsq $2305843009213693951, %rdx #, tmp157
cmpq %rdx, %rax # tmp157, tmp156
ja .L119 #,
leaq 0(,%rax,8), %rdi #, tmp158
call _Znwm #
movq (%r12), %rsi # MEM[(const struct vector *)v_1(D)], prephitmp.480
movq %rax, %rbx #, __first$_M_current
movq %rax, %rbp # __first$_M_current, prephitmp.478
movq 8(%r12), %rax # MEM[(const struct vector *)v_1(D) + 8B], tmp160
subq %rsi, %rax # prephitmp.480, tmp160
sarq $3, %rax #, tmp160
testq %rax, %rax # tmp160
movq %rax, %r12 # tmp160, prephitmp.486
jne .L120 #,
.L117:
salq $3, %r12 #, prephitmp.486
.L86:
leaq (%rbx,%r12), %r9 #, D.59259
cmpq %r9, %rbx # D.59259, __first$_M_current
je .L105 #,
leaq 8(%rbx), %rax #, tmp161
movq %r9, %rdi # D.59259, tmp163
movq %rbx, %rcx # __first$_M_current, ivtmp.530
movq %rbx, %rdx # __first$_M_current, __first$_M_current
subq %rax, %rdi # tmp161, tmp163
movq %rbx, %rax # __first$_M_current, tmp167
shrq $3, %rdi #, tmp163
salq $60, %rax #, tmp167
addq $1, %rdi #, prologue_after_cost_adjust.497
shrq $63, %rax #, tmp167
cmpq %rax, %rdi # tmp167, prologue_after_cost_adjust.497
cmovbe %rdi, %rax # prologue_after_cost_adjust.497,, prologue_after_cost_adjust.497
cmpq $2, %rdi #, prologue_after_cost_adjust.497
cmovbe %rdi, %rax # prologue_after_cost_adjust.497,, prologue_after_cost_adjust.497, prologue_after_cost_adjust.497
testq %rax, %rax # prologue_after_cost_adjust.497
je .L89 #,
xorl %esi, %esi # ivtmp.523
.p2align 4,,10
.p2align 3
.L90:
movsd (%rdx), %xmm0 # MEM[base: __first$_M_current_120, offset: 0], tmp168
addq $1, %rsi #, ivtmp.523
mulsd %xmm0, %xmm0 # tmp168, tmp168
movsd %xmm0, (%rdx) # tmp168, MEM[base: __first$_M_current_120, offset: 0]
addq $8, %rdx #, __first$_M_current
cmpq %rsi, %rax # ivtmp.523, prologue_after_cost_adjust.497
ja .L90 #,
cmpq %rax, %rdi # prologue_after_cost_adjust.497, prologue_after_cost_adjust.497
je .L91 #,
.L89:
movq %rdi, %r11 # prologue_after_cost_adjust.497, niters.499
subq %rax, %r11 # prologue_after_cost_adjust.497, niters.499
movq %r11, %rdi # niters.499, bnd.500
shrq %rdi # bnd.500
movq %rdi, %r10 # bnd.500, ratio_mult_vf.501
addq %r10, %r10 # ratio_mult_vf.501
je .L92 #,
leaq (%rbx,%rax,8), %rax #, vect_p.507
xorl %esi, %esi # ivtmp.536
xorl %r8d, %r8d # ivtmp.534
.p2align 4,,10
.p2align 3
.L93:
movapd (%rax,%rsi), %xmm0 # MEM[base: vect_p.507_183, index: ivtmp.536_17, offset: 0], tmp170
addq $1, %r8 #, ivtmp.534
mulpd %xmm0, %xmm0 # tmp170, tmp170
movapd %xmm0, (%rax,%rsi) # tmp170, MEM[base: vect_p.507_183, index: ivtmp.536_17, offset: 0]
addq $16, %rsi #, ivtmp.536
cmpq %rdi, %r8 # bnd.500, ivtmp.534
jb .L93 #,
cmpq %r10, %r11 # ratio_mult_vf.501, niters.499
leaq (%rdx,%r10,8), %rdx #, __first$_M_current
je .L91 #,
.L92:
movq %rdx, %rsi # ivtmp.517, ivtmp.517
.p2align 4,,10
.p2align 3
.L95:
movsd (%rsi), %xmm0 # MEM[base: D.59401_147, offset: 0], tmp172
addq $8, %rsi #, ivtmp.517
mulsd %xmm0, %xmm0 # tmp172, tmp172
movsd %xmm0, (%rdx) # tmp172, MEM[base: D.59402_195, offset: 0]
addq $8, %rdx #, ivtmp.517
cmpq %rsi, %r9 # ivtmp.517, D.59259
jne .L95 #,
.L91:
xorl %edx, %edx # __init
.p2align 4,,10
.p2align 3
.L96:
cvtsi2sd %edx, %xmm0 # __init, D.58874
addsd (%rcx), %xmm0 # MEM[base: D.59414_167, offset: 0], D.58874
addq $8, %rcx #, ivtmp.530
cmpq %rcx, %r9 # ivtmp.530, D.59259
cvttsd2si %xmm0, %edx # D.58874, __init
jne .L96 #,
.L87:
movq %r9, %rax # D.59259, tmp178
cvtsi2sd %edx, %xmm1 # __init, tmp194
subq %rbp, %rax # prephitmp.478, tmp178
sarq $3, %rax #, tmp178
testq %rax, %rax # tmp178
js .L97 #,
cvtsi2sdq %rax, %xmm0 # tmp178, tmp179
.L98:
movapd %xmm1, %xmm2 # tmp194,
divsd %xmm0, %xmm2 # tmp179,
sqrtsd %xmm2, %xmm0 # tmp183, tmp174
ucomisd %xmm0, %xmm0 # tmp174, tmp174
jp .L121 #,
.L99:
testq %rbx, %rbx # __first$_M_current
je .L103 #,
movq %rbx, %rdi # __first$_M_current,
movsd %xmm0, (%rsp) #,
call _ZdlPv #
movsd (%rsp), %xmm0 #,
.L103:
addq $16, %rsp #,
.cfi_remember_state
.cfi_def_cfa_offset 32
popq %rbx #
.cfi_def_cfa_offset 24
popq %rbp #
.cfi_def_cfa_offset 16
popq %r12 #
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L120:
.cfi_restore_state
leaq 0(,%rax,8), %r12 #, prephitmp.486
movq %rbx, %rdi # __first$_M_current,
movq %r12, %rdx # prephitmp.486,
call memmove #
jmp .L86 #
.p2align 4,,10
.p2align 3
.L104:
xorl %r12d, %r12d # prephitmp.486
xorl %ebp, %ebp # prephitmp.478
xorl %ebx, %ebx # __first$_M_current
jmp .L117 #
.p2align 4,,10
.p2align 3
.L97:
movq %rax, %rdx # tmp178, tmp181
andl $1, %eax #, tmp182
shrq %rdx # tmp181
orq %rax, %rdx # tmp182, tmp181
cvtsi2sdq %rdx, %xmm0 # tmp181, tmp179
addsd %xmm0, %xmm0 # tmp179, tmp179
jmp .L98 #
.L105:
xorl %edx, %edx # __init
jmp .L87 #
.L121:
subq %rbp, %r9 # prephitmp.478, tmp187
sarq $3, %r9 #, tmp187
testq %r9, %r9 # tmp187
js .L101 #,
cvtsi2sdq %r9, %xmm0 # tmp187, tmp188
.L102:
divsd %xmm0, %xmm1 # tmp188, tmp194
movapd %xmm1, %xmm0 # tmp194, tmp192
call sqrt #
jmp .L99 #
.L119:
call _ZSt17__throw_bad_allocv #
.L101:
movq %r9, %rax # tmp187, tmp190
andl $1, %r9d #, tmp191
shrq %rax # tmp190
orq %r9, %rax # tmp191, tmp190
cvtsi2sdq %rax, %xmm0 # tmp190, tmp188
addsd %xmm0, %xmm0 # tmp188, tmp188
jmp .L102 #
.cfi_endproc
.LFE3059:
.size _ZN4slow3rmsERKSt6vectorIdSaIdEE, .-_ZN4slow3rmsERKSt6vectorIdSaIdEE
.p2align 4,,15
.globl _ZN4fast7squaredEOSt6vectorIdSaIdEE
.type _ZN4fast7squaredEOSt6vectorIdSaIdEE, @function
_ZN4fast7squaredEOSt6vectorIdSaIdEE:
.LFB3061:
.cfi_startproc
pushq %r13 #
.cfi_def_cfa_offset 16
.cfi_offset 13, -16
pushq %r12 #
.cfi_def_cfa_offset 24
.cfi_offset 12, -24
pushq %rbp #
.cfi_def_cfa_offset 32
.cfi_offset 6, -32
movq %rsi, %rbp # v, v
pushq %rbx #
.cfi_def_cfa_offset 40
.cfi_offset 3, -40
movq %rdi, %rbx # .result_ptr, <retval>
subq $8, %rsp #,
.cfi_def_cfa_offset 48
movq (%rsi), %rax # MEM[(double * const &)v_1(D)], __first$_M_current
movq 8(%rsi), %r10 # MEM[(double * const &)v_1(D) + 8], D.58774
cmpq %r10, %rax # D.58774, __first$_M_current
je .L134 #,
leaq 8(%rax), %rdx #, tmp119
movq %r10, %rsi # D.58774, tmp121
movq %rax, %r8 # __first$_M_current, tmp125
salq $60, %r8 #, tmp125
subq %rdx, %rsi # tmp119, tmp121
shrq $63, %r8 #, tmp125
movq %rax, %rdx # __first$_M_current, __first$_M_current
shrq $3, %rsi #, tmp121
addq $1, %rsi #, prologue_after_cost_adjust.552
cmpq %rsi, %r8 # prologue_after_cost_adjust.552, tmp125
cmova %rsi, %r8 # tmp125,, prologue_after_cost_adjust.552, prologue_after_cost_adjust.552
cmpq $2, %rsi #, prologue_after_cost_adjust.552
cmovbe %rsi, %r8 # prologue_after_cost_adjust.552,, prologue_after_cost_adjust.552, prologue_after_cost_adjust.552
testq %r8, %r8 # prologue_after_cost_adjust.552
je .L127 #,
xorl %ecx, %ecx # ivtmp.578
.p2align 4,,10
.p2align 3
.L128:
movsd (%rdx), %xmm0 # MEM[base: __first$_M_current_89, offset: 0], tmp126
addq $1, %rcx #, ivtmp.578
mulsd %xmm0, %xmm0 # tmp126, tmp126
movsd %xmm0, (%rdx) # tmp126, MEM[base: __first$_M_current_89, offset: 0]
addq $8, %rdx #, __first$_M_current
cmpq %rcx, %r8 # ivtmp.578, prologue_after_cost_adjust.552
ja .L128 #,
cmpq %r8, %rsi # prologue_after_cost_adjust.552, prologue_after_cost_adjust.552
je .L134 #,
.L127:
subq %r8, %rsi # prologue_after_cost_adjust.552, niters.554
movq %rsi, %r11 # niters.554, bnd.555
shrq %r11 # bnd.555
movq %r11, %rdi # bnd.555, ratio_mult_vf.556
addq %rdi, %rdi # ratio_mult_vf.556
je .L130 #,
leaq (%rax,%r8,8), %r9 #, vect_p.562
xorl %ecx, %ecx # ivtmp.586
xorl %r8d, %r8d # ivtmp.584
.p2align 4,,10
.p2align 3
.L131:
movapd (%r9,%rcx), %xmm0 # MEM[base: vect_p.562_152, index: ivtmp.586_90, offset: 0], tmp128
addq $1, %r8 #, ivtmp.584
mulpd %xmm0, %xmm0 # tmp128, tmp128
movapd %xmm0, (%r9,%rcx) # tmp128, MEM[base: vect_p.562_152, index: ivtmp.586_90, offset: 0]
addq $16, %rcx #, ivtmp.586
cmpq %r11, %r8 # bnd.555, ivtmp.584
jb .L131 #,
cmpq %rdi, %rsi # ratio_mult_vf.556, niters.554
leaq (%rdx,%rdi,8), %rdx #, __first$_M_current
je .L134 #,
.L130:
movq %rdx, %rcx # ivtmp.572, ivtmp.572
.p2align 4,,10
.p2align 3
.L133:
movsd (%rcx), %xmm0 # MEM[base: D.59554_116, offset: 0], tmp130
addq $8, %rcx #, ivtmp.572
mulsd %xmm0, %xmm0 # tmp130, tmp130
movsd %xmm0, (%rdx) # tmp130, MEM[base: D.59555_164, offset: 0]
addq $8, %rdx #, ivtmp.572
cmpq %rcx, %r10 # ivtmp.572, D.58774
jne .L133 #,
.L134:
subq %rax, %r10 # __first$_M_current, tmp118
xorl %r13d, %r13d # prephitmp.545
xorl %r12d, %r12d # D.59466
sarq $3, %r10 #, tmp118
movq $0, (%rbx) #, MEM[(struct _Vector_impl *)<retval>_2(D)]._M_start
movq $0, 8(%rbx) #, MEM[(struct _Vector_impl *)<retval>_2(D)]._M_finish
testq %r10, %r10 # tmp118
movq $0, 16(%rbx) #, MEM[(struct _Vector_impl *)<retval>_2(D)]._M_end_of_storage
je .L125 #,
movabsq $2305843009213693951, %rax #, tmp131
cmpq %rax, %r10 # tmp131, tmp118
ja .L147 #,
leaq 0(,%r10,8), %r13 #, prephitmp.545
movq %r13, %rdi # prephitmp.545,
call _Znwm #
movq %rax, %r12 #, D.59466
.L125:
addq %r12, %r13 # D.59466, tmp132
movq %r12, (%rbx) # D.59466, MEM[(struct _Vector_base *)<retval>_2(D)]._M_impl._M_start
movq %r12, 8(%rbx) # D.59466, MEM[(struct _Vector_base *)<retval>_2(D)]._M_impl._M_finish
movq %r13, 16(%rbx) # tmp132, MEM[(struct _Vector_base *)<retval>_2(D)]._M_impl._M_end_of_storage
movq 0(%rbp), %rsi # MEM[(const struct vector *)v_1(D)], D.59443
movq 8(%rbp), %rcx # MEM[(const struct vector *)v_1(D) + 8B], tmp135
xorl %ebp, %ebp # prephitmp.545
subq %rsi, %rcx # D.59443, tmp135
sarq $3, %rcx #, tmp135
testq %rcx, %rcx # tmp135
je .L136 #,
leaq 0(,%rcx,8), %rbp #, prephitmp.545
movq %r12, %rdi # D.59466,
movq %rbp, %rdx # prephitmp.545,
call memmove #
.L136:
addq %rbp, %r12 # prephitmp.545, tmp136
movq %rbx, %rax # <retval>,
movq %r12, 8(%rbx) # tmp136, <retval>_2(D)->D.33227._M_impl._M_finish
addq $8, %rsp #,
.cfi_remember_state
.cfi_def_cfa_offset 40
popq %rbx #
.cfi_def_cfa_offset 32
popq %rbp #
.cfi_def_cfa_offset 24
popq %r12 #
.cfi_def_cfa_offset 16
popq %r13 #
.cfi_def_cfa_offset 8
ret
.L147:
.cfi_restore_state
call _ZSt17__throw_bad_allocv #
.cfi_endproc
.LFE3061:
.size _ZN4fast7squaredEOSt6vectorIdSaIdEE, .-_ZN4fast7squaredEOSt6vectorIdSaIdEE
.p2align 4,,15
.globl _ZN4fast3rmsEOSt6vectorIdSaIdEE
.type _ZN4fast3rmsEOSt6vectorIdSaIdEE, @function
_ZN4fast3rmsEOSt6vectorIdSaIdEE:
.LFB3065:
.cfi_startproc
pushq %r12 #
.cfi_def_cfa_offset 16
.cfi_offset 12, -16
pushq %rbp #
.cfi_def_cfa_offset 24
.cfi_offset 6, -24
movq %rdi, %rbp # v, v
pushq %rbx #
.cfi_def_cfa_offset 32
.cfi_offset 3, -32
subq $16, %rsp #,
.cfi_def_cfa_offset 48
movq (%rdi), %rsi # MEM[(double * const &)v_1(D)], __first$_M_current
movq 8(%rdi), %r9 # MEM[(double * const &)v_1(D) + 8], D.59575
cmpq %r9, %rsi # D.59575, __first$_M_current
je .L160 #,
leaq 8(%rsi), %rax #, tmp158
movq %r9, %rdi # D.59575, tmp160
movq %rsi, %rcx # __first$_M_current, tmp164
salq $60, %rcx #, tmp164
subq %rax, %rdi # tmp158, tmp160
shrq $63, %rcx #, tmp164
movq %rsi, %rax # __first$_M_current, __first$_M_current
shrq $3, %rdi #, tmp160
addq $1, %rdi #, prologue_after_cost_adjust.630
cmpq %rdi, %rcx # prologue_after_cost_adjust.630, tmp164
cmova %rdi, %rcx # tmp164,, prologue_after_cost_adjust.630, prologue_after_cost_adjust.630
cmpq $2, %rdi #, prologue_after_cost_adjust.630
cmovbe %rdi, %rcx # prologue_after_cost_adjust.630,, prologue_after_cost_adjust.630, prologue_after_cost_adjust.630
testq %rcx, %rcx # prologue_after_cost_adjust.630
je .L153 #,
xorl %edx, %edx # ivtmp.656
.p2align 4,,10
.p2align 3
.L154:
movsd (%rax), %xmm0 # MEM[base: __first$_M_current_90, offset: 0], tmp165
addq $1, %rdx #, ivtmp.656
mulsd %xmm0, %xmm0 # tmp165, tmp165
movsd %xmm0, (%rax) # tmp165, MEM[base: __first$_M_current_90, offset: 0]
addq $8, %rax #, __first$_M_current
cmpq %rdx, %rcx # ivtmp.656, prologue_after_cost_adjust.630
ja .L154 #,
cmpq %rcx, %rdi # prologue_after_cost_adjust.630, prologue_after_cost_adjust.630
je .L160 #,
.L153:
subq %rcx, %rdi # prologue_after_cost_adjust.630, niters.632
movq %rdi, %r10 # niters.632, bnd.633
shrq %r10 # bnd.633
movq %r10, %r11 # bnd.633, ratio_mult_vf.634
addq %r11, %r11 # ratio_mult_vf.634
je .L156 #,
leaq (%rsi,%rcx,8), %r8 #, vect_p.640
xorl %edx, %edx # ivtmp.669
xorl %ecx, %ecx # ivtmp.667
.p2align 4,,10
.p2align 3
.L157:
movapd (%r8,%rdx), %xmm0 # MEM[base: vect_p.640_177, index: ivtmp.669_34, offset: 0], tmp167
addq $1, %rcx #, ivtmp.667
mulpd %xmm0, %xmm0 # tmp167, tmp167
movapd %xmm0, (%r8,%rdx) # tmp167, MEM[base: vect_p.640_177, index: ivtmp.669_34, offset: 0]
addq $16, %rdx #, ivtmp.669
cmpq %r10, %rcx # bnd.633, ivtmp.667
jb .L157 #,
cmpq %r11, %rdi # ratio_mult_vf.634, niters.632
leaq (%rax,%r11,8), %rax #, __first$_M_current
je .L160 #,
.L156:
movq %rax, %rdx # ivtmp.650, ivtmp.650
.p2align 4,,10
.p2align 3
.L159:
movsd (%rdx), %xmm0 # MEM[base: D.59747_141, offset: 0], tmp169
addq $8, %rdx #, ivtmp.650
mulsd %xmm0, %xmm0 # tmp169, tmp169
movsd %xmm0, (%rax) # tmp169, MEM[base: D.59748_189, offset: 0]
addq $8, %rax #, ivtmp.650
cmpq %rdx, %r9 # ivtmp.650, D.59575
jne .L159 #,
.L160:
subq %rsi, %r9 # __first$_M_current, tmp157
sarq $3, %r9 #, tmp157
testq %r9, %r9 # tmp157
je .L187 #,
movabsq $2305843009213693951, %rax #, tmp170
cmpq %rax, %r9 # tmp170, tmp157
ja .L188 #,
leaq 0(,%r9,8), %rdi #, tmp171
call _Znwm #
movq 0(%rbp), %rsi # MEM[(const struct vector *)v_1(D)], __first$_M_current
movq %rax, %rbx #, __first$_M_current
movq %rax, %r12 # __first$_M_current, prephitmp.610
movq 8(%rbp), %rax # MEM[(const struct vector *)v_1(D) + 8B], tmp173
subq %rsi, %rax # __first$_M_current, tmp173
sarq $3, %rax #, tmp173
testq %rax, %rax # tmp173
movq %rax, %rbp # tmp173, prephitmp.618
jne .L162 #,
.L185:
salq $3, %rbp #, prephitmp.618
.L163:
leaq (%rbx,%rbp), %rsi #, D.59624
cmpq %rsi, %rbx # D.59624, __first$_M_current
je .L174 #,
movq %rbx, %rdx # __first$_M_current, ivtmp.665
xorl %ecx, %ecx # __init
.p2align 4,,10
.p2align 3
.L165:
cvtsi2sd %ecx, %xmm0 # __init, D.58823
addsd (%rdx), %xmm0 # MEM[base: D.59760_161, offset: 0], D.58823
addq $8, %rdx #, ivtmp.665
cmpq %rdx, %rsi # ivtmp.665, D.59624
cvttsd2si %xmm0, %ecx # D.58823, __init
jne .L165 #,
.L164:
movq %rsi, %rax # D.59624, tmp179
cvtsi2sd %ecx, %xmm1 # __init, tmp195
subq %r12, %rax # prephitmp.610, tmp179
sarq $3, %rax #, tmp179
testq %rax, %rax # tmp179
js .L166 #,
cvtsi2sdq %rax, %xmm0 # tmp179, tmp180
.L167:
movapd %xmm1, %xmm2 # tmp195,
divsd %xmm0, %xmm2 # tmp180,
sqrtsd %xmm2, %xmm0 # tmp184, tmp175
ucomisd %xmm0, %xmm0 # tmp175, tmp175
jp .L189 #,
.L168:
testq %rbx, %rbx # __first$_M_current
je .L172 #,
movq %rbx, %rdi # __first$_M_current,
movsd %xmm0, (%rsp) #,
call _ZdlPv #
movsd (%rsp), %xmm0 #,
.L172:
addq $16, %rsp #,
.cfi_remember_state
.cfi_def_cfa_offset 32
popq %rbx #
.cfi_def_cfa_offset 24
popq %rbp #
.cfi_def_cfa_offset 16
popq %r12 #
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L162:
.cfi_restore_state
leaq 0(,%rax,8), %rbp #, prephitmp.618
movq %rbx, %rdi # __first$_M_current,
movq %rbp, %rdx # prephitmp.618,
call memmove #
jmp .L163 #
.p2align 4,,10
.p2align 3
.L187:
xorl %ebp, %ebp # prephitmp.618
xorl %r12d, %r12d # prephitmp.610
xorl %ebx, %ebx # __first$_M_current
jmp .L185 #
.p2align 4,,10
.p2align 3
.L166:
movq %rax, %rdx # tmp179, tmp182
andl $1, %eax #, tmp183
shrq %rdx # tmp182
orq %rax, %rdx # tmp183, tmp182
cvtsi2sdq %rdx, %xmm0 # tmp182, tmp180
addsd %xmm0, %xmm0 # tmp180, tmp180
jmp .L167 #
.L174:
xorl %ecx, %ecx # __init
jmp .L164 #
.L189:
subq %r12, %rsi # prephitmp.610, tmp188
sarq $3, %rsi #, tmp188
testq %rsi, %rsi # tmp188
js .L170 #,
cvtsi2sdq %rsi, %xmm0 # tmp188, tmp189
.L171:
divsd %xmm0, %xmm1 # tmp189, tmp195
movapd %xmm1, %xmm0 # tmp195, tmp193
call sqrt #
jmp .L168 #
.L188:
call _ZSt17__throw_bad_allocv #
.L170:
movq %rsi, %rax # tmp188, tmp191
andl $1, %esi #, tmp192
shrq %rax # tmp191
orq %rsi, %rax # tmp192, tmp191
cvtsi2sdq %rax, %xmm0 # tmp191, tmp189
addsd %xmm0, %xmm0 # tmp189, tmp189
jmp .L171 #
.cfi_endproc
.LFE3065:
.size _ZN4fast3rmsEOSt6vectorIdSaIdEE, .-_ZN4fast3rmsEOSt6vectorIdSaIdEE
.section .text._ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_,"axG",@progbits,_ZNSt6vectorIdSaIdEEC5ESt16initializer_listIdERKS0_,comdat
.align 2
.p2align 4,,15
.weak _ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_
.type _ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_, @function
_ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_:
.LFB3149:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA3149
movq %rbp, -32(%rsp) #,
.cfi_offset 6, -40
leaq 0(,%rdx,8), %rbp #, tmp81
movq %rbx, -40(%rsp) #,
movq %r14, -8(%rsp) #,
movq %r12, -24(%rsp) #,
.cfi_offset 3, -48
.cfi_offset 14, -16
.cfi_offset 12, -32
movq %rdi, %rbx # this, this
sarq $3, %rbp #, tmp81
movq %r13, -16(%rsp) #,
subq $56, %rsp #,
.cfi_def_cfa_offset 64
.cfi_offset 13, -24
testq %rbp, %rbp # tmp81
movq %rsi, %r14 # __l, __l
movq $0, (%rdi) #, MEM[(struct _Vector_impl *)this_1(D)]._M_start
movq $0, 8(%rdi) #, MEM[(struct _Vector_impl *)this_1(D)]._M_finish
movq $0, 16(%rdi) #, MEM[(struct _Vector_impl *)this_1(D)]._M_end_of_storage
je .L196 #,
movabsq $2305843009213693951, %rax #, tmp82
cmpq %rax, %rbp # tmp82, tmp81
ja .L206 #,
leaq 0(,%rbp,8), %r12 #, prephitmp.677
movq %r12, %rdi # prephitmp.677,
.LEHB0:
call _Znwm #
.L191:
leaq (%rax,%r12), %r13 #, D.59781
testq %rbp, %rbp # tmp81
movq %rax, (%rbx) # D.59792, this_1(D)->D.33227._M_impl._M_start
movq %r13, 16(%rbx) # D.59781, this_1(D)->D.33227._M_impl._M_end_of_storage
je .L193 #,
movq %r12, %rdx # prephitmp.677,
movq %r14, %rsi # __l,
movq %rax, %rdi # D.59792,
call memmove #
.L193:
movq %r13, 8(%rbx) # D.59781, this_1(D)->D.33227._M_impl._M_finish
movq 24(%rsp), %rbp #,
movq 16(%rsp), %rbx #,
movq 32(%rsp), %r12 #,
movq 40(%rsp), %r13 #,
movq 48(%rsp), %r14 #,
addq $56, %rsp #,
.cfi_remember_state
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L196:
.cfi_restore_state
xorl %r12d, %r12d # prephitmp.677
xorl %eax, %eax # D.59792
jmp .L191 #
.L206:
call _ZSt17__throw_bad_allocv #
.LEHE0:
.L197:
movq (%rbx), %rdi # MEM[(struct _Vector_base *)this_1(D)]._M_impl._M_start, D.59818
movq %rax, %rbp #, tmp83
testq %rdi, %rdi # D.59818
je .L195 #,
call _ZdlPv #
.L195:
movq %rbp, %rdi # tmp83,
.LEHB1:
call _Unwind_Resume #
.LEHE1:
.cfi_endproc
.LFE3149:
.globl __gxx_personality_v0
.section .gcc_except_table,"a",@progbits
.LLSDA3149:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE3149-.LLSDACSB3149
.LLSDACSB3149:
.uleb128 .LEHB0-.LFB3149
.uleb128 .LEHE0-.LEHB0
.uleb128 .L197-.LFB3149
.uleb128 0
.uleb128 .LEHB1-.LFB3149
.uleb128 .LEHE1-.LEHB1
.uleb128 0
.uleb128 0
.LLSDACSE3149:
.section .text._ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_,"axG",@progbits,_ZNSt6vectorIdSaIdEEC5ESt16initializer_listIdERKS0_,comdat
.size _ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_, .-_ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_
.weak _ZNSt6vectorIdSaIdEEC1ESt16initializer_listIdERKS0_
.set _ZNSt6vectorIdSaIdEEC1ESt16initializer_listIdERKS0_,_ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_
.section .text._ZNSt6vectorIdSaIdEED2Ev,"axG",@progbits,_ZNSt6vectorIdSaIdEED5Ev,comdat
.align 2
.p2align 4,,15
.weak _ZNSt6vectorIdSaIdEED2Ev
.type _ZNSt6vectorIdSaIdEED2Ev, @function
_ZNSt6vectorIdSaIdEED2Ev:
.LFB3152:
.cfi_startproc
movq (%rdi), %rdi # MEM[(struct _Vector_base *)this_1(D)]._M_impl._M_start, D.59838
testq %rdi, %rdi # D.59838
je .L207 #,
jmp _ZdlPv #
.p2align 4,,10
.p2align 3
.L207:
rep
ret
.cfi_endproc
.LFE3152:
.size _ZNSt6vectorIdSaIdEED2Ev, .-_ZNSt6vectorIdSaIdEED2Ev
.weak _ZNSt6vectorIdSaIdEED1Ev
.set _ZNSt6vectorIdSaIdEED1Ev,_ZNSt6vectorIdSaIdEED2Ev
.section .text.startup,"ax",@progbits
.p2align 4,,15
.globl _ZN8stateful4mainEv
.type _ZN8stateful4mainEv, @function
_ZN8stateful4mainEv:
.LFB3054:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA3054
pushq %rbx #
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movl $._91, %esi #,
movl $3, %edx #,
subq $64, %rsp #,
.cfi_def_cfa_offset 80
leaq 15(%rsp), %rcx #,
leaq 32(%rsp), %rdi #,
.LEHB2:
call _ZNSt6vectorIdSaIdEEC1ESt16initializer_listIdERKS0_ #
.LEHE2:
leaq 32(%rsp), %rdi #,
call _ZN8stateful3rmsERSt6vectorIdSaIdEE #
movl $_ZSt4cout, %edi #,
.LEHB3:
call _ZNSo9_M_insertIdEERSoT_ #
movq %rax, %rdi # D.58541,
call _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ #
.LEHE3:
leaq 32(%rsp), %rdi #,
call _ZNSt6vectorIdSaIdEED1Ev #
addq $64, %rsp #,
.cfi_remember_state
.cfi_def_cfa_offset 16
xorl %eax, %eax #
popq %rbx #
.cfi_def_cfa_offset 8
ret
.L211:
.cfi_restore_state
leaq 32(%rsp), %rdi #,
movq %rax, %rbx #, tmp71
call _ZNSt6vectorIdSaIdEED1Ev #
movq %rbx, %rdi # tmp71,
.LEHB4:
call _Unwind_Resume #
.LEHE4:
.cfi_endproc
.LFE3054:
.section .gcc_except_table
.LLSDA3054:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE3054-.LLSDACSB3054
.LLSDACSB3054:
.uleb128 .LEHB2-.LFB3054
.uleb128 .LEHE2-.LEHB2
.uleb128 0
.uleb128 0
.uleb128 .LEHB3-.LFB3054
.uleb128 .LEHE3-.LEHB3
.uleb128 .L211-.LFB3054
.uleb128 0
.uleb128 .LEHB4-.LFB3054
.uleb128 .LEHE4-.LEHB4
.uleb128 0
.uleb128 0
.LLSDACSE3054:
.section .text.startup
.size _ZN8stateful4mainEv, .-_ZN8stateful4mainEv
.p2align 4,,15
.globl _ZN4fast4mainEv
.type _ZN4fast4mainEv, @function
_ZN4fast4mainEv:
.LFB3067:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA3067
pushq %rbx #
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movl $._93, %esi #,
movl $3, %edx #,
subq $64, %rsp #,
.cfi_def_cfa_offset 80
leaq 32(%rsp), %rdi #,
leaq 15(%rsp), %rcx #,
.LEHB5:
call _ZNSt6vectorIdSaIdEEC1ESt16initializer_listIdERKS0_ #
.LEHE5:
leaq 32(%rsp), %rdi #,
.LEHB6:
call _ZN4fast3rmsEOSt6vectorIdSaIdEE #
movl $_ZSt4cout, %edi #,
call _ZNSo9_M_insertIdEERSoT_ #
movq %rax, %rdi # D.58834,
call _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ #
.LEHE6:
leaq 32(%rsp), %rdi #,
call _ZNSt6vectorIdSaIdEED1Ev #
addq $64, %rsp #,
.cfi_remember_state
.cfi_def_cfa_offset 16
xorl %eax, %eax #
popq %rbx #
.cfi_def_cfa_offset 8
ret
.L217:
.cfi_restore_state
leaq 32(%rsp), %rdi #,
movq %rax, %rbx #, tmp71
call _ZNSt6vectorIdSaIdEED1Ev #
movq %rbx, %rdi # tmp71,
.LEHB7:
call _Unwind_Resume #
.LEHE7:
.cfi_endproc
.LFE3067:
.section .gcc_except_table
.LLSDA3067:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE3067-.LLSDACSB3067
.LLSDACSB3067:
.uleb128 .LEHB5-.LFB3067
.uleb128 .LEHE5-.LEHB5
.uleb128 0
.uleb128 0
.uleb128 .LEHB6-.LFB3067
.uleb128 .LEHE6-.LEHB6
.uleb128 .L217-.LFB3067
.uleb128 0
.uleb128 .LEHB7-.LFB3067
.uleb128 .LEHE7-.LEHB7
.uleb128 0
.uleb128 0
.LLSDACSE3067:
.section .text.startup
.size _ZN4fast4mainEv, .-_ZN4fast4mainEv
.p2align 4,,15
.globl _ZN4slow4mainEv
.type _ZN4slow4mainEv, @function
_ZN4slow4mainEv:
.LFB3060:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA3060
pushq %rbx #
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movl $._92, %esi #,
movl $3, %edx #,
subq $64, %rsp #,
.cfi_def_cfa_offset 80
leaq 32(%rsp), %rdi #,
leaq 15(%rsp), %rcx #,
.LEHB8:
call _ZNSt6vectorIdSaIdEEC1ESt16initializer_listIdERKS0_ #
.LEHE8:
leaq 32(%rsp), %rdi #,
.LEHB9:
call _ZN4slow3rmsERKSt6vectorIdSaIdEE #
movl $_ZSt4cout, %edi #,
call _ZNSo9_M_insertIdEERSoT_ #
movq %rax, %rdi # D.58885,
call _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ #
.LEHE9:
leaq 32(%rsp), %rdi #,
call _ZNSt6vectorIdSaIdEED1Ev #
addq $64, %rsp #,
.cfi_remember_state
.cfi_def_cfa_offset 16
xorl %eax, %eax #
popq %rbx #
.cfi_def_cfa_offset 8
ret
.L223:
.cfi_restore_state
leaq 32(%rsp), %rdi #,
movq %rax, %rbx #, tmp71
call _ZNSt6vectorIdSaIdEED1Ev #
movq %rbx, %rdi # tmp71,
.LEHB10:
call _Unwind_Resume #
.LEHE10:
.cfi_endproc
.LFE3060:
.section .gcc_except_table
.LLSDA3060:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE3060-.LLSDACSB3060
.LLSDACSB3060:
.uleb128 .LEHB8-.LFB3060
.uleb128 .LEHE8-.LEHB8
.uleb128 0
.uleb128 0
.uleb128 .LEHB9-.LFB3060
.uleb128 .LEHE9-.LEHB9
.uleb128 .L223-.LFB3060
.uleb128 0
.uleb128 .LEHB10-.LFB3060
.uleb128 .LEHE10-.LEHB10
.uleb128 0
.uleb128 0
.LLSDACSE3060:
.section .text.startup
.size _ZN4slow4mainEv, .-_ZN4slow4mainEv
.p2align 4,,15
.globl main
.type main, @function
main:
.LFB3068:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA3068
pushq %r12 #
.cfi_def_cfa_offset 16
.cfi_offset 12, -16
pushq %rbp #
.cfi_def_cfa_offset 24
.cfi_offset 6, -24
pushq %rbx #
.cfi_def_cfa_offset 32
.cfi_offset 3, -32
subq $96, %rsp #,
.cfi_def_cfa_offset 128
.LEHB11:
call _ZN8stateful4mainEv #
call _ZN4slow4mainEv #
call _ZN4fast4mainEv #
leaq 32(%rsp), %rdi #,
leaq 15(%rsp), %rcx #,
movl $._94, %esi #,
movl $3, %edx #,
call _ZNSt6vectorIdSaIdEEC1ESt16initializer_listIdERKS0_ #
.LEHE11:
leaq 32(%rsp), %rdi #,
.LEHB12:
call _ZN4fast3rmsEOSt6vectorIdSaIdEE #
movq 40(%rsp), %rbx # MEM[(const struct vector *)&v + 8B], MEM[(const struct vector *)&v + 8B]
movq 32(%rsp), %rsi # MEM[(const struct vector *)&v], D.59870
movq $0, 64(%rsp) #, MEM[(struct _Vector_impl *)&D.53892]._M_start
movq $0, 72(%rsp) #, MEM[(struct _Vector_impl *)&D.53892]._M_finish
movq $0, 80(%rsp) #, MEM[(struct _Vector_impl *)&D.53892]._M_end_of_storage
movq %rbx, %rdi # MEM[(const struct vector *)&v + 8B], tmp98
subq %rsi, %rdi # D.59870, tmp98
sarq $3, %rdi #, tmp98
testq %rdi, %rdi # tmp98
je .L233 #,
movabsq $2305843009213693951, %rax #, tmp99
cmpq %rax, %rdi # tmp99, tmp98
ja .L242 #,
leaq 0(,%rdi,8), %r12 #, prephitmp.692
movq %r12, %rdi # prephitmp.692,
call _Znwm #
.LEHE12:
movq 32(%rsp), %rsi # MEM[(const struct vector *)&v], D.59870
movq 40(%rsp), %rbx # MEM[(const struct vector *)&v + 8B], MEM[(const struct vector *)&v + 8B]
movq %rax, %rbp #, D.59893
.L228:
subq %rsi, %rbx # D.59870, tmp103
addq %rbp, %r12 # D.59893, tmp100
movq %rbp, 64(%rsp) # D.59893, MEM[(struct _Vector_base *)&D.53892]._M_impl._M_start
sarq $3, %rbx #, tmp103
movq %rbp, 72(%rsp) # D.59893, MEM[(struct _Vector_base *)&D.53892]._M_impl._M_finish
movq %r12, 80(%rsp) # tmp100, MEM[(struct _Vector_base *)&D.53892]._M_impl._M_end_of_storage
testq %rbx, %rbx # tmp103
je .L230 #,
leaq 0(,%rbx,8), %rdx #, tmp104
movq %rbp, %rdi # D.59893,
call memmove #
.L230:
leaq 0(%rbp,%rbx,8), %rax #, tmp106
leaq 64(%rsp), %rdi #,
movq %rax, 72(%rsp) # tmp106, D.53892.D.33227._M_impl._M_finish
.LEHB13:
call _ZN4fast3rmsEOSt6vectorIdSaIdEE #
.LEHE13:
leaq 64(%rsp), %rdi #,
call _ZNSt6vectorIdSaIdEED1Ev #
leaq 32(%rsp), %rdi #,
call _ZNSt6vectorIdSaIdEED1Ev #
addq $96, %rsp #,
.cfi_remember_state
.cfi_def_cfa_offset 32
xorl %eax, %eax #
popq %rbx #
.cfi_def_cfa_offset 24
popq %rbp #
.cfi_def_cfa_offset 16
popq %r12 #
.cfi_def_cfa_offset 8
ret
.L233:
.cfi_restore_state
xorl %r12d, %r12d # prephitmp.692
xorl %ebp, %ebp # D.59893
jmp .L228 #
.L242:
.LEHB14:
call _ZSt17__throw_bad_allocv #
.LEHE14:
.L234:
movq %rax, %rbx #, tmp112
.L232:
leaq 32(%rsp), %rdi #,
call _ZNSt6vectorIdSaIdEED1Ev #
movq %rbx, %rdi # tmp112,
.LEHB15:
call _Unwind_Resume #
.LEHE15:
.L235:
leaq 64(%rsp), %rdi #,
movq %rax, %rbx #, tmp113
call _ZNSt6vectorIdSaIdEED1Ev #
jmp .L232 #
.cfi_endproc
.LFE3068:
.section .gcc_except_table
.LLSDA3068:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE3068-.LLSDACSB3068
.LLSDACSB3068:
.uleb128 .LEHB11-.LFB3068
.uleb128 .LEHE11-.LEHB11
.uleb128 0
.uleb128 0
.uleb128 .LEHB12-.LFB3068
.uleb128 .LEHE12-.LEHB12
.uleb128 .L234-.LFB3068
.uleb128 0
.uleb128 .LEHB13-.LFB3068
.uleb128 .LEHE13-.LEHB13
.uleb128 .L235-.LFB3068
.uleb128 0
.uleb128 .LEHB14-.LFB3068
.uleb128 .LEHE14-.LEHB14
.uleb128 .L234-.LFB3068
.uleb128 0
.uleb128 .LEHB15-.LFB3068
.uleb128 .LEHE15-.LEHB15
.uleb128 0
.uleb128 0
.LLSDACSE3068:
.section .text.startup
.size main, .-main
.p2align 4,,15
.type _GLOBAL__sub_I__Z3sumRKSt6vectorIdSaIdEE, @function
_GLOBAL__sub_I__Z3sumRKSt6vectorIdSaIdEE:
.LFB3386:
.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
.LFE3386:
.size _GLOBAL__sub_I__Z3sumRKSt6vectorIdSaIdEE, .-_GLOBAL__sub_I__Z3sumRKSt6vectorIdSaIdEE
.section .init_array,"aw"
.align 8
.quad _GLOBAL__sub_I__Z3sumRKSt6vectorIdSaIdEE
.section .rodata
.align 16
.type ._91, @object
.size ._91, 24
._91:
.long 0
.long 1072693248
.long 0
.long 1073741824
.long 0
.long 1074266112
.align 16
.type ._92, @object
.size ._92, 24
._92:
.long 0
.long 1072693248
.long 0
.long 1073741824
.long 0
.long 1074266112
.align 16
.type ._93, @object
.size ._93, 24
._93:
.long 0
.long 1072693248
.long 0
.long 1073741824
.long 0
.long 1074266112
.align 16
.type ._94, @object
.size ._94, 24
._94:
.long 0
.long 1072693248
.long 0
.long 1073741824
.long 0
.long 1074266112
.local _ZStL8__ioinit
.comm _ZStL8__ioinit,1,1
.hidden __dso_handle
.ident "GCC: (Ubuntu/Linaro 4.7.2-4precise1) 4.7.2"
.section .note.GNU-stack,"",@progbits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment