@zigc/lib 0.17.0-dev.135 → 0.17.0-dev.215
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/c/stdlib.zig +32 -22
- package/compiler/aro/aro/Compilation.zig +0 -3
- package/compiler/translate-c/ast.zig +5 -2
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +1 -22
- package/docs/wasm/markdown/Parser.zig +5 -9
- package/include/__clang_spirv_builtins.h +12 -12
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/amo.h +131 -0
- package/include/amxavx512intrin.h +215 -1
- package/include/amxintrin.h +0 -2
- package/include/arm_acle.h +37 -27
- package/include/arm_neon.h +218 -82
- package/include/arm_sme.h +8 -8
- package/include/arm_sve.h +4162 -3782
- package/include/avx10_2_512bf16intrin.h +19 -12
- package/include/avx10_2_512convertintrin.h +1 -1
- package/include/avx10_2_512niintrin.h +31 -31
- package/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/include/avx10_2bf16intrin.h +54 -45
- package/include/avx10_2convertintrin.h +2 -2
- package/include/avx10_2copyintrin.h +1 -1
- package/include/avx10_2niintrin.h +14 -14
- package/include/avx10_2satcvtdsintrin.h +2 -2
- package/include/avx2intrin.h +275 -377
- package/include/avx512bf16intrin.h +25 -16
- package/include/avx512bitalgintrin.h +19 -30
- package/include/avx512bwintrin.h +386 -505
- package/include/avx512cdintrin.h +42 -55
- package/include/avx512dqintrin.h +132 -161
- package/include/avx512fintrin.h +1015 -1424
- package/include/avx512fp16intrin.h +112 -110
- package/include/avx512ifmaintrin.h +32 -34
- package/include/avx512ifmavlintrin.h +73 -46
- package/include/avx512vbmi2intrin.h +43 -32
- package/include/avx512vbmiintrin.h +19 -27
- package/include/avx512vbmivlintrin.h +35 -49
- package/include/avx512vlbf16intrin.h +32 -22
- package/include/avx512vlbitalgintrin.h +37 -53
- package/include/avx512vlbwintrin.h +470 -573
- package/include/avx512vlcdintrin.h +74 -102
- package/include/avx512vldqintrin.h +110 -127
- package/include/avx512vlfp16intrin.h +130 -111
- package/include/avx512vlintrin.h +945 -1299
- package/include/avx512vlvbmi2intrin.h +78 -63
- package/include/avx512vlvnniintrin.h +21 -18
- package/include/avx512vlvp2intersectintrin.h +2 -2
- package/include/avx512vnniintrin.h +10 -10
- package/include/avx512vp2intersectintrin.h +1 -2
- package/include/avx512vpopcntdqintrin.h +8 -10
- package/include/avx512vpopcntdqvlintrin.h +17 -15
- package/include/avxifmaintrin.h +16 -0
- package/include/avxintrin.h +165 -241
- package/include/avxvnniint16intrin.h +118 -99
- package/include/avxvnniint8intrin.h +56 -32
- package/include/avxvnniintrin.h +16 -8
- package/include/cpuid.h +101 -4
- package/include/emmintrin.h +168 -168
- package/include/f16cintrin.h +23 -9
- package/include/float.h +16 -155
- package/include/fma4intrin.h +98 -96
- package/include/fmaintrin.h +96 -66
- package/include/gfniintrin.h +21 -16
- package/include/hexagon_types.h +23 -20
- package/include/hvx_hexagon_protos.h +649 -860
- package/include/immintrin.h +0 -12
- package/include/intrin.h +4 -0
- package/include/lasxintrin.h +113 -0
- package/include/llvm_libc_wrappers/assert.h +3 -5
- package/include/llvm_libc_wrappers/ctype.h +3 -115
- package/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/include/llvm_libc_wrappers/stdio.h +10 -38
- package/include/llvm_libc_wrappers/stdlib.h +3 -24
- package/include/llvm_libc_wrappers/string.h +2 -70
- package/include/llvm_libc_wrappers/time.h +4 -10
- package/include/mmintrin.h +188 -257
- package/include/module.modulemap +23 -4
- package/include/movrs_avx10_2_512intrin.h +2 -2
- package/include/movrs_avx10_2intrin.h +4 -4
- package/include/pmmintrin.h +12 -24
- package/include/ptrauth.h +16 -2
- package/include/riscv_mips.h +34 -0
- package/include/riscv_nds.h +89 -0
- package/include/sifive_vector.h +58 -2
- package/include/sm4evexintrin.h +2 -2
- package/include/smmintrin.h +77 -59
- package/include/spirvintrin.h +194 -0
- package/include/stddefer.h +19 -0
- package/include/tmmintrin.h +116 -147
- package/include/vaesintrin.h +1 -2
- package/include/xmmintrin.h +44 -70
- package/include/xopintrin.h +20 -10
- package/libcxx/include/__algorithm/all_of.h +11 -5
- package/libcxx/include/__algorithm/comp.h +4 -0
- package/libcxx/include/__algorithm/copy.h +28 -147
- package/libcxx/include/__algorithm/copy_backward.h +9 -24
- package/libcxx/include/__algorithm/copy_n.h +50 -16
- package/libcxx/include/__algorithm/count.h +2 -2
- package/libcxx/include/__algorithm/equal.h +43 -55
- package/libcxx/include/__algorithm/fill.h +26 -8
- package/libcxx/include/__algorithm/fill_n.h +32 -46
- package/libcxx/include/__algorithm/find.h +96 -39
- package/libcxx/include/__algorithm/find_end.h +105 -0
- package/libcxx/include/__algorithm/for_each.h +18 -24
- package/libcxx/include/__algorithm/for_each_n.h +20 -47
- package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
- package/libcxx/include/__algorithm/for_each_segment.h +26 -0
- package/libcxx/include/__algorithm/generate.h +4 -2
- package/libcxx/include/__algorithm/generate_n.h +19 -6
- package/libcxx/include/__algorithm/is_permutation.h +4 -4
- package/libcxx/include/__algorithm/iterator_operations.h +3 -0
- package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
- package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
- package/libcxx/include/__algorithm/make_heap.h +16 -4
- package/libcxx/include/__algorithm/mismatch.h +2 -2
- package/libcxx/include/__algorithm/move.h +8 -19
- package/libcxx/include/__algorithm/move_backward.h +9 -24
- package/libcxx/include/__algorithm/none_of.h +4 -4
- package/libcxx/include/__algorithm/partial_sort.h +1 -1
- package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
- package/libcxx/include/__algorithm/pstl.h +9 -9
- package/libcxx/include/__algorithm/radix_sort.h +27 -25
- package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
- package/libcxx/include/__algorithm/ranges_equal.h +17 -26
- package/libcxx/include/__algorithm/ranges_fill.h +7 -6
- package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
- package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
- package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
- package/libcxx/include/__algorithm/rotate.h +27 -44
- package/libcxx/include/__algorithm/search_n.h +49 -37
- package/libcxx/include/__algorithm/sift_down.h +19 -18
- package/libcxx/include/__algorithm/simd_utils.h +33 -4
- package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
- package/libcxx/include/__algorithm/stable_sort.h +1 -1
- package/libcxx/include/__assertion_handler +31 -4
- package/libcxx/include/__atomic/atomic.h +36 -60
- package/libcxx/include/__atomic/atomic_flag.h +19 -37
- package/libcxx/include/__atomic/atomic_ref.h +29 -12
- package/libcxx/include/__atomic/atomic_sync.h +127 -55
- package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
- package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
- package/libcxx/include/__atomic/contention_t.h +27 -3
- package/libcxx/include/__atomic/floating_point_helper.h +55 -0
- package/libcxx/include/__bit/countl.h +1 -2
- package/libcxx/include/__bit/countr.h +1 -2
- package/libcxx/include/__bit/has_single_bit.h +1 -1
- package/libcxx/include/__bit/popcount.h +0 -1
- package/libcxx/include/__bit/rotate.h +15 -26
- package/libcxx/include/__bit_reference +207 -18
- package/libcxx/include/__charconv/from_chars_integral.h +1 -1
- package/libcxx/include/__charconv/from_chars_result.h +1 -1
- package/libcxx/include/__charconv/to_chars_integral.h +1 -0
- package/libcxx/include/__charconv/to_chars_result.h +1 -1
- package/libcxx/include/__charconv/traits.h +3 -24
- package/libcxx/include/__chrono/day.h +11 -0
- package/libcxx/include/__chrono/duration.h +58 -33
- package/libcxx/include/__chrono/file_clock.h +4 -2
- package/libcxx/include/__chrono/is_clock.h +72 -0
- package/libcxx/include/__chrono/leap_second.h +13 -0
- package/libcxx/include/__chrono/month.h +13 -0
- package/libcxx/include/__chrono/month_weekday.h +22 -0
- package/libcxx/include/__chrono/monthday.h +20 -0
- package/libcxx/include/__chrono/steady_clock.h +1 -1
- package/libcxx/include/__chrono/system_clock.h +3 -3
- package/libcxx/include/__chrono/time_point.h +37 -13
- package/libcxx/include/__chrono/weekday.h +25 -0
- package/libcxx/include/__chrono/year.h +11 -0
- package/libcxx/include/__chrono/year_month.h +13 -0
- package/libcxx/include/__chrono/year_month_day.h +23 -0
- package/libcxx/include/__chrono/year_month_weekday.h +26 -0
- package/libcxx/include/__chrono/zoned_time.h +16 -0
- package/libcxx/include/__compare/is_eq.h +6 -6
- package/libcxx/include/__compare/strong_order.h +12 -30
- package/libcxx/include/__compare/three_way_comparable.h +2 -2
- package/libcxx/include/__concepts/comparison_common_type.h +40 -0
- package/libcxx/include/__concepts/equality_comparable.h +2 -1
- package/libcxx/include/__condition_variable/condition_variable.h +1 -1
- package/libcxx/include/__config +63 -280
- package/libcxx/include/__configuration/abi.h +14 -24
- package/libcxx/include/__configuration/availability.h +65 -118
- package/libcxx/include/__configuration/compiler.h +6 -6
- package/libcxx/include/__configuration/experimental.h +38 -0
- package/libcxx/include/__configuration/hardening.h +215 -0
- package/libcxx/include/__configuration/language.h +3 -0
- package/libcxx/include/__configuration/platform.h +9 -16
- package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
- package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
- package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
- package/libcxx/include/__exception/exception.h +6 -4
- package/libcxx/include/__exception/exception_ptr.h +27 -5
- package/libcxx/include/__exception/nested_exception.h +2 -2
- package/libcxx/include/__exception/operations.h +5 -5
- package/libcxx/include/__expected/bad_expected_access.h +8 -6
- package/libcxx/include/__expected/expected.h +62 -64
- package/libcxx/include/__expected/unexpected.h +4 -4
- package/libcxx/include/__filesystem/copy_options.h +4 -4
- package/libcxx/include/__filesystem/directory_entry.h +37 -33
- package/libcxx/include/__filesystem/directory_iterator.h +9 -11
- package/libcxx/include/__filesystem/directory_options.h +7 -4
- package/libcxx/include/__filesystem/file_status.h +3 -3
- package/libcxx/include/__filesystem/filesystem_error.h +9 -10
- package/libcxx/include/__filesystem/operations.h +97 -66
- package/libcxx/include/__filesystem/path.h +68 -64
- package/libcxx/include/__filesystem/path_iterator.h +1 -3
- package/libcxx/include/__filesystem/perm_options.h +4 -4
- package/libcxx/include/__filesystem/perms.h +4 -4
- package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
- package/libcxx/include/__filesystem/space_info.h +1 -1
- package/libcxx/include/__filesystem/u8path.h +12 -14
- package/libcxx/include/__flat_map/flat_map.h +88 -71
- package/libcxx/include/__flat_map/flat_multimap.h +251 -172
- package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
- package/libcxx/include/__flat_map/utils.h +1 -0
- package/libcxx/include/__flat_set/flat_multiset.h +211 -143
- package/libcxx/include/__flat_set/flat_set.h +86 -68
- package/libcxx/include/__format/concepts.h +0 -14
- package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
- package/libcxx/include/__format/fmt_pair_like.h +42 -0
- package/libcxx/include/__format/format_arg.h +7 -10
- package/libcxx/include/__format/format_args.h +1 -1
- package/libcxx/include/__format/format_context.h +5 -5
- package/libcxx/include/__format/format_parse_context.h +2 -2
- package/libcxx/include/__format/formatter_output.h +30 -34
- package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
- package/libcxx/include/__format/range_default_formatter.h +2 -41
- package/libcxx/include/__format/range_format.h +71 -0
- package/libcxx/include/__format/range_formatter.h +1 -0
- package/libcxx/include/__format/width_estimation_table.h +4 -2
- package/libcxx/include/__functional/bind.h +10 -15
- package/libcxx/include/__functional/bind_back.h +1 -1
- package/libcxx/include/__functional/bind_front.h +1 -1
- package/libcxx/include/__functional/function.h +57 -75
- package/libcxx/include/__functional/hash.h +1 -10
- package/libcxx/include/__functional/identity.h +1 -1
- package/libcxx/include/__functional/is_transparent.h +8 -0
- package/libcxx/include/__functional/mem_fn.h +2 -1
- package/libcxx/include/__functional/operations.h +18 -0
- package/libcxx/include/__functional/ranges_operations.h +7 -0
- package/libcxx/include/__functional/reference_wrapper.h +7 -5
- package/libcxx/include/__functional/weak_result_type.h +14 -28
- package/libcxx/include/__fwd/ios.h +1 -1
- package/libcxx/include/__fwd/tuple.h +14 -0
- package/libcxx/include/__hash_table +371 -357
- package/libcxx/include/__ios/fpos.h +4 -4
- package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/bounded_iter.h +7 -8
- package/libcxx/include/__iterator/concepts.h +6 -9
- package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
- package/libcxx/include/__iterator/distance.h +40 -18
- package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/insert_iterator.h +1 -7
- package/libcxx/include/__iterator/istream_iterator.h +6 -7
- package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
- package/libcxx/include/__iterator/iter_move.h +1 -1
- package/libcxx/include/__iterator/iterator.h +13 -0
- package/libcxx/include/__iterator/iterator_traits.h +13 -14
- package/libcxx/include/__iterator/ostream_iterator.h +1 -7
- package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
- package/libcxx/include/__iterator/reverse_iterator.h +8 -13
- package/libcxx/include/__iterator/segmented_iterator.h +3 -8
- package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
- package/libcxx/include/__iterator/wrap_iter.h +8 -6
- package/libcxx/include/__locale +3 -10
- package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
- package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
- package/libcxx/include/__locale_dir/messages.h +1 -1
- package/libcxx/include/__locale_dir/money.h +2 -2
- package/libcxx/include/__locale_dir/num.h +190 -243
- package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
- package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
- package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
- package/libcxx/include/__locale_dir/support/linux.h +0 -37
- package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
- package/libcxx/include/__locale_dir/support/newlib.h +243 -0
- package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
- package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
- package/libcxx/include/__locale_dir/support/windows.h +0 -29
- package/libcxx/include/__locale_dir/time.h +3 -7
- package/libcxx/include/__math/hypot.h +1 -1
- package/libcxx/include/__math/logarithms.h +1 -1
- package/libcxx/include/__math/traits.h +80 -11
- package/libcxx/include/__mdspan/extents.h +7 -4
- package/libcxx/include/__mdspan/layout_stride.h +4 -5
- package/libcxx/include/__mdspan/mdspan.h +29 -23
- package/libcxx/include/__memory/addressof.h +7 -5
- package/libcxx/include/__memory/align.h +18 -1
- package/libcxx/include/__memory/allocate_at_least.h +15 -10
- package/libcxx/include/__memory/allocator.h +14 -26
- package/libcxx/include/__memory/allocator_traits.h +6 -4
- package/libcxx/include/__memory/compressed_pair.h +15 -9
- package/libcxx/include/__memory/construct_at.h +12 -23
- package/libcxx/include/__memory/inout_ptr.h +1 -1
- package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
- package/libcxx/include/__memory/out_ptr.h +1 -1
- package/libcxx/include/__memory/pointer_traits.h +1 -1
- package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
- package/libcxx/include/__memory/shared_count.h +9 -30
- package/libcxx/include/__memory/shared_ptr.h +100 -145
- package/libcxx/include/__memory/temp_value.h +1 -2
- package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
- package/libcxx/include/__memory/unique_ptr.h +14 -16
- package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
- package/libcxx/include/__memory_resource/memory_resource.h +4 -2
- package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
- package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
- package/libcxx/include/__memory_resource/pool_options.h +1 -1
- package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
- package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
- package/libcxx/include/__mutex/mutex.h +2 -2
- package/libcxx/include/__mutex/once_flag.h +14 -11
- package/libcxx/include/__mutex/tag_types.h +3 -3
- package/libcxx/include/__mutex/unique_lock.h +8 -7
- package/libcxx/include/__new/align_val_t.h +6 -0
- package/libcxx/include/__new/allocate.h +1 -2
- package/libcxx/include/__new/exceptions.h +8 -2
- package/libcxx/include/__new/global_new_delete.h +4 -11
- package/libcxx/include/__new/interference_size.h +0 -4
- package/libcxx/include/__new/launder.h +3 -5
- package/libcxx/include/__new/nothrow_t.h +1 -1
- package/libcxx/include/__numeric/gcd_lcm.h +24 -34
- package/libcxx/include/__numeric/midpoint.h +9 -14
- package/libcxx/include/__numeric/pstl.h +2 -2
- package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
- package/libcxx/include/__ostream/basic_ostream.h +8 -8
- package/libcxx/include/__pstl/backends/default.h +14 -14
- package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
- package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
- package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
- package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
- package/libcxx/include/__random/binomial_distribution.h +10 -4
- package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
- package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
- package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
- package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
- package/libcxx/include/__ranges/adjacent_view.h +419 -0
- package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
- package/libcxx/include/__ranges/chunk_by_view.h +6 -6
- package/libcxx/include/__ranges/common_view.h +7 -7
- package/libcxx/include/__ranges/drop_view.h +8 -8
- package/libcxx/include/__ranges/drop_while_view.h +5 -5
- package/libcxx/include/__ranges/elements_of.h +49 -0
- package/libcxx/include/__ranges/empty_view.h +5 -5
- package/libcxx/include/__ranges/filter_view.h +10 -10
- package/libcxx/include/__ranges/iota_view.h +41 -22
- package/libcxx/include/__ranges/owning_view.h +15 -15
- package/libcxx/include/__ranges/ref_view.h +6 -6
- package/libcxx/include/__ranges/repeat_view.h +17 -10
- package/libcxx/include/__ranges/single_view.h +8 -8
- package/libcxx/include/__ranges/take_view.h +9 -9
- package/libcxx/include/__ranges/transform_view.h +1 -2
- package/libcxx/include/__ranges/view_interface.h +10 -10
- package/libcxx/include/__ranges/zip_transform_view.h +357 -0
- package/libcxx/include/__ranges/zip_view.h +20 -20
- package/libcxx/include/__split_buffer +612 -240
- package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
- package/libcxx/include/__stop_token/stop_callback.h +2 -2
- package/libcxx/include/__stop_token/stop_source.h +1 -1
- package/libcxx/include/__stop_token/stop_state.h +4 -4
- package/libcxx/include/__stop_token/stop_token.h +1 -1
- package/libcxx/include/__string/char_traits.h +51 -31
- package/libcxx/include/__string/constexpr_c_functions.h +5 -5
- package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
- package/libcxx/include/__system_error/error_category.h +8 -8
- package/libcxx/include/__system_error/error_code.h +5 -5
- package/libcxx/include/__system_error/error_condition.h +4 -4
- package/libcxx/include/__system_error/system_error.h +1 -1
- package/libcxx/include/__thread/id.h +1 -1
- package/libcxx/include/__thread/jthread.h +1 -1
- package/libcxx/include/__thread/poll_with_backoff.h +27 -8
- package/libcxx/include/__thread/support/c11.h +8 -8
- package/libcxx/include/__thread/support/pthread.h +8 -8
- package/libcxx/include/__thread/support/windows.h +8 -8
- package/libcxx/include/__thread/thread.h +13 -8
- package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
- package/libcxx/include/__tree +849 -701
- package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
- package/libcxx/include/__tuple/tuple_element.h +0 -12
- package/libcxx/include/__tuple/tuple_size.h +0 -4
- package/libcxx/include/__tuple/tuple_transform.h +45 -0
- package/libcxx/include/__type_traits/aligned_storage.h +13 -40
- package/libcxx/include/__type_traits/desugars_to.h +4 -0
- package/libcxx/include/__type_traits/invoke.h +8 -0
- package/libcxx/include/__type_traits/is_allocator.h +6 -7
- package/libcxx/include/__type_traits/is_array.h +26 -0
- package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
- package/libcxx/include/__type_traits/is_final.h +1 -1
- package/libcxx/include/__type_traits/is_floating_point.h +7 -6
- package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
- package/libcxx/include/__type_traits/is_specialization.h +2 -6
- package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
- package/libcxx/include/__type_traits/make_transparent.h +52 -0
- package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
- package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
- package/libcxx/include/__utility/cmp.h +19 -7
- package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
- package/libcxx/include/__utility/in_place.h +1 -1
- package/libcxx/include/__utility/integer_sequence.h +56 -41
- package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
- package/libcxx/include/__utility/pair.h +22 -25
- package/libcxx/include/__utility/scope_guard.h +2 -0
- package/libcxx/include/__utility/try_key_extraction.h +114 -0
- package/libcxx/include/__vector/vector.h +187 -160
- package/libcxx/include/__vector/vector_bool.h +76 -83
- package/libcxx/include/any +118 -155
- package/libcxx/include/array +88 -56
- package/libcxx/include/atomic +2 -0
- package/libcxx/include/barrier +20 -24
- package/libcxx/include/bitset +49 -30
- package/libcxx/include/ccomplex +3 -11
- package/libcxx/include/chrono +47 -0
- package/libcxx/include/ciso646 +3 -6
- package/libcxx/include/complex +77 -65
- package/libcxx/include/complex.h +10 -10
- package/libcxx/include/condition_variable +3 -3
- package/libcxx/include/cstdalign +3 -10
- package/libcxx/include/cstdbool +3 -10
- package/libcxx/include/ctgmath +2 -11
- package/libcxx/include/ctype.h +24 -24
- package/libcxx/include/cwchar +2 -2
- package/libcxx/include/deque +109 -225
- package/libcxx/include/errno.h +269 -269
- package/libcxx/include/exception +4 -1
- package/libcxx/include/ext/hash_map +7 -48
- package/libcxx/include/ext/hash_set +2 -8
- package/libcxx/include/fenv.h +43 -43
- package/libcxx/include/flat_map +663 -11
- package/libcxx/include/flat_set +543 -8
- package/libcxx/include/float.h +16 -16
- package/libcxx/include/forward_list +33 -53
- package/libcxx/include/fstream +57 -42
- package/libcxx/include/future +41 -51
- package/libcxx/include/initializer_list +9 -3
- package/libcxx/include/inttypes.h +16 -16
- package/libcxx/include/ios +28 -28
- package/libcxx/include/istream +19 -13
- package/libcxx/include/iterator +10 -0
- package/libcxx/include/latch +7 -5
- package/libcxx/include/limits +4 -4
- package/libcxx/include/list +61 -79
- package/libcxx/include/map +386 -274
- package/libcxx/include/math.h +19 -0
- package/libcxx/include/mdspan +1 -5
- package/libcxx/include/mutex +29 -19
- package/libcxx/include/optional +644 -149
- package/libcxx/include/print +9 -5
- package/libcxx/include/queue +39 -37
- package/libcxx/include/ranges +48 -0
- package/libcxx/include/regex +33 -31
- package/libcxx/include/scoped_allocator +16 -11
- package/libcxx/include/semaphore +15 -18
- package/libcxx/include/set +220 -192
- package/libcxx/include/shared_mutex +3 -8
- package/libcxx/include/span +53 -37
- package/libcxx/include/sstream +34 -28
- package/libcxx/include/stack +13 -15
- package/libcxx/include/stddef.h +10 -10
- package/libcxx/include/stdexcept +2 -2
- package/libcxx/include/stdio.h +20 -21
- package/libcxx/include/streambuf +59 -19
- package/libcxx/include/string +574 -573
- package/libcxx/include/string_view +113 -89
- package/libcxx/include/strstream +10 -10
- package/libcxx/include/syncstream +4 -4
- package/libcxx/include/tgmath.h +12 -12
- package/libcxx/include/tuple +242 -212
- package/libcxx/include/type_traits +8 -2
- package/libcxx/include/typeindex +5 -3
- package/libcxx/include/typeinfo +92 -89
- package/libcxx/include/unordered_map +179 -304
- package/libcxx/include/unordered_set +168 -195
- package/libcxx/include/utility +12 -0
- package/libcxx/include/valarray +106 -161
- package/libcxx/include/variant +25 -33
- package/libcxx/include/version +41 -24
- package/libcxx/include/wctype.h +29 -29
- package/libcxx/src/any.cpp +4 -0
- package/libcxx/src/atomic.cpp +365 -80
- package/libcxx/src/barrier.cpp +4 -3
- package/libcxx/src/charconv.cpp +6 -3
- package/libcxx/src/condition_variable_destructor.cpp +1 -1
- package/libcxx/src/error_category.cpp +3 -1
- package/libcxx/src/exception.cpp +2 -10
- package/libcxx/src/experimental/time_zone.cpp +1 -1
- package/libcxx/src/experimental/tzdb.cpp +4 -1
- package/libcxx/src/filesystem/error.h +4 -22
- package/libcxx/src/filesystem/format_string.h +9 -18
- package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
- package/libcxx/src/filesystem/operations.cpp +2 -9
- package/libcxx/src/filesystem/path.cpp +3 -1
- package/libcxx/src/include/aligned_alloc.h +65 -0
- package/libcxx/src/include/config_elast.h +1 -1
- package/libcxx/src/include/from_chars_floating_point.h +11 -7
- package/libcxx/src/include/overridable_function.h +8 -10
- package/libcxx/src/iostream.cpp +56 -37
- package/libcxx/src/locale.cpp +213 -196
- package/libcxx/src/memory.cpp +12 -14
- package/libcxx/src/mutex_destructor.cpp +1 -1
- package/libcxx/src/new.cpp +5 -5
- package/libcxx/src/optional.cpp +4 -0
- package/libcxx/src/print.cpp +9 -1
- package/libcxx/src/random.cpp +0 -26
- package/libcxx/src/string.cpp +10 -25
- package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
- package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
- package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
- package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
- package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
- package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
- package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
- package/libcxx/src/support/win32/locale_win32.cpp +1 -1
- package/libcxx/src/system_error.cpp +2 -0
- package/libcxx/src/thread.cpp +1 -3
- package/libcxx/src/valarray.cpp +1 -2
- package/libcxx/src/vector.cpp +2 -2
- package/libcxxabi/include/__cxxabi_config.h +42 -23
- package/libcxxabi/src/cxa_exception.cpp +4 -2
- package/libcxxabi/src/cxa_exception.h +16 -14
- package/libcxxabi/src/cxa_personality.cpp +126 -9
- package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
- package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
- package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
- package/libcxxabi/src/demangle/Utility.h +21 -7
- package/libcxxabi/src/fallback_malloc.cpp +1 -1
- package/libcxxabi/src/private_typeinfo.cpp +6 -0
- package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
- package/libtsan/LICENSE.TXT +311 -0
- package/libtsan/builtins/assembly.h +41 -8
- package/libtsan/interception/interception_win.cpp +4 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
- package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
- package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
- package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
- package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
- package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
- package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
- package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
- package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
- package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
- package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
- package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
- package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
- package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
- package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
- package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
- package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
- package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
- package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
- package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
- package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
- package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
- package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
- package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
- package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
- package/libtsan/tsan_debugging.cpp +2 -2
- package/libtsan/tsan_flags.cpp +37 -0
- package/libtsan/tsan_flags.h +8 -0
- package/libtsan/tsan_flags.inc +12 -0
- package/libtsan/tsan_interceptors.h +9 -1
- package/libtsan/tsan_interceptors_mac.cpp +19 -0
- package/libtsan/tsan_interceptors_posix.cpp +78 -32
- package/libtsan/tsan_interface.h +3 -3
- package/libtsan/tsan_interface_ann.cpp +23 -9
- package/libtsan/tsan_mman.cpp +18 -4
- package/libtsan/tsan_platform.h +44 -7
- package/libtsan/tsan_platform_linux.cpp +42 -14
- package/libtsan/tsan_platform_mac.cpp +16 -3
- package/libtsan/tsan_report.h +14 -1
- package/libtsan/tsan_rtl.cpp +14 -0
- package/libtsan/tsan_rtl.h +7 -2
- package/libtsan/tsan_rtl_aarch64.S +3 -5
- package/libtsan/tsan_rtl_access.cpp +8 -3
- package/libtsan/tsan_rtl_amd64.S +2 -0
- package/libtsan/tsan_rtl_mutex.cpp +94 -49
- package/libtsan/tsan_rtl_report.cpp +132 -65
- package/libtsan/tsan_rtl_thread.cpp +31 -9
- package/libtsan/tsan_symbolize.cpp +1 -1
- package/libtsan/tsan_symbolize.h +1 -1
- package/libtsan/tsan_trace.h +1 -1
- package/libunwind/include/__libunwind_config.h +11 -2
- package/libunwind/include/libunwind.h +117 -11
- package/libunwind/include/unwind_arm_ehabi.h +4 -1
- package/libunwind/src/AddressSpace.hpp +40 -19
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +60 -22
- package/libunwind/src/EHHeaderParser.hpp +7 -4
- package/libunwind/src/Registers.hpp +226 -22
- package/libunwind/src/Unwind-seh.cpp +6 -7
- package/libunwind/src/Unwind-wasm.c +7 -7
- package/libunwind/src/UnwindCursor.hpp +167 -49
- package/libunwind/src/UnwindLevel1.c +46 -17
- package/libunwind/src/UnwindRegistersRestore.S +46 -5
- package/libunwind/src/UnwindRegistersSave.S +86 -2
- package/libunwind/src/assembly.h +5 -1
- package/libunwind/src/config.h +9 -0
- package/libunwind/src/gcc_personality_v0.c +79 -6
- package/libunwind/src/libunwind.cpp +104 -4
- package/libunwind/src/libunwind_ext.h +7 -1
- package/libunwind/src/shadow_stack_unwind.h +2 -2
- package/lldb/pretty_printers.py +948 -0
- package/package.json +1 -1
- package/std/Build/Step/Compile.zig +18 -19
- package/std/Build/Step/Run.zig +13 -6
- package/std/Build/Step.zig +0 -3
- package/std/Io/Threaded.zig +3 -0
- package/std/Target/aarch64.zig +620 -77
- package/std/Target/amdgcn.zig +421 -21
- package/std/Target/arm.zig +40 -6
- package/std/Target/bpf.zig +6 -0
- package/std/Target/hexagon.zig +41 -6
- package/std/Target/loongarch.zig +18 -0
- package/std/Target/mips.zig +6 -0
- package/std/Target/nvptx.zig +58 -35
- package/std/Target/powerpc.zig +27 -19
- package/std/Target/riscv.zig +415 -177
- package/std/Target/sparc.zig +17 -0
- package/std/Target/wasm.zig +7 -0
- package/std/Target/x86.zig +200 -31
- package/std/Target/xtensa.zig +65 -0
- package/std/Target.zig +11 -2
- package/std/c.zig +7 -0
- package/std/debug/Dwarf.zig +14 -11
- package/std/debug/Pdb.zig +24 -16
- package/std/hash/xxhash.zig +0 -6
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +0 -1
- package/std/mem.zig +1 -2
- package/std/os/linux/x86.zig +2 -2
- package/std/os/windows.zig +130 -1
- package/std/simd.zig +4 -21
- package/std/start.zig +4 -3
- package/std/zig/Ast.zig +5 -7
- package/std/zig/AstGen.zig +20 -14
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/ZonGen.zig +13 -21
- package/std/zig/llvm/Builder.zig +2 -2
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +0 -10
- package/include/amxbf16transposeintrin.h +0 -94
- package/include/amxcomplextransposeintrin.h +0 -303
- package/include/amxfp16transposeintrin.h +0 -94
- package/include/amxmovrstransposeintrin.h +0 -200
- package/include/amxtf32transposeintrin.h +0 -105
- package/include/amxtransposeintrin.h +0 -248
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
package/include/xmmintrin.h
CHANGED
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
|
|
17
17
|
#include <mmintrin.h>
|
|
18
18
|
|
|
19
|
-
typedef int __v4si __attribute__((__vector_size__(16)));
|
|
20
19
|
typedef float __v4sf __attribute__((__vector_size__(16)));
|
|
21
20
|
typedef float __m128 __attribute__((__vector_size__(16), __aligned__(16)));
|
|
22
21
|
|
|
@@ -24,6 +23,8 @@ typedef float __m128_u __attribute__((__vector_size__(16), __aligned__(1)));
|
|
|
24
23
|
|
|
25
24
|
/* Unsigned types */
|
|
26
25
|
typedef unsigned int __v4su __attribute__((__vector_size__(16)));
|
|
26
|
+
typedef unsigned short __v8hu __attribute__((__vector_size__(16)));
|
|
27
|
+
typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
|
|
27
28
|
|
|
28
29
|
/* This header should only be included in a hosted environment as it depends on
|
|
29
30
|
* a standard library to provide allocation routines. */
|
|
@@ -32,21 +33,12 @@ typedef unsigned int __v4su __attribute__((__vector_size__(16)));
|
|
|
32
33
|
#endif
|
|
33
34
|
|
|
34
35
|
/* Define the default attributes for the functions in this file. */
|
|
35
|
-
#if defined(__EVEX512__) && !defined(__AVX10_1_512__)
|
|
36
|
-
#define __DEFAULT_FN_ATTRS \
|
|
37
|
-
__attribute__((__always_inline__, __nodebug__, __target__("sse,no-evex512"), \
|
|
38
|
-
__min_vector_width__(128)))
|
|
39
|
-
#define __DEFAULT_FN_ATTRS_SSE2 \
|
|
40
|
-
__attribute__((__always_inline__, __nodebug__, \
|
|
41
|
-
__target__("sse2,no-evex512"), __min_vector_width__(128)))
|
|
42
|
-
#else
|
|
43
36
|
#define __DEFAULT_FN_ATTRS \
|
|
44
37
|
__attribute__((__always_inline__, __nodebug__, __target__("sse"), \
|
|
45
38
|
__min_vector_width__(128)))
|
|
46
39
|
#define __DEFAULT_FN_ATTRS_SSE2 \
|
|
47
40
|
__attribute__((__always_inline__, __nodebug__, __target__("sse2"), \
|
|
48
41
|
__min_vector_width__(128)))
|
|
49
|
-
#endif
|
|
50
42
|
|
|
51
43
|
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
52
44
|
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
|
|
@@ -239,10 +231,9 @@ _mm_div_ps(__m128 __a, __m128 __b) {
|
|
|
239
231
|
/// used in the calculation.
|
|
240
232
|
/// \returns A 128-bit vector of [4 x float] containing the square root of the
|
|
241
233
|
/// value in the low-order bits of the operand.
|
|
242
|
-
static __inline__ __m128 __DEFAULT_FN_ATTRS
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
return (__m128)__builtin_ia32_sqrtss((__v4sf)__a);
|
|
234
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ss(__m128 __a) {
|
|
235
|
+
__a[0] = __builtin_elementwise_sqrt(__a[0]);
|
|
236
|
+
return __a;
|
|
246
237
|
}
|
|
247
238
|
|
|
248
239
|
/// Calculates the square roots of the values stored in a 128-bit vector
|
|
@@ -256,10 +247,8 @@ _mm_sqrt_ss(__m128 __a)
|
|
|
256
247
|
/// A 128-bit vector of [4 x float].
|
|
257
248
|
/// \returns A 128-bit vector of [4 x float] containing the square roots of the
|
|
258
249
|
/// values in the operand.
|
|
259
|
-
static __inline__ __m128 __DEFAULT_FN_ATTRS
|
|
260
|
-
|
|
261
|
-
{
|
|
262
|
-
return __builtin_ia32_sqrtps((__v4sf)__a);
|
|
250
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ps(__m128 __a) {
|
|
251
|
+
return __builtin_elementwise_sqrt(__a);
|
|
263
252
|
}
|
|
264
253
|
|
|
265
254
|
/// Calculates the approximate reciprocal of the value stored in the
|
|
@@ -352,9 +341,7 @@ _mm_rsqrt_ps(__m128 __a)
|
|
|
352
341
|
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
|
|
353
342
|
/// minimum value between both operands. The upper 96 bits are copied from
|
|
354
343
|
/// the upper 96 bits of the first source operand.
|
|
355
|
-
static __inline__ __m128 __DEFAULT_FN_ATTRS
|
|
356
|
-
_mm_min_ss(__m128 __a, __m128 __b)
|
|
357
|
-
{
|
|
344
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ss(__m128 __a, __m128 __b) {
|
|
358
345
|
return __builtin_ia32_minss((__v4sf)__a, (__v4sf)__b);
|
|
359
346
|
}
|
|
360
347
|
|
|
@@ -373,9 +360,8 @@ _mm_min_ss(__m128 __a, __m128 __b)
|
|
|
373
360
|
/// A 128-bit vector of [4 x float] containing one of the operands.
|
|
374
361
|
/// \returns A 128-bit vector of [4 x float] containing the minimum values
|
|
375
362
|
/// between both operands.
|
|
376
|
-
static __inline__ __m128
|
|
377
|
-
|
|
378
|
-
{
|
|
363
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_min_ps(__m128 __a,
|
|
364
|
+
__m128 __b) {
|
|
379
365
|
return __builtin_ia32_minps((__v4sf)__a, (__v4sf)__b);
|
|
380
366
|
}
|
|
381
367
|
|
|
@@ -398,9 +384,7 @@ _mm_min_ps(__m128 __a, __m128 __b)
|
|
|
398
384
|
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
|
|
399
385
|
/// maximum value between both operands. The upper 96 bits are copied from
|
|
400
386
|
/// the upper 96 bits of the first source operand.
|
|
401
|
-
static __inline__ __m128 __DEFAULT_FN_ATTRS
|
|
402
|
-
_mm_max_ss(__m128 __a, __m128 __b)
|
|
403
|
-
{
|
|
387
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ss(__m128 __a, __m128 __b) {
|
|
404
388
|
return __builtin_ia32_maxss((__v4sf)__a, (__v4sf)__b);
|
|
405
389
|
}
|
|
406
390
|
|
|
@@ -419,9 +403,8 @@ _mm_max_ss(__m128 __a, __m128 __b)
|
|
|
419
403
|
/// A 128-bit vector of [4 x float] containing one of the operands.
|
|
420
404
|
/// \returns A 128-bit vector of [4 x float] containing the maximum values
|
|
421
405
|
/// between both operands.
|
|
422
|
-
static __inline__ __m128
|
|
423
|
-
|
|
424
|
-
{
|
|
406
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_max_ps(__m128 __a,
|
|
407
|
+
__m128 __b) {
|
|
425
408
|
return __builtin_ia32_maxps((__v4sf)__a, (__v4sf)__b);
|
|
426
409
|
}
|
|
427
410
|
|
|
@@ -1688,7 +1671,7 @@ _mm_cvtsi64_ss(__m128 __a, long long __b) {
|
|
|
1688
1671
|
/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
|
|
1689
1672
|
/// converted value of the second operand. The upper 64 bits are copied from
|
|
1690
1673
|
/// the upper 64 bits of the first operand.
|
|
1691
|
-
static __inline__ __m128
|
|
1674
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1692
1675
|
_mm_cvtpi32_ps(__m128 __a, __m64 __b)
|
|
1693
1676
|
{
|
|
1694
1677
|
return (__m128)__builtin_shufflevector(
|
|
@@ -1714,7 +1697,7 @@ _mm_cvtpi32_ps(__m128 __a, __m64 __b)
|
|
|
1714
1697
|
/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
|
|
1715
1698
|
/// converted value from the second operand. The upper 64 bits are copied
|
|
1716
1699
|
/// from the upper 64 bits of the first operand.
|
|
1717
|
-
static __inline__ __m128
|
|
1700
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1718
1701
|
_mm_cvt_pi2ps(__m128 __a, __m64 __b)
|
|
1719
1702
|
{
|
|
1720
1703
|
return _mm_cvtpi32_ps(__a, __b);
|
|
@@ -2353,9 +2336,8 @@ void _mm_sfence(void);
|
|
|
2353
2336
|
/// \param __b
|
|
2354
2337
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2355
2338
|
/// \returns A 64-bit integer vector containing the comparison results.
|
|
2356
|
-
static __inline__ __m64
|
|
2357
|
-
_mm_max_pi16(__m64 __a, __m64 __b)
|
|
2358
|
-
{
|
|
2339
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2340
|
+
_mm_max_pi16(__m64 __a, __m64 __b) {
|
|
2359
2341
|
return (__m64)__builtin_elementwise_max((__v4hi)__a, (__v4hi)__b);
|
|
2360
2342
|
}
|
|
2361
2343
|
|
|
@@ -2372,9 +2354,8 @@ _mm_max_pi16(__m64 __a, __m64 __b)
|
|
|
2372
2354
|
/// \param __b
|
|
2373
2355
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2374
2356
|
/// \returns A 64-bit integer vector containing the comparison results.
|
|
2375
|
-
static __inline__ __m64
|
|
2376
|
-
_mm_max_pu8(__m64 __a, __m64 __b)
|
|
2377
|
-
{
|
|
2357
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2358
|
+
_mm_max_pu8(__m64 __a, __m64 __b) {
|
|
2378
2359
|
return (__m64)__builtin_elementwise_max((__v8qu)__a, (__v8qu)__b);
|
|
2379
2360
|
}
|
|
2380
2361
|
|
|
@@ -2391,9 +2372,8 @@ _mm_max_pu8(__m64 __a, __m64 __b)
|
|
|
2391
2372
|
/// \param __b
|
|
2392
2373
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2393
2374
|
/// \returns A 64-bit integer vector containing the comparison results.
|
|
2394
|
-
static __inline__ __m64
|
|
2395
|
-
_mm_min_pi16(__m64 __a, __m64 __b)
|
|
2396
|
-
{
|
|
2375
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2376
|
+
_mm_min_pi16(__m64 __a, __m64 __b) {
|
|
2397
2377
|
return (__m64)__builtin_elementwise_min((__v4hi)__a, (__v4hi)__b);
|
|
2398
2378
|
}
|
|
2399
2379
|
|
|
@@ -2410,9 +2390,8 @@ _mm_min_pi16(__m64 __a, __m64 __b)
|
|
|
2410
2390
|
/// \param __b
|
|
2411
2391
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2412
2392
|
/// \returns A 64-bit integer vector containing the comparison results.
|
|
2413
|
-
static __inline__ __m64
|
|
2414
|
-
_mm_min_pu8(__m64 __a, __m64 __b)
|
|
2415
|
-
{
|
|
2393
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2394
|
+
_mm_min_pu8(__m64 __a, __m64 __b) {
|
|
2416
2395
|
return (__m64)__builtin_elementwise_min((__v8qu)__a, (__v8qu)__b);
|
|
2417
2396
|
}
|
|
2418
2397
|
|
|
@@ -2428,9 +2407,8 @@ _mm_min_pu8(__m64 __a, __m64 __b)
|
|
|
2428
2407
|
/// A 64-bit integer vector containing the values with bits to be extracted.
|
|
2429
2408
|
/// \returns The most significant bit from each 8-bit element in \a __a,
|
|
2430
2409
|
/// written to bits [7:0].
|
|
2431
|
-
static __inline__ int
|
|
2432
|
-
_mm_movemask_pi8(__m64 __a)
|
|
2433
|
-
{
|
|
2410
|
+
static __inline__ int __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2411
|
+
_mm_movemask_pi8(__m64 __a) {
|
|
2434
2412
|
return __builtin_ia32_pmovmskb128((__v16qi)__zext128(__a));
|
|
2435
2413
|
}
|
|
2436
2414
|
|
|
@@ -2447,11 +2425,11 @@ _mm_movemask_pi8(__m64 __a)
|
|
|
2447
2425
|
/// \param __b
|
|
2448
2426
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2449
2427
|
/// \returns A 64-bit integer vector containing the products of both operands.
|
|
2450
|
-
static __inline__ __m64
|
|
2428
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2451
2429
|
_mm_mulhi_pu16(__m64 __a, __m64 __b)
|
|
2452
2430
|
{
|
|
2453
|
-
return __trunc64(__builtin_ia32_pmulhuw128((
|
|
2454
|
-
(
|
|
2431
|
+
return __trunc64(__builtin_ia32_pmulhuw128((__v8hu)__zext128(__a),
|
|
2432
|
+
(__v8hu)__zext128(__b)));
|
|
2455
2433
|
}
|
|
2456
2434
|
|
|
2457
2435
|
/// Shuffles the 4 16-bit integers from a 64-bit integer vector to the
|
|
@@ -2530,8 +2508,8 @@ _mm_maskmove_si64(__m64 __d, __m64 __n, char *__p)
|
|
|
2530
2508
|
// If there's a risk of spurious trap due to a 128-bit write, back up the
|
|
2531
2509
|
// pointer by 8 bytes and shift values in registers to match.
|
|
2532
2510
|
__p -= 8;
|
|
2533
|
-
__d128 = __builtin_ia32_pslldqi128_byteshift((
|
|
2534
|
-
__n128 = __builtin_ia32_pslldqi128_byteshift((
|
|
2511
|
+
__d128 = (__m128i)__builtin_ia32_pslldqi128_byteshift((__v16qi)__d128, 8);
|
|
2512
|
+
__n128 = (__m128i)__builtin_ia32_pslldqi128_byteshift((__v16qi)__n128, 8);
|
|
2535
2513
|
}
|
|
2536
2514
|
|
|
2537
2515
|
__builtin_ia32_maskmovdqu((__v16qi)__d128, (__v16qi)__n128, __p);
|
|
@@ -2550,11 +2528,10 @@ _mm_maskmove_si64(__m64 __d, __m64 __n, char *__p)
|
|
|
2550
2528
|
/// \param __b
|
|
2551
2529
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2552
2530
|
/// \returns A 64-bit integer vector containing the averages of both operands.
|
|
2553
|
-
static __inline__ __m64
|
|
2554
|
-
_mm_avg_pu8(__m64 __a, __m64 __b)
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
(__v16qi)__anyext128(__b)));
|
|
2531
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2532
|
+
_mm_avg_pu8(__m64 __a, __m64 __b) {
|
|
2533
|
+
return __trunc64(__builtin_ia32_pavgb128((__v16qu)__zext128(__a),
|
|
2534
|
+
(__v16qu)__zext128(__b)));
|
|
2558
2535
|
}
|
|
2559
2536
|
|
|
2560
2537
|
/// Computes the rounded averages of the packed unsigned 16-bit integer
|
|
@@ -2570,11 +2547,10 @@ _mm_avg_pu8(__m64 __a, __m64 __b)
|
|
|
2570
2547
|
/// \param __b
|
|
2571
2548
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2572
2549
|
/// \returns A 64-bit integer vector containing the averages of both operands.
|
|
2573
|
-
static __inline__ __m64
|
|
2574
|
-
_mm_avg_pu16(__m64 __a, __m64 __b)
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
(__v8hi)__anyext128(__b)));
|
|
2550
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2551
|
+
_mm_avg_pu16(__m64 __a, __m64 __b) {
|
|
2552
|
+
return __trunc64(
|
|
2553
|
+
__builtin_ia32_pavgw128((__v8hu)__zext128(__a), (__v8hu)__zext128(__b)));
|
|
2578
2554
|
}
|
|
2579
2555
|
|
|
2580
2556
|
/// Subtracts the corresponding 8-bit unsigned integer values of the two
|
|
@@ -2873,7 +2849,7 @@ _mm_movelh_ps(__m128 __a, __m128 __b) {
|
|
|
2873
2849
|
/// from the corresponding elements in this operand.
|
|
2874
2850
|
/// \returns A 128-bit vector of [4 x float] containing the copied and converted
|
|
2875
2851
|
/// values from the operand.
|
|
2876
|
-
static __inline__ __m128
|
|
2852
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2877
2853
|
_mm_cvtpi16_ps(__m64 __a)
|
|
2878
2854
|
{
|
|
2879
2855
|
return __builtin_convertvector((__v4hi)__a, __v4sf);
|
|
@@ -2891,7 +2867,7 @@ _mm_cvtpi16_ps(__m64 __a)
|
|
|
2891
2867
|
/// destination are copied from the corresponding elements in this operand.
|
|
2892
2868
|
/// \returns A 128-bit vector of [4 x float] containing the copied and converted
|
|
2893
2869
|
/// values from the operand.
|
|
2894
|
-
static __inline__ __m128
|
|
2870
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2895
2871
|
_mm_cvtpu16_ps(__m64 __a)
|
|
2896
2872
|
{
|
|
2897
2873
|
return __builtin_convertvector((__v4hu)__a, __v4sf);
|
|
@@ -2909,7 +2885,7 @@ _mm_cvtpu16_ps(__m64 __a)
|
|
|
2909
2885
|
/// from the corresponding lower 4 elements in this operand.
|
|
2910
2886
|
/// \returns A 128-bit vector of [4 x float] containing the copied and converted
|
|
2911
2887
|
/// values from the operand.
|
|
2912
|
-
static __inline__ __m128
|
|
2888
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2913
2889
|
_mm_cvtpi8_ps(__m64 __a)
|
|
2914
2890
|
{
|
|
2915
2891
|
return __builtin_convertvector(
|
|
@@ -2930,7 +2906,7 @@ _mm_cvtpi8_ps(__m64 __a)
|
|
|
2930
2906
|
/// operand.
|
|
2931
2907
|
/// \returns A 128-bit vector of [4 x float] containing the copied and converted
|
|
2932
2908
|
/// values from the source operand.
|
|
2933
|
-
static __inline__ __m128
|
|
2909
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2934
2910
|
_mm_cvtpu8_ps(__m64 __a)
|
|
2935
2911
|
{
|
|
2936
2912
|
return __builtin_convertvector(
|
|
@@ -2954,7 +2930,7 @@ _mm_cvtpu8_ps(__m64 __a)
|
|
|
2954
2930
|
/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
|
|
2955
2931
|
/// copied and converted values from the first operand. The upper 64 bits
|
|
2956
2932
|
/// contain the copied and converted values from the second operand.
|
|
2957
|
-
static __inline__ __m128
|
|
2933
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
2958
2934
|
_mm_cvtpi32x2_ps(__m64 __a, __m64 __b)
|
|
2959
2935
|
{
|
|
2960
2936
|
return __builtin_convertvector(
|
|
@@ -3029,9 +3005,7 @@ _mm_cvtps_pi8(__m128 __a)
|
|
|
3029
3005
|
/// \returns A 32-bit integer value. Bits [3:0] contain the sign bits from each
|
|
3030
3006
|
/// single-precision floating-point element of the parameter. Bits [31:4] are
|
|
3031
3007
|
/// set to zero.
|
|
3032
|
-
static __inline__ int
|
|
3033
|
-
_mm_movemask_ps(__m128 __a)
|
|
3034
|
-
{
|
|
3008
|
+
static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movemask_ps(__m128 __a) {
|
|
3035
3009
|
return __builtin_ia32_movmskps((__v4sf)__a);
|
|
3036
3010
|
}
|
|
3037
3011
|
|
package/include/xopintrin.h
CHANGED
|
@@ -20,6 +20,14 @@
|
|
|
20
20
|
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xop"), __min_vector_width__(128)))
|
|
21
21
|
#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("xop"), __min_vector_width__(256)))
|
|
22
22
|
|
|
23
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
24
|
+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
|
|
25
|
+
#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256 constexpr
|
|
26
|
+
#else
|
|
27
|
+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
|
|
28
|
+
#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256
|
|
29
|
+
#endif
|
|
30
|
+
|
|
23
31
|
static __inline__ __m128i __DEFAULT_FN_ATTRS
|
|
24
32
|
_mm_maccs_epi16(__m128i __A, __m128i __B, __m128i __C)
|
|
25
33
|
{
|
|
@@ -182,13 +190,13 @@ _mm_hsubq_epi32(__m128i __A)
|
|
|
182
190
|
return (__m128i)__builtin_ia32_vphsubdq((__v4si)__A);
|
|
183
191
|
}
|
|
184
192
|
|
|
185
|
-
static __inline__ __m128i
|
|
193
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
186
194
|
_mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C)
|
|
187
195
|
{
|
|
188
196
|
return (__m128i)(((__v2du)__A & (__v2du)__C) | ((__v2du)__B & ~(__v2du)__C));
|
|
189
197
|
}
|
|
190
198
|
|
|
191
|
-
static __inline__ __m256i
|
|
199
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
|
|
192
200
|
_mm256_cmov_si256(__m256i __A, __m256i __B, __m256i __C)
|
|
193
201
|
{
|
|
194
202
|
return (__m256i)(((__v4du)__A & (__v4du)__C) | ((__v4du)__B & ~(__v4du)__C));
|
|
@@ -200,28 +208,28 @@ _mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
|
|
|
200
208
|
return (__m128i)__builtin_ia32_vpperm((__v16qi)__A, (__v16qi)__B, (__v16qi)__C);
|
|
201
209
|
}
|
|
202
210
|
|
|
203
|
-
static __inline__ __m128i
|
|
211
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
204
212
|
_mm_rot_epi8(__m128i __A, __m128i __B)
|
|
205
213
|
{
|
|
206
|
-
return (__m128i)
|
|
214
|
+
return (__m128i)__builtin_elementwise_fshl((__v16qu)__A, (__v16qu)__A, (__v16qu)__B);
|
|
207
215
|
}
|
|
208
216
|
|
|
209
|
-
static __inline__ __m128i
|
|
217
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
210
218
|
_mm_rot_epi16(__m128i __A, __m128i __B)
|
|
211
219
|
{
|
|
212
|
-
return (__m128i)
|
|
220
|
+
return (__m128i)__builtin_elementwise_fshl((__v8hu)__A, (__v8hu)__A, (__v8hu)__B);
|
|
213
221
|
}
|
|
214
222
|
|
|
215
|
-
static __inline__ __m128i
|
|
223
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
216
224
|
_mm_rot_epi32(__m128i __A, __m128i __B)
|
|
217
225
|
{
|
|
218
|
-
return (__m128i)
|
|
226
|
+
return (__m128i)__builtin_elementwise_fshl((__v4su)__A, (__v4su)__A, (__v4su)__B);
|
|
219
227
|
}
|
|
220
228
|
|
|
221
|
-
static __inline__ __m128i
|
|
229
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
222
230
|
_mm_rot_epi64(__m128i __A, __m128i __B)
|
|
223
231
|
{
|
|
224
|
-
return (__m128i)
|
|
232
|
+
return (__m128i)__builtin_elementwise_fshl((__v2du)__A, (__v2du)__A, (__v2du)__B);
|
|
225
233
|
}
|
|
226
234
|
|
|
227
235
|
#define _mm_roti_epi8(A, N) \
|
|
@@ -766,5 +774,7 @@ _mm256_frcz_pd(__m256d __A)
|
|
|
766
774
|
|
|
767
775
|
#undef __DEFAULT_FN_ATTRS
|
|
768
776
|
#undef __DEFAULT_FN_ATTRS256
|
|
777
|
+
#undef __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
778
|
+
#undef __DEFAULT_FN_ATTRS256_CONSTEXPR
|
|
769
779
|
|
|
770
780
|
#endif /* __XOPINTRIN_H */
|
|
@@ -10,24 +10,28 @@
|
|
|
10
10
|
#ifndef _LIBCPP___ALGORITHM_ALL_OF_H
|
|
11
11
|
#define _LIBCPP___ALGORITHM_ALL_OF_H
|
|
12
12
|
|
|
13
|
+
#include <__algorithm/any_of.h>
|
|
13
14
|
#include <__config>
|
|
14
15
|
#include <__functional/identity.h>
|
|
15
16
|
#include <__type_traits/invoke.h>
|
|
17
|
+
#include <__utility/forward.h>
|
|
18
|
+
#include <__utility/move.h>
|
|
16
19
|
|
|
17
20
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
18
21
|
# pragma GCC system_header
|
|
19
22
|
#endif
|
|
20
23
|
|
|
24
|
+
_LIBCPP_PUSH_MACROS
|
|
25
|
+
#include <__undef_macros>
|
|
26
|
+
|
|
21
27
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
22
28
|
|
|
23
29
|
template <class _Iter, class _Sent, class _Proj, class _Pred>
|
|
24
30
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 bool
|
|
25
31
|
__all_of(_Iter __first, _Sent __last, _Pred& __pred, _Proj& __proj) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
return true;
|
|
32
|
+
using _Ref = decltype(std::__invoke(__proj, *__first));
|
|
33
|
+
auto __negated_pred = [&__pred](_Ref __arg) -> bool { return !std::__invoke(__pred, std::forward<_Ref>(__arg)); };
|
|
34
|
+
return !std::__any_of(std::move(__first), std::move(__last), __negated_pred, __proj);
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
template <class _InputIterator, class _Predicate>
|
|
@@ -39,4 +43,6 @@ all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) {
|
|
|
39
43
|
|
|
40
44
|
_LIBCPP_END_NAMESPACE_STD
|
|
41
45
|
|
|
46
|
+
_LIBCPP_POP_MACROS
|
|
47
|
+
|
|
42
48
|
#endif // _LIBCPP___ALGORITHM_ALL_OF_H
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
#include <__config>
|
|
13
13
|
#include <__type_traits/desugars_to.h>
|
|
14
|
+
#include <__type_traits/is_generic_transparent_comparator.h>
|
|
14
15
|
#include <__type_traits/is_integral.h>
|
|
15
16
|
|
|
16
17
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
@@ -48,6 +49,9 @@ inline const bool __desugars_to_v<__less_tag, __less<>, _Tp, _Tp> = true;
|
|
|
48
49
|
template <class _Tp>
|
|
49
50
|
inline const bool __desugars_to_v<__totally_ordered_less_tag, __less<>, _Tp, _Tp> = is_integral<_Tp>::value;
|
|
50
51
|
|
|
52
|
+
template <>
|
|
53
|
+
inline const bool __is_generic_transparent_comparator_v<__less<> > = true;
|
|
54
|
+
|
|
51
55
|
_LIBCPP_END_NAMESPACE_STD
|
|
52
56
|
|
|
53
57
|
#endif // _LIBCPP___ALGORITHM_COMP_H
|
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
#include <__algorithm/copy_move_common.h>
|
|
13
13
|
#include <__algorithm/for_each_segment.h>
|
|
14
14
|
#include <__algorithm/min.h>
|
|
15
|
+
#include <__algorithm/specialized_algorithms.h>
|
|
15
16
|
#include <__config>
|
|
16
|
-
#include <__fwd/bit_reference.h>
|
|
17
17
|
#include <__iterator/iterator_traits.h>
|
|
18
18
|
#include <__iterator/segmented_iterator.h>
|
|
19
|
-
#include <__memory/pointer_traits.h>
|
|
20
19
|
#include <__type_traits/common_type.h>
|
|
21
20
|
#include <__type_traits/enable_if.h>
|
|
22
21
|
#include <__utility/move.h>
|
|
@@ -38,124 +37,14 @@ copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result);
|
|
|
38
37
|
template <class _InIter, class _Sent, class _OutIter>
|
|
39
38
|
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter> __copy(_InIter, _Sent, _OutIter);
|
|
40
39
|
|
|
41
|
-
template <class _Cp, bool _IsConst>
|
|
42
|
-
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI __bit_iterator<_Cp, false> __copy_aligned(
|
|
43
|
-
__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) {
|
|
44
|
-
using _In = __bit_iterator<_Cp, _IsConst>;
|
|
45
|
-
using difference_type = typename _In::difference_type;
|
|
46
|
-
using __storage_type = typename _In::__storage_type;
|
|
47
|
-
|
|
48
|
-
const int __bits_per_word = _In::__bits_per_word;
|
|
49
|
-
difference_type __n = __last - __first;
|
|
50
|
-
if (__n > 0) {
|
|
51
|
-
// do first word
|
|
52
|
-
if (__first.__ctz_ != 0) {
|
|
53
|
-
unsigned __clz = __bits_per_word - __first.__ctz_;
|
|
54
|
-
difference_type __dn = std::min(static_cast<difference_type>(__clz), __n);
|
|
55
|
-
__n -= __dn;
|
|
56
|
-
__storage_type __m = std::__middle_mask<__storage_type>(__clz - __dn, __first.__ctz_);
|
|
57
|
-
__storage_type __b = *__first.__seg_ & __m;
|
|
58
|
-
*__result.__seg_ &= ~__m;
|
|
59
|
-
*__result.__seg_ |= __b;
|
|
60
|
-
__result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word;
|
|
61
|
-
__result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_) % __bits_per_word);
|
|
62
|
-
++__first.__seg_;
|
|
63
|
-
// __first.__ctz_ = 0;
|
|
64
|
-
}
|
|
65
|
-
// __first.__ctz_ == 0;
|
|
66
|
-
// do middle words
|
|
67
|
-
__storage_type __nw = __n / __bits_per_word;
|
|
68
|
-
std::copy(std::__to_address(__first.__seg_),
|
|
69
|
-
std::__to_address(__first.__seg_ + __nw),
|
|
70
|
-
std::__to_address(__result.__seg_));
|
|
71
|
-
__n -= __nw * __bits_per_word;
|
|
72
|
-
__result.__seg_ += __nw;
|
|
73
|
-
// do last word
|
|
74
|
-
if (__n > 0) {
|
|
75
|
-
__first.__seg_ += __nw;
|
|
76
|
-
__storage_type __m = std::__trailing_mask<__storage_type>(__bits_per_word - __n);
|
|
77
|
-
__storage_type __b = *__first.__seg_ & __m;
|
|
78
|
-
*__result.__seg_ &= ~__m;
|
|
79
|
-
*__result.__seg_ |= __b;
|
|
80
|
-
__result.__ctz_ = static_cast<unsigned>(__n);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return __result;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
template <class _Cp, bool _IsConst>
|
|
87
|
-
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI __bit_iterator<_Cp, false> __copy_unaligned(
|
|
88
|
-
__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) {
|
|
89
|
-
using _In = __bit_iterator<_Cp, _IsConst>;
|
|
90
|
-
using difference_type = typename _In::difference_type;
|
|
91
|
-
using __storage_type = typename _In::__storage_type;
|
|
92
|
-
|
|
93
|
-
const int __bits_per_word = _In::__bits_per_word;
|
|
94
|
-
difference_type __n = __last - __first;
|
|
95
|
-
if (__n > 0) {
|
|
96
|
-
// do first word
|
|
97
|
-
if (__first.__ctz_ != 0) {
|
|
98
|
-
unsigned __clz_f = __bits_per_word - __first.__ctz_;
|
|
99
|
-
difference_type __dn = std::min(static_cast<difference_type>(__clz_f), __n);
|
|
100
|
-
__n -= __dn;
|
|
101
|
-
__storage_type __m = std::__middle_mask<__storage_type>(__clz_f - __dn, __first.__ctz_);
|
|
102
|
-
__storage_type __b = *__first.__seg_ & __m;
|
|
103
|
-
unsigned __clz_r = __bits_per_word - __result.__ctz_;
|
|
104
|
-
__storage_type __ddn = std::min<__storage_type>(__dn, __clz_r);
|
|
105
|
-
__m = std::__middle_mask<__storage_type>(__clz_r - __ddn, __result.__ctz_);
|
|
106
|
-
*__result.__seg_ &= ~__m;
|
|
107
|
-
if (__result.__ctz_ > __first.__ctz_)
|
|
108
|
-
*__result.__seg_ |= __b << (__result.__ctz_ - __first.__ctz_);
|
|
109
|
-
else
|
|
110
|
-
*__result.__seg_ |= __b >> (__first.__ctz_ - __result.__ctz_);
|
|
111
|
-
__result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word;
|
|
112
|
-
__result.__ctz_ = static_cast<unsigned>((__ddn + __result.__ctz_) % __bits_per_word);
|
|
113
|
-
__dn -= __ddn;
|
|
114
|
-
if (__dn > 0) {
|
|
115
|
-
__m = std::__trailing_mask<__storage_type>(__bits_per_word - __dn);
|
|
116
|
-
*__result.__seg_ &= ~__m;
|
|
117
|
-
*__result.__seg_ |= __b >> (__first.__ctz_ + __ddn);
|
|
118
|
-
__result.__ctz_ = static_cast<unsigned>(__dn);
|
|
119
|
-
}
|
|
120
|
-
++__first.__seg_;
|
|
121
|
-
// __first.__ctz_ = 0;
|
|
122
|
-
}
|
|
123
|
-
// __first.__ctz_ == 0;
|
|
124
|
-
// do middle words
|
|
125
|
-
unsigned __clz_r = __bits_per_word - __result.__ctz_;
|
|
126
|
-
__storage_type __m = std::__leading_mask<__storage_type>(__result.__ctz_);
|
|
127
|
-
for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_) {
|
|
128
|
-
__storage_type __b = *__first.__seg_;
|
|
129
|
-
*__result.__seg_ &= ~__m;
|
|
130
|
-
*__result.__seg_ |= __b << __result.__ctz_;
|
|
131
|
-
++__result.__seg_;
|
|
132
|
-
*__result.__seg_ &= __m;
|
|
133
|
-
*__result.__seg_ |= __b >> __clz_r;
|
|
134
|
-
}
|
|
135
|
-
// do last word
|
|
136
|
-
if (__n > 0) {
|
|
137
|
-
__m = std::__trailing_mask<__storage_type>(__bits_per_word - __n);
|
|
138
|
-
__storage_type __b = *__first.__seg_ & __m;
|
|
139
|
-
__storage_type __dn = std::min(__n, static_cast<difference_type>(__clz_r));
|
|
140
|
-
__m = std::__middle_mask<__storage_type>(__clz_r - __dn, __result.__ctz_);
|
|
141
|
-
*__result.__seg_ &= ~__m;
|
|
142
|
-
*__result.__seg_ |= __b << __result.__ctz_;
|
|
143
|
-
__result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word;
|
|
144
|
-
__result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_) % __bits_per_word);
|
|
145
|
-
__n -= __dn;
|
|
146
|
-
if (__n > 0) {
|
|
147
|
-
__m = std::__trailing_mask<__storage_type>(__bits_per_word - __n);
|
|
148
|
-
*__result.__seg_ &= ~__m;
|
|
149
|
-
*__result.__seg_ |= __b >> __dn;
|
|
150
|
-
__result.__ctz_ = static_cast<unsigned>(__n);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return __result;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
40
|
struct __copy_impl {
|
|
158
|
-
template <class _InIter,
|
|
41
|
+
template <class _InIter,
|
|
42
|
+
class _Sent,
|
|
43
|
+
class _OutIter,
|
|
44
|
+
__enable_if_t<!__specialized_algorithm<_Algorithm::__copy,
|
|
45
|
+
__iterator_pair<_InIter, _Sent>,
|
|
46
|
+
__single_iterator<_OutIter> >::__has_algorithm,
|
|
47
|
+
int> = 0>
|
|
159
48
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
|
|
160
49
|
operator()(_InIter __first, _Sent __last, _OutIter __result) const {
|
|
161
50
|
while (__first != __last) {
|
|
@@ -167,37 +56,39 @@ struct __copy_impl {
|
|
|
167
56
|
return std::make_pair(std::move(__first), std::move(__result));
|
|
168
57
|
}
|
|
169
58
|
|
|
170
|
-
template <class _InIter,
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
};
|
|
59
|
+
template <class _InIter,
|
|
60
|
+
class _Sent,
|
|
61
|
+
class _OutIter,
|
|
62
|
+
__enable_if_t<__specialized_algorithm<_Algorithm::__copy,
|
|
63
|
+
__iterator_pair<_InIter, _Sent>,
|
|
64
|
+
__single_iterator<_OutIter> >::__has_algorithm,
|
|
65
|
+
int> = 0>
|
|
66
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 static pair<_InIter, _OutIter>
|
|
67
|
+
operator()(_InIter __first, _Sent __last, _OutIter __result) {
|
|
68
|
+
return __specialized_algorithm<_Algorithm::__copy, __iterator_pair<_InIter, _Sent>, __single_iterator<_OutIter> >()(
|
|
69
|
+
std::move(__first), std::move(__last), std::move(__result));
|
|
70
|
+
}
|
|
184
71
|
|
|
185
|
-
template <class _InIter, class _OutIter, __enable_if_t<
|
|
72
|
+
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator_v<_InIter>, int> = 0>
|
|
186
73
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
|
|
187
74
|
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
|
|
188
|
-
|
|
75
|
+
using __local_iterator = typename __segmented_iterator_traits<_InIter>::__local_iterator;
|
|
76
|
+
std::__for_each_segment(__first, __last, [&__result](__local_iterator __lfirst, __local_iterator __llast) {
|
|
77
|
+
__result = std::__copy(std::move(__lfirst), std::move(__llast), std::move(__result)).second;
|
|
78
|
+
});
|
|
189
79
|
return std::make_pair(__last, std::move(__result));
|
|
190
80
|
}
|
|
191
81
|
|
|
192
82
|
template <class _InIter,
|
|
193
83
|
class _OutIter,
|
|
194
84
|
__enable_if_t<__has_random_access_iterator_category<_InIter>::value &&
|
|
195
|
-
!
|
|
85
|
+
!__is_segmented_iterator_v<_InIter> && __is_segmented_iterator_v<_OutIter>,
|
|
196
86
|
int> = 0>
|
|
197
87
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
|
|
198
88
|
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
|
|
199
89
|
using _Traits = __segmented_iterator_traits<_OutIter>;
|
|
200
|
-
using _DiffT
|
|
90
|
+
using _DiffT =
|
|
91
|
+
typename common_type<__iterator_difference_type<_InIter>, __iterator_difference_type<_OutIter> >::type;
|
|
201
92
|
|
|
202
93
|
if (__first == __last)
|
|
203
94
|
return std::make_pair(std::move(__first), std::move(__result));
|
|
@@ -217,16 +108,6 @@ struct __copy_impl {
|
|
|
217
108
|
}
|
|
218
109
|
}
|
|
219
110
|
|
|
220
|
-
template <class _Cp, bool _IsConst>
|
|
221
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pair<__bit_iterator<_Cp, _IsConst>, __bit_iterator<_Cp, false> >
|
|
222
|
-
operator()(__bit_iterator<_Cp, _IsConst> __first,
|
|
223
|
-
__bit_iterator<_Cp, _IsConst> __last,
|
|
224
|
-
__bit_iterator<_Cp, false> __result) const {
|
|
225
|
-
if (__first.__ctz_ == __result.__ctz_)
|
|
226
|
-
return std::make_pair(__last, std::__copy_aligned(__first, __last, __result));
|
|
227
|
-
return std::make_pair(__last, std::__copy_unaligned(__first, __last, __result));
|
|
228
|
-
}
|
|
229
|
-
|
|
230
111
|
// At this point, the iterators have been unwrapped so any `contiguous_iterator` has been unwrapped to a pointer.
|
|
231
112
|
template <class _In, class _Out, __enable_if_t<__can_lower_copy_assignment_to_memmove<_In, _Out>::value, int> = 0>
|
|
232
113
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_In*, _Out*>
|