//Description: C++性能优化之分支预测笔记
//Create Date: 2022-04-14 21:04:19
//Author: channy
同样的代码在不同平台下运行效率也不同
windows + Qt (+ QMAKE_CXXFLAGS_RELEASE += -O)
test1 spend 0.700155(s)
test2 spend 1.58182(s)
sum 312275400000
test3 spend 1.58242(s)
sum 312275400000
Press <RETURN> to close this window...
ubuntu + g++
test1 spend 16.2496(s)
test2 spend 15.9743(s)
sum 314931600000
test3 spend 4.99071(s)
sum 314931600000
ubuntu + g++ -O
test1 spend 0.722283(s)
test2 spend 1.60836(s)
sum 314931600000
test3 spend 1.60477(s)
sum 314931600000
#include <iostream>
#include <chrono>
#include <vector>
#include <algorithm>
using namespace std;
// global
const unsigned arraySize = 32768;
const unsigned roundTime = 100000;
void test1() {
int nums[arraySize];
for (unsigned i = 0; i < arraySize; ++i) {
nums[i] = rand() % 256;
}
auto startTime = chrono::system_clock::now();
long long sum = 0;
for (unsigned t = 0; t < roundTime; ++t) {
for (unsigned i = 0; i < arraySize; ++i) {
if (nums[i] >= 128) {
sum += nums[i];
}
}
}
auto endTime = chrono::system_clock::now();
auto duration = chrono::duration_cast<chrono::microseconds>(endTime - startTime);
double elapsed = double(duration.count()) * chrono::microseconds::period::num / chrono::microseconds::period::den;
cout << __func__ << " spend " << elapsed << "(s)" << endl;
//cout << sum << endl;
}
void test2() {
int nums[arraySize];
for (unsigned i = 0; i < arraySize; ++i) {
nums[i] = rand() % 256;
}
auto startTime = chrono::system_clock::now();
long long sum = 0;
for (unsigned t = 0; t < roundTime; ++t) {
for (unsigned i = 0; i < arraySize; ++i) {
if (nums[i] >= 128) {
sum += nums[i];
}
}
}
auto endTime = chrono::system_clock::now();
auto duration = chrono::duration_cast<chrono::microseconds>(endTime - startTime);
double elapsed = double(duration.count()) * chrono::microseconds::period::num / chrono::microseconds::period::den;
cout << __func__ << " spend " << elapsed << "(s)" << endl;
cout << "sum " << sum << endl;
}
void test3() {
int nums[arraySize];
for (unsigned i = 0; i < arraySize; ++i) {
nums[i] = rand() % 256;
}
std::sort(nums, nums + arraySize);
auto start = chrono::system_clock::now();
long long sum = 0;
for (unsigned t = 0; t < roundTime; ++t) {
for (unsigned i = 0; i < arraySize; ++i) {
if (nums[i] >= 128) {
sum += nums[i];
}
}
}
auto end = chrono::system_clock::now();
auto duration = chrono::duration_cast<chrono::microseconds>(end-start);
double elapsed = double(duration.count()) * chrono::microseconds::period::num / chrono::microseconds::period::den;
cout << __func__ << " spend " << elapsed << "(s)" << endl;
cout << "sum " << sum << endl;
}
int main(int argc, char *argv[])
{
test1();
test2();
test3();
return 0;
}
其中循环段汇编
.L31:
cmpl $32767, -60(%rbp)
ja .L29
movl -60(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl (%rdx,%rax), %eax
cmpl $127, %eax
jle .L30
movl -60(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl (%rdx,%rax), %eax
cltq
addq %rax, -24(%rbp)
.L30:
addl $1, -60(%rbp)
jmp .L31
判断nums[i] >= 128,跳转到.L30。预测跳转耗时。
替代方案:
void test4() {
auto start = chrono::system_clock::now();
long long sum = 0;
for (unsigned t = 0; t < roundTime; ++t) {
for (unsigned i = 0; i < arraySize; ++i) {
int t = (nums[i] - 128) >> 31;
sum += ~t & nums[i];
}
}
auto end = chrono::system_clock::now();
auto duration = chrono::duration_cast<chrono::microseconds>(end-start);
double elapsed = double(duration.count()) * chrono::microseconds::period::num / chrono::microseconds::period::den;
cout << __func__ << " spend " << elapsed << "(s)" << endl;
cout << "sum " << sum << endl;
}
结果
test1 spend 16.1813(s)
test2 spend 15.9186(s)
sum 314931600000
test4 spend 5.59613(s)
sum 314931600000
test3 spend 4.97272(s)
sum 314931600000
g++ -S xxx.cpp
.file "main.cpp"
.text
.section .rodata
.type _ZStL19piecewise_construct, @object
.size _ZStL19piecewise_construct, 1
_ZStL19piecewise_construct:
.zero 1
.section .text._ZN9__gnu_cxx5__ops16__iter_less_iterEv,"axG",@progbits,_ZN9__gnu_cxx5__ops16__iter_less_iterEv,comdat
.weak _ZN9__gnu_cxx5__ops16__iter_less_iterEv
.type _ZN9__gnu_cxx5__ops16__iter_less_iterEv, @function
_ZN9__gnu_cxx5__ops16__iter_less_iterEv:
.LFB261:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE261:
.size _ZN9__gnu_cxx5__ops16__iter_less_iterEv, .-_ZN9__gnu_cxx5__ops16__iter_less_iterEv
.section .text._ZN9__gnu_cxx5__ops14_Iter_less_valC2ENS0_15_Iter_less_iterE,"axG",@progbits,_ZN9__gnu_cxx5__ops14_Iter_less_valC5ENS0_15_Iter_less_iterE,comdat
.align 2
.weak _ZN9__gnu_cxx5__ops14_Iter_less_valC2ENS0_15_Iter_less_iterE
.type _ZN9__gnu_cxx5__ops14_Iter_less_valC2ENS0_15_Iter_less_iterE, @function
_ZN9__gnu_cxx5__ops14_Iter_less_valC2ENS0_15_Iter_less_iterE:
.LFB263:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
nop
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE263:
.size _ZN9__gnu_cxx5__ops14_Iter_less_valC2ENS0_15_Iter_less_iterE, .-_ZN9__gnu_cxx5__ops14_Iter_less_valC2ENS0_15_Iter_less_iterE
.weak _ZN9__gnu_cxx5__ops14_Iter_less_valC1ENS0_15_Iter_less_iterE
.set _ZN9__gnu_cxx5__ops14_Iter_less_valC1ENS0_15_Iter_less_iterE,_ZN9__gnu_cxx5__ops14_Iter_less_valC2ENS0_15_Iter_less_iterE
.section .text._ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE,"axG",@progbits,_ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE,comdat
.weak _ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE
.type _ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE, @function
_ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE:
.LFB273:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE273:
.size _ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE, .-_ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE
.section .text._ZSt4__lgl,"axG",@progbits,_ZSt4__lgl,comdat
.weak _ZSt4__lgl
.type _ZSt4__lgl, @function
_ZSt4__lgl:
.LFB362:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
bsrq %rax, %rax
xorq $63, %rax
movl $63, %edx
subl %eax, %edx
movl %edx, %eax
cltq
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE362:
.size _ZSt4__lgl, .-_ZSt4__lgl
.local _ZStL8__ioinit
.comm _ZStL8__ioinit,1,1
.section .text._ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv,"axG",@progbits,_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv,comdat
.align 2
.weak _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv
.type _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv, @function
_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv:
.LFB1771:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
movq (%rax), %rax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE1771:
.size _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv, .-_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv
.section .text._ZNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEC1IlvEERKT_,"axG",@progbits,_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEC1IlvEERKT_,comdat
.align 2
.weak _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEC1IlvEERKT_
.type _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEC1IlvEERKT_, @function
_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEC1IlvEERKT_:
.LFB1776:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq -16(%rbp), %rax
movq (%rax), %rdx
movq -8(%rbp), %rax
movq %rdx, (%rax)
nop
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE1776:
.size _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEC1IlvEERKT_, .-_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEC1IlvEERKT_
.section .rodata
.align 4
.type _ZL9arraySize, @object
.size _ZL9arraySize, 4
_ZL9arraySize:
.long 32768
.align 4
.type _ZL9roundTime, @object
.size _ZL9roundTime, 4
_ZL9roundTime:
.long 100000
.globl nums
.bss
.align 32
.type nums, @object
.size nums, 131072
nums:
.zero 131072
.text
.globl _Z4initv
.type _Z4initv, @function
_Z4initv:
.LFB2418:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movl $0, -4(%rbp)
.L13:
cmpl $32767, -4(%rbp)
ja .L14
call rand@PLT
cltd
shrl $24, %edx
addl %edx, %eax
movzbl %al, %eax
subl %edx, %eax
movl %eax, %ecx
movl -4(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl %ecx, (%rdx,%rax)
addl $1, -4(%rbp)
jmp .L13
.L14:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2418:
.size _Z4initv, .-_Z4initv
.section .text._ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE,"axG",@progbits,_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE,comdat
.weak _ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE
.type _ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE, @function
_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE:
.LFB2420:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
movq %rax, %rdi
call _ZNSt6chrono20__duration_cast_implINS_8durationIlSt5ratioILl1ELl1000000EEEES2_ILl1ELl1000EElLb1ELb0EE6__castIlS2_ILl1ELl1000000000EEEES4_RKNS1_IT_T0_EE
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2420:
.size _ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE, .-_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE
.section .text._ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE,"axG",@progbits,_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE,comdat
.weak _ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE
.type _ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE, @function
_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE:
.LFB2421:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -40(%rbp)
movq %rsi, -48(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -48(%rbp), %rax
movq %rax, %rdi
call _ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv
movq %rax, -16(%rbp)
movq -40(%rbp), %rax
movq %rax, %rdi
call _ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv
movq %rax, -24(%rbp)
leaq -16(%rbp), %rdx
leaq -24(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZNSt6chronomiIlSt5ratioILl1ELl1000000000EElS2_EENSt11common_typeIJNS_8durationIT_T0_EENS4_IT1_T2_EEEE4typeERKS7_RKSA_
movq -8(%rbp), %rcx
xorq %fs:40, %rcx
je .L19
call __stack_chk_fail@PLT
.L19:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2421:
.size _ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE, .-_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE
.section .text._ZNSt6chronomiIlSt5ratioILl1ELl1000000000EElS2_EENSt11common_typeIJNS_8durationIT_T0_EENS4_IT1_T2_EEEE4typeERKS7_RKSA_,"axG",@progbits,_ZNSt6chronomiIlSt5ratioILl1ELl1000000000EElS2_EENSt11common_typeIJNS_8durationIT_T0_EENS4_IT1_T2_EEEE4typeERKS7_RKSA_,comdat
.weak _ZNSt6chronomiIlSt5ratioILl1ELl1000000000EElS2_EENSt11common_typeIJNS_8durationIT_T0_EENS4_IT1_T2_EEEE4typeERKS7_RKSA_
.type _ZNSt6chronomiIlSt5ratioILl1ELl1000000000EElS2_EENSt11common_typeIJNS_8durationIT_T0_EENS4_IT1_T2_EEEE4typeERKS7_RKSA_, @function
_ZNSt6chronomiIlSt5ratioILl1ELl1000000000EElS2_EENSt11common_typeIJNS_8durationIT_T0_EENS4_IT1_T2_EEEE4typeERKS7_RKSA_:
.LFB2422:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
pushq %rbx
subq $72, %rsp
.cfi_offset 3, -24
movq %rdi, -72(%rbp)
movq %rsi, -80(%rbp)
movq %fs:40, %rax
movq %rax, -24(%rbp)
xorl %eax, %eax
movq -72(%rbp), %rax
movq (%rax), %rax
movq %rax, -56(%rbp)
leaq -56(%rbp), %rax
movq %rax, %rdi
call _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv
movq %rax, %rbx
movq -80(%rbp), %rax
movq (%rax), %rax
movq %rax, -48(%rbp)
leaq -48(%rbp), %rax
movq %rax, %rdi
call _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv
subq %rax, %rbx
movq %rbx, %rax
movq %rax, -40(%rbp)
leaq -40(%rbp), %rdx
leaq -32(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEC1IlvEERKT_
movq -32(%rbp), %rax
movq -24(%rbp), %rcx
xorq %fs:40, %rcx
je .L22
call __stack_chk_fail@PLT
.L22:
addq $72, %rsp
popq %rbx
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2422:
.size _ZNSt6chronomiIlSt5ratioILl1ELl1000000000EElS2_EENSt11common_typeIJNS_8durationIT_T0_EENS4_IT1_T2_EEEE4typeERKS7_RKSA_, .-_ZNSt6chronomiIlSt5ratioILl1ELl1000000000EElS2_EENSt11common_typeIJNS_8durationIT_T0_EENS4_IT1_T2_EEEE4typeERKS7_RKSA_
.section .text._ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv,"axG",@progbits,_ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv,comdat
.align 2
.weak _ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv
.type _ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv, @function
_ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv:
.LFB2423:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
movq (%rax), %rax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2423:
.size _ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv, .-_ZNKSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEE16time_since_epochEv
.section .text._ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv,"axG",@progbits,_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv,comdat
.align 2
.weak _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv
.type _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv, @function
_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv:
.LFB2424:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
movq (%rax), %rax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2424:
.size _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv, .-_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv
.section .rodata
.LC1:
.string "test1"
.LC2:
.string " spend "
.LC3:
.string "(s)"
.text
.globl _Z5test1v
.type _Z5test1v, @function
_Z5test1v:
.LFB2419:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $64, %rsp
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
call _ZNSt6chrono3_V212system_clock3nowEv@PLT
movq %rax, -56(%rbp)
movq $0, -24(%rbp)
movl $0, -64(%rbp)
.L32:
cmpl $99999, -64(%rbp)
ja .L28
movl $0, -60(%rbp)
.L31:
cmpl $32767, -60(%rbp)
ja .L29
movl -60(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl (%rdx,%rax), %eax
cmpl $127, %eax
jle .L30
movl -60(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl (%rdx,%rax), %eax
cltq
addq %rax, -24(%rbp)
.L30:
addl $1, -60(%rbp)
jmp .L31
.L29:
addl $1, -64(%rbp)
jmp .L32
.L28:
call _ZNSt6chrono3_V212system_clock3nowEv@PLT
movq %rax, -48(%rbp)
leaq -56(%rbp), %rdx
leaq -48(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE
movq %rax, -32(%rbp)
leaq -32(%rbp), %rax
movq %rax, %rdi
call _ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE
movq %rax, -40(%rbp)
leaq -40(%rbp), %rax
movq %rax, %rdi
call _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv
cvtsi2sdq %rax, %xmm0
movsd .LC0(%rip), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -16(%rbp)
leaq .LC1(%rip), %rsi
leaq _ZSt4cout(%rip), %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
leaq .LC2(%rip), %rsi
movq %rax, %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
movq %rax, %rdx
movq -16(%rbp), %rax
movq %rax, %xmm0
movq %rdx, %rdi
call _ZNSolsEd@PLT
leaq .LC3(%rip), %rsi
movq %rax, %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
movq %rax, %rdx
movq _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rax
movq %rax, %rsi
movq %rdx, %rdi
call _ZNSolsEPFRSoS_E@PLT
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L33
call __stack_chk_fail@PLT
.L33:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2419:
.size _Z5test1v, .-_Z5test1v
.section .rodata
.LC4:
.string "test2"
.LC5:
.string "sum "
.text
.globl _Z5test2v
.type _Z5test2v, @function
_Z5test2v:
.LFB2425:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $64, %rsp
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
call _ZNSt6chrono3_V212system_clock3nowEv@PLT
movq %rax, -56(%rbp)
movq $0, -24(%rbp)
movl $0, -64(%rbp)
.L39:
cmpl $99999, -64(%rbp)
ja .L35
movl $0, -60(%rbp)
.L38:
cmpl $32767, -60(%rbp)
ja .L36
movl -60(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl (%rdx,%rax), %eax
cmpl $127, %eax
jle .L37
movl -60(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl (%rdx,%rax), %eax
cltq
addq %rax, -24(%rbp)
.L37:
addl $1, -60(%rbp)
jmp .L38
.L36:
addl $1, -64(%rbp)
jmp .L39
.L35:
call _ZNSt6chrono3_V212system_clock3nowEv@PLT
movq %rax, -48(%rbp)
leaq -56(%rbp), %rdx
leaq -48(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE
movq %rax, -32(%rbp)
leaq -32(%rbp), %rax
movq %rax, %rdi
call _ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE
movq %rax, -40(%rbp)
leaq -40(%rbp), %rax
movq %rax, %rdi
call _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv
cvtsi2sdq %rax, %xmm0
movsd .LC0(%rip), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -16(%rbp)
leaq .LC4(%rip), %rsi
leaq _ZSt4cout(%rip), %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
leaq .LC2(%rip), %rsi
movq %rax, %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
movq %rax, %rdx
movq -16(%rbp), %rax
movq %rax, %xmm0
movq %rdx, %rdi
call _ZNSolsEd@PLT
leaq .LC3(%rip), %rsi
movq %rax, %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
movq %rax, %rdx
movq _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rax
movq %rax, %rsi
movq %rdx, %rdi
call _ZNSolsEPFRSoS_E@PLT
leaq .LC5(%rip), %rsi
leaq _ZSt4cout(%rip), %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
movq %rax, %rdx
movq -24(%rbp), %rax
movq %rax, %rsi
movq %rdx, %rdi
call _ZNSolsEx@PLT
movq %rax, %rdx
movq _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rax
movq %rax, %rsi
movq %rdx, %rdi
call _ZNSolsEPFRSoS_E@PLT
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L40
call __stack_chk_fail@PLT
.L40:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2425:
.size _Z5test2v, .-_Z5test2v
.section .rodata
.LC6:
.string "test3"
.text
.globl _Z5test3v
.type _Z5test3v, @function
_Z5test3v:
.LFB2426:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $64, %rsp
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
leaq 131072+nums(%rip), %rax
movq %rax, %rsi
leaq nums(%rip), %rdi
call _ZSt4sortIPiEvT_S1_
call _ZNSt6chrono3_V212system_clock3nowEv@PLT
movq %rax, -56(%rbp)
movq $0, -24(%rbp)
movl $0, -64(%rbp)
.L46:
cmpl $99999, -64(%rbp)
ja .L42
movl $0, -60(%rbp)
.L45:
cmpl $32767, -60(%rbp)
ja .L43
movl -60(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl (%rdx,%rax), %eax
cmpl $127, %eax
jle .L44
movl -60(%rbp), %eax
leaq 0(,%rax,4), %rdx
leaq nums(%rip), %rax
movl (%rdx,%rax), %eax
cltq
addq %rax, -24(%rbp)
.L44:
addl $1, -60(%rbp)
jmp .L45
.L43:
addl $1, -64(%rbp)
jmp .L46
.L42:
call _ZNSt6chrono3_V212system_clock3nowEv@PLT
movq %rax, -48(%rbp)
leaq -56(%rbp), %rdx
leaq -48(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE
movq %rax, -32(%rbp)
leaq -32(%rbp), %rax
movq %rax, %rdi
call _ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES8_E4typeERKNS1_IT0_T1_EE
movq %rax, -40(%rbp)
leaq -40(%rbp), %rax
movq %rax, %rdi
call _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000EEE5countEv
cvtsi2sdq %rax, %xmm0
movsd .LC0(%rip), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -16(%rbp)
leaq .LC6(%rip), %rsi
leaq _ZSt4cout(%rip), %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
leaq .LC2(%rip), %rsi
movq %rax, %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
movq %rax, %rdx
movq -16(%rbp), %rax
movq %rax, %xmm0
movq %rdx, %rdi
call _ZNSolsEd@PLT
leaq .LC3(%rip), %rsi
movq %rax, %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
movq %rax, %rdx
movq _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rax
movq %rax, %rsi
movq %rdx, %rdi
call _ZNSolsEPFRSoS_E@PLT
leaq .LC5(%rip), %rsi
leaq _ZSt4cout(%rip), %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
movq %rax, %rdx
movq -24(%rbp), %rax
movq %rax, %rsi
movq %rdx, %rdi
call _ZNSolsEx@PLT
movq %rax, %rdx
movq _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rax
movq %rax, %rsi
movq %rdx, %rdi
call _ZNSolsEPFRSoS_E@PLT
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L47
call __stack_chk_fail@PLT
.L47:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2426:
.size _Z5test3v, .-_Z5test3v
.globl main
.type main, @function
main:
.LFB2427:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movl %edi, -4(%rbp)
movq %rsi, -16(%rbp)
call _Z4initv
call _Z5test1v
call _Z5test2v
call _Z5test3v
movl $0, %eax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2427:
.size main, .-main
.section .text._ZNSt6chrono20__duration_cast_implINS_8durationIlSt5ratioILl1ELl1000000EEEES2_ILl1ELl1000EElLb1ELb0EE6__castIlS2_ILl1ELl1000000000EEEES4_RKNS1_IT_T0_EE,"axG",@progbits,_ZNSt6chrono20__duration_cast_implINS_8durationIlSt5ratioILl1ELl1000000EEEES2_ILl1ELl1000EElLb1ELb0EE6__castIlS2_ILl1ELl1000000000EEEES4_RKNS1_IT_T0_EE,comdat
.weak _ZNSt6chrono20__duration_cast_implINS_8durationIlSt5ratioILl1ELl1000000EEEES2_ILl1ELl1000EElLb1ELb0EE6__castIlS2_ILl1ELl1000000000EEEES4_RKNS1_IT_T0_EE
.type _ZNSt6chrono20__duration_cast_implINS_8durationIlSt5ratioILl1ELl1000000EEEES2_ILl1ELl1000EElLb1ELb0EE6__castIlS2_ILl1ELl1000000000EEEES4_RKNS1_IT_T0_EE, @function
_ZNSt6chrono20__duration_cast_implINS_8durationIlSt5ratioILl1ELl1000000EEEES2_ILl1ELl1000EElLb1ELb0EE6__castIlS2_ILl1ELl1000000000EEEES4_RKNS1_IT_T0_EE:
.LFB2691:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -40(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -40(%rbp), %rax
movq %rax, %rdi
call _ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv
movq %rax, %rcx
movabsq $2361183241434822607, %rdx
movq %rcx, %rax
imulq %rdx
sarq $7, %rdx
movq %rcx, %rax
sarq $63, %rax
subq %rax, %rdx
movq %rdx, %rax
movq %rax, -24(%rbp)
leaq -24(%rbp), %rdx
leaq -16(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC1IlvEERKT_
movq -16(%rbp), %rax
movq -8(%rbp), %rsi
xorq %fs:40, %rsi
je .L52
call __stack_chk_fail@PLT
.L52:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2691:
.size _ZNSt6chrono20__duration_cast_implINS_8durationIlSt5ratioILl1ELl1000000EEEES2_ILl1ELl1000EElLb1ELb0EE6__castIlS2_ILl1ELl1000000000EEEES4_RKNS1_IT_T0_EE, .-_ZNSt6chrono20__duration_cast_implINS_8durationIlSt5ratioILl1ELl1000000EEEES2_ILl1ELl1000EElLb1ELb0EE6__castIlS2_ILl1ELl1000000000EEEES4_RKNS1_IT_T0_EE
.section .text._ZSt4sortIPiEvT_S1_,"axG",@progbits,_ZSt4sortIPiEvT_S1_,comdat
.weak _ZSt4sortIPiEvT_S1_
.type _ZSt4sortIPiEvT_S1_, @function
_ZSt4sortIPiEvT_S1_:
.LFB2697:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
call _ZN9__gnu_cxx5__ops16__iter_less_iterEv
movq -32(%rbp), %rdx
movq -24(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L54
call __stack_chk_fail@PLT
.L54:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2697:
.size _ZSt4sortIPiEvT_S1_, .-_ZSt4sortIPiEvT_S1_
.section .text._ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IlvEERKT_,"axG",@progbits,_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC5IlvEERKT_,comdat
.align 2
.weak _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IlvEERKT_
.type _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IlvEERKT_, @function
_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IlvEERKT_:
.LFB2813:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq -16(%rbp), %rax
movq (%rax), %rdx
movq -8(%rbp), %rax
movq %rdx, (%rax)
nop
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2813:
.size _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IlvEERKT_, .-_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IlvEERKT_
.weak _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC1IlvEERKT_
.set _ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC1IlvEERKT_,_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IlvEERKT_
.section .text._ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_,"axG",@progbits,_ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_,comdat
.weak _ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.type _ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_, @function
_ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_:
.LFB2818:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq -8(%rbp), %rax
cmpq -16(%rbp), %rax
je .L58
movq -16(%rbp), %rax
subq -8(%rbp), %rax
sarq $2, %rax
movq %rax, %rdi
call _ZSt4__lgl
leaq (%rax,%rax), %rdx
movq -16(%rbp), %rcx
movq -8(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_
movq -16(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.L58:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2818:
.size _ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_, .-_ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.section .text._ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_,"axG",@progbits,_ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_,comdat
.weak _ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_
.type _ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_, @function
_ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_:
.LFB2856:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
.L62:
movq -32(%rbp), %rax
subq -24(%rbp), %rax
cmpq $64, %rax
jle .L59
cmpq $0, -40(%rbp)
jne .L61
movq -32(%rbp), %rdx
movq -32(%rbp), %rcx
movq -24(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_
jmp .L59
.L61:
subq $1, -40(%rbp)
movq -32(%rbp), %rdx
movq -24(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_
movq %rax, -8(%rbp)
movq -40(%rbp), %rdx
movq -32(%rbp), %rcx
movq -8(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_
movq -8(%rbp), %rax
movq %rax, -32(%rbp)
jmp .L62
.L59:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2856:
.size _ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_, .-_ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_
.section .text._ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_,"axG",@progbits,_ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_,comdat
.weak _ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.type _ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_, @function
_ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_:
.LFB2857:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq -16(%rbp), %rax
subq -8(%rbp), %rax
cmpq $64, %rax
jle .L64
movq -8(%rbp), %rax
leaq 64(%rax), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
movq -8(%rbp), %rax
leaq 64(%rax), %rdx
movq -16(%rbp), %rax
movq %rax, %rsi
movq %rdx, %rdi
call _ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
jmp .L66
.L64:
movq -16(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.L66:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2857:
.size _ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_, .-_ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.section .text._ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_,"axG",@progbits,_ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_,comdat
.weak _ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_
.type _ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_, @function
_ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_:
.LFB2892:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
movq -24(%rbp), %rdx
movq -16(%rbp), %rcx
movq -8(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_
leaq -25(%rbp), %rdx
movq -16(%rbp), %rcx
movq -8(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2892:
.size _ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_, .-_ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_
.section .text._ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_,"axG",@progbits,_ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_,comdat
.weak _ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_
.type _ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_, @function
_ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_:
.LFB2893:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq -32(%rbp), %rax
subq -24(%rbp), %rax
sarq $2, %rax
movq %rax, %rdx
shrq $63, %rdx
addq %rdx, %rax
sarq %rax
leaq 0(,%rax,4), %rdx
movq -24(%rbp), %rax
addq %rdx, %rax
movq %rax, -8(%rbp)
movq -32(%rbp), %rax
leaq -4(%rax), %rcx
movq -24(%rbp), %rax
leaq 4(%rax), %rsi
movq -8(%rbp), %rdx
movq -24(%rbp), %rax
movq %rax, %rdi
call _ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_
movq -24(%rbp), %rax
leaq 4(%rax), %rcx
movq -24(%rbp), %rdx
movq -32(%rbp), %rax
movq %rax, %rsi
movq %rcx, %rdi
call _ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2893:
.size _ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_, .-_ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_
.section .text._ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_,"axG",@progbits,_ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_,comdat
.weak _ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.type _ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_, @function
_ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_:
.LFB2894:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $64, %rsp
movq %rdi, -40(%rbp)
movq %rsi, -48(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -40(%rbp), %rax
cmpq -48(%rbp), %rax
je .L77
movq -40(%rbp), %rax
addq $4, %rax
movq %rax, -16(%rbp)
.L75:
movq -16(%rbp), %rax
cmpq -48(%rbp), %rax
je .L70
movq -40(%rbp), %rdx
movq -16(%rbp), %rcx
leaq -49(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L73
movq -16(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %eax
movl %eax, -20(%rbp)
movq -16(%rbp), %rax
leaq 4(%rax), %rdx
movq -16(%rbp), %rcx
movq -40(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZSt13move_backwardIPiS0_ET0_T_S2_S1_
leaq -20(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %edx
movq -40(%rbp), %rax
movl %edx, (%rax)
jmp .L74
.L73:
call _ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE
movq -16(%rbp), %rax
movq %rax, %rdi
call _ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_
.L74:
addq $4, -16(%rbp)
jmp .L75
.L77:
nop
.L70:
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L76
call __stack_chk_fail@PLT
.L76:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2894:
.size _ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_, .-_ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.section .text._ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_,"axG",@progbits,_ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_,comdat
.weak _ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.type _ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_, @function
_ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_:
.LFB2895:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $64, %rsp
movq %rdi, -40(%rbp)
movq %rsi, -48(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -40(%rbp), %rax
movq %rax, -16(%rbp)
.L80:
movq -16(%rbp), %rax
cmpq -48(%rbp), %rax
je .L82
call _ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE
movq -16(%rbp), %rax
movq %rax, %rdi
call _ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_
addq $4, -16(%rbp)
jmp .L80
.L82:
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L81
call __stack_chk_fail@PLT
.L81:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2895:
.size _ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_, .-_ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_
.section .text._ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_,"axG",@progbits,_ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_,comdat
.weak _ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_
.type _ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_, @function
_ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_:
.LFB2925:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
leaq -41(%rbp), %rdx
movq -32(%rbp), %rcx
movq -24(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_
movq -32(%rbp), %rax
movq %rax, -8(%rbp)
.L86:
movq -8(%rbp), %rax
cmpq -40(%rbp), %rax
jnb .L87
movq -24(%rbp), %rdx
movq -8(%rbp), %rcx
leaq -41(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L85
leaq -41(%rbp), %rcx
movq -8(%rbp), %rdx
movq -32(%rbp), %rsi
movq -24(%rbp), %rax
movq %rax, %rdi
call _ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_
.L85:
addq $4, -8(%rbp)
jmp .L86
.L87:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2925:
.size _ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_, .-_ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_
.section .text._ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_,"axG",@progbits,_ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_,comdat
.weak _ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_
.type _ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_, @function
_ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_:
.LFB2926:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
.L90:
movq -16(%rbp), %rax
subq -8(%rbp), %rax
cmpq $4, %rax
jle .L91
subq $4, -16(%rbp)
movq -24(%rbp), %rcx
movq -16(%rbp), %rdx
movq -16(%rbp), %rsi
movq -8(%rbp), %rax
movq %rax, %rdi
call _ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_
jmp .L90
.L91:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2926:
.size _ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_, .-_ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_
.section .text._ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_,"axG",@progbits,_ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_,comdat
.align 2
.weak _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
.type _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_, @function
_ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_:
.LFB2928:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
movq -16(%rbp), %rax
movl (%rax), %edx
movq -24(%rbp), %rax
movl (%rax), %eax
cmpl %eax, %edx
setl %al
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2928:
.size _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_, .-_ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
.section .text._ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_,"axG",@progbits,_ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_,comdat
.weak _ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_
.type _ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_, @function
_ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_:
.LFB2927:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
movq %rcx, -32(%rbp)
movq -24(%rbp), %rdx
movq -16(%rbp), %rcx
leaq -33(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L95
movq -32(%rbp), %rdx
movq -24(%rbp), %rcx
leaq -33(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L96
movq -24(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt9iter_swapIPiS0_EvT_T0_
jmp .L101
.L96:
movq -32(%rbp), %rdx
movq -16(%rbp), %rcx
leaq -33(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L98
movq -32(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt9iter_swapIPiS0_EvT_T0_
jmp .L101
.L98:
movq -16(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt9iter_swapIPiS0_EvT_T0_
jmp .L101
.L95:
movq -32(%rbp), %rdx
movq -16(%rbp), %rcx
leaq -33(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L99
movq -16(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt9iter_swapIPiS0_EvT_T0_
jmp .L101
.L99:
movq -32(%rbp), %rdx
movq -24(%rbp), %rcx
leaq -33(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L100
movq -32(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt9iter_swapIPiS0_EvT_T0_
jmp .L101
.L100:
movq -24(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt9iter_swapIPiS0_EvT_T0_
.L101:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2927:
.size _ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_, .-_ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_
.section .text._ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_,"axG",@progbits,_ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_,comdat
.weak _ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_
.type _ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_, @function
_ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_:
.LFB2929:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
.L104:
movq -24(%rbp), %rdx
movq -8(%rbp), %rcx
leaq -25(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L103
addq $4, -8(%rbp)
jmp .L104
.L103:
subq $4, -16(%rbp)
.L106:
movq -16(%rbp), %rdx
movq -24(%rbp), %rcx
leaq -25(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L105
subq $4, -16(%rbp)
jmp .L106
.L105:
movq -8(%rbp), %rax
cmpq -16(%rbp), %rax
jb .L107
movq -8(%rbp), %rax
jmp .L109
.L107:
movq -16(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt9iter_swapIPiS0_EvT_T0_
addq $4, -8(%rbp)
jmp .L104
.L109:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2929:
.size _ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_, .-_ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_
.section .text._ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_,"axG",@progbits,_ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_,comdat
.weak _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
.type _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_, @function
_ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_:
.LFB2930:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2930:
.size _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_, .-_ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
.section .text._ZSt13move_backwardIPiS0_ET0_T_S2_S1_,"axG",@progbits,_ZSt13move_backwardIPiS0_ET0_T_S2_S1_,comdat
.weak _ZSt13move_backwardIPiS0_ET0_T_S2_S1_
.type _ZSt13move_backwardIPiS0_ET0_T_S2_S1_, @function
_ZSt13move_backwardIPiS0_ET0_T_S2_S1_:
.LFB2931:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
pushq %rbx
subq $40, %rsp
.cfi_offset 3, -24
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
movq -32(%rbp), %rax
movq %rax, %rdi
call _ZSt12__miter_baseIPiET_S1_
movq %rax, %rbx
movq -24(%rbp), %rax
movq %rax, %rdi
call _ZSt12__miter_baseIPiET_S1_
movq %rax, %rcx
movq -40(%rbp), %rax
movq %rax, %rdx
movq %rbx, %rsi
movq %rcx, %rdi
call _ZSt23__copy_move_backward_a2ILb1EPiS0_ET1_T0_S2_S1_
addq $40, %rsp
popq %rbx
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2931:
.size _ZSt13move_backwardIPiS0_ET0_T_S2_S1_, .-_ZSt13move_backwardIPiS0_ET0_T_S2_S1_
.section .text._ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_,"axG",@progbits,_ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_,comdat
.weak _ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_
.type _ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_, @function
_ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_:
.LFB2932:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -40(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -40(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %eax
movl %eax, -20(%rbp)
movq -40(%rbp), %rax
movq %rax, -16(%rbp)
subq $4, -16(%rbp)
.L116:
movq -16(%rbp), %rdx
leaq -20(%rbp), %rcx
leaq -41(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_
testb %al, %al
je .L115
movq -16(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %edx
movq -40(%rbp), %rax
movl %edx, (%rax)
movq -16(%rbp), %rax
movq %rax, -40(%rbp)
subq $4, -16(%rbp)
jmp .L116
.L115:
leaq -20(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %edx
movq -40(%rbp), %rax
movl %edx, (%rax)
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L117
call __stack_chk_fail@PLT
.L117:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2932:
.size _ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_, .-_ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_
.section .text._ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_,"axG",@progbits,_ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_,comdat
.weak _ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_
.type _ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_, @function
_ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_:
.LFB2960:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $64, %rsp
movq %rdi, -40(%rbp)
movq %rsi, -48(%rbp)
movq %rdx, -56(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -48(%rbp), %rax
subq -40(%rbp), %rax
cmpq $4, %rax
jle .L124
movq -48(%rbp), %rax
subq -40(%rbp), %rax
sarq $2, %rax
movq %rax, -16(%rbp)
movq -16(%rbp), %rax
subq $2, %rax
movq %rax, %rdx
shrq $63, %rdx
addq %rdx, %rax
sarq %rax
movq %rax, -24(%rbp)
.L122:
movq -24(%rbp), %rax
leaq 0(,%rax,4), %rdx
movq -40(%rbp), %rax
addq %rdx, %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %eax
movl %eax, -28(%rbp)
leaq -28(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %ecx
movq -16(%rbp), %rdx
movq -24(%rbp), %rsi
movq -40(%rbp), %rax
movq %rax, %rdi
call _ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
cmpq $0, -24(%rbp)
je .L125
subq $1, -24(%rbp)
jmp .L122
.L124:
nop
jmp .L118
.L125:
nop
.L118:
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L123
call __stack_chk_fail@PLT
.L123:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2960:
.size _ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_, .-_ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_
.section .text._ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_,"axG",@progbits,_ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_,comdat
.weak _ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_
.type _ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_, @function
_ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_:
.LFB2961:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
movq %rcx, -48(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -40(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %eax
movl %eax, -12(%rbp)
movq -24(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %edx
movq -40(%rbp), %rax
movl %edx, (%rax)
leaq -12(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %edx
movq -32(%rbp), %rax
subq -24(%rbp), %rax
sarq $2, %rax
movq %rax, %rsi
movq -24(%rbp), %rax
movl %edx, %ecx
movq %rsi, %rdx
movl $0, %esi
movq %rax, %rdi
call _ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L127
call __stack_chk_fail@PLT
.L127:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2961:
.size _ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_, .-_ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_
.section .text._ZSt9iter_swapIPiS0_EvT_T0_,"axG",@progbits,_ZSt9iter_swapIPiS0_EvT_T0_,comdat
.weak _ZSt9iter_swapIPiS0_EvT_T0_
.type _ZSt9iter_swapIPiS0_EvT_T0_, @function
_ZSt9iter_swapIPiS0_EvT_T0_:
.LFB2962:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq -16(%rbp), %rdx
movq -8(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt4swapIiENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS4_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SE_
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2962:
.size _ZSt9iter_swapIPiS0_EvT_T0_, .-_ZSt9iter_swapIPiS0_EvT_T0_
.section .text._ZSt12__miter_baseIPiET_S1_,"axG",@progbits,_ZSt12__miter_baseIPiET_S1_,comdat
.weak _ZSt12__miter_baseIPiET_S1_
.type _ZSt12__miter_baseIPiET_S1_, @function
_ZSt12__miter_baseIPiET_S1_:
.LFB2963:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2963:
.size _ZSt12__miter_baseIPiET_S1_, .-_ZSt12__miter_baseIPiET_S1_
.section .text._ZSt23__copy_move_backward_a2ILb1EPiS0_ET1_T0_S2_S1_,"axG",@progbits,_ZSt23__copy_move_backward_a2ILb1EPiS0_ET1_T0_S2_S1_,comdat
.weak _ZSt23__copy_move_backward_a2ILb1EPiS0_ET1_T0_S2_S1_
.type _ZSt23__copy_move_backward_a2ILb1EPiS0_ET1_T0_S2_S1_, @function
_ZSt23__copy_move_backward_a2ILb1EPiS0_ET1_T0_S2_S1_:
.LFB2964:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
pushq %r12
pushq %rbx
subq $32, %rsp
.cfi_offset 12, -24
.cfi_offset 3, -32
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
movq -40(%rbp), %rax
movq %rax, %rdi
call _ZSt12__niter_baseIPiET_S1_
movq %rax, %r12
movq -32(%rbp), %rax
movq %rax, %rdi
call _ZSt12__niter_baseIPiET_S1_
movq %rax, %rbx
movq -24(%rbp), %rax
movq %rax, %rdi
call _ZSt12__niter_baseIPiET_S1_
movq %r12, %rdx
movq %rbx, %rsi
movq %rax, %rdi
call _ZSt22__copy_move_backward_aILb1EPiS0_ET1_T0_S2_S1_
movq %rax, %rdx
leaq -40(%rbp), %rax
movq %rdx, %rsi
movq %rax, %rdi
call _ZSt12__niter_wrapIPiET_RKS1_S1_
addq $32, %rsp
popq %rbx
popq %r12
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2964:
.size _ZSt23__copy_move_backward_a2ILb1EPiS0_ET1_T0_S2_S1_, .-_ZSt23__copy_move_backward_a2ILb1EPiS0_ET1_T0_S2_S1_
.section .text._ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_,"axG",@progbits,_ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_,comdat
.align 2
.weak _ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_
.type _ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_, @function
_ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_:
.LFB2965:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
movq -16(%rbp), %rax
movl (%rax), %edx
movq -24(%rbp), %rax
movl (%rax), %eax
cmpl %eax, %edx
setl %al
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2965:
.size _ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_, .-_ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_
.section .text._ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_,"axG",@progbits,_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_,comdat
.weak _ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
.type _ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_, @function
_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_:
.LFB2976:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $64, %rsp
movq %rdi, -40(%rbp)
movq %rsi, -48(%rbp)
movq %rdx, -56(%rbp)
movl %ecx, -60(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -48(%rbp), %rax
movq %rax, -16(%rbp)
movq -48(%rbp), %rax
movq %rax, -24(%rbp)
.L138:
movq -56(%rbp), %rax
subq $1, %rax
movq %rax, %rdx
shrq $63, %rdx
addq %rdx, %rax
sarq %rax
cmpq %rax, -24(%rbp)
jge .L136
movq -24(%rbp), %rax
addq $1, %rax
addq %rax, %rax
movq %rax, -24(%rbp)
movq -24(%rbp), %rax
salq $2, %rax
leaq -4(%rax), %rdx
movq -40(%rbp), %rax
addq %rax, %rdx
movq -24(%rbp), %rax
leaq 0(,%rax,4), %rcx
movq -40(%rbp), %rax
addq %rax, %rcx
leaq -61(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_
testb %al, %al
je .L137
subq $1, -24(%rbp)
.L137:
movq -24(%rbp), %rax
leaq 0(,%rax,4), %rdx
movq -40(%rbp), %rax
addq %rdx, %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movq -48(%rbp), %rdx
leaq 0(,%rdx,4), %rcx
movq -40(%rbp), %rdx
addq %rcx, %rdx
movl (%rax), %eax
movl %eax, (%rdx)
movq -24(%rbp), %rax
movq %rax, -48(%rbp)
jmp .L138
.L136:
movq -56(%rbp), %rax
andl $1, %eax
testq %rax, %rax
jne .L139
movq -56(%rbp), %rax
subq $2, %rax
movq %rax, %rdx
shrq $63, %rdx
addq %rdx, %rax
sarq %rax
cmpq %rax, -24(%rbp)
jne .L139
movq -24(%rbp), %rax
addq $1, %rax
addq %rax, %rax
movq %rax, -24(%rbp)
movq -24(%rbp), %rax
salq $2, %rax
leaq -4(%rax), %rdx
movq -40(%rbp), %rax
addq %rdx, %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movq -48(%rbp), %rdx
leaq 0(,%rdx,4), %rcx
movq -40(%rbp), %rdx
addq %rcx, %rdx
movl (%rax), %eax
movl %eax, (%rdx)
movq -24(%rbp), %rax
subq $1, %rax
movq %rax, -48(%rbp)
.L139:
leaq -61(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRN9__gnu_cxx5__ops15_Iter_less_iterEEONSt16remove_referenceIT_E4typeEOS5_
leaq -25(%rbp), %rax
movq %rax, %rdi
call _ZN9__gnu_cxx5__ops14_Iter_less_valC1ENS0_15_Iter_less_iterE
leaq -60(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %ecx
leaq -25(%rbp), %rdi
movq -16(%rbp), %rdx
movq -48(%rbp), %rsi
movq -40(%rbp), %rax
movq %rdi, %r8
movq %rax, %rdi
call _ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L140
call __stack_chk_fail@PLT
.L140:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2976:
.size _ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_, .-_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
.section .text._ZSt4swapIiENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS4_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SE_,"axG",@progbits,_ZSt4swapIiENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS4_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SE_,comdat
.weak _ZSt4swapIiENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS4_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SE_
.type _ZSt4swapIiENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS4_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SE_, @function
_ZSt4swapIiENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS4_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SE_:
.LFB2977:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movq -24(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %eax
movl %eax, -12(%rbp)
movq -32(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %edx
movq -24(%rbp), %rax
movl %edx, (%rax)
leaq -12(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movl (%rax), %edx
movq -32(%rbp), %rax
movl %edx, (%rax)
nop
movq -8(%rbp), %rax
xorq %fs:40, %rax
je .L142
call __stack_chk_fail@PLT
.L142:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2977:
.size _ZSt4swapIiENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS4_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SE_, .-_ZSt4swapIiENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS4_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SE_
.section .text._ZSt12__niter_baseIPiET_S1_,"axG",@progbits,_ZSt12__niter_baseIPiET_S1_,comdat
.weak _ZSt12__niter_baseIPiET_S1_
.type _ZSt12__niter_baseIPiET_S1_, @function
_ZSt12__niter_baseIPiET_S1_:
.LFB2978:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2978:
.size _ZSt12__niter_baseIPiET_S1_, .-_ZSt12__niter_baseIPiET_S1_
.section .text._ZSt22__copy_move_backward_aILb1EPiS0_ET1_T0_S2_S1_,"axG",@progbits,_ZSt22__copy_move_backward_aILb1EPiS0_ET1_T0_S2_S1_,comdat
.weak _ZSt22__copy_move_backward_aILb1EPiS0_ET1_T0_S2_S1_
.type _ZSt22__copy_move_backward_aILb1EPiS0_ET1_T0_S2_S1_, @function
_ZSt22__copy_move_backward_aILb1EPiS0_ET1_T0_S2_S1_:
.LFB2979:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
movb $1, -1(%rbp)
movq -40(%rbp), %rdx
movq -32(%rbp), %rcx
movq -24(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNSt20__copy_move_backwardILb1ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2979:
.size _ZSt22__copy_move_backward_aILb1EPiS0_ET1_T0_S2_S1_, .-_ZSt22__copy_move_backward_aILb1EPiS0_ET1_T0_S2_S1_
.section .text._ZSt12__niter_wrapIPiET_RKS1_S1_,"axG",@progbits,_ZSt12__niter_wrapIPiET_RKS1_S1_,comdat
.weak _ZSt12__niter_wrapIPiET_RKS1_S1_
.type _ZSt12__niter_wrapIPiET_RKS1_S1_, @function
_ZSt12__niter_wrapIPiET_RKS1_S1_:
.LFB2980:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq -16(%rbp), %rax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2980:
.size _ZSt12__niter_wrapIPiET_RKS1_S1_, .-_ZSt12__niter_wrapIPiET_RKS1_S1_
.section .text._ZSt4moveIRN9__gnu_cxx5__ops15_Iter_less_iterEEONSt16remove_referenceIT_E4typeEOS5_,"axG",@progbits,_ZSt4moveIRN9__gnu_cxx5__ops15_Iter_less_iterEEONSt16remove_referenceIT_E4typeEOS5_,comdat
.weak _ZSt4moveIRN9__gnu_cxx5__ops15_Iter_less_iterEEONSt16remove_referenceIT_E4typeEOS5_
.type _ZSt4moveIRN9__gnu_cxx5__ops15_Iter_less_iterEEONSt16remove_referenceIT_E4typeEOS5_, @function
_ZSt4moveIRN9__gnu_cxx5__ops15_Iter_less_iterEEONSt16remove_referenceIT_E4typeEOS5_:
.LFB2983:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq -8(%rbp), %rax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2983:
.size _ZSt4moveIRN9__gnu_cxx5__ops15_Iter_less_iterEEONSt16remove_referenceIT_E4typeEOS5_, .-_ZSt4moveIRN9__gnu_cxx5__ops15_Iter_less_iterEEONSt16remove_referenceIT_E4typeEOS5_
.section .text._ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_,"axG",@progbits,_ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_,comdat
.weak _ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_
.type _ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_, @function
_ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_:
.LFB2984:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $64, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
movl %ecx, -44(%rbp)
movq %r8, -56(%rbp)
movq -32(%rbp), %rax
subq $1, %rax
movq %rax, %rdx
shrq $63, %rdx
addq %rdx, %rax
sarq %rax
movq %rax, -8(%rbp)
.L155:
movq -32(%rbp), %rax
cmpq -40(%rbp), %rax
jle .L152
movq -8(%rbp), %rax
leaq 0(,%rax,4), %rdx
movq -24(%rbp), %rax
leaq (%rdx,%rax), %rcx
leaq -44(%rbp), %rdx
movq -56(%rbp), %rax
movq %rcx, %rsi
movq %rax, %rdi
call _ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_
testb %al, %al
je .L152
movl $1, %eax
jmp .L153
.L152:
movl $0, %eax
.L153:
testb %al, %al
je .L154
movq -8(%rbp), %rax
leaq 0(,%rax,4), %rdx
movq -24(%rbp), %rax
addq %rdx, %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movq -32(%rbp), %rdx
leaq 0(,%rdx,4), %rcx
movq -24(%rbp), %rdx
addq %rcx, %rdx
movl (%rax), %eax
movl %eax, (%rdx)
movq -8(%rbp), %rax
movq %rax, -32(%rbp)
movq -32(%rbp), %rax
subq $1, %rax
movq %rax, %rdx
shrq $63, %rdx
addq %rdx, %rax
sarq %rax
movq %rax, -8(%rbp)
jmp .L155
.L154:
leaq -44(%rbp), %rax
movq %rax, %rdi
call _ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_
movq -32(%rbp), %rdx
leaq 0(,%rdx,4), %rcx
movq -24(%rbp), %rdx
addq %rcx, %rdx
movl (%rax), %eax
movl %eax, (%rdx)
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2984:
.size _ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_, .-_ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_
.section .text._ZNSt20__copy_move_backwardILb1ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_,"axG",@progbits,_ZNSt20__copy_move_backwardILb1ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_,comdat
.weak _ZNSt20__copy_move_backwardILb1ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_
.type _ZNSt20__copy_move_backwardILb1ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_, @function
_ZNSt20__copy_move_backwardILb1ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_:
.LFB2985:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movq %rdx, -40(%rbp)
movq -32(%rbp), %rax
subq -24(%rbp), %rax
sarq $2, %rax
movq %rax, -8(%rbp)
cmpq $0, -8(%rbp)
je .L157
movq -8(%rbp), %rax
leaq 0(,%rax,4), %rdx
movq -8(%rbp), %rax
salq $2, %rax
negq %rax
movq %rax, %rcx
movq -40(%rbp), %rax
addq %rax, %rcx
movq -24(%rbp), %rax
movq %rax, %rsi
movq %rcx, %rdi
call memmove@PLT
.L157:
movq -8(%rbp), %rax
salq $2, %rax
negq %rax
movq %rax, %rdx
movq -40(%rbp), %rax
addq %rdx, %rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2985:
.size _ZNSt20__copy_move_backwardILb1ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_, .-_ZNSt20__copy_move_backwardILb1ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_
.section .text._ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_,"axG",@progbits,_ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_,comdat
.align 2
.weak _ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_
.type _ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_, @function
_ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_:
.LFB2986:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
movq %rdx, -24(%rbp)
movq -16(%rbp), %rax
movl (%rax), %edx
movq -24(%rbp), %rax
movl (%rax), %eax
cmpl %eax, %edx
setl %al
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2986:
.size _ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_, .-_ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_
.text
.type _Z41__static_initialization_and_destruction_0ii, @function
_Z41__static_initialization_and_destruction_0ii:
.LFB2987:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movl %edi, -4(%rbp)
movl %esi, -8(%rbp)
cmpl $1, -4(%rbp)
jne .L163
cmpl $65535, -8(%rbp)
jne .L163
leaq _ZStL8__ioinit(%rip), %rdi
call _ZNSt8ios_base4InitC1Ev@PLT
leaq __dso_handle(%rip), %rdx
leaq _ZStL8__ioinit(%rip), %rsi
movq _ZNSt8ios_base4InitD1Ev@GOTPCREL(%rip), %rax
movq %rax, %rdi
call __cxa_atexit@PLT
.L163:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2987:
.size _Z41__static_initialization_and_destruction_0ii, .-_Z41__static_initialization_and_destruction_0ii
.type _GLOBAL__sub_I_nums, @function
_GLOBAL__sub_I_nums:
.LFB2988:
.cfi_startproc
endbr64
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movl $65535, %esi
movl $1, %edi
call _Z41__static_initialization_and_destruction_0ii
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2988:
.size _GLOBAL__sub_I_nums, .-_GLOBAL__sub_I_nums
.section .init_array,"aw"
.align 8
.quad _GLOBAL__sub_I_nums
.section .rodata
.align 8
.LC0:
.long 0
.long 1093567616
.hidden __dso_handle
.ident "GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0"
.section .note.GNU-stack,"",@progbits
.section .note.gnu.property,"a"
.align 8
.long 1f - 0f
.long 4f - 1f
.long 5
0:
.string "GNU"
1:
.align 8
.long 0xc0000002
.long 3f - 2f
2:
.long 0x3
3:
.align 8
4: