From 6dd5bcc9f6f557508261113218c332e207e75a46 Mon Sep 17 00:00:00 2001 From: trcrsired Date: Fri, 16 Jan 2026 06:35:17 +0800 Subject: [PATCH 1/5] Add erase value and erase_if for deque --- include/fast_io_dsal/impl/deque.h | 24 ++- tests/0026.container/0003.deque/erase.cc | 195 +++++++++++++++++++++++ 2 files changed, 218 insertions(+), 1 deletion(-) diff --git a/include/fast_io_dsal/impl/deque.h b/include/fast_io_dsal/impl/deque.h index b816d5cb..f376c3e4 100644 --- a/include/fast_io_dsal/impl/deque.h +++ b/include/fast_io_dsal/impl/deque.h @@ -364,7 +364,7 @@ inline constexpr ::std::ptrdiff_t deque_iter_difference_common(::fast_io::contai template inline constexpr ::std::size_t deque_iter_difference_unsigned_common(::fast_io::containers::details::deque_control_block const &a, ::fast_io::containers::details::deque_control_block const &b) noexcept { - ::std::size_t controllerdiff{a.controller_ptr - b.controller_ptr}; + ::std::size_t controllerdiff{static_cast<::std::size_t>(a.controller_ptr - b.controller_ptr)}; constexpr ::std::size_t blocksizedf{::fast_io::containers::details::deque_block_size}; return controllerdiff * blocksizedf + static_cast<::std::size_t>((a.curr_ptr - a.begin_ptr) + (b.begin_ptr - b.curr_ptr)); } @@ -2236,6 +2236,28 @@ inline constexpr auto operator<=>(deque const &lhs, deque +constexpr typename ::fast_io::containers::deque::size_type +erase(::fast_io::containers::deque &c, U const &value) +{ + auto ed{c.end()}; + auto it = ::std::remove(c.begin(), ed, value); + auto r = ::fast_io::containers::details::deque_iter_difference_unsigned_common(ed.itercontent, it.itercontent); + c.erase(it, ed); + return r; +} + +template +constexpr typename ::fast_io::containers::deque::size_type +erase_if(::fast_io::containers::deque &c, Pred pred) +{ + auto ed{c.end()}; + auto it = ::std::remove_if(c.begin(), ed, pred); + auto r = ::fast_io::containers::details::deque_iter_difference_unsigned_common(ed.itercontent, it.itercontent); + c.erase(it, ed); + return r; +} + } // namespace containers namespace freestanding diff --git a/tests/0026.container/0003.deque/erase.cc b/tests/0026.container/0003.deque/erase.cc index 66c4c7d4..7fd8be7b 100644 --- a/tests/0026.container/0003.deque/erase.cc +++ b/tests/0026.container/0003.deque/erase.cc @@ -307,10 +307,205 @@ inline void test_erase_index() ::fast_io::io::print("deque erase_index test finished\n"); } +inline void test_erase_value() +{ + ::fast_io::io::perr("=== deque erase(value) test ===\n"); + + using T = ::std::size_t; + ::fast_io::deque dq; + ::std::deque ref; + + // Fill initial data with repeated patterns + for (::std::size_t i{}; i != 300u; ++i) + { + dq.push_back(i % 10); + ref.push_back(i % 10); + } + + auto check_equal = [&](auto const &msg, + ::std::source_location src = ::std::source_location::current()) { + if (dq.size() != ref.size()) + { + ::fast_io::io::panicln(src, "size mismatch: ", msg); + } + + for (::std::size_t i{}; i != dq.size(); ++i) + { + if (dq[i] != ref[i]) + { + ::fast_io::io::panicln(src, "value mismatch at ", i, " : ", msg); + } + } + }; + + // 1. Erase a value that appears many times + { + auto r1 = erase(dq, static_cast(3)); + auto r2 = std::erase(ref, static_cast(3)); + if (r1 != r2) + { + ::fast_io::io::panicln("erase(value) count mismatch"); + } + check_equal("erase(value) many occurrences"); + } + + // 2. Erase a value that appears once + { + dq.push_back(12345); + ref.push_back(12345); + + auto r1 = erase(dq, static_cast(12345)); + auto r2 = std::erase(ref, static_cast(12345)); + if (r1 != r2) + { + ::fast_io::io::panicln("erase(value) count mismatch (single)"); + } + check_equal("erase(value) single occurrence"); + } + + // 3. Erase a value that does not exist + { + auto r1 = erase(dq, static_cast(99999)); + auto r2 = std::erase(ref, static_cast(99999)); + if (r1 != r2) + { + ::fast_io::io::panicln("erase(value) count mismatch (none)"); + } + check_equal("erase(value) none"); + } + + // 4. Randomized erase(value) + for (std::size_t iter{}; iter != 200u; ++iter) + { + if (dq.empty()) + { + break; + } + + std::size_t val = iter % 15; + + auto r1 = erase(dq, static_cast(val)); + auto r2 = std::erase(ref, static_cast(val)); + + if (r1 != r2) + { + ::fast_io::io::panicln("erase(value) randomized count mismatch"); + } + + check_equal("erase(value) randomized"); + } + + ::fast_io::io::print("deque erase(value) test finished\n"); +} + +inline void test_erase_if() +{ + ::fast_io::io::perr("=== deque erase_if(pred) test ===\n"); + + using T = ::std::size_t; + ::fast_io::deque dq; + ::std::deque ref; + + // Fill initial data + for (::std::size_t i{}; i != 300u; ++i) + { + dq.push_back(i); + ref.push_back(i); + } + + auto check_equal = [&](auto const &msg, + ::std::source_location src = ::std::source_location::current()) { + if (dq.size() != ref.size()) + { + ::fast_io::io::panicln(src, "size mismatch: ", msg); + } + + for (::std::size_t i{}; i != dq.size(); ++i) + { + if (dq[i] != ref[i]) + { + ::fast_io::io::panicln(src, "value mismatch at ", i, " : ", msg); + } + } + }; + + // 1. Remove even numbers + { + auto pred = [](T x) { return (x % 2) == 0; }; + + auto r1 = erase_if(dq, pred); + auto r2 = std::erase_if(ref, pred); + + if (r1 != r2) + { + ::fast_io::io::panicln("erase_if(pred) count mismatch (even)"); + } + + check_equal("erase_if even"); + } + + // 2. Remove numbers divisible by 3 + { + auto pred = [](T x) { return (x % 3) == 0; }; + + auto r1 = erase_if(dq, pred); + auto r2 = std::erase_if(ref, pred); + + if (r1 != r2) + { + ::fast_io::io::panicln("erase_if(pred) count mismatch (div3)"); + } + + check_equal("erase_if divisible by 3"); + } + + // 3. Remove nothing + { + auto pred = [](T x) { return x == static_cast(999999); }; + + auto r1 = erase_if(dq, pred); + auto r2 = std::erase_if(ref, pred); + + if (r1 != r2) + { + ::fast_io::io::panicln("erase_if(pred) count mismatch (none)"); + } + + check_equal("erase_if none"); + } + + // 4. Randomized erase_if + for (std::size_t iter{}; iter != 200u; ++iter) + { + if (dq.empty()) + { + break; + } + + std::size_t mod = (iter % 7) + 2; + + auto pred = [&](T x) { return (x % mod) == 1; }; + + auto r1 = erase_if(dq, pred); + auto r2 = std::erase_if(ref, pred); + + if (r1 != r2) + { + ::fast_io::io::panicln("erase_if(pred) randomized count mismatch"); + } + + check_equal("erase_if randomized"); + } + + ::fast_io::io::print("deque erase_if(pred) test finished\n"); +} + } // namespace int main() { test_erase(); test_erase_index(); + test_erase_value(); + test_erase_if(); } From d5f5a36d78129fa96a9c43ce68022153fc88c9f2 Mon Sep 17 00:00:00 2001 From: trcrsired Date: Fri, 16 Jan 2026 06:53:23 +0800 Subject: [PATCH 2/5] [skip ci] add erase asm gen test --- .../deque/0005.asm/erase_fast_io.cc | 32 + .../deque/0005.asm/erase_fast_io.s | 1027 ++++++++ .../deque/0005.asm/erase_std.cc | 32 + .../deque/0005.asm/erase_std.s | 2302 +++++++++++++++++ 4 files changed, 3393 insertions(+) create mode 100644 benchmark/0011.containers/deque/0005.asm/erase_fast_io.cc create mode 100644 benchmark/0011.containers/deque/0005.asm/erase_fast_io.s create mode 100644 benchmark/0011.containers/deque/0005.asm/erase_std.cc create mode 100644 benchmark/0011.containers/deque/0005.asm/erase_std.s diff --git a/benchmark/0011.containers/deque/0005.asm/erase_fast_io.cc b/benchmark/0011.containers/deque/0005.asm/erase_fast_io.cc new file mode 100644 index 00000000..c756535a --- /dev/null +++ b/benchmark/0011.containers/deque/0005.asm/erase_fast_io.cc @@ -0,0 +1,32 @@ +#include +#include + +template +using test_deque = ::fast_io::deque; + +void erase_u16( + test_deque<::std::uint_least16_t> &dq, + decltype(dq.begin()) first, + decltype(dq.begin()) last +) +{ + dq.erase(first,last); +} + +void erase_u32( + test_deque<::std::uint_least32_t> &dq, + decltype(dq.begin()) first, + decltype(dq.begin()) last +) +{ + dq.erase(first,last); +} + +void erase_u64( + test_deque<::std::uint_least64_t> &dq, + decltype(dq.begin()) first, + decltype(dq.begin()) last +) +{ + dq.erase(first,last); +} diff --git a/benchmark/0011.containers/deque/0005.asm/erase_fast_io.s b/benchmark/0011.containers/deque/0005.asm/erase_fast_io.s new file mode 100644 index 00000000..1288d78e --- /dev/null +++ b/benchmark/0011.containers/deque/0005.asm/erase_fast_io.s @@ -0,0 +1,1027 @@ + .def "@feat.00"; + .scl 3; + .type 0; + .endef + .globl "@feat.00" +"@feat.00" = 0 + .file "erase_fast_io.cc" + .def _Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_; + .scl 2; + .type 32; + .endef + .text + .globl _Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_ // -- Begin function _Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_ + .p2align 2 +_Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_: // @_Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_ +.seh_proc _Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_ +// %bb.0: + sub sp, sp, #112 + .seh_stackalloc 112 + str x30, [sp, #96] // 8-byte Spill + .seh_save_reg x30, 96 + .seh_endprologue + ldr x8, [x1, #16] + ldr q0, [x1] + add x1, sp, #64 + ldr q1, [x2] + ldr x9, [x2, #16] + add x2, sp, #32 + str x8, [sp, #80] + add x8, sp, #8 + str q0, [sp, #64] + str q1, [sp, #32] + str x9, [sp, #48] + bl _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ + .seh_startepilogue + ldr x30, [sp, #96] // 8-byte Reload + .seh_save_reg x30, 96 + add sp, sp, #112 + .seh_stackalloc 112 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_; + .scl 2; + .type 32; + .endef + .section .text$_ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_,"xr",discard,_ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ + .globl _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ // -- Begin function _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ + .p2align 2 +_ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_: // @_ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ +.seh_proc _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ +// %bb.0: + sub sp, sp, #160 + .seh_stackalloc 160 + stp x19, x20, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x19, 64 + stp x21, x22, [sp, #80] // 16-byte Folded Spill + .seh_save_regp x21, 80 + stp x23, x24, [sp, #96] // 16-byte Folded Spill + .seh_save_regp x23, 96 + stp x25, x26, [sp, #112] // 16-byte Folded Spill + .seh_save_regp x25, 112 + stp x27, x28, [sp, #128] // 16-byte Folded Spill + .seh_save_regp x27, 128 + str x30, [sp, #144] // 8-byte Spill + .seh_save_reg x30, 144 + .seh_endprologue + ldp x27, x16, [x0, #32] + ldr x17, [x1, #16] + ldp x10, x15, [x0, #48] + ldr x24, [x2, #8] + ldp x3, x21, [x1] + mov x9, x16 + mov x11, x27 + cmp x16, x15 + str x10, [sp, #32] // 8-byte Spill + b.eq .LBB1_40 +.LBB1_1: + cmp x21, x24 + b.eq .LBB1_15 +// %bb.2: + ldp x12, x4, [x0] + sub x13, x21, x3 + ldr x26, [x2, #16] + ldr x23, [x2] + sub x9, x9, x11 + ldr x2, [x0, #16] + stp x0, x8, [sp, #16] // 16-byte Folded Spill + sub x12, x12, x4 + sub x10, x10, x26 + sub x14, x23, x24 + asr x12, x12, #1 + lsl x10, x10, #8 + add x12, x12, x13, asr #1 + add x10, x10, x14, asr #1 + sub x13, x17, x2 + add x11, x12, x13, lsl #8 + add x9, x10, x9, asr #1 + cmp x11, x9 + b.hs .LBB1_16 +// %bb.3: + cmp x4, x21 + mov x19, x24 + mov x9, x26 + str x23, [sp, #8] // 8-byte Spill + b.eq .LBB1_32 +// %bb.4: + ldr x23, [sp, #8] // 8-byte Reload + mov x19, x24 + str x16, [sp] // 8-byte Spill + str x26, [sp, #152] // 8-byte Spill + stp x4, x2, [sp, #40] // 16-byte Folded Spill + b .LBB1_8 +.LBB1_5: // in Loop: Header=BB1_8 Depth=1 + ldp x2, x17, [sp, #48] // 16-byte Folded Reload + add x19, x19, x22 + cmp x2, x17 + b.eq .LBB1_31 +// %bb.6: // in Loop: Header=BB1_8 Depth=1 + ldr x4, [sp, #40] // 8-byte Reload + add x26, x26, #8 +.LBB1_7: // in Loop: Header=BB1_8 Depth=1 + ldr x3, [x17, #-8]! + add x21, x3, #1, lsl #12 // =4096 +.LBB1_8: // =>This Loop Header: Depth=1 + // Child Loop BB1_10 Depth 2 + cmp x2, x17 + sub x26, x26, #8 + str x17, [sp, #56] // 8-byte Spill + csel x20, x4, x3, eq + sub x28, x21, x20 + sub x25, x19, x23 + cmp x28, x25 + csel x2, x28, x25, lo + neg x22, x2 + cbz x2, .LBB1_10 +.LBB1_9: // in Loop: Header=BB1_8 Depth=1 + add x0, x19, x22 + add x1, x21, x22 + bl memmove +.LBB1_10: // Parent Loop BB1_8 Depth=1 + // => This Inner Loop Header: Depth=2 + cmp x28, x25 + b.ls .LBB1_12 +// %bb.11: // in Loop: Header=BB1_10 Depth=2 + ldr x23, [x26], #-8 + add x21, x21, x22 + add x19, x23, #1, lsl #12 // =4096 + sub x28, x21, x20 + sub x25, x19, x23 + cmp x28, x25 + csel x2, x28, x25, lo + neg x22, x2 + cbnz x2, .LBB1_9 + b .LBB1_10 +.LBB1_12: // in Loop: Header=BB1_8 Depth=1 + b.ne .LBB1_5 +// %bb.13: // in Loop: Header=BB1_8 Depth=1 + ldp x2, x17, [sp, #48] // 16-byte Folded Reload + ldr x4, [sp, #40] // 8-byte Reload + cmp x2, x17 + b.eq .LBB1_30 +// %bb.14: // in Loop: Header=BB1_8 Depth=1 + ldr x23, [x26] + add x19, x23, #1, lsl #12 // =4096 + b .LBB1_7 +.LBB1_15: + mov x11, x3 + mov x24, x21 + mov x26, x17 + b .LBB1_39 +.LBB1_16: + cmp x16, x15 + b.eq .LBB1_42 +// %bb.17: + ldr x19, [sp, #32] // 8-byte Reload +.LBB1_18: + cmp x24, x16 + b.eq .LBB1_29 +// %bb.19: + mov x9, x17 + mov x22, x21 + mov x27, x3 + stp x3, x17, [sp, #48] // 16-byte Folded Spill + str x19, [sp, #40] // 8-byte Spill +.LBB1_20: // =>This Loop Header: Depth=1 + // Child Loop BB1_22 Depth 2 + add x8, x23, #1, lsl #12 // =4096 + cmp x26, x19 + str x26, [sp, #152] // 8-byte Spill + mov x25, x16 + csel x26, x16, x8, eq + add x9, x9, #8 + sub x8, x27, x22 + sub x20, x26, x24 + add x28, x8, #1, lsl #12 // =4096 + cmp x20, x28 + csel x23, x20, x28, lo + cbz x23, .LBB1_22 +.LBB1_21: // in Loop: Header=BB1_20 Depth=1 + mov x0, x22 + mov x1, x24 + mov x2, x23 + mov x19, x9 + bl memmove + mov x9, x19 +.LBB1_22: // Parent Loop BB1_20 Depth=1 + // => This Inner Loop Header: Depth=2 + cmp x20, x28 + b.ls .LBB1_24 +// %bb.23: // in Loop: Header=BB1_22 Depth=2 + ldr x22, [x9], #8 + add x24, x24, x23 + mov x27, x22 + sub x8, x22, x22 + sub x20, x26, x24 + add x28, x8, #1, lsl #12 // =4096 + cmp x20, x28 + csel x23, x20, x28, lo + cbnz x23, .LBB1_21 + b .LBB1_22 +.LBB1_24: // in Loop: Header=BB1_20 Depth=1 + cmp x20, x28 + b.hs .LBB1_26 +// %bb.25: // in Loop: Header=BB1_20 Depth=1 + sub x9, x9, #8 + add x22, x22, x20 + ldr x26, [sp, #152] // 8-byte Reload + ldr x19, [sp, #40] // 8-byte Reload + mov x16, x25 + cmp x26, x19 + b.ne .LBB1_27 + b .LBB1_28 +.LBB1_26: // in Loop: Header=BB1_20 Depth=1 + ldr x27, [x9] + mov x22, x27 + ldr x26, [sp, #152] // 8-byte Reload + ldr x19, [sp, #40] // 8-byte Reload + mov x16, x25 + cmp x26, x19 + b.eq .LBB1_28 +.LBB1_27: // in Loop: Header=BB1_20 Depth=1 + ldr x24, [x26, #8]! + mov x23, x24 + b .LBB1_20 +.LBB1_28: + ldr x25, [sp, #16] // 8-byte Reload + ldp x11, x26, [sp, #48] // 16-byte Folded Reload + str x9, [sp, #32] // 8-byte Spill + mov x24, x21 + mov x16, x22 + ldr x9, [x25, #16] + b .LBB1_33 +.LBB1_29: + ldr x25, [sp, #16] // 8-byte Reload + mov x9, x2 + mov x11, x3 + mov x24, x21 + mov x26, x17 + str x17, [sp, #32] // 8-byte Spill + mov x16, x21 + mov x27, x3 + b .LBB1_33 +.LBB1_30: + mov x19, x23 +.LBB1_31: + add x9, x26, #8 + ldr x16, [sp] // 8-byte Reload + ldr x26, [sp, #152] // 8-byte Reload +.LBB1_32: + ldp x11, x25, [sp, #8] // 16-byte Folded Reload + stp x23, x19, [x25] + str x9, [x25, #16] +.LBB1_33: + ldr x8, [sp, #24] // 8-byte Reload + cmp x27, x16 + b.ne .LBB1_37 +// %bb.34: + ldr x10, [sp, #32] // 8-byte Reload + cmp x9, x10 + mov x9, x10 + b.eq .LBB1_36 +// %bb.35: + ldr x27, [x9, #-8]! + add x16, x27, #1, lsl #12 // =4096 +.LBB1_36: + mov x10, x9 + b .LBB1_38 +.LBB1_37: + ldr x10, [sp, #32] // 8-byte Reload +.LBB1_38: + add x9, x27, #1, lsl #12 // =4096 + stp x27, x16, [x25, #32] + stp x10, x9, [x25, #48] +.LBB1_39: + stp x11, x24, [x8] + str x26, [x8, #16] + .seh_startepilogue + ldr x30, [sp, #144] // 8-byte Reload + .seh_save_reg x30, 144 + ldp x27, x28, [sp, #128] // 16-byte Folded Reload + .seh_save_regp x27, 128 + ldp x25, x26, [sp, #112] // 16-byte Folded Reload + .seh_save_regp x25, 112 + ldp x23, x24, [sp, #96] // 16-byte Folded Reload + .seh_save_regp x23, 96 + ldp x21, x22, [sp, #80] // 16-byte Folded Reload + .seh_save_regp x21, 80 + ldp x19, x20, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x19, 64 + add sp, sp, #160 + .seh_stackalloc 160 + .seh_endepilogue + ret +.LBB1_40: + ldr x10, [sp, #32] // 8-byte Reload + cbz x10, .LBB1_44 +// %bb.41: + ldr x9, [x10, #8]! + mov x11, x9 + b .LBB1_1 +.LBB1_42: + ldr x19, [sp, #32] // 8-byte Reload + cbz x19, .LBB1_18 +// %bb.43: + ldr x16, [x19, #8]! + b .LBB1_18 +.LBB1_44: + mov x9, x16 + mov x11, x27 + b .LBB1_1 + .seh_endfunclet + .seh_endproc + // -- End function + .def _Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_; + .scl 2; + .type 32; + .endef + .text + .globl _Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_ // -- Begin function _Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_ + .p2align 2 +_Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_: // @_Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_ +.seh_proc _Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_ +// %bb.0: + sub sp, sp, #112 + .seh_stackalloc 112 + str x30, [sp, #96] // 8-byte Spill + .seh_save_reg x30, 96 + .seh_endprologue + ldr x8, [x1, #16] + ldr q0, [x1] + add x1, sp, #64 + ldr q1, [x2] + ldr x9, [x2, #16] + add x2, sp, #32 + str x8, [sp, #80] + add x8, sp, #8 + str q0, [sp, #64] + str q1, [sp, #32] + str x9, [sp, #48] + bl _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ + .seh_startepilogue + ldr x30, [sp, #96] // 8-byte Reload + .seh_save_reg x30, 96 + add sp, sp, #112 + .seh_stackalloc 112 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_; + .scl 2; + .type 32; + .endef + .section .text$_ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_,"xr",discard,_ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ + .globl _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ // -- Begin function _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ + .p2align 2 +_ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_: // @_ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ +.seh_proc _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ +// %bb.0: + sub sp, sp, #160 + .seh_stackalloc 160 + stp x19, x20, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x19, 64 + stp x21, x22, [sp, #80] // 16-byte Folded Spill + .seh_save_regp x21, 80 + stp x23, x24, [sp, #96] // 16-byte Folded Spill + .seh_save_regp x23, 96 + stp x25, x26, [sp, #112] // 16-byte Folded Spill + .seh_save_regp x25, 112 + stp x27, x28, [sp, #128] // 16-byte Folded Spill + .seh_save_regp x27, 128 + str x30, [sp, #144] // 8-byte Spill + .seh_save_reg x30, 144 + .seh_endprologue + ldp x27, x16, [x0, #32] + ldr x17, [x1, #16] + ldp x10, x15, [x0, #48] + ldr x24, [x2, #8] + ldp x3, x21, [x1] + mov x9, x16 + mov x11, x27 + cmp x16, x15 + str x10, [sp, #32] // 8-byte Spill + b.eq .LBB3_40 +.LBB3_1: + cmp x21, x24 + b.eq .LBB3_15 +// %bb.2: + ldp x12, x4, [x0] + sub x13, x21, x3 + ldr x26, [x2, #16] + ldr x23, [x2] + sub x9, x9, x11 + ldr x2, [x0, #16] + stp x0, x8, [sp, #16] // 16-byte Folded Spill + sub x12, x12, x4 + sub x10, x10, x26 + sub x14, x23, x24 + asr x12, x12, #2 + lsl x10, x10, #7 + add x12, x12, x13, asr #2 + add x10, x10, x14, asr #2 + sub x13, x17, x2 + add x11, x12, x13, lsl #7 + add x9, x10, x9, asr #2 + cmp x11, x9 + b.hs .LBB3_16 +// %bb.3: + cmp x4, x21 + mov x19, x24 + mov x9, x26 + str x23, [sp, #8] // 8-byte Spill + b.eq .LBB3_32 +// %bb.4: + ldr x23, [sp, #8] // 8-byte Reload + mov x19, x24 + str x16, [sp] // 8-byte Spill + str x26, [sp, #152] // 8-byte Spill + stp x4, x2, [sp, #40] // 16-byte Folded Spill + b .LBB3_8 +.LBB3_5: // in Loop: Header=BB3_8 Depth=1 + ldp x2, x17, [sp, #48] // 16-byte Folded Reload + add x19, x19, x22 + cmp x2, x17 + b.eq .LBB3_31 +// %bb.6: // in Loop: Header=BB3_8 Depth=1 + ldr x4, [sp, #40] // 8-byte Reload + add x26, x26, #8 +.LBB3_7: // in Loop: Header=BB3_8 Depth=1 + ldr x3, [x17, #-8]! + add x21, x3, #1, lsl #12 // =4096 +.LBB3_8: // =>This Loop Header: Depth=1 + // Child Loop BB3_10 Depth 2 + cmp x2, x17 + sub x26, x26, #8 + str x17, [sp, #56] // 8-byte Spill + csel x20, x4, x3, eq + sub x28, x21, x20 + sub x25, x19, x23 + cmp x28, x25 + csel x2, x28, x25, lo + neg x22, x2 + cbz x2, .LBB3_10 +.LBB3_9: // in Loop: Header=BB3_8 Depth=1 + add x0, x19, x22 + add x1, x21, x22 + bl memmove +.LBB3_10: // Parent Loop BB3_8 Depth=1 + // => This Inner Loop Header: Depth=2 + cmp x28, x25 + b.ls .LBB3_12 +// %bb.11: // in Loop: Header=BB3_10 Depth=2 + ldr x23, [x26], #-8 + add x21, x21, x22 + add x19, x23, #1, lsl #12 // =4096 + sub x28, x21, x20 + sub x25, x19, x23 + cmp x28, x25 + csel x2, x28, x25, lo + neg x22, x2 + cbnz x2, .LBB3_9 + b .LBB3_10 +.LBB3_12: // in Loop: Header=BB3_8 Depth=1 + b.ne .LBB3_5 +// %bb.13: // in Loop: Header=BB3_8 Depth=1 + ldp x2, x17, [sp, #48] // 16-byte Folded Reload + ldr x4, [sp, #40] // 8-byte Reload + cmp x2, x17 + b.eq .LBB3_30 +// %bb.14: // in Loop: Header=BB3_8 Depth=1 + ldr x23, [x26] + add x19, x23, #1, lsl #12 // =4096 + b .LBB3_7 +.LBB3_15: + mov x11, x3 + mov x24, x21 + mov x26, x17 + b .LBB3_39 +.LBB3_16: + cmp x16, x15 + b.eq .LBB3_42 +// %bb.17: + ldr x19, [sp, #32] // 8-byte Reload +.LBB3_18: + cmp x24, x16 + b.eq .LBB3_29 +// %bb.19: + mov x9, x17 + mov x22, x21 + mov x27, x3 + stp x3, x17, [sp, #48] // 16-byte Folded Spill + str x19, [sp, #40] // 8-byte Spill +.LBB3_20: // =>This Loop Header: Depth=1 + // Child Loop BB3_22 Depth 2 + add x8, x23, #1, lsl #12 // =4096 + cmp x26, x19 + str x26, [sp, #152] // 8-byte Spill + mov x25, x16 + csel x26, x16, x8, eq + add x9, x9, #8 + sub x8, x27, x22 + sub x20, x26, x24 + add x28, x8, #1, lsl #12 // =4096 + cmp x20, x28 + csel x23, x20, x28, lo + cbz x23, .LBB3_22 +.LBB3_21: // in Loop: Header=BB3_20 Depth=1 + mov x0, x22 + mov x1, x24 + mov x2, x23 + mov x19, x9 + bl memmove + mov x9, x19 +.LBB3_22: // Parent Loop BB3_20 Depth=1 + // => This Inner Loop Header: Depth=2 + cmp x20, x28 + b.ls .LBB3_24 +// %bb.23: // in Loop: Header=BB3_22 Depth=2 + ldr x22, [x9], #8 + add x24, x24, x23 + mov x27, x22 + sub x8, x22, x22 + sub x20, x26, x24 + add x28, x8, #1, lsl #12 // =4096 + cmp x20, x28 + csel x23, x20, x28, lo + cbnz x23, .LBB3_21 + b .LBB3_22 +.LBB3_24: // in Loop: Header=BB3_20 Depth=1 + cmp x20, x28 + b.hs .LBB3_26 +// %bb.25: // in Loop: Header=BB3_20 Depth=1 + sub x9, x9, #8 + add x22, x22, x20 + ldr x26, [sp, #152] // 8-byte Reload + ldr x19, [sp, #40] // 8-byte Reload + mov x16, x25 + cmp x26, x19 + b.ne .LBB3_27 + b .LBB3_28 +.LBB3_26: // in Loop: Header=BB3_20 Depth=1 + ldr x27, [x9] + mov x22, x27 + ldr x26, [sp, #152] // 8-byte Reload + ldr x19, [sp, #40] // 8-byte Reload + mov x16, x25 + cmp x26, x19 + b.eq .LBB3_28 +.LBB3_27: // in Loop: Header=BB3_20 Depth=1 + ldr x24, [x26, #8]! + mov x23, x24 + b .LBB3_20 +.LBB3_28: + ldr x25, [sp, #16] // 8-byte Reload + ldp x11, x26, [sp, #48] // 16-byte Folded Reload + str x9, [sp, #32] // 8-byte Spill + mov x24, x21 + mov x16, x22 + ldr x9, [x25, #16] + b .LBB3_33 +.LBB3_29: + ldr x25, [sp, #16] // 8-byte Reload + mov x9, x2 + mov x11, x3 + mov x24, x21 + mov x26, x17 + str x17, [sp, #32] // 8-byte Spill + mov x16, x21 + mov x27, x3 + b .LBB3_33 +.LBB3_30: + mov x19, x23 +.LBB3_31: + add x9, x26, #8 + ldr x16, [sp] // 8-byte Reload + ldr x26, [sp, #152] // 8-byte Reload +.LBB3_32: + ldp x11, x25, [sp, #8] // 16-byte Folded Reload + stp x23, x19, [x25] + str x9, [x25, #16] +.LBB3_33: + ldr x8, [sp, #24] // 8-byte Reload + cmp x27, x16 + b.ne .LBB3_37 +// %bb.34: + ldr x10, [sp, #32] // 8-byte Reload + cmp x9, x10 + mov x9, x10 + b.eq .LBB3_36 +// %bb.35: + ldr x27, [x9, #-8]! + add x16, x27, #1, lsl #12 // =4096 +.LBB3_36: + mov x10, x9 + b .LBB3_38 +.LBB3_37: + ldr x10, [sp, #32] // 8-byte Reload +.LBB3_38: + add x9, x27, #1, lsl #12 // =4096 + stp x27, x16, [x25, #32] + stp x10, x9, [x25, #48] +.LBB3_39: + stp x11, x24, [x8] + str x26, [x8, #16] + .seh_startepilogue + ldr x30, [sp, #144] // 8-byte Reload + .seh_save_reg x30, 144 + ldp x27, x28, [sp, #128] // 16-byte Folded Reload + .seh_save_regp x27, 128 + ldp x25, x26, [sp, #112] // 16-byte Folded Reload + .seh_save_regp x25, 112 + ldp x23, x24, [sp, #96] // 16-byte Folded Reload + .seh_save_regp x23, 96 + ldp x21, x22, [sp, #80] // 16-byte Folded Reload + .seh_save_regp x21, 80 + ldp x19, x20, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x19, 64 + add sp, sp, #160 + .seh_stackalloc 160 + .seh_endepilogue + ret +.LBB3_40: + ldr x10, [sp, #32] // 8-byte Reload + cbz x10, .LBB3_44 +// %bb.41: + ldr x9, [x10, #8]! + mov x11, x9 + b .LBB3_1 +.LBB3_42: + ldr x19, [sp, #32] // 8-byte Reload + cbz x19, .LBB3_18 +// %bb.43: + ldr x16, [x19, #8]! + b .LBB3_18 +.LBB3_44: + mov x9, x16 + mov x11, x27 + b .LBB3_1 + .seh_endfunclet + .seh_endproc + // -- End function + .def _Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_; + .scl 2; + .type 32; + .endef + .text + .globl _Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_ // -- Begin function _Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_ + .p2align 2 +_Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_: // @_Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_ +.seh_proc _Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_ +// %bb.0: + sub sp, sp, #112 + .seh_stackalloc 112 + str x30, [sp, #96] // 8-byte Spill + .seh_save_reg x30, 96 + .seh_endprologue + ldr x8, [x1, #16] + ldr q0, [x1] + add x1, sp, #64 + ldr q1, [x2] + ldr x9, [x2, #16] + add x2, sp, #32 + str x8, [sp, #80] + add x8, sp, #8 + str q0, [sp, #64] + str q1, [sp, #32] + str x9, [sp, #48] + bl _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ + .seh_startepilogue + ldr x30, [sp, #96] // 8-byte Reload + .seh_save_reg x30, 96 + add sp, sp, #112 + .seh_stackalloc 112 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_; + .scl 2; + .type 32; + .endef + .section .text$_ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_,"xr",discard,_ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ + .globl _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ // -- Begin function _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ + .p2align 2 +_ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_: // @_ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ +.seh_proc _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ +// %bb.0: + sub sp, sp, #160 + .seh_stackalloc 160 + stp x19, x20, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x19, 64 + stp x21, x22, [sp, #80] // 16-byte Folded Spill + .seh_save_regp x21, 80 + stp x23, x24, [sp, #96] // 16-byte Folded Spill + .seh_save_regp x23, 96 + stp x25, x26, [sp, #112] // 16-byte Folded Spill + .seh_save_regp x25, 112 + stp x27, x28, [sp, #128] // 16-byte Folded Spill + .seh_save_regp x27, 128 + str x30, [sp, #144] // 8-byte Spill + .seh_save_reg x30, 144 + .seh_endprologue + ldp x27, x16, [x0, #32] + ldr x17, [x1, #16] + ldp x10, x15, [x0, #48] + ldr x24, [x2, #8] + ldp x3, x21, [x1] + mov x9, x16 + mov x11, x27 + cmp x16, x15 + str x10, [sp, #32] // 8-byte Spill + b.eq .LBB5_40 +.LBB5_1: + cmp x21, x24 + b.eq .LBB5_15 +// %bb.2: + ldp x12, x4, [x0] + sub x13, x21, x3 + ldr x26, [x2, #16] + ldr x23, [x2] + sub x9, x9, x11 + ldr x2, [x0, #16] + stp x0, x8, [sp, #16] // 16-byte Folded Spill + sub x12, x12, x4 + sub x10, x10, x26 + sub x14, x23, x24 + asr x12, x12, #3 + lsl x10, x10, #6 + add x12, x12, x13, asr #3 + add x10, x10, x14, asr #3 + sub x13, x17, x2 + add x11, x12, x13, lsl #6 + add x9, x10, x9, asr #3 + cmp x11, x9 + b.hs .LBB5_16 +// %bb.3: + cmp x4, x21 + mov x19, x24 + mov x9, x26 + str x23, [sp, #8] // 8-byte Spill + b.eq .LBB5_32 +// %bb.4: + ldr x23, [sp, #8] // 8-byte Reload + mov x19, x24 + str x16, [sp] // 8-byte Spill + str x26, [sp, #152] // 8-byte Spill + stp x4, x2, [sp, #40] // 16-byte Folded Spill + b .LBB5_8 +.LBB5_5: // in Loop: Header=BB5_8 Depth=1 + ldp x2, x17, [sp, #48] // 16-byte Folded Reload + add x19, x19, x22 + cmp x2, x17 + b.eq .LBB5_31 +// %bb.6: // in Loop: Header=BB5_8 Depth=1 + ldr x4, [sp, #40] // 8-byte Reload + add x26, x26, #8 +.LBB5_7: // in Loop: Header=BB5_8 Depth=1 + ldr x3, [x17, #-8]! + add x21, x3, #1, lsl #12 // =4096 +.LBB5_8: // =>This Loop Header: Depth=1 + // Child Loop BB5_10 Depth 2 + cmp x2, x17 + sub x26, x26, #8 + str x17, [sp, #56] // 8-byte Spill + csel x20, x4, x3, eq + sub x28, x21, x20 + sub x25, x19, x23 + cmp x28, x25 + csel x2, x28, x25, lo + neg x22, x2 + cbz x2, .LBB5_10 +.LBB5_9: // in Loop: Header=BB5_8 Depth=1 + add x0, x19, x22 + add x1, x21, x22 + bl memmove +.LBB5_10: // Parent Loop BB5_8 Depth=1 + // => This Inner Loop Header: Depth=2 + cmp x28, x25 + b.ls .LBB5_12 +// %bb.11: // in Loop: Header=BB5_10 Depth=2 + ldr x23, [x26], #-8 + add x21, x21, x22 + add x19, x23, #1, lsl #12 // =4096 + sub x28, x21, x20 + sub x25, x19, x23 + cmp x28, x25 + csel x2, x28, x25, lo + neg x22, x2 + cbnz x2, .LBB5_9 + b .LBB5_10 +.LBB5_12: // in Loop: Header=BB5_8 Depth=1 + b.ne .LBB5_5 +// %bb.13: // in Loop: Header=BB5_8 Depth=1 + ldp x2, x17, [sp, #48] // 16-byte Folded Reload + ldr x4, [sp, #40] // 8-byte Reload + cmp x2, x17 + b.eq .LBB5_30 +// %bb.14: // in Loop: Header=BB5_8 Depth=1 + ldr x23, [x26] + add x19, x23, #1, lsl #12 // =4096 + b .LBB5_7 +.LBB5_15: + mov x11, x3 + mov x24, x21 + mov x26, x17 + b .LBB5_39 +.LBB5_16: + cmp x16, x15 + b.eq .LBB5_42 +// %bb.17: + ldr x19, [sp, #32] // 8-byte Reload +.LBB5_18: + cmp x24, x16 + b.eq .LBB5_29 +// %bb.19: + mov x9, x17 + mov x22, x21 + mov x27, x3 + stp x3, x17, [sp, #48] // 16-byte Folded Spill + str x19, [sp, #40] // 8-byte Spill +.LBB5_20: // =>This Loop Header: Depth=1 + // Child Loop BB5_22 Depth 2 + add x8, x23, #1, lsl #12 // =4096 + cmp x26, x19 + str x26, [sp, #152] // 8-byte Spill + mov x25, x16 + csel x26, x16, x8, eq + add x9, x9, #8 + sub x8, x27, x22 + sub x20, x26, x24 + add x28, x8, #1, lsl #12 // =4096 + cmp x20, x28 + csel x23, x20, x28, lo + cbz x23, .LBB5_22 +.LBB5_21: // in Loop: Header=BB5_20 Depth=1 + mov x0, x22 + mov x1, x24 + mov x2, x23 + mov x19, x9 + bl memmove + mov x9, x19 +.LBB5_22: // Parent Loop BB5_20 Depth=1 + // => This Inner Loop Header: Depth=2 + cmp x20, x28 + b.ls .LBB5_24 +// %bb.23: // in Loop: Header=BB5_22 Depth=2 + ldr x22, [x9], #8 + add x24, x24, x23 + mov x27, x22 + sub x8, x22, x22 + sub x20, x26, x24 + add x28, x8, #1, lsl #12 // =4096 + cmp x20, x28 + csel x23, x20, x28, lo + cbnz x23, .LBB5_21 + b .LBB5_22 +.LBB5_24: // in Loop: Header=BB5_20 Depth=1 + cmp x20, x28 + b.hs .LBB5_26 +// %bb.25: // in Loop: Header=BB5_20 Depth=1 + sub x9, x9, #8 + add x22, x22, x20 + ldr x26, [sp, #152] // 8-byte Reload + ldr x19, [sp, #40] // 8-byte Reload + mov x16, x25 + cmp x26, x19 + b.ne .LBB5_27 + b .LBB5_28 +.LBB5_26: // in Loop: Header=BB5_20 Depth=1 + ldr x27, [x9] + mov x22, x27 + ldr x26, [sp, #152] // 8-byte Reload + ldr x19, [sp, #40] // 8-byte Reload + mov x16, x25 + cmp x26, x19 + b.eq .LBB5_28 +.LBB5_27: // in Loop: Header=BB5_20 Depth=1 + ldr x24, [x26, #8]! + mov x23, x24 + b .LBB5_20 +.LBB5_28: + ldr x25, [sp, #16] // 8-byte Reload + ldp x11, x26, [sp, #48] // 16-byte Folded Reload + str x9, [sp, #32] // 8-byte Spill + mov x24, x21 + mov x16, x22 + ldr x9, [x25, #16] + b .LBB5_33 +.LBB5_29: + ldr x25, [sp, #16] // 8-byte Reload + mov x9, x2 + mov x11, x3 + mov x24, x21 + mov x26, x17 + str x17, [sp, #32] // 8-byte Spill + mov x16, x21 + mov x27, x3 + b .LBB5_33 +.LBB5_30: + mov x19, x23 +.LBB5_31: + add x9, x26, #8 + ldr x16, [sp] // 8-byte Reload + ldr x26, [sp, #152] // 8-byte Reload +.LBB5_32: + ldp x11, x25, [sp, #8] // 16-byte Folded Reload + stp x23, x19, [x25] + str x9, [x25, #16] +.LBB5_33: + ldr x8, [sp, #24] // 8-byte Reload + cmp x27, x16 + b.ne .LBB5_37 +// %bb.34: + ldr x10, [sp, #32] // 8-byte Reload + cmp x9, x10 + mov x9, x10 + b.eq .LBB5_36 +// %bb.35: + ldr x27, [x9, #-8]! + add x16, x27, #1, lsl #12 // =4096 +.LBB5_36: + mov x10, x9 + b .LBB5_38 +.LBB5_37: + ldr x10, [sp, #32] // 8-byte Reload +.LBB5_38: + add x9, x27, #1, lsl #12 // =4096 + stp x27, x16, [x25, #32] + stp x10, x9, [x25, #48] +.LBB5_39: + stp x11, x24, [x8] + str x26, [x8, #16] + .seh_startepilogue + ldr x30, [sp, #144] // 8-byte Reload + .seh_save_reg x30, 144 + ldp x27, x28, [sp, #128] // 16-byte Folded Reload + .seh_save_regp x27, 128 + ldp x25, x26, [sp, #112] // 16-byte Folded Reload + .seh_save_regp x25, 112 + ldp x23, x24, [sp, #96] // 16-byte Folded Reload + .seh_save_regp x23, 96 + ldp x21, x22, [sp, #80] // 16-byte Folded Reload + .seh_save_regp x21, 80 + ldp x19, x20, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x19, 64 + add sp, sp, #160 + .seh_stackalloc 160 + .seh_endepilogue + ret +.LBB5_40: + ldr x10, [sp, #32] // 8-byte Reload + cbz x10, .LBB5_44 +// %bb.41: + ldr x9, [x10, #8]! + mov x11, x9 + b .LBB5_1 +.LBB5_42: + ldr x19, [sp, #32] // 8-byte Reload + cbz x19, .LBB5_18 +// %bb.43: + ldr x16, [x19, #8]! + b .LBB5_18 +.LBB5_44: + mov x9, x16 + mov x11, x27 + b .LBB5_1 + .seh_endfunclet + .seh_endproc + // -- End function + .section .debug$S,"dr" + .p2align 2, 0x0 + .word 4 // Debug section magic + .word 241 + .word .Ltmp1-.Ltmp0 // Subsection size +.Ltmp0: + .hword .Ltmp3-.Ltmp2 // Record length +.Ltmp2: + .hword 4353 // Record kind: S_OBJNAME + .word 0 // Signature + .byte 0 // Object name + .p2align 2, 0x0 +.Ltmp3: + .hword .Ltmp5-.Ltmp4 // Record length +.Ltmp4: + .hword 4412 // Record kind: S_COMPILE3 + .word 16385 // Flags and language + .hword 246 // CPUType + .hword 22 // Frontend version + .hword 0 + .hword 0 + .hword 0 + .hword 22000 // Backend version + .hword 0 + .hword 0 + .hword 0 + .asciz "clang version 22.0.0git (git@github.com:trcrsired/llvm-project.git 1c607433d98b2d1a5f6f38bd64f3b180520e2fe6)" // Null-terminated compiler version string + .p2align 2, 0x0 +.Ltmp5: +.Ltmp1: + .p2align 2, 0x0 + .addrsig + .addrsig_sym __gxx_personality_seh0 diff --git a/benchmark/0011.containers/deque/0005.asm/erase_std.cc b/benchmark/0011.containers/deque/0005.asm/erase_std.cc new file mode 100644 index 00000000..07dd331d --- /dev/null +++ b/benchmark/0011.containers/deque/0005.asm/erase_std.cc @@ -0,0 +1,32 @@ +#include +#include + +template +using test_deque = ::std::deque; + +void erase_u16( + test_deque<::std::uint_least16_t> &dq, + decltype(dq.begin()) first, + decltype(dq.begin()) last +) +{ + dq.erase(first,last); +} + +void erase_u32( + test_deque<::std::uint_least32_t> &dq, + decltype(dq.begin()) first, + decltype(dq.begin()) last +) +{ + dq.erase(first,last); +} + +void erase_u64( + test_deque<::std::uint_least64_t> &dq, + decltype(dq.begin()) first, + decltype(dq.begin()) last +) +{ + dq.erase(first,last); +} diff --git a/benchmark/0011.containers/deque/0005.asm/erase_std.s b/benchmark/0011.containers/deque/0005.asm/erase_std.s new file mode 100644 index 00000000..90d72db4 --- /dev/null +++ b/benchmark/0011.containers/deque/0005.asm/erase_std.s @@ -0,0 +1,2302 @@ + .def "@feat.00"; + .scl 3; + .type 0; + .endef + .globl "@feat.00" +"@feat.00" = 0 + .file "erase_std.cc" + .def _Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_; + .scl 2; + .type 32; + .endef + .text + .globl _Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_ // -- Begin function _Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_ + .p2align 2 +_Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_: // @_Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_ +// %bb.0: + b _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ + // -- End function + .def _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_,"xr",discard,_ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ + .globl _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ // -- Begin function _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ + .p2align 2 +_ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_: // @_ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ +.seh_proc _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ +// %bb.0: + sub sp, sp, #64 + .seh_stackalloc 64 + stp x19, x20, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x19, 16 + stp x21, x22, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x21, 32 + str x30, [sp, #48] // 8-byte Spill + .seh_save_reg x30, 48 + .seh_endprologue + mov x8, x1 + cmp x4, x2 + mov x19, x0 + b.eq .LBB1_6 +// %bb.1: + ldr x9, [x3] + sub x10, x3, x8 + ldr x11, [x8] + sub x9, x4, x9 + asr x9, x9, #1 + add x9, x9, x10, lsl #8 + sub x10, x2, x11 + sub x22, x9, x10, asr #1 + ldr x10, [x19, #32] + ldp x9, x11, [x19, #8] + lsr x12, x10, #11 + cmp x9, x11 + add x0, x9, x12, lsl #3 + b.eq .LBB1_7 +.LBB1_2: + ldr x12, [x0] + and x13, x10, #0x7ff + add x1, x12, x13, lsl #1 + cmp x2, x1 + b.eq .LBB1_8 +.LBB1_3: + ldr x12, [x8] + sub x8, x8, x0 + ldr x13, [x0] + sub x12, x2, x12 + asr x12, x12, #1 + add x8, x12, x8, lsl #8 + sub x12, x1, x13 + subs x20, x8, x12, asr #1 + b.eq .LBB1_9 +// %bb.4: + cmp x8, #1 + b.lt .LBB1_10 +// %bb.5: + lsr x12, x8, #11 + add x2, x0, x12, lsl #3 + b .LBB1_11 +.LBB1_6: + mov x22, xzr + ldr x10, [x19, #32] + ldp x9, x11, [x19, #8] + lsr x12, x10, #11 + cmp x9, x11 + add x0, x9, x12, lsl #3 + b.ne .LBB1_2 +.LBB1_7: + mov x1, xzr + cmp x2, xzr + b.ne .LBB1_3 +.LBB1_8: + mov x20, xzr +.LBB1_9: + mov w21, #1 // =0x1 + mov x3, x1 + mov x2, x0 + cmp x22, #1 + b.ge .LBB1_12 + b .LBB1_26 +.LBB1_10: + mov w12, #2047 // =0x7ff + sub x8, x12, x8 + lsr x12, x8, #11 + mvn w8, w8 + sub x2, x0, x12, lsl #3 +.LBB1_11: + ldr x12, [x2] + and x8, x8, #0x7ff + mov w21, wzr + add x3, x12, x8, lsl #1 + cmp x22, #1 + b.lt .LBB1_26 +.LBB1_12: + ldr x12, [x2] + ldr x8, [x19, #40] + sub x12, x3, x12 + sub x13, x8, x22 + add x12, x22, x12, asr #1 + cmp x20, x13, lsr #1 + b.ls .LBB1_15 +// %bb.13: + cmp x12, #1 + b.lt .LBB1_17 +// %bb.14: + lsr x13, x12, #11 + add x0, x2, x13, lsl #3 + b .LBB1_18 +.LBB1_15: + cmp x12, #1 + b.lt .LBB1_20 +// %bb.16: + lsr x8, x12, #11 + and x10, x12, #0x7ff + add x8, x2, x8, lsl #3 + ldr x9, [x8] + add x9, x9, x10, lsl #1 + b .LBB1_21 +.LBB1_17: + mov w13, #2047 // =0x7ff + sub x12, x13, x12 + lsr x13, x12, #11 + mvn w12, w12 + sub x0, x2, x13, lsl #3 +.LBB1_18: + add x10, x8, x10 + ldr x13, [x0] + and x12, x12, #0x7ff + lsr x8, x10, #11 + cmp x9, x11 + add x1, x13, x12, lsl #1 + add x8, x9, x8, lsl #3 + b.eq .LBB1_23 +// %bb.19: + ldr x9, [x8] + and x10, x10, #0x7ff + add x9, x9, x10, lsl #1 + b .LBB1_24 +.LBB1_20: + mov w8, #2047 // =0x7ff + sub x9, x8, x12 + lsr x8, x9, #11 + mvn w9, w9 + and x9, x9, #0x7ff + sub x8, x2, x8, lsl #3 + ldr x10, [x8] + add x9, x10, x9, lsl #1 +.LBB1_21: + mov x4, sp + stp x8, x9, [sp] + bl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + ldp x9, x8, [x19, #32] + sub x8, x8, x22 + add x10, x9, x22 + ldr x9, [x19, #8] + cmp x10, #1, lsl #12 // =4096 + stp x10, x8, [x19, #32] + b.lo .LBB1_26 +.LBB1_22: // =>This Inner Loop Header: Depth=1 + ldr x0, [x9] + bl _ZdlPv + ldr x10, [x19, #32] + ldr x8, [x19, #8] + sub x10, x10, #2048 + add x9, x8, #8 + cmp x10, #1, lsl #12 // =4096 + str x9, [x19, #8] + str x10, [x19, #32] + b.hs .LBB1_22 + b .LBB1_26 +.LBB1_23: + mov x9, xzr +.LBB1_24: + stp x2, x3, [sp] + mov x4, sp + mov x2, x8 + mov x3, x9 + bl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + ldp x9, x8, [x19, #8] + subs x10, x8, x9 + lsl x11, x10, #8 + ldp x10, x12, [x19, #32] + cmp x8, x9 + sub x11, x11, #1 + sub x12, x12, x22 + csel x11, xzr, x11, eq + add x13, x12, x10 + str x12, [x19, #40] + sub x11, x11, x13 + cmp x11, #1, lsl #12 // =4096 + b.lo .LBB1_26 +.LBB1_25: // =>This Inner Loop Header: Depth=1 + ldur x0, [x8, #-8] + bl _ZdlPv + ldp x9, x8, [x19, #8] + sub x8, x8, #8 + subs x10, x8, x9 + str x8, [x19, #16] + lsl x11, x10, #8 + ldp x10, x12, [x19, #32] + cmp x8, x9 + sub x11, x11, #1 + csel x11, xzr, x11, eq + add x12, x12, x10 + sub x11, x11, x12 + cmp x11, #4095 + b.hi .LBB1_25 +.LBB1_26: + lsr x8, x10, #11 + ldr x11, [x19, #16] + add x0, x9, x8, lsl #3 + cmp x9, x11 + b.eq .LBB1_28 +// %bb.27: + ldr x8, [x0] + and x9, x10, #0x7ff + add x1, x8, x9, lsl #1 + tbz w21, #0, .LBB1_29 + b .LBB1_33 +.LBB1_28: + mov x1, xzr + tbnz w21, #0, .LBB1_33 +.LBB1_29: + ldr x8, [x0] + sub x8, x1, x8 + add x8, x20, x8, asr #1 + cmp x8, #1 + b.lt .LBB1_31 +// %bb.30: + lsr x9, x8, #11 + add x0, x0, x9, lsl #3 + b .LBB1_32 +.LBB1_31: + mov w9, #2047 // =0x7ff + sub x8, x9, x8 + lsr x9, x8, #11 + mvn w8, w8 + sub x0, x0, x9, lsl #3 +.LBB1_32: + ldr x9, [x0] + and x8, x8, #0x7ff + add x1, x9, x8, lsl #1 +.LBB1_33: + .seh_startepilogue + ldr x30, [sp, #48] // 8-byte Reload + .seh_save_reg x30, 48 + ldp x21, x22, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x21, 32 + ldp x19, x20, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x19, 16 + add sp, sp, #64 + .seh_stackalloc 64 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_; + .scl 2; + .type 32; + .endef + .text + .globl _Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_ // -- Begin function _Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_ + .p2align 2 +_Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_: // @_Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_ +// %bb.0: + b _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ + // -- End function + .def _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_,"xr",discard,_ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ + .globl _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ // -- Begin function _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ + .p2align 2 +_ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_: // @_ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ +.seh_proc _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ +// %bb.0: + sub sp, sp, #64 + .seh_stackalloc 64 + stp x19, x20, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x19, 16 + stp x21, x22, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x21, 32 + str x30, [sp, #48] // 8-byte Spill + .seh_save_reg x30, 48 + .seh_endprologue + mov x8, x1 + cmp x4, x2 + mov x19, x0 + b.eq .LBB3_6 +// %bb.1: + ldr x9, [x3] + sub x10, x3, x8 + ldr x11, [x8] + sub x9, x4, x9 + asr x9, x9, #2 + add x9, x9, x10, lsl #7 + sub x10, x2, x11 + sub x22, x9, x10, asr #2 + ldr x10, [x19, #32] + ldp x9, x11, [x19, #8] + lsr x12, x10, #10 + cmp x9, x11 + add x0, x9, x12, lsl #3 + b.eq .LBB3_7 +.LBB3_2: + ldr x12, [x0] + and x13, x10, #0x3ff + add x1, x12, x13, lsl #2 + cmp x2, x1 + b.eq .LBB3_8 +.LBB3_3: + ldr x12, [x8] + sub x8, x8, x0 + ldr x13, [x0] + sub x12, x2, x12 + asr x12, x12, #2 + add x8, x12, x8, lsl #7 + sub x12, x1, x13 + subs x20, x8, x12, asr #2 + b.eq .LBB3_9 +// %bb.4: + cmp x8, #1 + b.lt .LBB3_10 +// %bb.5: + lsr x12, x8, #10 + add x2, x0, x12, lsl #3 + b .LBB3_11 +.LBB3_6: + mov x22, xzr + ldr x10, [x19, #32] + ldp x9, x11, [x19, #8] + lsr x12, x10, #10 + cmp x9, x11 + add x0, x9, x12, lsl #3 + b.ne .LBB3_2 +.LBB3_7: + mov x1, xzr + cmp x2, xzr + b.ne .LBB3_3 +.LBB3_8: + mov x20, xzr +.LBB3_9: + mov w21, #1 // =0x1 + mov x3, x1 + mov x2, x0 + cmp x22, #1 + b.ge .LBB3_12 + b .LBB3_26 +.LBB3_10: + mov w12, #1023 // =0x3ff + sub x8, x12, x8 + lsr x12, x8, #10 + mvn w8, w8 + sub x2, x0, x12, lsl #3 +.LBB3_11: + ldr x12, [x2] + and x8, x8, #0x3ff + mov w21, wzr + add x3, x12, x8, lsl #2 + cmp x22, #1 + b.lt .LBB3_26 +.LBB3_12: + ldr x12, [x2] + ldr x8, [x19, #40] + sub x12, x3, x12 + sub x13, x8, x22 + add x12, x22, x12, asr #2 + cmp x20, x13, lsr #1 + b.ls .LBB3_15 +// %bb.13: + cmp x12, #1 + b.lt .LBB3_17 +// %bb.14: + lsr x13, x12, #10 + add x0, x2, x13, lsl #3 + b .LBB3_18 +.LBB3_15: + cmp x12, #1 + b.lt .LBB3_20 +// %bb.16: + lsr x8, x12, #10 + and x10, x12, #0x3ff + add x8, x2, x8, lsl #3 + ldr x9, [x8] + add x9, x9, x10, lsl #2 + b .LBB3_21 +.LBB3_17: + mov w13, #1023 // =0x3ff + sub x12, x13, x12 + lsr x13, x12, #10 + mvn w12, w12 + sub x0, x2, x13, lsl #3 +.LBB3_18: + add x10, x8, x10 + ldr x13, [x0] + and x12, x12, #0x3ff + lsr x8, x10, #10 + cmp x9, x11 + add x1, x13, x12, lsl #2 + add x8, x9, x8, lsl #3 + b.eq .LBB3_23 +// %bb.19: + ldr x9, [x8] + and x10, x10, #0x3ff + add x9, x9, x10, lsl #2 + b .LBB3_24 +.LBB3_20: + mov w8, #1023 // =0x3ff + sub x9, x8, x12 + lsr x8, x9, #10 + mvn w9, w9 + and x9, x9, #0x3ff + sub x8, x2, x8, lsl #3 + ldr x10, [x8] + add x9, x10, x9, lsl #2 +.LBB3_21: + mov x4, sp + stp x8, x9, [sp] + bl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + ldp x9, x8, [x19, #32] + sub x8, x8, x22 + add x10, x9, x22 + ldr x9, [x19, #8] + cmp x10, #2048 + stp x10, x8, [x19, #32] + b.lo .LBB3_26 +.LBB3_22: // =>This Inner Loop Header: Depth=1 + ldr x0, [x9] + bl _ZdlPv + ldr x10, [x19, #32] + ldr x8, [x19, #8] + sub x10, x10, #1024 + add x9, x8, #8 + cmp x10, #2048 + str x9, [x19, #8] + str x10, [x19, #32] + b.hs .LBB3_22 + b .LBB3_26 +.LBB3_23: + mov x9, xzr +.LBB3_24: + stp x2, x3, [sp] + mov x4, sp + mov x2, x8 + mov x3, x9 + bl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + ldp x9, x8, [x19, #8] + subs x10, x8, x9 + lsl x11, x10, #7 + ldp x10, x12, [x19, #32] + cmp x8, x9 + sub x11, x11, #1 + sub x12, x12, x22 + csel x11, xzr, x11, eq + add x13, x12, x10 + str x12, [x19, #40] + sub x11, x11, x13 + cmp x11, #2048 + b.lo .LBB3_26 +.LBB3_25: // =>This Inner Loop Header: Depth=1 + ldur x0, [x8, #-8] + bl _ZdlPv + ldp x9, x8, [x19, #8] + sub x8, x8, #8 + subs x10, x8, x9 + str x8, [x19, #16] + lsl x11, x10, #7 + ldp x10, x12, [x19, #32] + cmp x8, x9 + sub x11, x11, #1 + csel x11, xzr, x11, eq + add x12, x12, x10 + sub x11, x11, x12 + cmp x11, #2047 + b.hi .LBB3_25 +.LBB3_26: + lsr x8, x10, #10 + ldr x11, [x19, #16] + add x0, x9, x8, lsl #3 + cmp x9, x11 + b.eq .LBB3_28 +// %bb.27: + ldr x8, [x0] + and x9, x10, #0x3ff + add x1, x8, x9, lsl #2 + tbz w21, #0, .LBB3_29 + b .LBB3_33 +.LBB3_28: + mov x1, xzr + tbnz w21, #0, .LBB3_33 +.LBB3_29: + ldr x8, [x0] + sub x8, x1, x8 + add x8, x20, x8, asr #2 + cmp x8, #1 + b.lt .LBB3_31 +// %bb.30: + lsr x9, x8, #10 + add x0, x0, x9, lsl #3 + b .LBB3_32 +.LBB3_31: + mov w9, #1023 // =0x3ff + sub x8, x9, x8 + lsr x9, x8, #10 + mvn w8, w8 + sub x0, x0, x9, lsl #3 +.LBB3_32: + ldr x9, [x0] + and x8, x8, #0x3ff + add x1, x9, x8, lsl #2 +.LBB3_33: + .seh_startepilogue + ldr x30, [sp, #48] // 8-byte Reload + .seh_save_reg x30, 48 + ldp x21, x22, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x21, 32 + ldp x19, x20, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x19, 16 + add sp, sp, #64 + .seh_stackalloc 64 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_; + .scl 2; + .type 32; + .endef + .text + .globl _Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_ // -- Begin function _Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_ + .p2align 2 +_Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_: // @_Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_ +// %bb.0: + b _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ + // -- End function + .def _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_,"xr",discard,_ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ + .globl _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ // -- Begin function _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ + .p2align 2 +_ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_: // @_ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ +.seh_proc _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ +// %bb.0: + sub sp, sp, #64 + .seh_stackalloc 64 + stp x19, x20, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x19, 16 + stp x21, x22, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x21, 32 + str x30, [sp, #48] // 8-byte Spill + .seh_save_reg x30, 48 + .seh_endprologue + mov x8, x1 + cmp x4, x2 + mov x19, x0 + b.eq .LBB5_6 +// %bb.1: + ldr x9, [x3] + sub x10, x3, x8 + ldr x11, [x8] + sub x9, x4, x9 + asr x9, x9, #3 + add x9, x9, x10, lsl #6 + sub x10, x2, x11 + sub x22, x9, x10, asr #3 + ldr x10, [x19, #32] + ldp x9, x11, [x19, #8] + lsr x12, x10, #9 + cmp x9, x11 + add x0, x9, x12, lsl #3 + b.eq .LBB5_7 +.LBB5_2: + ldr x12, [x0] + and x13, x10, #0x1ff + add x1, x12, x13, lsl #3 + cmp x2, x1 + b.eq .LBB5_8 +.LBB5_3: + ldr x12, [x8] + sub x8, x8, x0 + ldr x13, [x0] + sub x12, x2, x12 + asr x12, x12, #3 + add x8, x12, x8, lsl #6 + sub x12, x1, x13 + subs x20, x8, x12, asr #3 + b.eq .LBB5_9 +// %bb.4: + cmp x8, #1 + b.lt .LBB5_10 +// %bb.5: + lsr x12, x8, #9 + add x2, x0, x12, lsl #3 + b .LBB5_11 +.LBB5_6: + mov x22, xzr + ldr x10, [x19, #32] + ldp x9, x11, [x19, #8] + lsr x12, x10, #9 + cmp x9, x11 + add x0, x9, x12, lsl #3 + b.ne .LBB5_2 +.LBB5_7: + mov x1, xzr + cmp x2, xzr + b.ne .LBB5_3 +.LBB5_8: + mov x20, xzr +.LBB5_9: + mov w21, #1 // =0x1 + mov x3, x1 + mov x2, x0 + cmp x22, #1 + b.ge .LBB5_12 + b .LBB5_26 +.LBB5_10: + mov w12, #511 // =0x1ff + sub x8, x12, x8 + lsr x12, x8, #9 + mvn w8, w8 + sub x2, x0, x12, lsl #3 +.LBB5_11: + ldr x12, [x2] + and x8, x8, #0x1ff + mov w21, wzr + add x3, x12, x8, lsl #3 + cmp x22, #1 + b.lt .LBB5_26 +.LBB5_12: + ldr x12, [x2] + ldr x8, [x19, #40] + sub x12, x3, x12 + sub x13, x8, x22 + add x12, x22, x12, asr #3 + cmp x20, x13, lsr #1 + b.ls .LBB5_15 +// %bb.13: + cmp x12, #1 + b.lt .LBB5_17 +// %bb.14: + lsr x13, x12, #9 + add x0, x2, x13, lsl #3 + b .LBB5_18 +.LBB5_15: + cmp x12, #1 + b.lt .LBB5_20 +// %bb.16: + lsr x8, x12, #9 + and x10, x12, #0x1ff + add x8, x2, x8, lsl #3 + ldr x9, [x8] + add x9, x9, x10, lsl #3 + b .LBB5_21 +.LBB5_17: + mov w13, #511 // =0x1ff + sub x12, x13, x12 + lsr x13, x12, #9 + mvn w12, w12 + sub x0, x2, x13, lsl #3 +.LBB5_18: + add x10, x8, x10 + ldr x13, [x0] + and x12, x12, #0x1ff + lsr x8, x10, #9 + cmp x9, x11 + add x1, x13, x12, lsl #3 + add x8, x9, x8, lsl #3 + b.eq .LBB5_23 +// %bb.19: + ldr x9, [x8] + and x10, x10, #0x1ff + add x9, x9, x10, lsl #3 + b .LBB5_24 +.LBB5_20: + mov w8, #511 // =0x1ff + sub x9, x8, x12 + lsr x8, x9, #9 + mvn w9, w9 + and x9, x9, #0x1ff + sub x8, x2, x8, lsl #3 + ldr x10, [x8] + add x9, x10, x9, lsl #3 +.LBB5_21: + mov x4, sp + stp x8, x9, [sp] + bl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + ldp x9, x8, [x19, #32] + sub x8, x8, x22 + add x10, x9, x22 + ldr x9, [x19, #8] + cmp x10, #1024 + stp x10, x8, [x19, #32] + b.lo .LBB5_26 +.LBB5_22: // =>This Inner Loop Header: Depth=1 + ldr x0, [x9] + bl _ZdlPv + ldr x10, [x19, #32] + ldr x8, [x19, #8] + sub x10, x10, #512 + add x9, x8, #8 + cmp x10, #1024 + str x9, [x19, #8] + str x10, [x19, #32] + b.hs .LBB5_22 + b .LBB5_26 +.LBB5_23: + mov x9, xzr +.LBB5_24: + stp x2, x3, [sp] + mov x4, sp + mov x2, x8 + mov x3, x9 + bl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + ldp x9, x8, [x19, #8] + subs x10, x8, x9 + lsl x11, x10, #6 + ldp x10, x12, [x19, #32] + cmp x8, x9 + sub x11, x11, #1 + sub x12, x12, x22 + csel x11, xzr, x11, eq + add x13, x12, x10 + str x12, [x19, #40] + sub x11, x11, x13 + cmp x11, #1024 + b.lo .LBB5_26 +.LBB5_25: // =>This Inner Loop Header: Depth=1 + ldur x0, [x8, #-8] + bl _ZdlPv + ldp x9, x8, [x19, #8] + sub x8, x8, #8 + subs x10, x8, x9 + str x8, [x19, #16] + lsl x11, x10, #6 + ldp x10, x12, [x19, #32] + cmp x8, x9 + sub x11, x11, #1 + csel x11, xzr, x11, eq + add x12, x12, x10 + sub x11, x11, x12 + cmp x11, #1023 + b.hi .LBB5_25 +.LBB5_26: + lsr x8, x10, #9 + ldr x11, [x19, #16] + add x0, x9, x8, lsl #3 + cmp x9, x11 + b.eq .LBB5_28 +// %bb.27: + ldr x8, [x0] + and x9, x10, #0x1ff + add x1, x8, x9, lsl #3 + tbz w21, #0, .LBB5_29 + b .LBB5_33 +.LBB5_28: + mov x1, xzr + tbnz w21, #0, .LBB5_33 +.LBB5_29: + ldr x8, [x0] + sub x8, x1, x8 + add x8, x20, x8, asr #3 + cmp x8, #1 + b.lt .LBB5_31 +// %bb.30: + lsr x9, x8, #9 + add x0, x0, x9, lsl #3 + b .LBB5_32 +.LBB5_31: + mov w9, #511 // =0x1ff + sub x8, x9, x8 + lsr x9, x8, #9 + mvn w8, w8 + sub x0, x0, x9, lsl #3 +.LBB5_32: + ldr x9, [x0] + and x8, x8, #0x1ff + add x1, x9, x8, lsl #3 +.LBB5_33: + .seh_startepilogue + ldr x30, [sp, #48] // 8-byte Reload + .seh_save_reg x30, 48 + ldp x21, x22, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x21, 32 + ldp x19, x20, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x19, 16 + add sp, sp, #64 + .seh_stackalloc 64 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .globl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .p2align 2 +_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +.seh_proc _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +// %bb.0: + stp x19, x20, [sp, #-96]! // 16-byte Folded Spill + .seh_save_regp_x x19, 96 + stp x21, x22, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x21, 16 + stp x23, x24, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x23, 32 + stp x25, x26, [sp, #48] // 16-byte Folded Spill + .seh_save_regp x25, 48 + stp x27, x28, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x27, 64 + str x30, [sp, #80] // 8-byte Spill + .seh_save_reg x30, 80 + .seh_endprologue + ldp x25, x21, [x4] + mov x19, x4 + cmp x0, x2 + mov x20, x1 + b.eq .LBB6_18 +// %bb.1: + ldr x26, [x2] + mov x23, x2 + mov x22, x0 + cmp x26, x3 + b.eq .LBB6_7 +// %bb.2: + ldr x8, [x25] + sub x9, x3, x26 + asr x9, x9, #1 + sub x8, x21, x8 + asr x8, x8, #1 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x2, x8, #1 + sub x24, x3, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x24 + bl memmove + cmp x26, x24 + b.eq .LBB6_5 +// %bb.3: + mov w27, #2048 // =0x800 +.LBB6_4: // =>This Inner Loop Header: Depth=1 + sub x8, x24, x26 + ldr x9, [x25, #-8]! + asr x8, x8, #1 + cmp x8, #2048 + csel x8, x8, x27, lt + lsl x2, x8, #1 + sub x8, x9, x2 + sub x24, x24, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x24 + mov x0, x21 + bl memmove + cmp x26, x24 + b.ne .LBB6_4 +.LBB6_5: + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB6_7 +// %bb.6: + ldr x21, [x25, #8]! +.LBB6_7: + sub x24, x23, #8 + stp x25, x21, [x19] + cmp x22, x24 + b.eq .LBB6_14 +// %bb.8: + mov w26, #2048 // =0x800 + b .LBB6_10 +.LBB6_9: // in Loop: Header=BB6_10 Depth=1 + sub x24, x24, #8 + stp x25, x21, [x19] + cmp x22, x24 + b.eq .LBB6_14 +.LBB6_10: // =>This Loop Header: Depth=1 + // Child Loop BB6_11 Depth 2 + ldr x8, [x25] + ldr x28, [x24] + sub x8, x21, x8 + asr x8, x8, #1 + cmp x8, #2048 + csel x8, x8, x26, lt + lsl x2, x8, #1 + mov w8, #4096 // =0x1000 + sub x27, x8, x2 + sub x21, x21, x2 + add x1, x28, x27 + mov x0, x21 + add x23, x28, x27 + bl memmove + cbz x27, .LBB6_12 +.LBB6_11: // Parent Loop BB6_10 Depth=1 + // => This Inner Loop Header: Depth=2 + sub x8, x23, x28 + ldr x9, [x25, #-8]! + asr x8, x8, #1 + cmp x8, #2048 + csel x8, x8, x26, lt + lsl x2, x8, #1 + sub x8, x9, x2 + sub x23, x23, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x23 + mov x0, x21 + bl memmove + cmp x28, x23 + b.ne .LBB6_11 +.LBB6_12: // in Loop: Header=BB6_10 Depth=1 + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB6_9 +// %bb.13: // in Loop: Header=BB6_10 Depth=1 + ldr x21, [x25, #8]! + b .LBB6_9 +.LBB6_14: + ldr x8, [x24] + add x8, x8, #1, lsl #12 // =4096 + cmp x20, x8 + b.eq .LBB6_24 +// %bb.15: + ldr x9, [x25] + sub x10, x8, x20 + asr x10, x10, #1 + sub x9, x21, x9 + asr x9, x9, #1 + cmp x10, x9 + csel x9, x10, x9, lt + lsl x2, x9, #1 + sub x22, x8, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x22 + bl memmove + cmp x20, x22 + b.eq .LBB6_22 +// %bb.16: + mov w23, #2048 // =0x800 +.LBB6_17: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x20 + ldr x9, [x25, #-8]! + asr x8, x8, #1 + cmp x8, #2048 + csel x8, x8, x23, lt + lsl x2, x8, #1 + sub x8, x9, x2 + sub x22, x22, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x22 + mov x0, x21 + bl memmove + cmp x20, x22 + b.ne .LBB6_17 + b .LBB6_22 +.LBB6_18: + cmp x20, x3 + b.eq .LBB6_24 +// %bb.19: + ldr x8, [x25] + sub x9, x3, x20 + asr x9, x9, #1 + sub x8, x21, x8 + asr x8, x8, #1 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x2, x8, #1 + sub x22, x3, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x22 + bl memmove + cmp x20, x22 + b.eq .LBB6_22 +// %bb.20: + mov w23, #2048 // =0x800 +.LBB6_21: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x20 + ldr x9, [x25, #-8]! + asr x8, x8, #1 + cmp x8, #2048 + csel x8, x8, x23, lt + lsl x2, x8, #1 + sub x8, x9, x2 + sub x22, x22, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x22 + mov x0, x21 + bl memmove + cmp x20, x22 + b.ne .LBB6_21 +.LBB6_22: + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB6_24 +// %bb.23: + ldr x21, [x25, #8]! +.LBB6_24: + stp x25, x21, [x19] + .seh_startepilogue + ldr x30, [sp, #80] // 8-byte Reload + .seh_save_reg x30, 80 + ldp x27, x28, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x27, 64 + ldp x25, x26, [sp, #48] // 16-byte Folded Reload + .seh_save_regp x25, 48 + ldp x23, x24, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x23, 32 + ldp x21, x22, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x21, 16 + ldp x19, x20, [sp], #96 // 16-byte Folded Reload + .seh_save_regp_x x19, 96 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .globl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .p2align 2 +_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +.seh_proc _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +// %bb.0: + stp x19, x20, [sp, #-96]! // 16-byte Folded Spill + .seh_save_regp_x x19, 96 + stp x21, x22, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x21, 16 + stp x23, x24, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x23, 32 + stp x25, x26, [sp, #48] // 16-byte Folded Spill + .seh_save_regp x25, 48 + stp x27, x28, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x27, 64 + str x30, [sp, #80] // 8-byte Spill + .seh_save_reg x30, 80 + .seh_endprologue + mov x19, x4 + mov x20, x3 + cmp x0, x2 + str x2, [sp, #88] // 8-byte Spill + b.eq .LBB7_22 +// %bb.1: + ldr x8, [x0] + ldp x26, x21, [x19] + mov x23, x0 + add x22, x8, #1, lsl #12 // =4096 + cmp x1, x22 + b.eq .LBB7_7 +// %bb.2: + ldr x8, [x26] + sub x9, x22, x1 + mov x0, x21 + asr x9, x9, #1 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #1 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x24, x8, #1 + mov x2, x24 + add x25, x1, x24 + bl memmove + cmp x22, x25 + b.eq .LBB7_5 +// %bb.3: + mov x1, x25 + mov w25, #2048 // =0x800 +.LBB7_4: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x1 + ldr x21, [x26, #8]! + asr x8, x8, #1 + mov x0, x21 + cmp x8, #2048 + csel x8, x8, x25, lt + lsl x24, x8, #1 + mov x2, x24 + add x27, x1, x24 + bl memmove + cmp x22, x27 + mov x1, x27 + b.ne .LBB7_4 +.LBB7_5: + ldr x8, [x26] + add x21, x21, x24 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB7_7 +// %bb.6: + ldr x21, [x26, #8]! +.LBB7_7: + ldr x8, [sp, #88] // 8-byte Reload + add x27, x23, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.eq .LBB7_15 +// %bb.8: + mov w28, #2048 // =0x800 + mov w22, #4096 // =0x1000 + b .LBB7_11 +.LBB7_9: // in Loop: Header=BB7_11 Depth=1 + ldr x8, [x26] + add x21, x21, x24 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.eq .LBB7_14 +// %bb.10: // in Loop: Header=BB7_11 Depth=1 + ldr x8, [sp, #88] // 8-byte Reload + add x27, x27, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.eq .LBB7_15 +.LBB7_11: // =>This Loop Header: Depth=1 + // Child Loop BB7_12 Depth 2 + ldr x8, [x26] + ldr x23, [x27] + mov x0, x21 + sub x8, x8, x21 + mov x1, x23 + add x8, x8, #1, lsl #12 // =4096 + asr x25, x8, #1 + cmp x25, #2048 + csel x8, x25, x28, lt + lsl x24, x8, #1 + mov x2, x24 + bl memmove + cmp x25, #2047 + b.gt .LBB7_9 +.LBB7_12: // Parent Loop BB7_11 Depth=1 + // => This Inner Loop Header: Depth=2 + sub x9, x22, x24 + ldr x21, [x26, #8]! + asr x9, x9, #1 + add x1, x23, x24 + mov x0, x21 + cmp x9, #2048 + csel x9, x9, x28, lt + lsl x25, x9, #1 + mov x2, x25 + add x24, x25, x24 + bl memmove + cmp x24, #1, lsl #12 // =4096 + b.ne .LBB7_12 +// %bb.13: // in Loop: Header=BB7_11 Depth=1 + mov x24, x25 + b .LBB7_9 +.LBB7_14: // in Loop: Header=BB7_11 Depth=1 + ldr x21, [x26, #8]! + ldr x8, [sp, #88] // 8-byte Reload + add x27, x27, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.ne .LBB7_11 +.LBB7_15: + ldr x1, [x27] + cmp x1, x20 + b.eq .LBB7_21 +// %bb.16: + ldr x8, [x26] + sub x9, x20, x1 + mov x0, x21 + asr x9, x9, #1 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #1 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x22, x8, #1 + mov x2, x22 + add x23, x1, x22 + bl memmove + cmp x20, x23 + b.eq .LBB7_19 +// %bb.17: + mov x1, x23 + mov w23, #2048 // =0x800 +.LBB7_18: // =>This Inner Loop Header: Depth=1 + sub x8, x20, x1 + ldr x21, [x26, #8]! + asr x8, x8, #1 + mov x0, x21 + cmp x8, #2048 + csel x8, x8, x23, lt + lsl x22, x8, #1 + mov x2, x22 + add x24, x1, x22 + bl memmove + cmp x20, x24 + mov x1, x24 + b.ne .LBB7_18 +.LBB7_19: + ldr x8, [x26] + add x21, x21, x22 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB7_21 +// %bb.20: + ldr x21, [x26, #8]! +.LBB7_21: + str x26, [x19] + b .LBB7_29 +.LBB7_22: + ldp x23, x21, [x19] + cmp x1, x20 + b.eq .LBB7_28 +// %bb.23: + ldr x8, [x23] + sub x9, x20, x1 + mov x0, x21 + asr x9, x9, #1 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #1 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x22, x8, #1 + mov x2, x22 + add x24, x1, x22 + bl memmove + cmp x20, x24 + b.eq .LBB7_26 +// %bb.24: + mov x1, x24 + mov w24, #2048 // =0x800 +.LBB7_25: // =>This Inner Loop Header: Depth=1 + sub x8, x20, x1 + ldr x21, [x23, #8]! + asr x8, x8, #1 + mov x0, x21 + cmp x8, #2048 + csel x8, x8, x24, lt + lsl x22, x8, #1 + mov x2, x22 + add x25, x1, x22 + bl memmove + cmp x20, x25 + mov x1, x25 + b.ne .LBB7_25 +.LBB7_26: + ldr x8, [x23] + add x21, x21, x22 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB7_28 +// %bb.27: + ldr x21, [x23, #8]! +.LBB7_28: + str x23, [x19] +.LBB7_29: + str x21, [x19, #8] + .seh_startepilogue + ldr x30, [sp, #80] // 8-byte Reload + .seh_save_reg x30, 80 + ldp x27, x28, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x27, 64 + ldp x25, x26, [sp, #48] // 16-byte Folded Reload + .seh_save_regp x25, 48 + ldp x23, x24, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x23, 32 + ldp x21, x22, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x21, 16 + ldp x19, x20, [sp], #96 // 16-byte Folded Reload + .seh_save_regp_x x19, 96 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .globl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .p2align 2 +_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +.seh_proc _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +// %bb.0: + stp x19, x20, [sp, #-96]! // 16-byte Folded Spill + .seh_save_regp_x x19, 96 + stp x21, x22, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x21, 16 + stp x23, x24, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x23, 32 + stp x25, x26, [sp, #48] // 16-byte Folded Spill + .seh_save_regp x25, 48 + stp x27, x28, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x27, 64 + str x30, [sp, #80] // 8-byte Spill + .seh_save_reg x30, 80 + .seh_endprologue + ldp x25, x21, [x4] + mov x19, x4 + cmp x0, x2 + mov x20, x1 + b.eq .LBB8_18 +// %bb.1: + ldr x26, [x2] + mov x23, x2 + mov x22, x0 + cmp x26, x3 + b.eq .LBB8_7 +// %bb.2: + ldr x8, [x25] + sub x9, x3, x26 + asr x9, x9, #2 + sub x8, x21, x8 + asr x8, x8, #2 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x2, x8, #2 + sub x24, x3, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x24 + bl memmove + cmp x26, x24 + b.eq .LBB8_5 +// %bb.3: + mov w27, #1024 // =0x400 +.LBB8_4: // =>This Inner Loop Header: Depth=1 + sub x8, x24, x26 + ldr x9, [x25, #-8]! + asr x8, x8, #2 + cmp x8, #1024 + csel x8, x8, x27, lt + lsl x2, x8, #2 + sub x8, x9, x2 + sub x24, x24, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x24 + mov x0, x21 + bl memmove + cmp x26, x24 + b.ne .LBB8_4 +.LBB8_5: + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB8_7 +// %bb.6: + ldr x21, [x25, #8]! +.LBB8_7: + sub x24, x23, #8 + stp x25, x21, [x19] + cmp x22, x24 + b.eq .LBB8_14 +// %bb.8: + mov w26, #1024 // =0x400 + b .LBB8_10 +.LBB8_9: // in Loop: Header=BB8_10 Depth=1 + sub x24, x24, #8 + stp x25, x21, [x19] + cmp x22, x24 + b.eq .LBB8_14 +.LBB8_10: // =>This Loop Header: Depth=1 + // Child Loop BB8_11 Depth 2 + ldr x8, [x25] + ldr x28, [x24] + sub x8, x21, x8 + asr x8, x8, #2 + cmp x8, #1024 + csel x8, x8, x26, lt + lsl x2, x8, #2 + mov w8, #4096 // =0x1000 + sub x27, x8, x2 + sub x21, x21, x2 + add x1, x28, x27 + mov x0, x21 + add x23, x28, x27 + bl memmove + cbz x27, .LBB8_12 +.LBB8_11: // Parent Loop BB8_10 Depth=1 + // => This Inner Loop Header: Depth=2 + sub x8, x23, x28 + ldr x9, [x25, #-8]! + asr x8, x8, #2 + cmp x8, #1024 + csel x8, x8, x26, lt + lsl x2, x8, #2 + sub x8, x9, x2 + sub x23, x23, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x23 + mov x0, x21 + bl memmove + cmp x28, x23 + b.ne .LBB8_11 +.LBB8_12: // in Loop: Header=BB8_10 Depth=1 + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB8_9 +// %bb.13: // in Loop: Header=BB8_10 Depth=1 + ldr x21, [x25, #8]! + b .LBB8_9 +.LBB8_14: + ldr x8, [x24] + add x8, x8, #1, lsl #12 // =4096 + cmp x20, x8 + b.eq .LBB8_24 +// %bb.15: + ldr x9, [x25] + sub x10, x8, x20 + asr x10, x10, #2 + sub x9, x21, x9 + asr x9, x9, #2 + cmp x10, x9 + csel x9, x10, x9, lt + lsl x2, x9, #2 + sub x22, x8, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x22 + bl memmove + cmp x20, x22 + b.eq .LBB8_22 +// %bb.16: + mov w23, #1024 // =0x400 +.LBB8_17: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x20 + ldr x9, [x25, #-8]! + asr x8, x8, #2 + cmp x8, #1024 + csel x8, x8, x23, lt + lsl x2, x8, #2 + sub x8, x9, x2 + sub x22, x22, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x22 + mov x0, x21 + bl memmove + cmp x20, x22 + b.ne .LBB8_17 + b .LBB8_22 +.LBB8_18: + cmp x20, x3 + b.eq .LBB8_24 +// %bb.19: + ldr x8, [x25] + sub x9, x3, x20 + asr x9, x9, #2 + sub x8, x21, x8 + asr x8, x8, #2 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x2, x8, #2 + sub x22, x3, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x22 + bl memmove + cmp x20, x22 + b.eq .LBB8_22 +// %bb.20: + mov w23, #1024 // =0x400 +.LBB8_21: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x20 + ldr x9, [x25, #-8]! + asr x8, x8, #2 + cmp x8, #1024 + csel x8, x8, x23, lt + lsl x2, x8, #2 + sub x8, x9, x2 + sub x22, x22, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x22 + mov x0, x21 + bl memmove + cmp x20, x22 + b.ne .LBB8_21 +.LBB8_22: + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB8_24 +// %bb.23: + ldr x21, [x25, #8]! +.LBB8_24: + stp x25, x21, [x19] + .seh_startepilogue + ldr x30, [sp, #80] // 8-byte Reload + .seh_save_reg x30, 80 + ldp x27, x28, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x27, 64 + ldp x25, x26, [sp, #48] // 16-byte Folded Reload + .seh_save_regp x25, 48 + ldp x23, x24, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x23, 32 + ldp x21, x22, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x21, 16 + ldp x19, x20, [sp], #96 // 16-byte Folded Reload + .seh_save_regp_x x19, 96 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .globl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .p2align 2 +_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +.seh_proc _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +// %bb.0: + stp x19, x20, [sp, #-96]! // 16-byte Folded Spill + .seh_save_regp_x x19, 96 + stp x21, x22, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x21, 16 + stp x23, x24, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x23, 32 + stp x25, x26, [sp, #48] // 16-byte Folded Spill + .seh_save_regp x25, 48 + stp x27, x28, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x27, 64 + str x30, [sp, #80] // 8-byte Spill + .seh_save_reg x30, 80 + .seh_endprologue + mov x19, x4 + mov x20, x3 + cmp x0, x2 + str x2, [sp, #88] // 8-byte Spill + b.eq .LBB9_22 +// %bb.1: + ldr x8, [x0] + ldp x26, x21, [x19] + mov x23, x0 + add x22, x8, #1, lsl #12 // =4096 + cmp x1, x22 + b.eq .LBB9_7 +// %bb.2: + ldr x8, [x26] + sub x9, x22, x1 + mov x0, x21 + asr x9, x9, #2 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #2 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x24, x8, #2 + mov x2, x24 + add x25, x1, x24 + bl memmove + cmp x22, x25 + b.eq .LBB9_5 +// %bb.3: + mov x1, x25 + mov w25, #1024 // =0x400 +.LBB9_4: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x1 + ldr x21, [x26, #8]! + asr x8, x8, #2 + mov x0, x21 + cmp x8, #1024 + csel x8, x8, x25, lt + lsl x24, x8, #2 + mov x2, x24 + add x27, x1, x24 + bl memmove + cmp x22, x27 + mov x1, x27 + b.ne .LBB9_4 +.LBB9_5: + ldr x8, [x26] + add x21, x21, x24 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB9_7 +// %bb.6: + ldr x21, [x26, #8]! +.LBB9_7: + ldr x8, [sp, #88] // 8-byte Reload + add x27, x23, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.eq .LBB9_15 +// %bb.8: + mov w28, #1024 // =0x400 + mov w22, #4096 // =0x1000 + b .LBB9_11 +.LBB9_9: // in Loop: Header=BB9_11 Depth=1 + ldr x8, [x26] + add x21, x21, x24 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.eq .LBB9_14 +// %bb.10: // in Loop: Header=BB9_11 Depth=1 + ldr x8, [sp, #88] // 8-byte Reload + add x27, x27, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.eq .LBB9_15 +.LBB9_11: // =>This Loop Header: Depth=1 + // Child Loop BB9_12 Depth 2 + ldr x8, [x26] + ldr x23, [x27] + mov x0, x21 + sub x8, x8, x21 + mov x1, x23 + add x8, x8, #1, lsl #12 // =4096 + asr x25, x8, #2 + cmp x25, #1024 + csel x8, x25, x28, lt + lsl x24, x8, #2 + mov x2, x24 + bl memmove + cmp x25, #1023 + b.gt .LBB9_9 +.LBB9_12: // Parent Loop BB9_11 Depth=1 + // => This Inner Loop Header: Depth=2 + sub x9, x22, x24 + ldr x21, [x26, #8]! + asr x9, x9, #2 + add x1, x23, x24 + mov x0, x21 + cmp x9, #1024 + csel x9, x9, x28, lt + lsl x25, x9, #2 + mov x2, x25 + add x24, x25, x24 + bl memmove + cmp x24, #1, lsl #12 // =4096 + b.ne .LBB9_12 +// %bb.13: // in Loop: Header=BB9_11 Depth=1 + mov x24, x25 + b .LBB9_9 +.LBB9_14: // in Loop: Header=BB9_11 Depth=1 + ldr x21, [x26, #8]! + ldr x8, [sp, #88] // 8-byte Reload + add x27, x27, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.ne .LBB9_11 +.LBB9_15: + ldr x1, [x27] + cmp x1, x20 + b.eq .LBB9_21 +// %bb.16: + ldr x8, [x26] + sub x9, x20, x1 + mov x0, x21 + asr x9, x9, #2 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #2 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x22, x8, #2 + mov x2, x22 + add x23, x1, x22 + bl memmove + cmp x20, x23 + b.eq .LBB9_19 +// %bb.17: + mov x1, x23 + mov w23, #1024 // =0x400 +.LBB9_18: // =>This Inner Loop Header: Depth=1 + sub x8, x20, x1 + ldr x21, [x26, #8]! + asr x8, x8, #2 + mov x0, x21 + cmp x8, #1024 + csel x8, x8, x23, lt + lsl x22, x8, #2 + mov x2, x22 + add x24, x1, x22 + bl memmove + cmp x20, x24 + mov x1, x24 + b.ne .LBB9_18 +.LBB9_19: + ldr x8, [x26] + add x21, x21, x22 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB9_21 +// %bb.20: + ldr x21, [x26, #8]! +.LBB9_21: + str x26, [x19] + b .LBB9_29 +.LBB9_22: + ldp x23, x21, [x19] + cmp x1, x20 + b.eq .LBB9_28 +// %bb.23: + ldr x8, [x23] + sub x9, x20, x1 + mov x0, x21 + asr x9, x9, #2 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #2 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x22, x8, #2 + mov x2, x22 + add x24, x1, x22 + bl memmove + cmp x20, x24 + b.eq .LBB9_26 +// %bb.24: + mov x1, x24 + mov w24, #1024 // =0x400 +.LBB9_25: // =>This Inner Loop Header: Depth=1 + sub x8, x20, x1 + ldr x21, [x23, #8]! + asr x8, x8, #2 + mov x0, x21 + cmp x8, #1024 + csel x8, x8, x24, lt + lsl x22, x8, #2 + mov x2, x22 + add x25, x1, x22 + bl memmove + cmp x20, x25 + mov x1, x25 + b.ne .LBB9_25 +.LBB9_26: + ldr x8, [x23] + add x21, x21, x22 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB9_28 +// %bb.27: + ldr x21, [x23, #8]! +.LBB9_28: + str x23, [x19] +.LBB9_29: + str x21, [x19, #8] + .seh_startepilogue + ldr x30, [sp, #80] // 8-byte Reload + .seh_save_reg x30, 80 + ldp x27, x28, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x27, 64 + ldp x25, x26, [sp, #48] // 16-byte Folded Reload + .seh_save_regp x25, 48 + ldp x23, x24, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x23, 32 + ldp x21, x22, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x21, 16 + ldp x19, x20, [sp], #96 // 16-byte Folded Reload + .seh_save_regp_x x19, 96 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .globl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .p2align 2 +_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +.seh_proc _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +// %bb.0: + stp x19, x20, [sp, #-96]! // 16-byte Folded Spill + .seh_save_regp_x x19, 96 + stp x21, x22, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x21, 16 + stp x23, x24, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x23, 32 + stp x25, x26, [sp, #48] // 16-byte Folded Spill + .seh_save_regp x25, 48 + stp x27, x28, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x27, 64 + str x30, [sp, #80] // 8-byte Spill + .seh_save_reg x30, 80 + .seh_endprologue + ldp x25, x21, [x4] + mov x19, x4 + cmp x0, x2 + mov x20, x1 + b.eq .LBB10_18 +// %bb.1: + ldr x26, [x2] + mov x23, x2 + mov x22, x0 + cmp x26, x3 + b.eq .LBB10_7 +// %bb.2: + ldr x8, [x25] + sub x9, x3, x26 + asr x9, x9, #3 + sub x8, x21, x8 + asr x8, x8, #3 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x2, x8, #3 + sub x24, x3, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x24 + bl memmove + cmp x26, x24 + b.eq .LBB10_5 +// %bb.3: + mov w27, #512 // =0x200 +.LBB10_4: // =>This Inner Loop Header: Depth=1 + sub x8, x24, x26 + ldr x9, [x25, #-8]! + asr x8, x8, #3 + cmp x8, #512 + csel x8, x8, x27, lt + lsl x2, x8, #3 + sub x8, x9, x2 + sub x24, x24, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x24 + mov x0, x21 + bl memmove + cmp x26, x24 + b.ne .LBB10_4 +.LBB10_5: + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB10_7 +// %bb.6: + ldr x21, [x25, #8]! +.LBB10_7: + sub x24, x23, #8 + stp x25, x21, [x19] + cmp x22, x24 + b.eq .LBB10_14 +// %bb.8: + mov w26, #512 // =0x200 + b .LBB10_10 +.LBB10_9: // in Loop: Header=BB10_10 Depth=1 + sub x24, x24, #8 + stp x25, x21, [x19] + cmp x22, x24 + b.eq .LBB10_14 +.LBB10_10: // =>This Loop Header: Depth=1 + // Child Loop BB10_11 Depth 2 + ldr x8, [x25] + ldr x28, [x24] + sub x8, x21, x8 + asr x8, x8, #3 + cmp x8, #512 + csel x8, x8, x26, lt + lsl x2, x8, #3 + mov w8, #4096 // =0x1000 + sub x27, x8, x2 + sub x21, x21, x2 + add x1, x28, x27 + mov x0, x21 + add x23, x28, x27 + bl memmove + cbz x27, .LBB10_12 +.LBB10_11: // Parent Loop BB10_10 Depth=1 + // => This Inner Loop Header: Depth=2 + sub x8, x23, x28 + ldr x9, [x25, #-8]! + asr x8, x8, #3 + cmp x8, #512 + csel x8, x8, x26, lt + lsl x2, x8, #3 + sub x8, x9, x2 + sub x23, x23, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x23 + mov x0, x21 + bl memmove + cmp x28, x23 + b.ne .LBB10_11 +.LBB10_12: // in Loop: Header=BB10_10 Depth=1 + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB10_9 +// %bb.13: // in Loop: Header=BB10_10 Depth=1 + ldr x21, [x25, #8]! + b .LBB10_9 +.LBB10_14: + ldr x8, [x24] + add x8, x8, #1, lsl #12 // =4096 + cmp x20, x8 + b.eq .LBB10_24 +// %bb.15: + ldr x9, [x25] + sub x10, x8, x20 + asr x10, x10, #3 + sub x9, x21, x9 + asr x9, x9, #3 + cmp x10, x9 + csel x9, x10, x9, lt + lsl x2, x9, #3 + sub x22, x8, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x22 + bl memmove + cmp x20, x22 + b.eq .LBB10_22 +// %bb.16: + mov w23, #512 // =0x200 +.LBB10_17: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x20 + ldr x9, [x25, #-8]! + asr x8, x8, #3 + cmp x8, #512 + csel x8, x8, x23, lt + lsl x2, x8, #3 + sub x8, x9, x2 + sub x22, x22, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x22 + mov x0, x21 + bl memmove + cmp x20, x22 + b.ne .LBB10_17 + b .LBB10_22 +.LBB10_18: + cmp x20, x3 + b.eq .LBB10_24 +// %bb.19: + ldr x8, [x25] + sub x9, x3, x20 + asr x9, x9, #3 + sub x8, x21, x8 + asr x8, x8, #3 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x2, x8, #3 + sub x22, x3, x2 + sub x21, x21, x2 + mov x0, x21 + mov x1, x22 + bl memmove + cmp x20, x22 + b.eq .LBB10_22 +// %bb.20: + mov w23, #512 // =0x200 +.LBB10_21: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x20 + ldr x9, [x25, #-8]! + asr x8, x8, #3 + cmp x8, #512 + csel x8, x8, x23, lt + lsl x2, x8, #3 + sub x8, x9, x2 + sub x22, x22, x2 + add x21, x8, #1, lsl #12 // =4096 + mov x1, x22 + mov x0, x21 + bl memmove + cmp x20, x22 + b.ne .LBB10_21 +.LBB10_22: + ldr x8, [x25] + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB10_24 +// %bb.23: + ldr x21, [x25, #8]! +.LBB10_24: + stp x25, x21, [x19] + .seh_startepilogue + ldr x30, [sp, #80] // 8-byte Reload + .seh_save_reg x30, 80 + ldp x27, x28, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x27, 64 + ldp x25, x26, [sp, #48] // 16-byte Folded Reload + .seh_save_regp x25, 48 + ldp x23, x24, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x23, 32 + ldp x21, x22, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x21, 16 + ldp x19, x20, [sp], #96 // 16-byte Folded Reload + .seh_save_regp_x x19, 96 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .def _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; + .scl 2; + .type 32; + .endef + .section .text$_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .globl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ + .p2align 2 +_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +.seh_proc _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ +// %bb.0: + stp x19, x20, [sp, #-96]! // 16-byte Folded Spill + .seh_save_regp_x x19, 96 + stp x21, x22, [sp, #16] // 16-byte Folded Spill + .seh_save_regp x21, 16 + stp x23, x24, [sp, #32] // 16-byte Folded Spill + .seh_save_regp x23, 32 + stp x25, x26, [sp, #48] // 16-byte Folded Spill + .seh_save_regp x25, 48 + stp x27, x28, [sp, #64] // 16-byte Folded Spill + .seh_save_regp x27, 64 + str x30, [sp, #80] // 8-byte Spill + .seh_save_reg x30, 80 + .seh_endprologue + mov x19, x4 + mov x20, x3 + cmp x0, x2 + str x2, [sp, #88] // 8-byte Spill + b.eq .LBB11_22 +// %bb.1: + ldr x8, [x0] + ldp x26, x21, [x19] + mov x23, x0 + add x22, x8, #1, lsl #12 // =4096 + cmp x1, x22 + b.eq .LBB11_7 +// %bb.2: + ldr x8, [x26] + sub x9, x22, x1 + mov x0, x21 + asr x9, x9, #3 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #3 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x24, x8, #3 + mov x2, x24 + add x25, x1, x24 + bl memmove + cmp x22, x25 + b.eq .LBB11_5 +// %bb.3: + mov x1, x25 + mov w25, #512 // =0x200 +.LBB11_4: // =>This Inner Loop Header: Depth=1 + sub x8, x22, x1 + ldr x21, [x26, #8]! + asr x8, x8, #3 + mov x0, x21 + cmp x8, #512 + csel x8, x8, x25, lt + lsl x24, x8, #3 + mov x2, x24 + add x27, x1, x24 + bl memmove + cmp x22, x27 + mov x1, x27 + b.ne .LBB11_4 +.LBB11_5: + ldr x8, [x26] + add x21, x21, x24 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB11_7 +// %bb.6: + ldr x21, [x26, #8]! +.LBB11_7: + ldr x8, [sp, #88] // 8-byte Reload + add x27, x23, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.eq .LBB11_15 +// %bb.8: + mov w28, #512 // =0x200 + mov w22, #4096 // =0x1000 + b .LBB11_11 +.LBB11_9: // in Loop: Header=BB11_11 Depth=1 + ldr x8, [x26] + add x21, x21, x24 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.eq .LBB11_14 +// %bb.10: // in Loop: Header=BB11_11 Depth=1 + ldr x8, [sp, #88] // 8-byte Reload + add x27, x27, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.eq .LBB11_15 +.LBB11_11: // =>This Loop Header: Depth=1 + // Child Loop BB11_12 Depth 2 + ldr x8, [x26] + ldr x23, [x27] + mov x0, x21 + sub x8, x8, x21 + mov x1, x23 + add x8, x8, #1, lsl #12 // =4096 + asr x25, x8, #3 + cmp x25, #512 + csel x8, x25, x28, lt + lsl x24, x8, #3 + mov x2, x24 + bl memmove + cmp x25, #511 + b.gt .LBB11_9 +.LBB11_12: // Parent Loop BB11_11 Depth=1 + // => This Inner Loop Header: Depth=2 + sub x9, x22, x24 + ldr x21, [x26, #8]! + asr x9, x9, #3 + add x1, x23, x24 + mov x0, x21 + cmp x9, #512 + csel x9, x9, x28, lt + lsl x25, x9, #3 + mov x2, x25 + add x24, x25, x24 + bl memmove + cmp x24, #1, lsl #12 // =4096 + b.ne .LBB11_12 +// %bb.13: // in Loop: Header=BB11_11 Depth=1 + mov x24, x25 + b .LBB11_9 +.LBB11_14: // in Loop: Header=BB11_11 Depth=1 + ldr x21, [x26, #8]! + ldr x8, [sp, #88] // 8-byte Reload + add x27, x27, #8 + stp x26, x21, [x19] + cmp x27, x8 + b.ne .LBB11_11 +.LBB11_15: + ldr x1, [x27] + cmp x1, x20 + b.eq .LBB11_21 +// %bb.16: + ldr x8, [x26] + sub x9, x20, x1 + mov x0, x21 + asr x9, x9, #3 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #3 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x22, x8, #3 + mov x2, x22 + add x23, x1, x22 + bl memmove + cmp x20, x23 + b.eq .LBB11_19 +// %bb.17: + mov x1, x23 + mov w23, #512 // =0x200 +.LBB11_18: // =>This Inner Loop Header: Depth=1 + sub x8, x20, x1 + ldr x21, [x26, #8]! + asr x8, x8, #3 + mov x0, x21 + cmp x8, #512 + csel x8, x8, x23, lt + lsl x22, x8, #3 + mov x2, x22 + add x24, x1, x22 + bl memmove + cmp x20, x24 + mov x1, x24 + b.ne .LBB11_18 +.LBB11_19: + ldr x8, [x26] + add x21, x21, x22 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB11_21 +// %bb.20: + ldr x21, [x26, #8]! +.LBB11_21: + str x26, [x19] + b .LBB11_29 +.LBB11_22: + ldp x23, x21, [x19] + cmp x1, x20 + b.eq .LBB11_28 +// %bb.23: + ldr x8, [x23] + sub x9, x20, x1 + mov x0, x21 + asr x9, x9, #3 + sub x8, x8, x21 + add x8, x8, #1, lsl #12 // =4096 + asr x8, x8, #3 + cmp x9, x8 + csel x8, x9, x8, lt + lsl x22, x8, #3 + mov x2, x22 + add x24, x1, x22 + bl memmove + cmp x20, x24 + b.eq .LBB11_26 +// %bb.24: + mov x1, x24 + mov w24, #512 // =0x200 +.LBB11_25: // =>This Inner Loop Header: Depth=1 + sub x8, x20, x1 + ldr x21, [x23, #8]! + asr x8, x8, #3 + mov x0, x21 + cmp x8, #512 + csel x8, x8, x24, lt + lsl x22, x8, #3 + mov x2, x22 + add x25, x1, x22 + bl memmove + cmp x20, x25 + mov x1, x25 + b.ne .LBB11_25 +.LBB11_26: + ldr x8, [x23] + add x21, x21, x22 + add x8, x8, #1, lsl #12 // =4096 + cmp x21, x8 + b.ne .LBB11_28 +// %bb.27: + ldr x21, [x23, #8]! +.LBB11_28: + str x23, [x19] +.LBB11_29: + str x21, [x19, #8] + .seh_startepilogue + ldr x30, [sp, #80] // 8-byte Reload + .seh_save_reg x30, 80 + ldp x27, x28, [sp, #64] // 16-byte Folded Reload + .seh_save_regp x27, 64 + ldp x25, x26, [sp, #48] // 16-byte Folded Reload + .seh_save_regp x25, 48 + ldp x23, x24, [sp, #32] // 16-byte Folded Reload + .seh_save_regp x23, 32 + ldp x21, x22, [sp, #16] // 16-byte Folded Reload + .seh_save_regp x21, 16 + ldp x19, x20, [sp], #96 // 16-byte Folded Reload + .seh_save_regp_x x19, 96 + .seh_endepilogue + ret + .seh_endfunclet + .seh_endproc + // -- End function + .section .debug$S,"dr" + .p2align 2, 0x0 + .word 4 // Debug section magic + .word 241 + .word .Ltmp1-.Ltmp0 // Subsection size +.Ltmp0: + .hword .Ltmp3-.Ltmp2 // Record length +.Ltmp2: + .hword 4353 // Record kind: S_OBJNAME + .word 0 // Signature + .byte 0 // Object name + .p2align 2, 0x0 +.Ltmp3: + .hword .Ltmp5-.Ltmp4 // Record length +.Ltmp4: + .hword 4412 // Record kind: S_COMPILE3 + .word 16385 // Flags and language + .hword 246 // CPUType + .hword 22 // Frontend version + .hword 0 + .hword 0 + .hword 0 + .hword 22000 // Backend version + .hword 0 + .hword 0 + .hword 0 + .asciz "clang version 22.0.0git (git@github.com:trcrsired/llvm-project.git 1c607433d98b2d1a5f6f38bd64f3b180520e2fe6)" // Null-terminated compiler version string + .p2align 2, 0x0 +.Ltmp5: +.Ltmp1: + .p2align 2, 0x0 + .addrsig + .addrsig_sym __gxx_personality_seh0 From 62c07d7d43158606106fd22888d702ac0243ba2f Mon Sep 17 00:00:00 2001 From: trcrsired Date: Sat, 17 Jan 2026 05:46:22 +0800 Subject: [PATCH 3/5] Add linux_statx definitions placeholders --- include/fast_io_core.h | 1 + .../linux_statx_definitions/impl.h | 8 +++ .../linux_statx_definitions/linux_statx.h | 59 ++++++++++++++++ .../linux_statx_flags.h | 57 ++++++++++++++++ .../linux_statx_mask.h | 68 +++++++++++++++++++ .../linux_statx_timestamp.h | 57 ++++++++++++++++ 6 files changed, 250 insertions(+) create mode 100644 include/fast_io_core_impl/linux_statx_definitions/impl.h create mode 100644 include/fast_io_core_impl/linux_statx_definitions/linux_statx.h create mode 100644 include/fast_io_core_impl/linux_statx_definitions/linux_statx_flags.h create mode 100644 include/fast_io_core_impl/linux_statx_definitions/linux_statx_mask.h create mode 100644 include/fast_io_core_impl/linux_statx_definitions/linux_statx_timestamp.h diff --git a/include/fast_io_core.h b/include/fast_io_core.h index e2ed5141..5baeecc5 100644 --- a/include/fast_io_core.h +++ b/include/fast_io_core.h @@ -85,6 +85,7 @@ #include "fast_io_core_impl/integers/chrono.h" #include "fast_io_core_impl/iso/isos.h" +#include "fast_io_core_impl/linux_statx_definitions/impl.h" #include "fast_io_core_impl/enums/impl.h" #ifndef FAST_IO_DISABLE_CODECVT diff --git a/include/fast_io_core_impl/linux_statx_definitions/impl.h b/include/fast_io_core_impl/linux_statx_definitions/impl.h new file mode 100644 index 00000000..7ba843da --- /dev/null +++ b/include/fast_io_core_impl/linux_statx_definitions/impl.h @@ -0,0 +1,8 @@ +#pragma once +/* +https://www.man7.org/linux//man-pages/man2/statx.2.html +*/ +#include "linux_statx_timestamp.h" +#include "linux_statx.h" +#include "linux_statx_flags.h" +#include "linux_statx_mask.h" diff --git a/include/fast_io_core_impl/linux_statx_definitions/linux_statx.h b/include/fast_io_core_impl/linux_statx_definitions/linux_statx.h new file mode 100644 index 00000000..f6e9bcf6 --- /dev/null +++ b/include/fast_io_core_impl/linux_statx_definitions/linux_statx.h @@ -0,0 +1,59 @@ +#pragma once + +namespace fast_io +{ + +struct linux_struct_statx +{ + ::std::uint_least32_t stx_mask; /* Mask of bits indicating + filled fields */ + ::std::uint_least32_t stx_blksize; /* Block size for filesystem I/O */ + ::std::uint_least64_t stx_attributes; /* Extra file attribute indicators */ + ::std::uint_least32_t stx_nlink; /* Number of hard links */ + ::std::uint_least32_t stx_uid; /* User ID of owner */ + ::std::uint_least32_t stx_gid; /* Group ID of owner */ + ::std::uint_least16_t stx_mode; /* File type and mode */ + ::std::uint_least64_t stx_ino; /* Inode number */ + ::std::uint_least64_t stx_size; /* Total size in bytes */ + ::std::uint_least64_t stx_blocks; /* Number of 512B blocks allocated */ + ::std::uint_least64_t stx_attributes_mask; + /* Mask to show what's supported + in stx_attributes */ + + /* The following fields are file timestamps */ + ::fast_io::linux_statx_timestamp stx_atime; /* Last access */ + ::fast_io::linux_statx_timestamp stx_btime; /* Creation */ + ::fast_io::linux_statx_timestamp stx_ctime; /* Last status change */ + ::fast_io::linux_statx_timestamp stx_mtime; /* Last modification */ + + /* If this file represents a device, then the next two + fields contain the ID of the device */ + ::std::uint_least32_t stx_rdev_major; /* Major ID */ + ::std::uint_least32_t stx_rdev_minor; /* Minor ID */ + + /* The next two fields contain the ID of the device + containing the filesystem where the file resides */ + ::std::uint_least32_t stx_dev_major; /* Major ID */ + ::std::uint_least32_t stx_dev_minor; /* Minor ID */ + + ::std::uint_least64_t stx_mnt_id; /* Mount ID */ + + /* Direct I/O alignment restrictions */ + ::std::uint_least32_t stx_dio_mem_align; + ::std::uint_least32_t stx_dio_offset_align; + + ::std::uint_least64_t stx_subvol; /* Subvolume identifier */ + + /* Direct I/O atomic write limits */ + ::std::uint_least32_t stx_atomic_write_unit_min; + ::std::uint_least32_t stx_atomic_write_unit_max; + ::std::uint_least32_t stx_atomic_write_segments_max; + + /* File offset alignment for direct I/O reads */ + ::std::uint_least32_t stx_dio_read_offset_align; + + /* Direct I/O atomic write max opt limit */ + ::std::uint_least32_t stx_atomic_write_unit_max_opt; +}; + +} // namespace fast_io diff --git a/include/fast_io_core_impl/linux_statx_definitions/linux_statx_flags.h b/include/fast_io_core_impl/linux_statx_definitions/linux_statx_flags.h new file mode 100644 index 00000000..99847ff0 --- /dev/null +++ b/include/fast_io_core_impl/linux_statx_definitions/linux_statx_flags.h @@ -0,0 +1,57 @@ +#pragma once + +namespace fast_io +{ + +enum class linux_statx_flags : ::std::uint_least32_t +{ + at_empty_path = 0x1000, // AT_EMPTY_PATH + at_no_automount = 0x800, // AT_NO_AUTOMOUNT + at_symlink_nofollow = 0x100, // AT_SYMLINK_NOFOLLOW + + // statx-specific sync flags + at_statx_sync_as_stat = 0x0000, // AT_STATX_SYNC_AS_STAT + at_statx_force_sync = 0x2000, // AT_STATX_FORCE_SYNC + at_statx_dont_sync = 0x4000 // AT_STATX_DONT_SYNC +}; + +inline constexpr ::fast_io::linux_statx_flags operator&(::fast_io::linux_statx_flags x, ::fast_io::linux_statx_flags y) noexcept +{ + using utype = typename ::std::underlying_type<::fast_io::linux_statx_flags>::type; + return static_cast<::fast_io::linux_statx_flags>(static_cast(x) & static_cast(y)); +} + +inline constexpr ::fast_io::linux_statx_flags operator|(::fast_io::linux_statx_flags x, ::fast_io::linux_statx_flags y) noexcept +{ + using utype = typename ::std::underlying_type<::fast_io::linux_statx_flags>::type; + return static_cast<::fast_io::linux_statx_flags>(static_cast(x) | static_cast(y)); +} + +inline constexpr ::fast_io::linux_statx_flags operator^(::fast_io::linux_statx_flags x, ::fast_io::linux_statx_flags y) noexcept +{ + using utype = typename ::std::underlying_type<::fast_io::linux_statx_flags>::type; + return static_cast<::fast_io::linux_statx_flags>(static_cast(x) ^ static_cast(y)); +} + +inline constexpr ::fast_io::linux_statx_flags operator~(::fast_io::linux_statx_flags x) noexcept +{ + using utype = typename ::std::underlying_type<::fast_io::linux_statx_flags>::type; + return static_cast<::fast_io::linux_statx_flags>(~static_cast(x)); +} + +inline constexpr ::fast_io::linux_statx_flags &operator&=(::fast_io::linux_statx_flags &x, ::fast_io::linux_statx_flags y) noexcept +{ + return x = x & y; +} + +inline constexpr ::fast_io::linux_statx_flags &operator|=(::fast_io::linux_statx_flags &x, ::fast_io::linux_statx_flags y) noexcept +{ + return x = x | y; +} + +inline constexpr ::fast_io::linux_statx_flags &operator^=(::fast_io::linux_statx_flags &x, ::fast_io::linux_statx_flags y) noexcept +{ + return x = x ^ y; +} + +} // namespace fast_io diff --git a/include/fast_io_core_impl/linux_statx_definitions/linux_statx_mask.h b/include/fast_io_core_impl/linux_statx_definitions/linux_statx_mask.h new file mode 100644 index 00000000..94ac5f66 --- /dev/null +++ b/include/fast_io_core_impl/linux_statx_definitions/linux_statx_mask.h @@ -0,0 +1,68 @@ +#pragma once + +namespace fast_io +{ + +enum class linux_statx_mask : ::std::uint_least32_t +{ + statx_type = 0x00000001, // Request file type information (stx_mode & S_IFMT) + statx_mode = 0x00000002, // Request file mode/permission bits (stx_mode & ~S_IFMT) + statx_nlink = 0x00000004, // Request number of hard links + statx_uid = 0x00000008, // Request owning user ID + statx_gid = 0x00000010, // Request owning group ID + statx_atime = 0x00000020, // Request last access timestamp + statx_mtime = 0x00000040, // Request last modification timestamp + statx_ctime = 0x00000080, // Request inode status change timestamp + statx_ino = 0x00000100, // Request inode number + statx_size = 0x00000200, // Request file size in bytes + statx_blocks = 0x00000400, // Request number of 512-byte blocks allocated + statx_basic_stats = 0x000007ff, // Request all basic attributes (type through blocks) + statx_btime = 0x00000800, // Request file creation (birth) timestamp + statx_mnt_id = 0x00001000, // Request mount ID of the filesystem + statx_dioalign = 0x00002000, // Request direct I/O alignment constraints + statx_mnt_id_unique = 0x00004000, // Request unique mount ID (stronger than stx_mnt_id) + statx_subvol = 0x00008000, // Request subvolume identifier (e.g., btrfs) + statx_write_atomic = 0x00010000, // Request atomic write capability information + statx_dio_read_align = 0x00020000 // Request direct I/O read offset alignment +}; + +inline constexpr ::fast_io::linux_statx_mask operator&(::fast_io::linux_statx_mask x, ::fast_io::linux_statx_mask y) noexcept +{ + using utype = typename ::std::underlying_type<::fast_io::linux_statx_mask>::type; + return static_cast<::fast_io::linux_statx_mask>(static_cast(x) & static_cast(y)); +} + +inline constexpr ::fast_io::linux_statx_mask operator|(::fast_io::linux_statx_mask x, ::fast_io::linux_statx_mask y) noexcept +{ + using utype = typename ::std::underlying_type<::fast_io::linux_statx_mask>::type; + return static_cast<::fast_io::linux_statx_mask>(static_cast(x) | static_cast(y)); +} + +inline constexpr ::fast_io::linux_statx_mask operator^(::fast_io::linux_statx_mask x, ::fast_io::linux_statx_mask y) noexcept +{ + using utype = typename ::std::underlying_type<::fast_io::linux_statx_mask>::type; + return static_cast<::fast_io::linux_statx_mask>(static_cast(x) ^ static_cast(y)); +} + +inline constexpr ::fast_io::linux_statx_mask operator~(::fast_io::linux_statx_mask x) noexcept +{ + using utype = typename ::std::underlying_type<::fast_io::linux_statx_mask>::type; + return static_cast<::fast_io::linux_statx_mask>(~static_cast(x)); +} + +inline constexpr ::fast_io::linux_statx_mask &operator&=(::fast_io::linux_statx_mask &x, ::fast_io::linux_statx_mask y) noexcept +{ + return x = x & y; +} + +inline constexpr ::fast_io::linux_statx_mask &operator|=(::fast_io::linux_statx_mask &x, ::fast_io::linux_statx_mask y) noexcept +{ + return x = x | y; +} + +inline constexpr ::fast_io::linux_statx_mask &operator^=(::fast_io::linux_statx_mask &x, ::fast_io::linux_statx_mask y) noexcept +{ + return x = x ^ y; +} + +} // namespace fast_io diff --git a/include/fast_io_core_impl/linux_statx_definitions/linux_statx_timestamp.h b/include/fast_io_core_impl/linux_statx_definitions/linux_statx_timestamp.h new file mode 100644 index 00000000..c399c08d --- /dev/null +++ b/include/fast_io_core_impl/linux_statx_definitions/linux_statx_timestamp.h @@ -0,0 +1,57 @@ +#pragma once + +namespace fast_io +{ + +struct linux_statx_timestamp +{ + ::std::int_least64_t tv_sec; // Seconds since the Epoch (UNIX time) + ::std::uint_least32_t tv_nsec; // Nanoseconds since tv_sec +}; + +#if 0 +template +requires requires(T t) +{ + T::rep; + T::period; + t.count(); +} +inline constexpr linux_statx_timestamp linux_statx_timestamp_from_duration_std(T dur) noexcept +{ + using rep = typename T::rep; + using period = typename T::period; + + // total count + rep c = dur.count(); + + // Convert to seconds and nanoseconds WITHOUT overflow + // tv_sec = c * period::num / period::den + // tv_nsec = remainder * 1'000'000'000 / period::den + + // Step 1: compute whole seconds + // We do integer division first to avoid overflow. + constexpr std::int_least64_t num = period::num; + constexpr std::int_least64_t den = period::den; + + // seconds = floor(c * num / den) + // but compute as (c / den) * num + (c % den) * num / den + std::int_least64_t sec = (static_cast(c) / den) * num; + + // remainder part + std::int_least64_t rem = static_cast(c) % den; + + sec += (rem * num) / den; + + // Step 2: compute nanoseconds + // nsec = ((rem * num) % den) * 1e9 / den + std::int_least64_t rem2 = (rem * num) % den; + + std::uint_least32_t nsec = + static_cast((rem2 * 1000000000LL) / den); + + return linux_statx_timestamp{sec, nsec}; +} +#endif + +} // namespace fast_io From 2ce0c029df243a806ebff11e1082e91aae21c56f Mon Sep 17 00:00:00 2001 From: trcrsired Date: Sat, 17 Jan 2026 05:49:47 +0800 Subject: [PATCH 4/5] Rename linux_struct_statx to linux_statxbuf --- include/fast_io_core_impl/linux_statx_definitions/linux_statx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/fast_io_core_impl/linux_statx_definitions/linux_statx.h b/include/fast_io_core_impl/linux_statx_definitions/linux_statx.h index f6e9bcf6..2dbc7bb8 100644 --- a/include/fast_io_core_impl/linux_statx_definitions/linux_statx.h +++ b/include/fast_io_core_impl/linux_statx_definitions/linux_statx.h @@ -3,7 +3,7 @@ namespace fast_io { -struct linux_struct_statx +struct linux_statxbuf { ::std::uint_least32_t stx_mask; /* Mask of bits indicating filled fields */ From dfde08050a74f511cf1075880e996c7939370c54 Mon Sep 17 00:00:00 2001 From: trcrsired Date: Sat, 17 Jan 2026 05:54:07 +0800 Subject: [PATCH 5/5] deque removes benchmark 0005.asm or it breaks CI --- .../deque/0005.asm/erase_fast_io.cc | 32 - .../deque/0005.asm/erase_fast_io.s | 1027 -------- .../deque/0005.asm/erase_std.cc | 32 - .../deque/0005.asm/erase_std.s | 2302 ----------------- 4 files changed, 3393 deletions(-) delete mode 100644 benchmark/0011.containers/deque/0005.asm/erase_fast_io.cc delete mode 100644 benchmark/0011.containers/deque/0005.asm/erase_fast_io.s delete mode 100644 benchmark/0011.containers/deque/0005.asm/erase_std.cc delete mode 100644 benchmark/0011.containers/deque/0005.asm/erase_std.s diff --git a/benchmark/0011.containers/deque/0005.asm/erase_fast_io.cc b/benchmark/0011.containers/deque/0005.asm/erase_fast_io.cc deleted file mode 100644 index c756535a..00000000 --- a/benchmark/0011.containers/deque/0005.asm/erase_fast_io.cc +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -template -using test_deque = ::fast_io::deque; - -void erase_u16( - test_deque<::std::uint_least16_t> &dq, - decltype(dq.begin()) first, - decltype(dq.begin()) last -) -{ - dq.erase(first,last); -} - -void erase_u32( - test_deque<::std::uint_least32_t> &dq, - decltype(dq.begin()) first, - decltype(dq.begin()) last -) -{ - dq.erase(first,last); -} - -void erase_u64( - test_deque<::std::uint_least64_t> &dq, - decltype(dq.begin()) first, - decltype(dq.begin()) last -) -{ - dq.erase(first,last); -} diff --git a/benchmark/0011.containers/deque/0005.asm/erase_fast_io.s b/benchmark/0011.containers/deque/0005.asm/erase_fast_io.s deleted file mode 100644 index 1288d78e..00000000 --- a/benchmark/0011.containers/deque/0005.asm/erase_fast_io.s +++ /dev/null @@ -1,1027 +0,0 @@ - .def "@feat.00"; - .scl 3; - .type 0; - .endef - .globl "@feat.00" -"@feat.00" = 0 - .file "erase_fast_io.cc" - .def _Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_; - .scl 2; - .type 32; - .endef - .text - .globl _Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_ // -- Begin function _Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_ - .p2align 2 -_Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_: // @_Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_ -.seh_proc _Z9erase_u16RN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorItLb0EEES9_ -// %bb.0: - sub sp, sp, #112 - .seh_stackalloc 112 - str x30, [sp, #96] // 8-byte Spill - .seh_save_reg x30, 96 - .seh_endprologue - ldr x8, [x1, #16] - ldr q0, [x1] - add x1, sp, #64 - ldr q1, [x2] - ldr x9, [x2, #16] - add x2, sp, #32 - str x8, [sp, #80] - add x8, sp, #8 - str q0, [sp, #64] - str q1, [sp, #32] - str x9, [sp, #48] - bl _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ - .seh_startepilogue - ldr x30, [sp, #96] // 8-byte Reload - .seh_save_reg x30, 96 - add sp, sp, #112 - .seh_stackalloc 112 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_; - .scl 2; - .type 32; - .endef - .section .text$_ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_,"xr",discard,_ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ - .globl _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ // -- Begin function _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ - .p2align 2 -_ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_: // @_ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ -.seh_proc _ZN7fast_io10containers5dequeItNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorItLb1EEES8_ -// %bb.0: - sub sp, sp, #160 - .seh_stackalloc 160 - stp x19, x20, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x19, 64 - stp x21, x22, [sp, #80] // 16-byte Folded Spill - .seh_save_regp x21, 80 - stp x23, x24, [sp, #96] // 16-byte Folded Spill - .seh_save_regp x23, 96 - stp x25, x26, [sp, #112] // 16-byte Folded Spill - .seh_save_regp x25, 112 - stp x27, x28, [sp, #128] // 16-byte Folded Spill - .seh_save_regp x27, 128 - str x30, [sp, #144] // 8-byte Spill - .seh_save_reg x30, 144 - .seh_endprologue - ldp x27, x16, [x0, #32] - ldr x17, [x1, #16] - ldp x10, x15, [x0, #48] - ldr x24, [x2, #8] - ldp x3, x21, [x1] - mov x9, x16 - mov x11, x27 - cmp x16, x15 - str x10, [sp, #32] // 8-byte Spill - b.eq .LBB1_40 -.LBB1_1: - cmp x21, x24 - b.eq .LBB1_15 -// %bb.2: - ldp x12, x4, [x0] - sub x13, x21, x3 - ldr x26, [x2, #16] - ldr x23, [x2] - sub x9, x9, x11 - ldr x2, [x0, #16] - stp x0, x8, [sp, #16] // 16-byte Folded Spill - sub x12, x12, x4 - sub x10, x10, x26 - sub x14, x23, x24 - asr x12, x12, #1 - lsl x10, x10, #8 - add x12, x12, x13, asr #1 - add x10, x10, x14, asr #1 - sub x13, x17, x2 - add x11, x12, x13, lsl #8 - add x9, x10, x9, asr #1 - cmp x11, x9 - b.hs .LBB1_16 -// %bb.3: - cmp x4, x21 - mov x19, x24 - mov x9, x26 - str x23, [sp, #8] // 8-byte Spill - b.eq .LBB1_32 -// %bb.4: - ldr x23, [sp, #8] // 8-byte Reload - mov x19, x24 - str x16, [sp] // 8-byte Spill - str x26, [sp, #152] // 8-byte Spill - stp x4, x2, [sp, #40] // 16-byte Folded Spill - b .LBB1_8 -.LBB1_5: // in Loop: Header=BB1_8 Depth=1 - ldp x2, x17, [sp, #48] // 16-byte Folded Reload - add x19, x19, x22 - cmp x2, x17 - b.eq .LBB1_31 -// %bb.6: // in Loop: Header=BB1_8 Depth=1 - ldr x4, [sp, #40] // 8-byte Reload - add x26, x26, #8 -.LBB1_7: // in Loop: Header=BB1_8 Depth=1 - ldr x3, [x17, #-8]! - add x21, x3, #1, lsl #12 // =4096 -.LBB1_8: // =>This Loop Header: Depth=1 - // Child Loop BB1_10 Depth 2 - cmp x2, x17 - sub x26, x26, #8 - str x17, [sp, #56] // 8-byte Spill - csel x20, x4, x3, eq - sub x28, x21, x20 - sub x25, x19, x23 - cmp x28, x25 - csel x2, x28, x25, lo - neg x22, x2 - cbz x2, .LBB1_10 -.LBB1_9: // in Loop: Header=BB1_8 Depth=1 - add x0, x19, x22 - add x1, x21, x22 - bl memmove -.LBB1_10: // Parent Loop BB1_8 Depth=1 - // => This Inner Loop Header: Depth=2 - cmp x28, x25 - b.ls .LBB1_12 -// %bb.11: // in Loop: Header=BB1_10 Depth=2 - ldr x23, [x26], #-8 - add x21, x21, x22 - add x19, x23, #1, lsl #12 // =4096 - sub x28, x21, x20 - sub x25, x19, x23 - cmp x28, x25 - csel x2, x28, x25, lo - neg x22, x2 - cbnz x2, .LBB1_9 - b .LBB1_10 -.LBB1_12: // in Loop: Header=BB1_8 Depth=1 - b.ne .LBB1_5 -// %bb.13: // in Loop: Header=BB1_8 Depth=1 - ldp x2, x17, [sp, #48] // 16-byte Folded Reload - ldr x4, [sp, #40] // 8-byte Reload - cmp x2, x17 - b.eq .LBB1_30 -// %bb.14: // in Loop: Header=BB1_8 Depth=1 - ldr x23, [x26] - add x19, x23, #1, lsl #12 // =4096 - b .LBB1_7 -.LBB1_15: - mov x11, x3 - mov x24, x21 - mov x26, x17 - b .LBB1_39 -.LBB1_16: - cmp x16, x15 - b.eq .LBB1_42 -// %bb.17: - ldr x19, [sp, #32] // 8-byte Reload -.LBB1_18: - cmp x24, x16 - b.eq .LBB1_29 -// %bb.19: - mov x9, x17 - mov x22, x21 - mov x27, x3 - stp x3, x17, [sp, #48] // 16-byte Folded Spill - str x19, [sp, #40] // 8-byte Spill -.LBB1_20: // =>This Loop Header: Depth=1 - // Child Loop BB1_22 Depth 2 - add x8, x23, #1, lsl #12 // =4096 - cmp x26, x19 - str x26, [sp, #152] // 8-byte Spill - mov x25, x16 - csel x26, x16, x8, eq - add x9, x9, #8 - sub x8, x27, x22 - sub x20, x26, x24 - add x28, x8, #1, lsl #12 // =4096 - cmp x20, x28 - csel x23, x20, x28, lo - cbz x23, .LBB1_22 -.LBB1_21: // in Loop: Header=BB1_20 Depth=1 - mov x0, x22 - mov x1, x24 - mov x2, x23 - mov x19, x9 - bl memmove - mov x9, x19 -.LBB1_22: // Parent Loop BB1_20 Depth=1 - // => This Inner Loop Header: Depth=2 - cmp x20, x28 - b.ls .LBB1_24 -// %bb.23: // in Loop: Header=BB1_22 Depth=2 - ldr x22, [x9], #8 - add x24, x24, x23 - mov x27, x22 - sub x8, x22, x22 - sub x20, x26, x24 - add x28, x8, #1, lsl #12 // =4096 - cmp x20, x28 - csel x23, x20, x28, lo - cbnz x23, .LBB1_21 - b .LBB1_22 -.LBB1_24: // in Loop: Header=BB1_20 Depth=1 - cmp x20, x28 - b.hs .LBB1_26 -// %bb.25: // in Loop: Header=BB1_20 Depth=1 - sub x9, x9, #8 - add x22, x22, x20 - ldr x26, [sp, #152] // 8-byte Reload - ldr x19, [sp, #40] // 8-byte Reload - mov x16, x25 - cmp x26, x19 - b.ne .LBB1_27 - b .LBB1_28 -.LBB1_26: // in Loop: Header=BB1_20 Depth=1 - ldr x27, [x9] - mov x22, x27 - ldr x26, [sp, #152] // 8-byte Reload - ldr x19, [sp, #40] // 8-byte Reload - mov x16, x25 - cmp x26, x19 - b.eq .LBB1_28 -.LBB1_27: // in Loop: Header=BB1_20 Depth=1 - ldr x24, [x26, #8]! - mov x23, x24 - b .LBB1_20 -.LBB1_28: - ldr x25, [sp, #16] // 8-byte Reload - ldp x11, x26, [sp, #48] // 16-byte Folded Reload - str x9, [sp, #32] // 8-byte Spill - mov x24, x21 - mov x16, x22 - ldr x9, [x25, #16] - b .LBB1_33 -.LBB1_29: - ldr x25, [sp, #16] // 8-byte Reload - mov x9, x2 - mov x11, x3 - mov x24, x21 - mov x26, x17 - str x17, [sp, #32] // 8-byte Spill - mov x16, x21 - mov x27, x3 - b .LBB1_33 -.LBB1_30: - mov x19, x23 -.LBB1_31: - add x9, x26, #8 - ldr x16, [sp] // 8-byte Reload - ldr x26, [sp, #152] // 8-byte Reload -.LBB1_32: - ldp x11, x25, [sp, #8] // 16-byte Folded Reload - stp x23, x19, [x25] - str x9, [x25, #16] -.LBB1_33: - ldr x8, [sp, #24] // 8-byte Reload - cmp x27, x16 - b.ne .LBB1_37 -// %bb.34: - ldr x10, [sp, #32] // 8-byte Reload - cmp x9, x10 - mov x9, x10 - b.eq .LBB1_36 -// %bb.35: - ldr x27, [x9, #-8]! - add x16, x27, #1, lsl #12 // =4096 -.LBB1_36: - mov x10, x9 - b .LBB1_38 -.LBB1_37: - ldr x10, [sp, #32] // 8-byte Reload -.LBB1_38: - add x9, x27, #1, lsl #12 // =4096 - stp x27, x16, [x25, #32] - stp x10, x9, [x25, #48] -.LBB1_39: - stp x11, x24, [x8] - str x26, [x8, #16] - .seh_startepilogue - ldr x30, [sp, #144] // 8-byte Reload - .seh_save_reg x30, 144 - ldp x27, x28, [sp, #128] // 16-byte Folded Reload - .seh_save_regp x27, 128 - ldp x25, x26, [sp, #112] // 16-byte Folded Reload - .seh_save_regp x25, 112 - ldp x23, x24, [sp, #96] // 16-byte Folded Reload - .seh_save_regp x23, 96 - ldp x21, x22, [sp, #80] // 16-byte Folded Reload - .seh_save_regp x21, 80 - ldp x19, x20, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x19, 64 - add sp, sp, #160 - .seh_stackalloc 160 - .seh_endepilogue - ret -.LBB1_40: - ldr x10, [sp, #32] // 8-byte Reload - cbz x10, .LBB1_44 -// %bb.41: - ldr x9, [x10, #8]! - mov x11, x9 - b .LBB1_1 -.LBB1_42: - ldr x19, [sp, #32] // 8-byte Reload - cbz x19, .LBB1_18 -// %bb.43: - ldr x16, [x19, #8]! - b .LBB1_18 -.LBB1_44: - mov x9, x16 - mov x11, x27 - b .LBB1_1 - .seh_endfunclet - .seh_endproc - // -- End function - .def _Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_; - .scl 2; - .type 32; - .endef - .text - .globl _Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_ // -- Begin function _Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_ - .p2align 2 -_Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_: // @_Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_ -.seh_proc _Z9erase_u32RN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIjLb0EEES9_ -// %bb.0: - sub sp, sp, #112 - .seh_stackalloc 112 - str x30, [sp, #96] // 8-byte Spill - .seh_save_reg x30, 96 - .seh_endprologue - ldr x8, [x1, #16] - ldr q0, [x1] - add x1, sp, #64 - ldr q1, [x2] - ldr x9, [x2, #16] - add x2, sp, #32 - str x8, [sp, #80] - add x8, sp, #8 - str q0, [sp, #64] - str q1, [sp, #32] - str x9, [sp, #48] - bl _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ - .seh_startepilogue - ldr x30, [sp, #96] // 8-byte Reload - .seh_save_reg x30, 96 - add sp, sp, #112 - .seh_stackalloc 112 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_; - .scl 2; - .type 32; - .endef - .section .text$_ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_,"xr",discard,_ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ - .globl _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ // -- Begin function _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ - .p2align 2 -_ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_: // @_ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ -.seh_proc _ZN7fast_io10containers5dequeIjNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIjLb1EEES8_ -// %bb.0: - sub sp, sp, #160 - .seh_stackalloc 160 - stp x19, x20, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x19, 64 - stp x21, x22, [sp, #80] // 16-byte Folded Spill - .seh_save_regp x21, 80 - stp x23, x24, [sp, #96] // 16-byte Folded Spill - .seh_save_regp x23, 96 - stp x25, x26, [sp, #112] // 16-byte Folded Spill - .seh_save_regp x25, 112 - stp x27, x28, [sp, #128] // 16-byte Folded Spill - .seh_save_regp x27, 128 - str x30, [sp, #144] // 8-byte Spill - .seh_save_reg x30, 144 - .seh_endprologue - ldp x27, x16, [x0, #32] - ldr x17, [x1, #16] - ldp x10, x15, [x0, #48] - ldr x24, [x2, #8] - ldp x3, x21, [x1] - mov x9, x16 - mov x11, x27 - cmp x16, x15 - str x10, [sp, #32] // 8-byte Spill - b.eq .LBB3_40 -.LBB3_1: - cmp x21, x24 - b.eq .LBB3_15 -// %bb.2: - ldp x12, x4, [x0] - sub x13, x21, x3 - ldr x26, [x2, #16] - ldr x23, [x2] - sub x9, x9, x11 - ldr x2, [x0, #16] - stp x0, x8, [sp, #16] // 16-byte Folded Spill - sub x12, x12, x4 - sub x10, x10, x26 - sub x14, x23, x24 - asr x12, x12, #2 - lsl x10, x10, #7 - add x12, x12, x13, asr #2 - add x10, x10, x14, asr #2 - sub x13, x17, x2 - add x11, x12, x13, lsl #7 - add x9, x10, x9, asr #2 - cmp x11, x9 - b.hs .LBB3_16 -// %bb.3: - cmp x4, x21 - mov x19, x24 - mov x9, x26 - str x23, [sp, #8] // 8-byte Spill - b.eq .LBB3_32 -// %bb.4: - ldr x23, [sp, #8] // 8-byte Reload - mov x19, x24 - str x16, [sp] // 8-byte Spill - str x26, [sp, #152] // 8-byte Spill - stp x4, x2, [sp, #40] // 16-byte Folded Spill - b .LBB3_8 -.LBB3_5: // in Loop: Header=BB3_8 Depth=1 - ldp x2, x17, [sp, #48] // 16-byte Folded Reload - add x19, x19, x22 - cmp x2, x17 - b.eq .LBB3_31 -// %bb.6: // in Loop: Header=BB3_8 Depth=1 - ldr x4, [sp, #40] // 8-byte Reload - add x26, x26, #8 -.LBB3_7: // in Loop: Header=BB3_8 Depth=1 - ldr x3, [x17, #-8]! - add x21, x3, #1, lsl #12 // =4096 -.LBB3_8: // =>This Loop Header: Depth=1 - // Child Loop BB3_10 Depth 2 - cmp x2, x17 - sub x26, x26, #8 - str x17, [sp, #56] // 8-byte Spill - csel x20, x4, x3, eq - sub x28, x21, x20 - sub x25, x19, x23 - cmp x28, x25 - csel x2, x28, x25, lo - neg x22, x2 - cbz x2, .LBB3_10 -.LBB3_9: // in Loop: Header=BB3_8 Depth=1 - add x0, x19, x22 - add x1, x21, x22 - bl memmove -.LBB3_10: // Parent Loop BB3_8 Depth=1 - // => This Inner Loop Header: Depth=2 - cmp x28, x25 - b.ls .LBB3_12 -// %bb.11: // in Loop: Header=BB3_10 Depth=2 - ldr x23, [x26], #-8 - add x21, x21, x22 - add x19, x23, #1, lsl #12 // =4096 - sub x28, x21, x20 - sub x25, x19, x23 - cmp x28, x25 - csel x2, x28, x25, lo - neg x22, x2 - cbnz x2, .LBB3_9 - b .LBB3_10 -.LBB3_12: // in Loop: Header=BB3_8 Depth=1 - b.ne .LBB3_5 -// %bb.13: // in Loop: Header=BB3_8 Depth=1 - ldp x2, x17, [sp, #48] // 16-byte Folded Reload - ldr x4, [sp, #40] // 8-byte Reload - cmp x2, x17 - b.eq .LBB3_30 -// %bb.14: // in Loop: Header=BB3_8 Depth=1 - ldr x23, [x26] - add x19, x23, #1, lsl #12 // =4096 - b .LBB3_7 -.LBB3_15: - mov x11, x3 - mov x24, x21 - mov x26, x17 - b .LBB3_39 -.LBB3_16: - cmp x16, x15 - b.eq .LBB3_42 -// %bb.17: - ldr x19, [sp, #32] // 8-byte Reload -.LBB3_18: - cmp x24, x16 - b.eq .LBB3_29 -// %bb.19: - mov x9, x17 - mov x22, x21 - mov x27, x3 - stp x3, x17, [sp, #48] // 16-byte Folded Spill - str x19, [sp, #40] // 8-byte Spill -.LBB3_20: // =>This Loop Header: Depth=1 - // Child Loop BB3_22 Depth 2 - add x8, x23, #1, lsl #12 // =4096 - cmp x26, x19 - str x26, [sp, #152] // 8-byte Spill - mov x25, x16 - csel x26, x16, x8, eq - add x9, x9, #8 - sub x8, x27, x22 - sub x20, x26, x24 - add x28, x8, #1, lsl #12 // =4096 - cmp x20, x28 - csel x23, x20, x28, lo - cbz x23, .LBB3_22 -.LBB3_21: // in Loop: Header=BB3_20 Depth=1 - mov x0, x22 - mov x1, x24 - mov x2, x23 - mov x19, x9 - bl memmove - mov x9, x19 -.LBB3_22: // Parent Loop BB3_20 Depth=1 - // => This Inner Loop Header: Depth=2 - cmp x20, x28 - b.ls .LBB3_24 -// %bb.23: // in Loop: Header=BB3_22 Depth=2 - ldr x22, [x9], #8 - add x24, x24, x23 - mov x27, x22 - sub x8, x22, x22 - sub x20, x26, x24 - add x28, x8, #1, lsl #12 // =4096 - cmp x20, x28 - csel x23, x20, x28, lo - cbnz x23, .LBB3_21 - b .LBB3_22 -.LBB3_24: // in Loop: Header=BB3_20 Depth=1 - cmp x20, x28 - b.hs .LBB3_26 -// %bb.25: // in Loop: Header=BB3_20 Depth=1 - sub x9, x9, #8 - add x22, x22, x20 - ldr x26, [sp, #152] // 8-byte Reload - ldr x19, [sp, #40] // 8-byte Reload - mov x16, x25 - cmp x26, x19 - b.ne .LBB3_27 - b .LBB3_28 -.LBB3_26: // in Loop: Header=BB3_20 Depth=1 - ldr x27, [x9] - mov x22, x27 - ldr x26, [sp, #152] // 8-byte Reload - ldr x19, [sp, #40] // 8-byte Reload - mov x16, x25 - cmp x26, x19 - b.eq .LBB3_28 -.LBB3_27: // in Loop: Header=BB3_20 Depth=1 - ldr x24, [x26, #8]! - mov x23, x24 - b .LBB3_20 -.LBB3_28: - ldr x25, [sp, #16] // 8-byte Reload - ldp x11, x26, [sp, #48] // 16-byte Folded Reload - str x9, [sp, #32] // 8-byte Spill - mov x24, x21 - mov x16, x22 - ldr x9, [x25, #16] - b .LBB3_33 -.LBB3_29: - ldr x25, [sp, #16] // 8-byte Reload - mov x9, x2 - mov x11, x3 - mov x24, x21 - mov x26, x17 - str x17, [sp, #32] // 8-byte Spill - mov x16, x21 - mov x27, x3 - b .LBB3_33 -.LBB3_30: - mov x19, x23 -.LBB3_31: - add x9, x26, #8 - ldr x16, [sp] // 8-byte Reload - ldr x26, [sp, #152] // 8-byte Reload -.LBB3_32: - ldp x11, x25, [sp, #8] // 16-byte Folded Reload - stp x23, x19, [x25] - str x9, [x25, #16] -.LBB3_33: - ldr x8, [sp, #24] // 8-byte Reload - cmp x27, x16 - b.ne .LBB3_37 -// %bb.34: - ldr x10, [sp, #32] // 8-byte Reload - cmp x9, x10 - mov x9, x10 - b.eq .LBB3_36 -// %bb.35: - ldr x27, [x9, #-8]! - add x16, x27, #1, lsl #12 // =4096 -.LBB3_36: - mov x10, x9 - b .LBB3_38 -.LBB3_37: - ldr x10, [sp, #32] // 8-byte Reload -.LBB3_38: - add x9, x27, #1, lsl #12 // =4096 - stp x27, x16, [x25, #32] - stp x10, x9, [x25, #48] -.LBB3_39: - stp x11, x24, [x8] - str x26, [x8, #16] - .seh_startepilogue - ldr x30, [sp, #144] // 8-byte Reload - .seh_save_reg x30, 144 - ldp x27, x28, [sp, #128] // 16-byte Folded Reload - .seh_save_regp x27, 128 - ldp x25, x26, [sp, #112] // 16-byte Folded Reload - .seh_save_regp x25, 112 - ldp x23, x24, [sp, #96] // 16-byte Folded Reload - .seh_save_regp x23, 96 - ldp x21, x22, [sp, #80] // 16-byte Folded Reload - .seh_save_regp x21, 80 - ldp x19, x20, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x19, 64 - add sp, sp, #160 - .seh_stackalloc 160 - .seh_endepilogue - ret -.LBB3_40: - ldr x10, [sp, #32] // 8-byte Reload - cbz x10, .LBB3_44 -// %bb.41: - ldr x9, [x10, #8]! - mov x11, x9 - b .LBB3_1 -.LBB3_42: - ldr x19, [sp, #32] // 8-byte Reload - cbz x19, .LBB3_18 -// %bb.43: - ldr x16, [x19, #8]! - b .LBB3_18 -.LBB3_44: - mov x9, x16 - mov x11, x27 - b .LBB3_1 - .seh_endfunclet - .seh_endproc - // -- End function - .def _Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_; - .scl 2; - .type 32; - .endef - .text - .globl _Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_ // -- Begin function _Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_ - .p2align 2 -_Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_: // @_Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_ -.seh_proc _Z9erase_u64RN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEEENS0_7details14deque_iteratorIyLb0EEES9_ -// %bb.0: - sub sp, sp, #112 - .seh_stackalloc 112 - str x30, [sp, #96] // 8-byte Spill - .seh_save_reg x30, 96 - .seh_endprologue - ldr x8, [x1, #16] - ldr q0, [x1] - add x1, sp, #64 - ldr q1, [x2] - ldr x9, [x2, #16] - add x2, sp, #32 - str x8, [sp, #80] - add x8, sp, #8 - str q0, [sp, #64] - str q1, [sp, #32] - str x9, [sp, #48] - bl _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ - .seh_startepilogue - ldr x30, [sp, #96] // 8-byte Reload - .seh_save_reg x30, 96 - add sp, sp, #112 - .seh_stackalloc 112 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_; - .scl 2; - .type 32; - .endef - .section .text$_ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_,"xr",discard,_ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ - .globl _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ // -- Begin function _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ - .p2align 2 -_ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_: // @_ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ -.seh_proc _ZN7fast_io10containers5dequeIyNS_25generic_allocator_adapterINS_28nt_rtlallocateheap_allocatorEEEE5eraseENS0_7details14deque_iteratorIyLb1EEES8_ -// %bb.0: - sub sp, sp, #160 - .seh_stackalloc 160 - stp x19, x20, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x19, 64 - stp x21, x22, [sp, #80] // 16-byte Folded Spill - .seh_save_regp x21, 80 - stp x23, x24, [sp, #96] // 16-byte Folded Spill - .seh_save_regp x23, 96 - stp x25, x26, [sp, #112] // 16-byte Folded Spill - .seh_save_regp x25, 112 - stp x27, x28, [sp, #128] // 16-byte Folded Spill - .seh_save_regp x27, 128 - str x30, [sp, #144] // 8-byte Spill - .seh_save_reg x30, 144 - .seh_endprologue - ldp x27, x16, [x0, #32] - ldr x17, [x1, #16] - ldp x10, x15, [x0, #48] - ldr x24, [x2, #8] - ldp x3, x21, [x1] - mov x9, x16 - mov x11, x27 - cmp x16, x15 - str x10, [sp, #32] // 8-byte Spill - b.eq .LBB5_40 -.LBB5_1: - cmp x21, x24 - b.eq .LBB5_15 -// %bb.2: - ldp x12, x4, [x0] - sub x13, x21, x3 - ldr x26, [x2, #16] - ldr x23, [x2] - sub x9, x9, x11 - ldr x2, [x0, #16] - stp x0, x8, [sp, #16] // 16-byte Folded Spill - sub x12, x12, x4 - sub x10, x10, x26 - sub x14, x23, x24 - asr x12, x12, #3 - lsl x10, x10, #6 - add x12, x12, x13, asr #3 - add x10, x10, x14, asr #3 - sub x13, x17, x2 - add x11, x12, x13, lsl #6 - add x9, x10, x9, asr #3 - cmp x11, x9 - b.hs .LBB5_16 -// %bb.3: - cmp x4, x21 - mov x19, x24 - mov x9, x26 - str x23, [sp, #8] // 8-byte Spill - b.eq .LBB5_32 -// %bb.4: - ldr x23, [sp, #8] // 8-byte Reload - mov x19, x24 - str x16, [sp] // 8-byte Spill - str x26, [sp, #152] // 8-byte Spill - stp x4, x2, [sp, #40] // 16-byte Folded Spill - b .LBB5_8 -.LBB5_5: // in Loop: Header=BB5_8 Depth=1 - ldp x2, x17, [sp, #48] // 16-byte Folded Reload - add x19, x19, x22 - cmp x2, x17 - b.eq .LBB5_31 -// %bb.6: // in Loop: Header=BB5_8 Depth=1 - ldr x4, [sp, #40] // 8-byte Reload - add x26, x26, #8 -.LBB5_7: // in Loop: Header=BB5_8 Depth=1 - ldr x3, [x17, #-8]! - add x21, x3, #1, lsl #12 // =4096 -.LBB5_8: // =>This Loop Header: Depth=1 - // Child Loop BB5_10 Depth 2 - cmp x2, x17 - sub x26, x26, #8 - str x17, [sp, #56] // 8-byte Spill - csel x20, x4, x3, eq - sub x28, x21, x20 - sub x25, x19, x23 - cmp x28, x25 - csel x2, x28, x25, lo - neg x22, x2 - cbz x2, .LBB5_10 -.LBB5_9: // in Loop: Header=BB5_8 Depth=1 - add x0, x19, x22 - add x1, x21, x22 - bl memmove -.LBB5_10: // Parent Loop BB5_8 Depth=1 - // => This Inner Loop Header: Depth=2 - cmp x28, x25 - b.ls .LBB5_12 -// %bb.11: // in Loop: Header=BB5_10 Depth=2 - ldr x23, [x26], #-8 - add x21, x21, x22 - add x19, x23, #1, lsl #12 // =4096 - sub x28, x21, x20 - sub x25, x19, x23 - cmp x28, x25 - csel x2, x28, x25, lo - neg x22, x2 - cbnz x2, .LBB5_9 - b .LBB5_10 -.LBB5_12: // in Loop: Header=BB5_8 Depth=1 - b.ne .LBB5_5 -// %bb.13: // in Loop: Header=BB5_8 Depth=1 - ldp x2, x17, [sp, #48] // 16-byte Folded Reload - ldr x4, [sp, #40] // 8-byte Reload - cmp x2, x17 - b.eq .LBB5_30 -// %bb.14: // in Loop: Header=BB5_8 Depth=1 - ldr x23, [x26] - add x19, x23, #1, lsl #12 // =4096 - b .LBB5_7 -.LBB5_15: - mov x11, x3 - mov x24, x21 - mov x26, x17 - b .LBB5_39 -.LBB5_16: - cmp x16, x15 - b.eq .LBB5_42 -// %bb.17: - ldr x19, [sp, #32] // 8-byte Reload -.LBB5_18: - cmp x24, x16 - b.eq .LBB5_29 -// %bb.19: - mov x9, x17 - mov x22, x21 - mov x27, x3 - stp x3, x17, [sp, #48] // 16-byte Folded Spill - str x19, [sp, #40] // 8-byte Spill -.LBB5_20: // =>This Loop Header: Depth=1 - // Child Loop BB5_22 Depth 2 - add x8, x23, #1, lsl #12 // =4096 - cmp x26, x19 - str x26, [sp, #152] // 8-byte Spill - mov x25, x16 - csel x26, x16, x8, eq - add x9, x9, #8 - sub x8, x27, x22 - sub x20, x26, x24 - add x28, x8, #1, lsl #12 // =4096 - cmp x20, x28 - csel x23, x20, x28, lo - cbz x23, .LBB5_22 -.LBB5_21: // in Loop: Header=BB5_20 Depth=1 - mov x0, x22 - mov x1, x24 - mov x2, x23 - mov x19, x9 - bl memmove - mov x9, x19 -.LBB5_22: // Parent Loop BB5_20 Depth=1 - // => This Inner Loop Header: Depth=2 - cmp x20, x28 - b.ls .LBB5_24 -// %bb.23: // in Loop: Header=BB5_22 Depth=2 - ldr x22, [x9], #8 - add x24, x24, x23 - mov x27, x22 - sub x8, x22, x22 - sub x20, x26, x24 - add x28, x8, #1, lsl #12 // =4096 - cmp x20, x28 - csel x23, x20, x28, lo - cbnz x23, .LBB5_21 - b .LBB5_22 -.LBB5_24: // in Loop: Header=BB5_20 Depth=1 - cmp x20, x28 - b.hs .LBB5_26 -// %bb.25: // in Loop: Header=BB5_20 Depth=1 - sub x9, x9, #8 - add x22, x22, x20 - ldr x26, [sp, #152] // 8-byte Reload - ldr x19, [sp, #40] // 8-byte Reload - mov x16, x25 - cmp x26, x19 - b.ne .LBB5_27 - b .LBB5_28 -.LBB5_26: // in Loop: Header=BB5_20 Depth=1 - ldr x27, [x9] - mov x22, x27 - ldr x26, [sp, #152] // 8-byte Reload - ldr x19, [sp, #40] // 8-byte Reload - mov x16, x25 - cmp x26, x19 - b.eq .LBB5_28 -.LBB5_27: // in Loop: Header=BB5_20 Depth=1 - ldr x24, [x26, #8]! - mov x23, x24 - b .LBB5_20 -.LBB5_28: - ldr x25, [sp, #16] // 8-byte Reload - ldp x11, x26, [sp, #48] // 16-byte Folded Reload - str x9, [sp, #32] // 8-byte Spill - mov x24, x21 - mov x16, x22 - ldr x9, [x25, #16] - b .LBB5_33 -.LBB5_29: - ldr x25, [sp, #16] // 8-byte Reload - mov x9, x2 - mov x11, x3 - mov x24, x21 - mov x26, x17 - str x17, [sp, #32] // 8-byte Spill - mov x16, x21 - mov x27, x3 - b .LBB5_33 -.LBB5_30: - mov x19, x23 -.LBB5_31: - add x9, x26, #8 - ldr x16, [sp] // 8-byte Reload - ldr x26, [sp, #152] // 8-byte Reload -.LBB5_32: - ldp x11, x25, [sp, #8] // 16-byte Folded Reload - stp x23, x19, [x25] - str x9, [x25, #16] -.LBB5_33: - ldr x8, [sp, #24] // 8-byte Reload - cmp x27, x16 - b.ne .LBB5_37 -// %bb.34: - ldr x10, [sp, #32] // 8-byte Reload - cmp x9, x10 - mov x9, x10 - b.eq .LBB5_36 -// %bb.35: - ldr x27, [x9, #-8]! - add x16, x27, #1, lsl #12 // =4096 -.LBB5_36: - mov x10, x9 - b .LBB5_38 -.LBB5_37: - ldr x10, [sp, #32] // 8-byte Reload -.LBB5_38: - add x9, x27, #1, lsl #12 // =4096 - stp x27, x16, [x25, #32] - stp x10, x9, [x25, #48] -.LBB5_39: - stp x11, x24, [x8] - str x26, [x8, #16] - .seh_startepilogue - ldr x30, [sp, #144] // 8-byte Reload - .seh_save_reg x30, 144 - ldp x27, x28, [sp, #128] // 16-byte Folded Reload - .seh_save_regp x27, 128 - ldp x25, x26, [sp, #112] // 16-byte Folded Reload - .seh_save_regp x25, 112 - ldp x23, x24, [sp, #96] // 16-byte Folded Reload - .seh_save_regp x23, 96 - ldp x21, x22, [sp, #80] // 16-byte Folded Reload - .seh_save_regp x21, 80 - ldp x19, x20, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x19, 64 - add sp, sp, #160 - .seh_stackalloc 160 - .seh_endepilogue - ret -.LBB5_40: - ldr x10, [sp, #32] // 8-byte Reload - cbz x10, .LBB5_44 -// %bb.41: - ldr x9, [x10, #8]! - mov x11, x9 - b .LBB5_1 -.LBB5_42: - ldr x19, [sp, #32] // 8-byte Reload - cbz x19, .LBB5_18 -// %bb.43: - ldr x16, [x19, #8]! - b .LBB5_18 -.LBB5_44: - mov x9, x16 - mov x11, x27 - b .LBB5_1 - .seh_endfunclet - .seh_endproc - // -- End function - .section .debug$S,"dr" - .p2align 2, 0x0 - .word 4 // Debug section magic - .word 241 - .word .Ltmp1-.Ltmp0 // Subsection size -.Ltmp0: - .hword .Ltmp3-.Ltmp2 // Record length -.Ltmp2: - .hword 4353 // Record kind: S_OBJNAME - .word 0 // Signature - .byte 0 // Object name - .p2align 2, 0x0 -.Ltmp3: - .hword .Ltmp5-.Ltmp4 // Record length -.Ltmp4: - .hword 4412 // Record kind: S_COMPILE3 - .word 16385 // Flags and language - .hword 246 // CPUType - .hword 22 // Frontend version - .hword 0 - .hword 0 - .hword 0 - .hword 22000 // Backend version - .hword 0 - .hword 0 - .hword 0 - .asciz "clang version 22.0.0git (git@github.com:trcrsired/llvm-project.git 1c607433d98b2d1a5f6f38bd64f3b180520e2fe6)" // Null-terminated compiler version string - .p2align 2, 0x0 -.Ltmp5: -.Ltmp1: - .p2align 2, 0x0 - .addrsig - .addrsig_sym __gxx_personality_seh0 diff --git a/benchmark/0011.containers/deque/0005.asm/erase_std.cc b/benchmark/0011.containers/deque/0005.asm/erase_std.cc deleted file mode 100644 index 07dd331d..00000000 --- a/benchmark/0011.containers/deque/0005.asm/erase_std.cc +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -template -using test_deque = ::std::deque; - -void erase_u16( - test_deque<::std::uint_least16_t> &dq, - decltype(dq.begin()) first, - decltype(dq.begin()) last -) -{ - dq.erase(first,last); -} - -void erase_u32( - test_deque<::std::uint_least32_t> &dq, - decltype(dq.begin()) first, - decltype(dq.begin()) last -) -{ - dq.erase(first,last); -} - -void erase_u64( - test_deque<::std::uint_least64_t> &dq, - decltype(dq.begin()) first, - decltype(dq.begin()) last -) -{ - dq.erase(first,last); -} diff --git a/benchmark/0011.containers/deque/0005.asm/erase_std.s b/benchmark/0011.containers/deque/0005.asm/erase_std.s deleted file mode 100644 index 90d72db4..00000000 --- a/benchmark/0011.containers/deque/0005.asm/erase_std.s +++ /dev/null @@ -1,2302 +0,0 @@ - .def "@feat.00"; - .scl 3; - .type 0; - .endef - .globl "@feat.00" -"@feat.00" = 0 - .file "erase_std.cc" - .def _Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_; - .scl 2; - .type 32; - .endef - .text - .globl _Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_ // -- Begin function _Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_ - .p2align 2 -_Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_: // @_Z9erase_u16RNSt3__15dequeItNS_9allocatorItEEEENS_16__deque_iteratorItPtRtPS6_xLx2048EEES9_ -// %bb.0: - b _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ - // -- End function - .def _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_,"xr",discard,_ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ - .globl _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ // -- Begin function _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ - .p2align 2 -_ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_: // @_ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ -.seh_proc _ZNSt3__15dequeItNS_9allocatorItEEE5eraseENS_16__deque_iteratorItPKtRS5_PKS6_xLx2048EEESA_ -// %bb.0: - sub sp, sp, #64 - .seh_stackalloc 64 - stp x19, x20, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x19, 16 - stp x21, x22, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x21, 32 - str x30, [sp, #48] // 8-byte Spill - .seh_save_reg x30, 48 - .seh_endprologue - mov x8, x1 - cmp x4, x2 - mov x19, x0 - b.eq .LBB1_6 -// %bb.1: - ldr x9, [x3] - sub x10, x3, x8 - ldr x11, [x8] - sub x9, x4, x9 - asr x9, x9, #1 - add x9, x9, x10, lsl #8 - sub x10, x2, x11 - sub x22, x9, x10, asr #1 - ldr x10, [x19, #32] - ldp x9, x11, [x19, #8] - lsr x12, x10, #11 - cmp x9, x11 - add x0, x9, x12, lsl #3 - b.eq .LBB1_7 -.LBB1_2: - ldr x12, [x0] - and x13, x10, #0x7ff - add x1, x12, x13, lsl #1 - cmp x2, x1 - b.eq .LBB1_8 -.LBB1_3: - ldr x12, [x8] - sub x8, x8, x0 - ldr x13, [x0] - sub x12, x2, x12 - asr x12, x12, #1 - add x8, x12, x8, lsl #8 - sub x12, x1, x13 - subs x20, x8, x12, asr #1 - b.eq .LBB1_9 -// %bb.4: - cmp x8, #1 - b.lt .LBB1_10 -// %bb.5: - lsr x12, x8, #11 - add x2, x0, x12, lsl #3 - b .LBB1_11 -.LBB1_6: - mov x22, xzr - ldr x10, [x19, #32] - ldp x9, x11, [x19, #8] - lsr x12, x10, #11 - cmp x9, x11 - add x0, x9, x12, lsl #3 - b.ne .LBB1_2 -.LBB1_7: - mov x1, xzr - cmp x2, xzr - b.ne .LBB1_3 -.LBB1_8: - mov x20, xzr -.LBB1_9: - mov w21, #1 // =0x1 - mov x3, x1 - mov x2, x0 - cmp x22, #1 - b.ge .LBB1_12 - b .LBB1_26 -.LBB1_10: - mov w12, #2047 // =0x7ff - sub x8, x12, x8 - lsr x12, x8, #11 - mvn w8, w8 - sub x2, x0, x12, lsl #3 -.LBB1_11: - ldr x12, [x2] - and x8, x8, #0x7ff - mov w21, wzr - add x3, x12, x8, lsl #1 - cmp x22, #1 - b.lt .LBB1_26 -.LBB1_12: - ldr x12, [x2] - ldr x8, [x19, #40] - sub x12, x3, x12 - sub x13, x8, x22 - add x12, x22, x12, asr #1 - cmp x20, x13, lsr #1 - b.ls .LBB1_15 -// %bb.13: - cmp x12, #1 - b.lt .LBB1_17 -// %bb.14: - lsr x13, x12, #11 - add x0, x2, x13, lsl #3 - b .LBB1_18 -.LBB1_15: - cmp x12, #1 - b.lt .LBB1_20 -// %bb.16: - lsr x8, x12, #11 - and x10, x12, #0x7ff - add x8, x2, x8, lsl #3 - ldr x9, [x8] - add x9, x9, x10, lsl #1 - b .LBB1_21 -.LBB1_17: - mov w13, #2047 // =0x7ff - sub x12, x13, x12 - lsr x13, x12, #11 - mvn w12, w12 - sub x0, x2, x13, lsl #3 -.LBB1_18: - add x10, x8, x10 - ldr x13, [x0] - and x12, x12, #0x7ff - lsr x8, x10, #11 - cmp x9, x11 - add x1, x13, x12, lsl #1 - add x8, x9, x8, lsl #3 - b.eq .LBB1_23 -// %bb.19: - ldr x9, [x8] - and x10, x10, #0x7ff - add x9, x9, x10, lsl #1 - b .LBB1_24 -.LBB1_20: - mov w8, #2047 // =0x7ff - sub x9, x8, x12 - lsr x8, x9, #11 - mvn w9, w9 - and x9, x9, #0x7ff - sub x8, x2, x8, lsl #3 - ldr x10, [x8] - add x9, x10, x9, lsl #1 -.LBB1_21: - mov x4, sp - stp x8, x9, [sp] - bl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - ldp x9, x8, [x19, #32] - sub x8, x8, x22 - add x10, x9, x22 - ldr x9, [x19, #8] - cmp x10, #1, lsl #12 // =4096 - stp x10, x8, [x19, #32] - b.lo .LBB1_26 -.LBB1_22: // =>This Inner Loop Header: Depth=1 - ldr x0, [x9] - bl _ZdlPv - ldr x10, [x19, #32] - ldr x8, [x19, #8] - sub x10, x10, #2048 - add x9, x8, #8 - cmp x10, #1, lsl #12 // =4096 - str x9, [x19, #8] - str x10, [x19, #32] - b.hs .LBB1_22 - b .LBB1_26 -.LBB1_23: - mov x9, xzr -.LBB1_24: - stp x2, x3, [sp] - mov x4, sp - mov x2, x8 - mov x3, x9 - bl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - ldp x9, x8, [x19, #8] - subs x10, x8, x9 - lsl x11, x10, #8 - ldp x10, x12, [x19, #32] - cmp x8, x9 - sub x11, x11, #1 - sub x12, x12, x22 - csel x11, xzr, x11, eq - add x13, x12, x10 - str x12, [x19, #40] - sub x11, x11, x13 - cmp x11, #1, lsl #12 // =4096 - b.lo .LBB1_26 -.LBB1_25: // =>This Inner Loop Header: Depth=1 - ldur x0, [x8, #-8] - bl _ZdlPv - ldp x9, x8, [x19, #8] - sub x8, x8, #8 - subs x10, x8, x9 - str x8, [x19, #16] - lsl x11, x10, #8 - ldp x10, x12, [x19, #32] - cmp x8, x9 - sub x11, x11, #1 - csel x11, xzr, x11, eq - add x12, x12, x10 - sub x11, x11, x12 - cmp x11, #4095 - b.hi .LBB1_25 -.LBB1_26: - lsr x8, x10, #11 - ldr x11, [x19, #16] - add x0, x9, x8, lsl #3 - cmp x9, x11 - b.eq .LBB1_28 -// %bb.27: - ldr x8, [x0] - and x9, x10, #0x7ff - add x1, x8, x9, lsl #1 - tbz w21, #0, .LBB1_29 - b .LBB1_33 -.LBB1_28: - mov x1, xzr - tbnz w21, #0, .LBB1_33 -.LBB1_29: - ldr x8, [x0] - sub x8, x1, x8 - add x8, x20, x8, asr #1 - cmp x8, #1 - b.lt .LBB1_31 -// %bb.30: - lsr x9, x8, #11 - add x0, x0, x9, lsl #3 - b .LBB1_32 -.LBB1_31: - mov w9, #2047 // =0x7ff - sub x8, x9, x8 - lsr x9, x8, #11 - mvn w8, w8 - sub x0, x0, x9, lsl #3 -.LBB1_32: - ldr x9, [x0] - and x8, x8, #0x7ff - add x1, x9, x8, lsl #1 -.LBB1_33: - .seh_startepilogue - ldr x30, [sp, #48] // 8-byte Reload - .seh_save_reg x30, 48 - ldp x21, x22, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x21, 32 - ldp x19, x20, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x19, 16 - add sp, sp, #64 - .seh_stackalloc 64 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_; - .scl 2; - .type 32; - .endef - .text - .globl _Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_ // -- Begin function _Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_ - .p2align 2 -_Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_: // @_Z9erase_u32RNSt3__15dequeIjNS_9allocatorIjEEEENS_16__deque_iteratorIjPjRjPS6_xLx1024EEES9_ -// %bb.0: - b _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ - // -- End function - .def _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_,"xr",discard,_ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ - .globl _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ // -- Begin function _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ - .p2align 2 -_ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_: // @_ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ -.seh_proc _ZNSt3__15dequeIjNS_9allocatorIjEEE5eraseENS_16__deque_iteratorIjPKjRS5_PKS6_xLx1024EEESA_ -// %bb.0: - sub sp, sp, #64 - .seh_stackalloc 64 - stp x19, x20, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x19, 16 - stp x21, x22, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x21, 32 - str x30, [sp, #48] // 8-byte Spill - .seh_save_reg x30, 48 - .seh_endprologue - mov x8, x1 - cmp x4, x2 - mov x19, x0 - b.eq .LBB3_6 -// %bb.1: - ldr x9, [x3] - sub x10, x3, x8 - ldr x11, [x8] - sub x9, x4, x9 - asr x9, x9, #2 - add x9, x9, x10, lsl #7 - sub x10, x2, x11 - sub x22, x9, x10, asr #2 - ldr x10, [x19, #32] - ldp x9, x11, [x19, #8] - lsr x12, x10, #10 - cmp x9, x11 - add x0, x9, x12, lsl #3 - b.eq .LBB3_7 -.LBB3_2: - ldr x12, [x0] - and x13, x10, #0x3ff - add x1, x12, x13, lsl #2 - cmp x2, x1 - b.eq .LBB3_8 -.LBB3_3: - ldr x12, [x8] - sub x8, x8, x0 - ldr x13, [x0] - sub x12, x2, x12 - asr x12, x12, #2 - add x8, x12, x8, lsl #7 - sub x12, x1, x13 - subs x20, x8, x12, asr #2 - b.eq .LBB3_9 -// %bb.4: - cmp x8, #1 - b.lt .LBB3_10 -// %bb.5: - lsr x12, x8, #10 - add x2, x0, x12, lsl #3 - b .LBB3_11 -.LBB3_6: - mov x22, xzr - ldr x10, [x19, #32] - ldp x9, x11, [x19, #8] - lsr x12, x10, #10 - cmp x9, x11 - add x0, x9, x12, lsl #3 - b.ne .LBB3_2 -.LBB3_7: - mov x1, xzr - cmp x2, xzr - b.ne .LBB3_3 -.LBB3_8: - mov x20, xzr -.LBB3_9: - mov w21, #1 // =0x1 - mov x3, x1 - mov x2, x0 - cmp x22, #1 - b.ge .LBB3_12 - b .LBB3_26 -.LBB3_10: - mov w12, #1023 // =0x3ff - sub x8, x12, x8 - lsr x12, x8, #10 - mvn w8, w8 - sub x2, x0, x12, lsl #3 -.LBB3_11: - ldr x12, [x2] - and x8, x8, #0x3ff - mov w21, wzr - add x3, x12, x8, lsl #2 - cmp x22, #1 - b.lt .LBB3_26 -.LBB3_12: - ldr x12, [x2] - ldr x8, [x19, #40] - sub x12, x3, x12 - sub x13, x8, x22 - add x12, x22, x12, asr #2 - cmp x20, x13, lsr #1 - b.ls .LBB3_15 -// %bb.13: - cmp x12, #1 - b.lt .LBB3_17 -// %bb.14: - lsr x13, x12, #10 - add x0, x2, x13, lsl #3 - b .LBB3_18 -.LBB3_15: - cmp x12, #1 - b.lt .LBB3_20 -// %bb.16: - lsr x8, x12, #10 - and x10, x12, #0x3ff - add x8, x2, x8, lsl #3 - ldr x9, [x8] - add x9, x9, x10, lsl #2 - b .LBB3_21 -.LBB3_17: - mov w13, #1023 // =0x3ff - sub x12, x13, x12 - lsr x13, x12, #10 - mvn w12, w12 - sub x0, x2, x13, lsl #3 -.LBB3_18: - add x10, x8, x10 - ldr x13, [x0] - and x12, x12, #0x3ff - lsr x8, x10, #10 - cmp x9, x11 - add x1, x13, x12, lsl #2 - add x8, x9, x8, lsl #3 - b.eq .LBB3_23 -// %bb.19: - ldr x9, [x8] - and x10, x10, #0x3ff - add x9, x9, x10, lsl #2 - b .LBB3_24 -.LBB3_20: - mov w8, #1023 // =0x3ff - sub x9, x8, x12 - lsr x8, x9, #10 - mvn w9, w9 - and x9, x9, #0x3ff - sub x8, x2, x8, lsl #3 - ldr x10, [x8] - add x9, x10, x9, lsl #2 -.LBB3_21: - mov x4, sp - stp x8, x9, [sp] - bl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - ldp x9, x8, [x19, #32] - sub x8, x8, x22 - add x10, x9, x22 - ldr x9, [x19, #8] - cmp x10, #2048 - stp x10, x8, [x19, #32] - b.lo .LBB3_26 -.LBB3_22: // =>This Inner Loop Header: Depth=1 - ldr x0, [x9] - bl _ZdlPv - ldr x10, [x19, #32] - ldr x8, [x19, #8] - sub x10, x10, #1024 - add x9, x8, #8 - cmp x10, #2048 - str x9, [x19, #8] - str x10, [x19, #32] - b.hs .LBB3_22 - b .LBB3_26 -.LBB3_23: - mov x9, xzr -.LBB3_24: - stp x2, x3, [sp] - mov x4, sp - mov x2, x8 - mov x3, x9 - bl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - ldp x9, x8, [x19, #8] - subs x10, x8, x9 - lsl x11, x10, #7 - ldp x10, x12, [x19, #32] - cmp x8, x9 - sub x11, x11, #1 - sub x12, x12, x22 - csel x11, xzr, x11, eq - add x13, x12, x10 - str x12, [x19, #40] - sub x11, x11, x13 - cmp x11, #2048 - b.lo .LBB3_26 -.LBB3_25: // =>This Inner Loop Header: Depth=1 - ldur x0, [x8, #-8] - bl _ZdlPv - ldp x9, x8, [x19, #8] - sub x8, x8, #8 - subs x10, x8, x9 - str x8, [x19, #16] - lsl x11, x10, #7 - ldp x10, x12, [x19, #32] - cmp x8, x9 - sub x11, x11, #1 - csel x11, xzr, x11, eq - add x12, x12, x10 - sub x11, x11, x12 - cmp x11, #2047 - b.hi .LBB3_25 -.LBB3_26: - lsr x8, x10, #10 - ldr x11, [x19, #16] - add x0, x9, x8, lsl #3 - cmp x9, x11 - b.eq .LBB3_28 -// %bb.27: - ldr x8, [x0] - and x9, x10, #0x3ff - add x1, x8, x9, lsl #2 - tbz w21, #0, .LBB3_29 - b .LBB3_33 -.LBB3_28: - mov x1, xzr - tbnz w21, #0, .LBB3_33 -.LBB3_29: - ldr x8, [x0] - sub x8, x1, x8 - add x8, x20, x8, asr #2 - cmp x8, #1 - b.lt .LBB3_31 -// %bb.30: - lsr x9, x8, #10 - add x0, x0, x9, lsl #3 - b .LBB3_32 -.LBB3_31: - mov w9, #1023 // =0x3ff - sub x8, x9, x8 - lsr x9, x8, #10 - mvn w8, w8 - sub x0, x0, x9, lsl #3 -.LBB3_32: - ldr x9, [x0] - and x8, x8, #0x3ff - add x1, x9, x8, lsl #2 -.LBB3_33: - .seh_startepilogue - ldr x30, [sp, #48] // 8-byte Reload - .seh_save_reg x30, 48 - ldp x21, x22, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x21, 32 - ldp x19, x20, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x19, 16 - add sp, sp, #64 - .seh_stackalloc 64 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_; - .scl 2; - .type 32; - .endef - .text - .globl _Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_ // -- Begin function _Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_ - .p2align 2 -_Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_: // @_Z9erase_u64RNSt3__15dequeIyNS_9allocatorIyEEEENS_16__deque_iteratorIyPyRyPS6_xLx512EEES9_ -// %bb.0: - b _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ - // -- End function - .def _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_,"xr",discard,_ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ - .globl _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ // -- Begin function _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ - .p2align 2 -_ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_: // @_ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ -.seh_proc _ZNSt3__15dequeIyNS_9allocatorIyEEE5eraseENS_16__deque_iteratorIyPKyRS5_PKS6_xLx512EEESA_ -// %bb.0: - sub sp, sp, #64 - .seh_stackalloc 64 - stp x19, x20, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x19, 16 - stp x21, x22, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x21, 32 - str x30, [sp, #48] // 8-byte Spill - .seh_save_reg x30, 48 - .seh_endprologue - mov x8, x1 - cmp x4, x2 - mov x19, x0 - b.eq .LBB5_6 -// %bb.1: - ldr x9, [x3] - sub x10, x3, x8 - ldr x11, [x8] - sub x9, x4, x9 - asr x9, x9, #3 - add x9, x9, x10, lsl #6 - sub x10, x2, x11 - sub x22, x9, x10, asr #3 - ldr x10, [x19, #32] - ldp x9, x11, [x19, #8] - lsr x12, x10, #9 - cmp x9, x11 - add x0, x9, x12, lsl #3 - b.eq .LBB5_7 -.LBB5_2: - ldr x12, [x0] - and x13, x10, #0x1ff - add x1, x12, x13, lsl #3 - cmp x2, x1 - b.eq .LBB5_8 -.LBB5_3: - ldr x12, [x8] - sub x8, x8, x0 - ldr x13, [x0] - sub x12, x2, x12 - asr x12, x12, #3 - add x8, x12, x8, lsl #6 - sub x12, x1, x13 - subs x20, x8, x12, asr #3 - b.eq .LBB5_9 -// %bb.4: - cmp x8, #1 - b.lt .LBB5_10 -// %bb.5: - lsr x12, x8, #9 - add x2, x0, x12, lsl #3 - b .LBB5_11 -.LBB5_6: - mov x22, xzr - ldr x10, [x19, #32] - ldp x9, x11, [x19, #8] - lsr x12, x10, #9 - cmp x9, x11 - add x0, x9, x12, lsl #3 - b.ne .LBB5_2 -.LBB5_7: - mov x1, xzr - cmp x2, xzr - b.ne .LBB5_3 -.LBB5_8: - mov x20, xzr -.LBB5_9: - mov w21, #1 // =0x1 - mov x3, x1 - mov x2, x0 - cmp x22, #1 - b.ge .LBB5_12 - b .LBB5_26 -.LBB5_10: - mov w12, #511 // =0x1ff - sub x8, x12, x8 - lsr x12, x8, #9 - mvn w8, w8 - sub x2, x0, x12, lsl #3 -.LBB5_11: - ldr x12, [x2] - and x8, x8, #0x1ff - mov w21, wzr - add x3, x12, x8, lsl #3 - cmp x22, #1 - b.lt .LBB5_26 -.LBB5_12: - ldr x12, [x2] - ldr x8, [x19, #40] - sub x12, x3, x12 - sub x13, x8, x22 - add x12, x22, x12, asr #3 - cmp x20, x13, lsr #1 - b.ls .LBB5_15 -// %bb.13: - cmp x12, #1 - b.lt .LBB5_17 -// %bb.14: - lsr x13, x12, #9 - add x0, x2, x13, lsl #3 - b .LBB5_18 -.LBB5_15: - cmp x12, #1 - b.lt .LBB5_20 -// %bb.16: - lsr x8, x12, #9 - and x10, x12, #0x1ff - add x8, x2, x8, lsl #3 - ldr x9, [x8] - add x9, x9, x10, lsl #3 - b .LBB5_21 -.LBB5_17: - mov w13, #511 // =0x1ff - sub x12, x13, x12 - lsr x13, x12, #9 - mvn w12, w12 - sub x0, x2, x13, lsl #3 -.LBB5_18: - add x10, x8, x10 - ldr x13, [x0] - and x12, x12, #0x1ff - lsr x8, x10, #9 - cmp x9, x11 - add x1, x13, x12, lsl #3 - add x8, x9, x8, lsl #3 - b.eq .LBB5_23 -// %bb.19: - ldr x9, [x8] - and x10, x10, #0x1ff - add x9, x9, x10, lsl #3 - b .LBB5_24 -.LBB5_20: - mov w8, #511 // =0x1ff - sub x9, x8, x12 - lsr x8, x9, #9 - mvn w9, w9 - and x9, x9, #0x1ff - sub x8, x2, x8, lsl #3 - ldr x10, [x8] - add x9, x10, x9, lsl #3 -.LBB5_21: - mov x4, sp - stp x8, x9, [sp] - bl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - ldp x9, x8, [x19, #32] - sub x8, x8, x22 - add x10, x9, x22 - ldr x9, [x19, #8] - cmp x10, #1024 - stp x10, x8, [x19, #32] - b.lo .LBB5_26 -.LBB5_22: // =>This Inner Loop Header: Depth=1 - ldr x0, [x9] - bl _ZdlPv - ldr x10, [x19, #32] - ldr x8, [x19, #8] - sub x10, x10, #512 - add x9, x8, #8 - cmp x10, #1024 - str x9, [x19, #8] - str x10, [x19, #32] - b.hs .LBB5_22 - b .LBB5_26 -.LBB5_23: - mov x9, xzr -.LBB5_24: - stp x2, x3, [sp] - mov x4, sp - mov x2, x8 - mov x3, x9 - bl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - ldp x9, x8, [x19, #8] - subs x10, x8, x9 - lsl x11, x10, #6 - ldp x10, x12, [x19, #32] - cmp x8, x9 - sub x11, x11, #1 - sub x12, x12, x22 - csel x11, xzr, x11, eq - add x13, x12, x10 - str x12, [x19, #40] - sub x11, x11, x13 - cmp x11, #1024 - b.lo .LBB5_26 -.LBB5_25: // =>This Inner Loop Header: Depth=1 - ldur x0, [x8, #-8] - bl _ZdlPv - ldp x9, x8, [x19, #8] - sub x8, x8, #8 - subs x10, x8, x9 - str x8, [x19, #16] - lsl x11, x10, #6 - ldp x10, x12, [x19, #32] - cmp x8, x9 - sub x11, x11, #1 - csel x11, xzr, x11, eq - add x12, x12, x10 - sub x11, x11, x12 - cmp x11, #1023 - b.hi .LBB5_25 -.LBB5_26: - lsr x8, x10, #9 - ldr x11, [x19, #16] - add x0, x9, x8, lsl #3 - cmp x9, x11 - b.eq .LBB5_28 -// %bb.27: - ldr x8, [x0] - and x9, x10, #0x1ff - add x1, x8, x9, lsl #3 - tbz w21, #0, .LBB5_29 - b .LBB5_33 -.LBB5_28: - mov x1, xzr - tbnz w21, #0, .LBB5_33 -.LBB5_29: - ldr x8, [x0] - sub x8, x1, x8 - add x8, x20, x8, asr #3 - cmp x8, #1 - b.lt .LBB5_31 -// %bb.30: - lsr x9, x8, #9 - add x0, x0, x9, lsl #3 - b .LBB5_32 -.LBB5_31: - mov w9, #511 // =0x1ff - sub x8, x9, x8 - lsr x9, x8, #9 - mvn w8, w8 - sub x0, x0, x9, lsl #3 -.LBB5_32: - ldr x9, [x0] - and x8, x8, #0x1ff - add x1, x9, x8, lsl #3 -.LBB5_33: - .seh_startepilogue - ldr x30, [sp, #48] // 8-byte Reload - .seh_save_reg x30, 48 - ldp x21, x22, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x21, 32 - ldp x19, x20, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x19, 16 - add sp, sp, #64 - .seh_stackalloc 64 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .globl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .p2align 2 -_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -.seh_proc _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -// %bb.0: - stp x19, x20, [sp, #-96]! // 16-byte Folded Spill - .seh_save_regp_x x19, 96 - stp x21, x22, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x21, 16 - stp x23, x24, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x23, 32 - stp x25, x26, [sp, #48] // 16-byte Folded Spill - .seh_save_regp x25, 48 - stp x27, x28, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x27, 64 - str x30, [sp, #80] // 8-byte Spill - .seh_save_reg x30, 80 - .seh_endprologue - ldp x25, x21, [x4] - mov x19, x4 - cmp x0, x2 - mov x20, x1 - b.eq .LBB6_18 -// %bb.1: - ldr x26, [x2] - mov x23, x2 - mov x22, x0 - cmp x26, x3 - b.eq .LBB6_7 -// %bb.2: - ldr x8, [x25] - sub x9, x3, x26 - asr x9, x9, #1 - sub x8, x21, x8 - asr x8, x8, #1 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x2, x8, #1 - sub x24, x3, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x24 - bl memmove - cmp x26, x24 - b.eq .LBB6_5 -// %bb.3: - mov w27, #2048 // =0x800 -.LBB6_4: // =>This Inner Loop Header: Depth=1 - sub x8, x24, x26 - ldr x9, [x25, #-8]! - asr x8, x8, #1 - cmp x8, #2048 - csel x8, x8, x27, lt - lsl x2, x8, #1 - sub x8, x9, x2 - sub x24, x24, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x24 - mov x0, x21 - bl memmove - cmp x26, x24 - b.ne .LBB6_4 -.LBB6_5: - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB6_7 -// %bb.6: - ldr x21, [x25, #8]! -.LBB6_7: - sub x24, x23, #8 - stp x25, x21, [x19] - cmp x22, x24 - b.eq .LBB6_14 -// %bb.8: - mov w26, #2048 // =0x800 - b .LBB6_10 -.LBB6_9: // in Loop: Header=BB6_10 Depth=1 - sub x24, x24, #8 - stp x25, x21, [x19] - cmp x22, x24 - b.eq .LBB6_14 -.LBB6_10: // =>This Loop Header: Depth=1 - // Child Loop BB6_11 Depth 2 - ldr x8, [x25] - ldr x28, [x24] - sub x8, x21, x8 - asr x8, x8, #1 - cmp x8, #2048 - csel x8, x8, x26, lt - lsl x2, x8, #1 - mov w8, #4096 // =0x1000 - sub x27, x8, x2 - sub x21, x21, x2 - add x1, x28, x27 - mov x0, x21 - add x23, x28, x27 - bl memmove - cbz x27, .LBB6_12 -.LBB6_11: // Parent Loop BB6_10 Depth=1 - // => This Inner Loop Header: Depth=2 - sub x8, x23, x28 - ldr x9, [x25, #-8]! - asr x8, x8, #1 - cmp x8, #2048 - csel x8, x8, x26, lt - lsl x2, x8, #1 - sub x8, x9, x2 - sub x23, x23, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x23 - mov x0, x21 - bl memmove - cmp x28, x23 - b.ne .LBB6_11 -.LBB6_12: // in Loop: Header=BB6_10 Depth=1 - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB6_9 -// %bb.13: // in Loop: Header=BB6_10 Depth=1 - ldr x21, [x25, #8]! - b .LBB6_9 -.LBB6_14: - ldr x8, [x24] - add x8, x8, #1, lsl #12 // =4096 - cmp x20, x8 - b.eq .LBB6_24 -// %bb.15: - ldr x9, [x25] - sub x10, x8, x20 - asr x10, x10, #1 - sub x9, x21, x9 - asr x9, x9, #1 - cmp x10, x9 - csel x9, x10, x9, lt - lsl x2, x9, #1 - sub x22, x8, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x22 - bl memmove - cmp x20, x22 - b.eq .LBB6_22 -// %bb.16: - mov w23, #2048 // =0x800 -.LBB6_17: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x20 - ldr x9, [x25, #-8]! - asr x8, x8, #1 - cmp x8, #2048 - csel x8, x8, x23, lt - lsl x2, x8, #1 - sub x8, x9, x2 - sub x22, x22, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x22 - mov x0, x21 - bl memmove - cmp x20, x22 - b.ne .LBB6_17 - b .LBB6_22 -.LBB6_18: - cmp x20, x3 - b.eq .LBB6_24 -// %bb.19: - ldr x8, [x25] - sub x9, x3, x20 - asr x9, x9, #1 - sub x8, x21, x8 - asr x8, x8, #1 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x2, x8, #1 - sub x22, x3, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x22 - bl memmove - cmp x20, x22 - b.eq .LBB6_22 -// %bb.20: - mov w23, #2048 // =0x800 -.LBB6_21: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x20 - ldr x9, [x25, #-8]! - asr x8, x8, #1 - cmp x8, #2048 - csel x8, x8, x23, lt - lsl x2, x8, #1 - sub x8, x9, x2 - sub x22, x22, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x22 - mov x0, x21 - bl memmove - cmp x20, x22 - b.ne .LBB6_21 -.LBB6_22: - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB6_24 -// %bb.23: - ldr x21, [x25, #8]! -.LBB6_24: - stp x25, x21, [x19] - .seh_startepilogue - ldr x30, [sp, #80] // 8-byte Reload - .seh_save_reg x30, 80 - ldp x27, x28, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x27, 64 - ldp x25, x26, [sp, #48] // 16-byte Folded Reload - .seh_save_regp x25, 48 - ldp x23, x24, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x23, 32 - ldp x21, x22, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x21, 16 - ldp x19, x20, [sp], #96 // 16-byte Folded Reload - .seh_save_regp_x x19, 96 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .globl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .p2align 2 -_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -.seh_proc _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorItPtRtPS2_xLx2048EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -// %bb.0: - stp x19, x20, [sp, #-96]! // 16-byte Folded Spill - .seh_save_regp_x x19, 96 - stp x21, x22, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x21, 16 - stp x23, x24, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x23, 32 - stp x25, x26, [sp, #48] // 16-byte Folded Spill - .seh_save_regp x25, 48 - stp x27, x28, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x27, 64 - str x30, [sp, #80] // 8-byte Spill - .seh_save_reg x30, 80 - .seh_endprologue - mov x19, x4 - mov x20, x3 - cmp x0, x2 - str x2, [sp, #88] // 8-byte Spill - b.eq .LBB7_22 -// %bb.1: - ldr x8, [x0] - ldp x26, x21, [x19] - mov x23, x0 - add x22, x8, #1, lsl #12 // =4096 - cmp x1, x22 - b.eq .LBB7_7 -// %bb.2: - ldr x8, [x26] - sub x9, x22, x1 - mov x0, x21 - asr x9, x9, #1 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #1 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x24, x8, #1 - mov x2, x24 - add x25, x1, x24 - bl memmove - cmp x22, x25 - b.eq .LBB7_5 -// %bb.3: - mov x1, x25 - mov w25, #2048 // =0x800 -.LBB7_4: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x1 - ldr x21, [x26, #8]! - asr x8, x8, #1 - mov x0, x21 - cmp x8, #2048 - csel x8, x8, x25, lt - lsl x24, x8, #1 - mov x2, x24 - add x27, x1, x24 - bl memmove - cmp x22, x27 - mov x1, x27 - b.ne .LBB7_4 -.LBB7_5: - ldr x8, [x26] - add x21, x21, x24 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB7_7 -// %bb.6: - ldr x21, [x26, #8]! -.LBB7_7: - ldr x8, [sp, #88] // 8-byte Reload - add x27, x23, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.eq .LBB7_15 -// %bb.8: - mov w28, #2048 // =0x800 - mov w22, #4096 // =0x1000 - b .LBB7_11 -.LBB7_9: // in Loop: Header=BB7_11 Depth=1 - ldr x8, [x26] - add x21, x21, x24 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.eq .LBB7_14 -// %bb.10: // in Loop: Header=BB7_11 Depth=1 - ldr x8, [sp, #88] // 8-byte Reload - add x27, x27, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.eq .LBB7_15 -.LBB7_11: // =>This Loop Header: Depth=1 - // Child Loop BB7_12 Depth 2 - ldr x8, [x26] - ldr x23, [x27] - mov x0, x21 - sub x8, x8, x21 - mov x1, x23 - add x8, x8, #1, lsl #12 // =4096 - asr x25, x8, #1 - cmp x25, #2048 - csel x8, x25, x28, lt - lsl x24, x8, #1 - mov x2, x24 - bl memmove - cmp x25, #2047 - b.gt .LBB7_9 -.LBB7_12: // Parent Loop BB7_11 Depth=1 - // => This Inner Loop Header: Depth=2 - sub x9, x22, x24 - ldr x21, [x26, #8]! - asr x9, x9, #1 - add x1, x23, x24 - mov x0, x21 - cmp x9, #2048 - csel x9, x9, x28, lt - lsl x25, x9, #1 - mov x2, x25 - add x24, x25, x24 - bl memmove - cmp x24, #1, lsl #12 // =4096 - b.ne .LBB7_12 -// %bb.13: // in Loop: Header=BB7_11 Depth=1 - mov x24, x25 - b .LBB7_9 -.LBB7_14: // in Loop: Header=BB7_11 Depth=1 - ldr x21, [x26, #8]! - ldr x8, [sp, #88] // 8-byte Reload - add x27, x27, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.ne .LBB7_11 -.LBB7_15: - ldr x1, [x27] - cmp x1, x20 - b.eq .LBB7_21 -// %bb.16: - ldr x8, [x26] - sub x9, x20, x1 - mov x0, x21 - asr x9, x9, #1 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #1 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x22, x8, #1 - mov x2, x22 - add x23, x1, x22 - bl memmove - cmp x20, x23 - b.eq .LBB7_19 -// %bb.17: - mov x1, x23 - mov w23, #2048 // =0x800 -.LBB7_18: // =>This Inner Loop Header: Depth=1 - sub x8, x20, x1 - ldr x21, [x26, #8]! - asr x8, x8, #1 - mov x0, x21 - cmp x8, #2048 - csel x8, x8, x23, lt - lsl x22, x8, #1 - mov x2, x22 - add x24, x1, x22 - bl memmove - cmp x20, x24 - mov x1, x24 - b.ne .LBB7_18 -.LBB7_19: - ldr x8, [x26] - add x21, x21, x22 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB7_21 -// %bb.20: - ldr x21, [x26, #8]! -.LBB7_21: - str x26, [x19] - b .LBB7_29 -.LBB7_22: - ldp x23, x21, [x19] - cmp x1, x20 - b.eq .LBB7_28 -// %bb.23: - ldr x8, [x23] - sub x9, x20, x1 - mov x0, x21 - asr x9, x9, #1 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #1 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x22, x8, #1 - mov x2, x22 - add x24, x1, x22 - bl memmove - cmp x20, x24 - b.eq .LBB7_26 -// %bb.24: - mov x1, x24 - mov w24, #2048 // =0x800 -.LBB7_25: // =>This Inner Loop Header: Depth=1 - sub x8, x20, x1 - ldr x21, [x23, #8]! - asr x8, x8, #1 - mov x0, x21 - cmp x8, #2048 - csel x8, x8, x24, lt - lsl x22, x8, #1 - mov x2, x22 - add x25, x1, x22 - bl memmove - cmp x20, x25 - mov x1, x25 - b.ne .LBB7_25 -.LBB7_26: - ldr x8, [x23] - add x21, x21, x22 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB7_28 -// %bb.27: - ldr x21, [x23, #8]! -.LBB7_28: - str x23, [x19] -.LBB7_29: - str x21, [x19, #8] - .seh_startepilogue - ldr x30, [sp, #80] // 8-byte Reload - .seh_save_reg x30, 80 - ldp x27, x28, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x27, 64 - ldp x25, x26, [sp, #48] // 16-byte Folded Reload - .seh_save_regp x25, 48 - ldp x23, x24, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x23, 32 - ldp x21, x22, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x21, 16 - ldp x19, x20, [sp], #96 // 16-byte Folded Reload - .seh_save_regp_x x19, 96 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .globl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .p2align 2 -_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -.seh_proc _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -// %bb.0: - stp x19, x20, [sp, #-96]! // 16-byte Folded Spill - .seh_save_regp_x x19, 96 - stp x21, x22, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x21, 16 - stp x23, x24, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x23, 32 - stp x25, x26, [sp, #48] // 16-byte Folded Spill - .seh_save_regp x25, 48 - stp x27, x28, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x27, 64 - str x30, [sp, #80] // 8-byte Spill - .seh_save_reg x30, 80 - .seh_endprologue - ldp x25, x21, [x4] - mov x19, x4 - cmp x0, x2 - mov x20, x1 - b.eq .LBB8_18 -// %bb.1: - ldr x26, [x2] - mov x23, x2 - mov x22, x0 - cmp x26, x3 - b.eq .LBB8_7 -// %bb.2: - ldr x8, [x25] - sub x9, x3, x26 - asr x9, x9, #2 - sub x8, x21, x8 - asr x8, x8, #2 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x2, x8, #2 - sub x24, x3, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x24 - bl memmove - cmp x26, x24 - b.eq .LBB8_5 -// %bb.3: - mov w27, #1024 // =0x400 -.LBB8_4: // =>This Inner Loop Header: Depth=1 - sub x8, x24, x26 - ldr x9, [x25, #-8]! - asr x8, x8, #2 - cmp x8, #1024 - csel x8, x8, x27, lt - lsl x2, x8, #2 - sub x8, x9, x2 - sub x24, x24, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x24 - mov x0, x21 - bl memmove - cmp x26, x24 - b.ne .LBB8_4 -.LBB8_5: - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB8_7 -// %bb.6: - ldr x21, [x25, #8]! -.LBB8_7: - sub x24, x23, #8 - stp x25, x21, [x19] - cmp x22, x24 - b.eq .LBB8_14 -// %bb.8: - mov w26, #1024 // =0x400 - b .LBB8_10 -.LBB8_9: // in Loop: Header=BB8_10 Depth=1 - sub x24, x24, #8 - stp x25, x21, [x19] - cmp x22, x24 - b.eq .LBB8_14 -.LBB8_10: // =>This Loop Header: Depth=1 - // Child Loop BB8_11 Depth 2 - ldr x8, [x25] - ldr x28, [x24] - sub x8, x21, x8 - asr x8, x8, #2 - cmp x8, #1024 - csel x8, x8, x26, lt - lsl x2, x8, #2 - mov w8, #4096 // =0x1000 - sub x27, x8, x2 - sub x21, x21, x2 - add x1, x28, x27 - mov x0, x21 - add x23, x28, x27 - bl memmove - cbz x27, .LBB8_12 -.LBB8_11: // Parent Loop BB8_10 Depth=1 - // => This Inner Loop Header: Depth=2 - sub x8, x23, x28 - ldr x9, [x25, #-8]! - asr x8, x8, #2 - cmp x8, #1024 - csel x8, x8, x26, lt - lsl x2, x8, #2 - sub x8, x9, x2 - sub x23, x23, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x23 - mov x0, x21 - bl memmove - cmp x28, x23 - b.ne .LBB8_11 -.LBB8_12: // in Loop: Header=BB8_10 Depth=1 - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB8_9 -// %bb.13: // in Loop: Header=BB8_10 Depth=1 - ldr x21, [x25, #8]! - b .LBB8_9 -.LBB8_14: - ldr x8, [x24] - add x8, x8, #1, lsl #12 // =4096 - cmp x20, x8 - b.eq .LBB8_24 -// %bb.15: - ldr x9, [x25] - sub x10, x8, x20 - asr x10, x10, #2 - sub x9, x21, x9 - asr x9, x9, #2 - cmp x10, x9 - csel x9, x10, x9, lt - lsl x2, x9, #2 - sub x22, x8, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x22 - bl memmove - cmp x20, x22 - b.eq .LBB8_22 -// %bb.16: - mov w23, #1024 // =0x400 -.LBB8_17: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x20 - ldr x9, [x25, #-8]! - asr x8, x8, #2 - cmp x8, #1024 - csel x8, x8, x23, lt - lsl x2, x8, #2 - sub x8, x9, x2 - sub x22, x22, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x22 - mov x0, x21 - bl memmove - cmp x20, x22 - b.ne .LBB8_17 - b .LBB8_22 -.LBB8_18: - cmp x20, x3 - b.eq .LBB8_24 -// %bb.19: - ldr x8, [x25] - sub x9, x3, x20 - asr x9, x9, #2 - sub x8, x21, x8 - asr x8, x8, #2 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x2, x8, #2 - sub x22, x3, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x22 - bl memmove - cmp x20, x22 - b.eq .LBB8_22 -// %bb.20: - mov w23, #1024 // =0x400 -.LBB8_21: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x20 - ldr x9, [x25, #-8]! - asr x8, x8, #2 - cmp x8, #1024 - csel x8, x8, x23, lt - lsl x2, x8, #2 - sub x8, x9, x2 - sub x22, x22, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x22 - mov x0, x21 - bl memmove - cmp x20, x22 - b.ne .LBB8_21 -.LBB8_22: - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB8_24 -// %bb.23: - ldr x21, [x25, #8]! -.LBB8_24: - stp x25, x21, [x19] - .seh_startepilogue - ldr x30, [sp, #80] // 8-byte Reload - .seh_save_reg x30, 80 - ldp x27, x28, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x27, 64 - ldp x25, x26, [sp, #48] // 16-byte Folded Reload - .seh_save_regp x25, 48 - ldp x23, x24, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x23, 32 - ldp x21, x22, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x21, 16 - ldp x19, x20, [sp], #96 // 16-byte Folded Reload - .seh_save_regp_x x19, 96 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .globl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .p2align 2 -_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -.seh_proc _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIjPjRjPS2_xLx1024EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -// %bb.0: - stp x19, x20, [sp, #-96]! // 16-byte Folded Spill - .seh_save_regp_x x19, 96 - stp x21, x22, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x21, 16 - stp x23, x24, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x23, 32 - stp x25, x26, [sp, #48] // 16-byte Folded Spill - .seh_save_regp x25, 48 - stp x27, x28, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x27, 64 - str x30, [sp, #80] // 8-byte Spill - .seh_save_reg x30, 80 - .seh_endprologue - mov x19, x4 - mov x20, x3 - cmp x0, x2 - str x2, [sp, #88] // 8-byte Spill - b.eq .LBB9_22 -// %bb.1: - ldr x8, [x0] - ldp x26, x21, [x19] - mov x23, x0 - add x22, x8, #1, lsl #12 // =4096 - cmp x1, x22 - b.eq .LBB9_7 -// %bb.2: - ldr x8, [x26] - sub x9, x22, x1 - mov x0, x21 - asr x9, x9, #2 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #2 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x24, x8, #2 - mov x2, x24 - add x25, x1, x24 - bl memmove - cmp x22, x25 - b.eq .LBB9_5 -// %bb.3: - mov x1, x25 - mov w25, #1024 // =0x400 -.LBB9_4: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x1 - ldr x21, [x26, #8]! - asr x8, x8, #2 - mov x0, x21 - cmp x8, #1024 - csel x8, x8, x25, lt - lsl x24, x8, #2 - mov x2, x24 - add x27, x1, x24 - bl memmove - cmp x22, x27 - mov x1, x27 - b.ne .LBB9_4 -.LBB9_5: - ldr x8, [x26] - add x21, x21, x24 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB9_7 -// %bb.6: - ldr x21, [x26, #8]! -.LBB9_7: - ldr x8, [sp, #88] // 8-byte Reload - add x27, x23, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.eq .LBB9_15 -// %bb.8: - mov w28, #1024 // =0x400 - mov w22, #4096 // =0x1000 - b .LBB9_11 -.LBB9_9: // in Loop: Header=BB9_11 Depth=1 - ldr x8, [x26] - add x21, x21, x24 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.eq .LBB9_14 -// %bb.10: // in Loop: Header=BB9_11 Depth=1 - ldr x8, [sp, #88] // 8-byte Reload - add x27, x27, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.eq .LBB9_15 -.LBB9_11: // =>This Loop Header: Depth=1 - // Child Loop BB9_12 Depth 2 - ldr x8, [x26] - ldr x23, [x27] - mov x0, x21 - sub x8, x8, x21 - mov x1, x23 - add x8, x8, #1, lsl #12 // =4096 - asr x25, x8, #2 - cmp x25, #1024 - csel x8, x25, x28, lt - lsl x24, x8, #2 - mov x2, x24 - bl memmove - cmp x25, #1023 - b.gt .LBB9_9 -.LBB9_12: // Parent Loop BB9_11 Depth=1 - // => This Inner Loop Header: Depth=2 - sub x9, x22, x24 - ldr x21, [x26, #8]! - asr x9, x9, #2 - add x1, x23, x24 - mov x0, x21 - cmp x9, #1024 - csel x9, x9, x28, lt - lsl x25, x9, #2 - mov x2, x25 - add x24, x25, x24 - bl memmove - cmp x24, #1, lsl #12 // =4096 - b.ne .LBB9_12 -// %bb.13: // in Loop: Header=BB9_11 Depth=1 - mov x24, x25 - b .LBB9_9 -.LBB9_14: // in Loop: Header=BB9_11 Depth=1 - ldr x21, [x26, #8]! - ldr x8, [sp, #88] // 8-byte Reload - add x27, x27, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.ne .LBB9_11 -.LBB9_15: - ldr x1, [x27] - cmp x1, x20 - b.eq .LBB9_21 -// %bb.16: - ldr x8, [x26] - sub x9, x20, x1 - mov x0, x21 - asr x9, x9, #2 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #2 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x22, x8, #2 - mov x2, x22 - add x23, x1, x22 - bl memmove - cmp x20, x23 - b.eq .LBB9_19 -// %bb.17: - mov x1, x23 - mov w23, #1024 // =0x400 -.LBB9_18: // =>This Inner Loop Header: Depth=1 - sub x8, x20, x1 - ldr x21, [x26, #8]! - asr x8, x8, #2 - mov x0, x21 - cmp x8, #1024 - csel x8, x8, x23, lt - lsl x22, x8, #2 - mov x2, x22 - add x24, x1, x22 - bl memmove - cmp x20, x24 - mov x1, x24 - b.ne .LBB9_18 -.LBB9_19: - ldr x8, [x26] - add x21, x21, x22 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB9_21 -// %bb.20: - ldr x21, [x26, #8]! -.LBB9_21: - str x26, [x19] - b .LBB9_29 -.LBB9_22: - ldp x23, x21, [x19] - cmp x1, x20 - b.eq .LBB9_28 -// %bb.23: - ldr x8, [x23] - sub x9, x20, x1 - mov x0, x21 - asr x9, x9, #2 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #2 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x22, x8, #2 - mov x2, x22 - add x24, x1, x22 - bl memmove - cmp x20, x24 - b.eq .LBB9_26 -// %bb.24: - mov x1, x24 - mov w24, #1024 // =0x400 -.LBB9_25: // =>This Inner Loop Header: Depth=1 - sub x8, x20, x1 - ldr x21, [x23, #8]! - asr x8, x8, #2 - mov x0, x21 - cmp x8, #1024 - csel x8, x8, x24, lt - lsl x22, x8, #2 - mov x2, x22 - add x25, x1, x22 - bl memmove - cmp x20, x25 - mov x1, x25 - b.ne .LBB9_25 -.LBB9_26: - ldr x8, [x23] - add x21, x21, x22 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB9_28 -// %bb.27: - ldr x21, [x23, #8]! -.LBB9_28: - str x23, [x19] -.LBB9_29: - str x21, [x19, #8] - .seh_startepilogue - ldr x30, [sp, #80] // 8-byte Reload - .seh_save_reg x30, 80 - ldp x27, x28, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x27, 64 - ldp x25, x26, [sp, #48] // 16-byte Folded Reload - .seh_save_regp x25, 48 - ldp x23, x24, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x23, 32 - ldp x21, x22, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x21, 16 - ldp x19, x20, [sp], #96 // 16-byte Folded Reload - .seh_save_regp_x x19, 96 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .globl _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .p2align 2 -_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -.seh_proc _ZNSt3__127__for_each_segment_backwardB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_20__move_backward_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -// %bb.0: - stp x19, x20, [sp, #-96]! // 16-byte Folded Spill - .seh_save_regp_x x19, 96 - stp x21, x22, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x21, 16 - stp x23, x24, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x23, 32 - stp x25, x26, [sp, #48] // 16-byte Folded Spill - .seh_save_regp x25, 48 - stp x27, x28, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x27, 64 - str x30, [sp, #80] // 8-byte Spill - .seh_save_reg x30, 80 - .seh_endprologue - ldp x25, x21, [x4] - mov x19, x4 - cmp x0, x2 - mov x20, x1 - b.eq .LBB10_18 -// %bb.1: - ldr x26, [x2] - mov x23, x2 - mov x22, x0 - cmp x26, x3 - b.eq .LBB10_7 -// %bb.2: - ldr x8, [x25] - sub x9, x3, x26 - asr x9, x9, #3 - sub x8, x21, x8 - asr x8, x8, #3 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x2, x8, #3 - sub x24, x3, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x24 - bl memmove - cmp x26, x24 - b.eq .LBB10_5 -// %bb.3: - mov w27, #512 // =0x200 -.LBB10_4: // =>This Inner Loop Header: Depth=1 - sub x8, x24, x26 - ldr x9, [x25, #-8]! - asr x8, x8, #3 - cmp x8, #512 - csel x8, x8, x27, lt - lsl x2, x8, #3 - sub x8, x9, x2 - sub x24, x24, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x24 - mov x0, x21 - bl memmove - cmp x26, x24 - b.ne .LBB10_4 -.LBB10_5: - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB10_7 -// %bb.6: - ldr x21, [x25, #8]! -.LBB10_7: - sub x24, x23, #8 - stp x25, x21, [x19] - cmp x22, x24 - b.eq .LBB10_14 -// %bb.8: - mov w26, #512 // =0x200 - b .LBB10_10 -.LBB10_9: // in Loop: Header=BB10_10 Depth=1 - sub x24, x24, #8 - stp x25, x21, [x19] - cmp x22, x24 - b.eq .LBB10_14 -.LBB10_10: // =>This Loop Header: Depth=1 - // Child Loop BB10_11 Depth 2 - ldr x8, [x25] - ldr x28, [x24] - sub x8, x21, x8 - asr x8, x8, #3 - cmp x8, #512 - csel x8, x8, x26, lt - lsl x2, x8, #3 - mov w8, #4096 // =0x1000 - sub x27, x8, x2 - sub x21, x21, x2 - add x1, x28, x27 - mov x0, x21 - add x23, x28, x27 - bl memmove - cbz x27, .LBB10_12 -.LBB10_11: // Parent Loop BB10_10 Depth=1 - // => This Inner Loop Header: Depth=2 - sub x8, x23, x28 - ldr x9, [x25, #-8]! - asr x8, x8, #3 - cmp x8, #512 - csel x8, x8, x26, lt - lsl x2, x8, #3 - sub x8, x9, x2 - sub x23, x23, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x23 - mov x0, x21 - bl memmove - cmp x28, x23 - b.ne .LBB10_11 -.LBB10_12: // in Loop: Header=BB10_10 Depth=1 - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB10_9 -// %bb.13: // in Loop: Header=BB10_10 Depth=1 - ldr x21, [x25, #8]! - b .LBB10_9 -.LBB10_14: - ldr x8, [x24] - add x8, x8, #1, lsl #12 // =4096 - cmp x20, x8 - b.eq .LBB10_24 -// %bb.15: - ldr x9, [x25] - sub x10, x8, x20 - asr x10, x10, #3 - sub x9, x21, x9 - asr x9, x9, #3 - cmp x10, x9 - csel x9, x10, x9, lt - lsl x2, x9, #3 - sub x22, x8, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x22 - bl memmove - cmp x20, x22 - b.eq .LBB10_22 -// %bb.16: - mov w23, #512 // =0x200 -.LBB10_17: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x20 - ldr x9, [x25, #-8]! - asr x8, x8, #3 - cmp x8, #512 - csel x8, x8, x23, lt - lsl x2, x8, #3 - sub x8, x9, x2 - sub x22, x22, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x22 - mov x0, x21 - bl memmove - cmp x20, x22 - b.ne .LBB10_17 - b .LBB10_22 -.LBB10_18: - cmp x20, x3 - b.eq .LBB10_24 -// %bb.19: - ldr x8, [x25] - sub x9, x3, x20 - asr x9, x9, #3 - sub x8, x21, x8 - asr x8, x8, #3 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x2, x8, #3 - sub x22, x3, x2 - sub x21, x21, x2 - mov x0, x21 - mov x1, x22 - bl memmove - cmp x20, x22 - b.eq .LBB10_22 -// %bb.20: - mov w23, #512 // =0x200 -.LBB10_21: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x20 - ldr x9, [x25, #-8]! - asr x8, x8, #3 - cmp x8, #512 - csel x8, x8, x23, lt - lsl x2, x8, #3 - sub x8, x9, x2 - sub x22, x22, x2 - add x21, x8, #1, lsl #12 // =4096 - mov x1, x22 - mov x0, x21 - bl memmove - cmp x20, x22 - b.ne .LBB10_21 -.LBB10_22: - ldr x8, [x25] - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB10_24 -// %bb.23: - ldr x21, [x25, #8]! -.LBB10_24: - stp x25, x21, [x19] - .seh_startepilogue - ldr x30, [sp, #80] // 8-byte Reload - .seh_save_reg x30, 80 - ldp x27, x28, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x27, 64 - ldp x25, x26, [sp, #48] // 16-byte Folded Reload - .seh_save_regp x25, 48 - ldp x23, x24, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x23, 32 - ldp x21, x22, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x21, 16 - ldp x19, x20, [sp], #96 // 16-byte Folded Reload - .seh_save_regp_x x19, 96 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .def _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_; - .scl 2; - .type 32; - .endef - .section .text$_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_,"xr",discard,_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .globl _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ // -- Begin function _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ - .p2align 2 -_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_: // @_ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -.seh_proc _ZNSt3__118__for_each_segmentB9nqe230000INS_16__deque_iteratorIyPyRyPS2_xLx512EEEZNKS_11__move_implINS_17_ClassicAlgPolicyEEclB9nqe230000IS5_S5_TnNS_9enable_ifIX25__is_segmented_iterator_vIT_EEiE4typeELi0EEENS_4pairISB_T0_EESB_SB_SF_EUlS2_S2_E_EEvSB_SB_SF_ -// %bb.0: - stp x19, x20, [sp, #-96]! // 16-byte Folded Spill - .seh_save_regp_x x19, 96 - stp x21, x22, [sp, #16] // 16-byte Folded Spill - .seh_save_regp x21, 16 - stp x23, x24, [sp, #32] // 16-byte Folded Spill - .seh_save_regp x23, 32 - stp x25, x26, [sp, #48] // 16-byte Folded Spill - .seh_save_regp x25, 48 - stp x27, x28, [sp, #64] // 16-byte Folded Spill - .seh_save_regp x27, 64 - str x30, [sp, #80] // 8-byte Spill - .seh_save_reg x30, 80 - .seh_endprologue - mov x19, x4 - mov x20, x3 - cmp x0, x2 - str x2, [sp, #88] // 8-byte Spill - b.eq .LBB11_22 -// %bb.1: - ldr x8, [x0] - ldp x26, x21, [x19] - mov x23, x0 - add x22, x8, #1, lsl #12 // =4096 - cmp x1, x22 - b.eq .LBB11_7 -// %bb.2: - ldr x8, [x26] - sub x9, x22, x1 - mov x0, x21 - asr x9, x9, #3 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #3 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x24, x8, #3 - mov x2, x24 - add x25, x1, x24 - bl memmove - cmp x22, x25 - b.eq .LBB11_5 -// %bb.3: - mov x1, x25 - mov w25, #512 // =0x200 -.LBB11_4: // =>This Inner Loop Header: Depth=1 - sub x8, x22, x1 - ldr x21, [x26, #8]! - asr x8, x8, #3 - mov x0, x21 - cmp x8, #512 - csel x8, x8, x25, lt - lsl x24, x8, #3 - mov x2, x24 - add x27, x1, x24 - bl memmove - cmp x22, x27 - mov x1, x27 - b.ne .LBB11_4 -.LBB11_5: - ldr x8, [x26] - add x21, x21, x24 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB11_7 -// %bb.6: - ldr x21, [x26, #8]! -.LBB11_7: - ldr x8, [sp, #88] // 8-byte Reload - add x27, x23, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.eq .LBB11_15 -// %bb.8: - mov w28, #512 // =0x200 - mov w22, #4096 // =0x1000 - b .LBB11_11 -.LBB11_9: // in Loop: Header=BB11_11 Depth=1 - ldr x8, [x26] - add x21, x21, x24 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.eq .LBB11_14 -// %bb.10: // in Loop: Header=BB11_11 Depth=1 - ldr x8, [sp, #88] // 8-byte Reload - add x27, x27, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.eq .LBB11_15 -.LBB11_11: // =>This Loop Header: Depth=1 - // Child Loop BB11_12 Depth 2 - ldr x8, [x26] - ldr x23, [x27] - mov x0, x21 - sub x8, x8, x21 - mov x1, x23 - add x8, x8, #1, lsl #12 // =4096 - asr x25, x8, #3 - cmp x25, #512 - csel x8, x25, x28, lt - lsl x24, x8, #3 - mov x2, x24 - bl memmove - cmp x25, #511 - b.gt .LBB11_9 -.LBB11_12: // Parent Loop BB11_11 Depth=1 - // => This Inner Loop Header: Depth=2 - sub x9, x22, x24 - ldr x21, [x26, #8]! - asr x9, x9, #3 - add x1, x23, x24 - mov x0, x21 - cmp x9, #512 - csel x9, x9, x28, lt - lsl x25, x9, #3 - mov x2, x25 - add x24, x25, x24 - bl memmove - cmp x24, #1, lsl #12 // =4096 - b.ne .LBB11_12 -// %bb.13: // in Loop: Header=BB11_11 Depth=1 - mov x24, x25 - b .LBB11_9 -.LBB11_14: // in Loop: Header=BB11_11 Depth=1 - ldr x21, [x26, #8]! - ldr x8, [sp, #88] // 8-byte Reload - add x27, x27, #8 - stp x26, x21, [x19] - cmp x27, x8 - b.ne .LBB11_11 -.LBB11_15: - ldr x1, [x27] - cmp x1, x20 - b.eq .LBB11_21 -// %bb.16: - ldr x8, [x26] - sub x9, x20, x1 - mov x0, x21 - asr x9, x9, #3 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #3 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x22, x8, #3 - mov x2, x22 - add x23, x1, x22 - bl memmove - cmp x20, x23 - b.eq .LBB11_19 -// %bb.17: - mov x1, x23 - mov w23, #512 // =0x200 -.LBB11_18: // =>This Inner Loop Header: Depth=1 - sub x8, x20, x1 - ldr x21, [x26, #8]! - asr x8, x8, #3 - mov x0, x21 - cmp x8, #512 - csel x8, x8, x23, lt - lsl x22, x8, #3 - mov x2, x22 - add x24, x1, x22 - bl memmove - cmp x20, x24 - mov x1, x24 - b.ne .LBB11_18 -.LBB11_19: - ldr x8, [x26] - add x21, x21, x22 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB11_21 -// %bb.20: - ldr x21, [x26, #8]! -.LBB11_21: - str x26, [x19] - b .LBB11_29 -.LBB11_22: - ldp x23, x21, [x19] - cmp x1, x20 - b.eq .LBB11_28 -// %bb.23: - ldr x8, [x23] - sub x9, x20, x1 - mov x0, x21 - asr x9, x9, #3 - sub x8, x8, x21 - add x8, x8, #1, lsl #12 // =4096 - asr x8, x8, #3 - cmp x9, x8 - csel x8, x9, x8, lt - lsl x22, x8, #3 - mov x2, x22 - add x24, x1, x22 - bl memmove - cmp x20, x24 - b.eq .LBB11_26 -// %bb.24: - mov x1, x24 - mov w24, #512 // =0x200 -.LBB11_25: // =>This Inner Loop Header: Depth=1 - sub x8, x20, x1 - ldr x21, [x23, #8]! - asr x8, x8, #3 - mov x0, x21 - cmp x8, #512 - csel x8, x8, x24, lt - lsl x22, x8, #3 - mov x2, x22 - add x25, x1, x22 - bl memmove - cmp x20, x25 - mov x1, x25 - b.ne .LBB11_25 -.LBB11_26: - ldr x8, [x23] - add x21, x21, x22 - add x8, x8, #1, lsl #12 // =4096 - cmp x21, x8 - b.ne .LBB11_28 -// %bb.27: - ldr x21, [x23, #8]! -.LBB11_28: - str x23, [x19] -.LBB11_29: - str x21, [x19, #8] - .seh_startepilogue - ldr x30, [sp, #80] // 8-byte Reload - .seh_save_reg x30, 80 - ldp x27, x28, [sp, #64] // 16-byte Folded Reload - .seh_save_regp x27, 64 - ldp x25, x26, [sp, #48] // 16-byte Folded Reload - .seh_save_regp x25, 48 - ldp x23, x24, [sp, #32] // 16-byte Folded Reload - .seh_save_regp x23, 32 - ldp x21, x22, [sp, #16] // 16-byte Folded Reload - .seh_save_regp x21, 16 - ldp x19, x20, [sp], #96 // 16-byte Folded Reload - .seh_save_regp_x x19, 96 - .seh_endepilogue - ret - .seh_endfunclet - .seh_endproc - // -- End function - .section .debug$S,"dr" - .p2align 2, 0x0 - .word 4 // Debug section magic - .word 241 - .word .Ltmp1-.Ltmp0 // Subsection size -.Ltmp0: - .hword .Ltmp3-.Ltmp2 // Record length -.Ltmp2: - .hword 4353 // Record kind: S_OBJNAME - .word 0 // Signature - .byte 0 // Object name - .p2align 2, 0x0 -.Ltmp3: - .hword .Ltmp5-.Ltmp4 // Record length -.Ltmp4: - .hword 4412 // Record kind: S_COMPILE3 - .word 16385 // Flags and language - .hword 246 // CPUType - .hword 22 // Frontend version - .hword 0 - .hword 0 - .hword 0 - .hword 22000 // Backend version - .hword 0 - .hword 0 - .hword 0 - .asciz "clang version 22.0.0git (git@github.com:trcrsired/llvm-project.git 1c607433d98b2d1a5f6f38bd64f3b180520e2fe6)" // Null-terminated compiler version string - .p2align 2, 0x0 -.Ltmp5: -.Ltmp1: - .p2align 2, 0x0 - .addrsig - .addrsig_sym __gxx_personality_seh0