react-native-quick-crypto 1.0.18 → 1.1.0
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/QuickCrypto.podspec +12 -38
- package/README.md +2 -0
- package/android/CMakeLists.txt +3 -0
- package/cpp/utils/HybridUtils.cpp +39 -77
- package/deps/simdutf/.clang-format +4 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +62 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +35 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +29 -0
- package/deps/simdutf/.github/pull_request_template.md +51 -0
- package/deps/simdutf/.github/workflows/aarch64.yml +39 -0
- package/deps/simdutf/.github/workflows/alpine.yml +27 -0
- package/deps/simdutf/.github/workflows/amalgamation_demos.yml +34 -0
- package/deps/simdutf/.github/workflows/armv7.yml +32 -0
- package/deps/simdutf/.github/workflows/atomic_fuzz.yml +25 -0
- package/deps/simdutf/.github/workflows/cifuzz.yml +37 -0
- package/deps/simdutf/.github/workflows/clangformat.yml +36 -0
- package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +40 -0
- package/deps/simdutf/.github/workflows/debian.yml +33 -0
- package/deps/simdutf/.github/workflows/documentation.yml +36 -0
- package/deps/simdutf/.github/workflows/emscripten.yml +19 -0
- package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +39 -0
- package/deps/simdutf/.github/workflows/macos-latest.yml +29 -0
- package/deps/simdutf/.github/workflows/msys2-clang.yml +48 -0
- package/deps/simdutf/.github/workflows/msys2.yml +50 -0
- package/deps/simdutf/.github/workflows/ppc64le.yml +29 -0
- package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +35 -0
- package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +35 -0
- package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +31 -0
- package/deps/simdutf/.github/workflows/s390x.yml +29 -0
- package/deps/simdutf/.github/workflows/selective-amalgamation.yml +29 -0
- package/deps/simdutf/.github/workflows/typos.yml +19 -0
- package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +30 -0
- package/deps/simdutf/.github/workflows/ubuntu22.yml +32 -0
- package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +27 -0
- package/deps/simdutf/.github/workflows/ubuntu22sani.yml +29 -0
- package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +34 -0
- package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +34 -0
- package/deps/simdutf/.github/workflows/ubuntu24.yml +32 -0
- package/deps/simdutf/.github/workflows/ubuntu24sani.yml +36 -0
- package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +29 -0
- package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +21 -0
- package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-ci.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +36 -0
- package/deps/simdutf/AI_USAGE_POLICY.md +56 -0
- package/deps/simdutf/AUTHORS +6 -0
- package/deps/simdutf/CMakeLists.txt +231 -0
- package/deps/simdutf/CONTRIBUTING.md +214 -0
- package/deps/simdutf/CONTRIBUTORS +1 -0
- package/deps/simdutf/Doxyfile +2584 -0
- package/deps/simdutf/LICENSE-APACHE +201 -0
- package/deps/simdutf/LICENSE-MIT +18 -0
- package/deps/simdutf/Makefile.crosscompile +54 -0
- package/deps/simdutf/README-RVV.md +16 -0
- package/deps/simdutf/README.md +2782 -0
- package/deps/simdutf/SECURITY.md +8 -0
- package/deps/simdutf/benchmarks/CMakeLists.txt +101 -0
- package/deps/simdutf/benchmarks/alignment.cpp +150 -0
- package/deps/simdutf/benchmarks/base64/CMakeLists.txt +30 -0
- package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +875 -0
- package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +49 -0
- package/deps/simdutf/benchmarks/base64/node_base64.h +227 -0
- package/deps/simdutf/benchmarks/base64/openssl3_base64.h +334 -0
- package/deps/simdutf/benchmarks/benchmark.cpp +65 -0
- package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +347 -0
- package/deps/simdutf/benchmarks/competition/.clang-format-ignore +5 -0
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +1276 -0
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +595 -0
- package/deps/simdutf/benchmarks/competition/README.md +7 -0
- package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +91 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +444 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +13183 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/script.py +73 -0
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +738 -0
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +293 -0
- package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +8 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Makefile +44 -0
- package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +169 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +148 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +45 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +34 -0
- package/deps/simdutf/benchmarks/competition/u8u16/README +56 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +43 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +27 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +16 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +18 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +16 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +28 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +20 -0
- package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +440 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +121 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +158 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +270 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +141 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +216 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +119 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +2430 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +39 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +421 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +836 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +222 -0
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +4 -0
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +5 -0
- package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +390 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +18 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +448 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +284 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +1975 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +2263 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +239 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +232 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +194 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +193 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +167 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +288 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +117 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +3 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +3 -0
- package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +2 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +23 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +44 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +106 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +14 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +8 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +14 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +8 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +10 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +9 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +25 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +94 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +20 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +2 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +1 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +75 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +47 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +17 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +76 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +35 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +117 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +210 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +158 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +104 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +334 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +186 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +140 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +42 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +100 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +57 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +85 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +27 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +126 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +108 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +139 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +74 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +65 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +91 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +772 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +486 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +162 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +15 -0
- package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +292 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +23 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/README.md +1503 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +335 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +338 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +103 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +103 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +274 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +34 -0
- package/deps/simdutf/benchmarks/dataset/README.md +155 -0
- package/deps/simdutf/benchmarks/dataset/emoji.txt +204 -0
- package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +40 -0
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +80 -0
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +20 -0
- package/deps/simdutf/benchmarks/find/CMakeLists.txt +6 -0
- package/deps/simdutf/benchmarks/find/findbenchmark.cpp +63 -0
- package/deps/simdutf/benchmarks/find/findbenchmarker.h +46 -0
- package/deps/simdutf/benchmarks/shortbench.cpp +555 -0
- package/deps/simdutf/benchmarks/src/CMakeLists.txt +52 -0
- package/deps/simdutf/benchmarks/src/apple_arm_events.h +1104 -0
- package/deps/simdutf/benchmarks/src/benchmark.cpp +3899 -0
- package/deps/simdutf/benchmarks/src/benchmark.h +317 -0
- package/deps/simdutf/benchmarks/src/benchmark_base.cpp +144 -0
- package/deps/simdutf/benchmarks/src/benchmark_base.h +98 -0
- package/deps/simdutf/benchmarks/src/cmdline.cpp +176 -0
- package/deps/simdutf/benchmarks/src/cmdline.h +35 -0
- package/deps/simdutf/benchmarks/src/event_counter.h +162 -0
- package/deps/simdutf/benchmarks/src/linux-perf-events.h +104 -0
- package/deps/simdutf/benchmarks/stream.cpp +209 -0
- package/deps/simdutf/benchmarks/threaded.cpp +123 -0
- package/deps/simdutf/cmake/CPM.cmake +1363 -0
- package/deps/simdutf/cmake/JoinPaths.cmake +23 -0
- package/deps/simdutf/cmake/add_cpp_test.cmake +68 -0
- package/deps/simdutf/cmake/simdutf-config.cmake.in +2 -0
- package/deps/simdutf/cmake/simdutf-flags.cmake +26 -0
- package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +4 -0
- package/deps/simdutf/cmake/toolchains-dev/README.md +32 -0
- package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +14 -0
- package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +22 -0
- package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +38 -0
- package/deps/simdutf/doc/avx512.png +0 -0
- package/deps/simdutf/doc/logo.png +0 -0
- package/deps/simdutf/doc/logo.svg +165 -0
- package/deps/simdutf/doc/node2023.png +0 -0
- package/deps/simdutf/doc/shortinput.md +78 -0
- package/deps/simdutf/doc/utf16utf8.png +0 -0
- package/deps/simdutf/doc/utf8utf16.png +0 -0
- package/deps/simdutf/doc/widelogo.png +0 -0
- package/deps/simdutf/doxygen.py +50 -0
- package/deps/simdutf/fuzz/.clang-format +9 -0
- package/deps/simdutf/fuzz/CMakeLists.txt +45 -0
- package/deps/simdutf/fuzz/README.md +168 -0
- package/deps/simdutf/fuzz/atomic_base64.cpp +448 -0
- package/deps/simdutf/fuzz/base64.cpp +278 -0
- package/deps/simdutf/fuzz/build.sh +83 -0
- package/deps/simdutf/fuzz/conversion.cpp +669 -0
- package/deps/simdutf/fuzz/helpers/.clang-format-ignore +1 -0
- package/deps/simdutf/fuzz/helpers/common.h +135 -0
- package/deps/simdutf/fuzz/helpers/nameof.hpp +1258 -0
- package/deps/simdutf/fuzz/main.cpp +72 -0
- package/deps/simdutf/fuzz/minimize_and_cleanse.sh +87 -0
- package/deps/simdutf/fuzz/misc.cpp +216 -0
- package/deps/simdutf/fuzz/random_fuzz.sh +154 -0
- package/deps/simdutf/fuzz/roundtrip.cpp +588 -0
- package/deps/simdutf/fuzz/safe_conversion.cpp +104 -0
- package/deps/simdutf/include/simdutf/avx512.h +79 -0
- package/deps/simdutf/include/simdutf/base64_implementation.h +158 -0
- package/deps/simdutf/include/simdutf/base64_tables.h +887 -0
- package/deps/simdutf/include/simdutf/common_defs.h +186 -0
- package/deps/simdutf/include/simdutf/compiler_check.h +50 -0
- package/deps/simdutf/include/simdutf/constexpr_ptr.h +138 -0
- package/deps/simdutf/include/simdutf/encoding_types.h +189 -0
- package/deps/simdutf/include/simdutf/error.h +126 -0
- package/deps/simdutf/include/simdutf/implementation.h +7081 -0
- package/deps/simdutf/include/simdutf/internal/isadetection.h +325 -0
- package/deps/simdutf/include/simdutf/portability.h +285 -0
- package/deps/simdutf/include/simdutf/scalar/ascii.h +86 -0
- package/deps/simdutf/include/simdutf/scalar/atomic_util.h +105 -0
- package/deps/simdutf/include/simdutf/scalar/base64.h +911 -0
- package/deps/simdutf/include/simdutf/scalar/latin1.h +26 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf16/latin1_to_utf16.h +52 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf32/latin1_to_utf32.h +27 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf8/latin1_to_utf8.h +191 -0
- package/deps/simdutf/include/simdutf/scalar/swap_bytes.h +35 -0
- package/deps/simdutf/include/simdutf/scalar/utf16.h +226 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/utf16_to_latin1.h +108 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/valid_utf16_to_latin1.h +40 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/utf16_to_utf32.h +86 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/valid_utf16_to_utf32.h +44 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/utf16_to_utf8.h +295 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/valid_utf16_to_utf8.h +91 -0
- package/deps/simdutf/include/simdutf/scalar/utf32.h +82 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/utf32_to_latin1.h +68 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/valid_utf32_to_latin1.h +67 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/utf32_to_utf16.h +84 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/valid_utf32_to_utf16.h +44 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/utf32_to_utf8.h +142 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/valid_utf32_to_utf8.h +72 -0
- package/deps/simdutf/include/simdutf/scalar/utf8.h +326 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/utf8_to_latin1.h +225 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/valid_utf8_to_latin1.h +87 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/utf8_to_utf16.h +342 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/valid_utf8_to_utf16.h +106 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/utf8_to_utf32.h +299 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/valid_utf8_to_utf32.h +83 -0
- package/deps/simdutf/include/simdutf/simdutf_version.h +26 -0
- package/deps/simdutf/include/simdutf.h +26 -0
- package/deps/simdutf/include/simdutf_c.h +342 -0
- package/deps/simdutf/riscv/Dockerfile +16 -0
- package/deps/simdutf/riscv/README.md +24 -0
- package/deps/simdutf/riscv/remove-docker-station +8 -0
- package/deps/simdutf/riscv/run-docker-station +31 -0
- package/deps/simdutf/scripts/.flake8 +2 -0
- package/deps/simdutf/scripts/Makefile +2 -0
- package/deps/simdutf/scripts/README_ADD_FUNCTION.md +49 -0
- package/deps/simdutf/scripts/add_function.py +330 -0
- package/deps/simdutf/scripts/amalgamation_tests.py +156 -0
- package/deps/simdutf/scripts/base64/Makefile +2 -0
- package/deps/simdutf/scripts/base64/README.md +2 -0
- package/deps/simdutf/scripts/base64/avx512.py +76 -0
- package/deps/simdutf/scripts/base64/neon_decode.py +143 -0
- package/deps/simdutf/scripts/base64/neon_generate_lut.py +101 -0
- package/deps/simdutf/scripts/base64/sse.py +252 -0
- package/deps/simdutf/scripts/base64/sseregular.py +160 -0
- package/deps/simdutf/scripts/base64/sseurl.py +283 -0
- package/deps/simdutf/scripts/base64/table.py +59 -0
- package/deps/simdutf/scripts/base64bench_print.py +145 -0
- package/deps/simdutf/scripts/benchmark-all.py +119 -0
- package/deps/simdutf/scripts/benchmark_print.py +324 -0
- package/deps/simdutf/scripts/check_feature_macros.py +156 -0
- package/deps/simdutf/scripts/check_typos.sh +13 -0
- package/deps/simdutf/scripts/clang_format.sh +35 -0
- package/deps/simdutf/scripts/clang_format_docker.sh +38 -0
- package/deps/simdutf/scripts/common.py +24 -0
- package/deps/simdutf/scripts/compilation_benchmark.py +55 -0
- package/deps/simdutf/scripts/compile_many_variations.sh +64 -0
- package/deps/simdutf/scripts/create_latex_table.py +62 -0
- package/deps/simdutf/scripts/docker/Dockerfile +14 -0
- package/deps/simdutf/scripts/docker/Makefile +9 -0
- package/deps/simdutf/scripts/docker/README.md +30 -0
- package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
- package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +155 -0
- package/deps/simdutf/scripts/prepare_doxygen.sh +21 -0
- package/deps/simdutf/scripts/release.py +197 -0
- package/deps/simdutf/scripts/shortinputplots.py +97 -0
- package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +422 -0
- package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +105 -0
- package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +186 -0
- package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +137 -0
- package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +129 -0
- package/deps/simdutf/scripts/table.py +207 -0
- package/deps/simdutf/scripts/tests/new.txt +33 -0
- package/deps/simdutf/scripts/tests/old.txt +33 -0
- package/deps/simdutf/scripts/tests/results.txt +272 -0
- package/deps/simdutf/simdutf.pc.in +11 -0
- package/deps/simdutf/singleheader/.flake8 +2 -0
- package/deps/simdutf/singleheader/CMakeLists.txt +64 -0
- package/deps/simdutf/singleheader/README-dev.md +81 -0
- package/deps/simdutf/singleheader/README.md +19 -0
- package/deps/simdutf/singleheader/amalgamate.py +513 -0
- package/deps/simdutf/singleheader/amalgamation_demo.c +59 -0
- package/deps/simdutf/singleheader/amalgamation_demo.cpp +54 -0
- package/deps/simdutf/singleheader/test-features.py +262 -0
- package/deps/simdutf/src/CMakeLists.txt +78 -0
- package/deps/simdutf/src/arm64/arm_base64.cpp +791 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf16.cpp +24 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf32.cpp +24 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf8.cpp +70 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_latin1.cpp +61 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf32.cpp +185 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf8.cpp +780 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_latin1.cpp +60 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf16.cpp +208 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf8.cpp +505 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_latin1.cpp +69 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf16.cpp +313 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf32.cpp +179 -0
- package/deps/simdutf/src/arm64/arm_find.cpp +199 -0
- package/deps/simdutf/src/arm64/arm_utf16fix.cpp +185 -0
- package/deps/simdutf/src/arm64/arm_validate_utf16.cpp +165 -0
- package/deps/simdutf/src/arm64/arm_validate_utf32le.cpp +65 -0
- package/deps/simdutf/src/arm64/implementation.cpp +1442 -0
- package/deps/simdutf/src/encoding_types.cpp +67 -0
- package/deps/simdutf/src/error.cpp +3 -0
- package/deps/simdutf/src/fallback/implementation.cpp +589 -0
- package/deps/simdutf/src/generic/ascii_validation.h +50 -0
- package/deps/simdutf/src/generic/base64.h +233 -0
- package/deps/simdutf/src/generic/base64lengths.h +63 -0
- package/deps/simdutf/src/generic/buf_block_reader.h +109 -0
- package/deps/simdutf/src/generic/find.h +75 -0
- package/deps/simdutf/src/generic/utf16/change_endianness.h +24 -0
- package/deps/simdutf/src/generic/utf16/count_code_points_bytemask.h +58 -0
- package/deps/simdutf/src/generic/utf16/to_well_formed.h +93 -0
- package/deps/simdutf/src/generic/utf16/utf32_length_from_utf16.h +15 -0
- package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16.h +35 -0
- package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16_bytemask.h +199 -0
- package/deps/simdutf/src/generic/utf16.h +73 -0
- package/deps/simdutf/src/generic/utf32.h +136 -0
- package/deps/simdutf/src/generic/utf8/utf16_length_from_utf8_bytemask.h +53 -0
- package/deps/simdutf/src/generic/utf8.h +92 -0
- package/deps/simdutf/src/generic/utf8_to_latin1/utf8_to_latin1.h +316 -0
- package/deps/simdutf/src/generic/utf8_to_latin1/valid_utf8_to_latin1.h +78 -0
- package/deps/simdutf/src/generic/utf8_to_utf16/utf8_to_utf16.h +332 -0
- package/deps/simdutf/src/generic/utf8_to_utf16/valid_utf8_to_utf16.h +74 -0
- package/deps/simdutf/src/generic/utf8_to_utf32/utf8_to_utf32.h +318 -0
- package/deps/simdutf/src/generic/utf8_to_utf32/valid_utf8_to_utf32.h +42 -0
- package/deps/simdutf/src/generic/utf8_validation/utf8_lookup4_algorithm.h +223 -0
- package/deps/simdutf/src/generic/utf8_validation/utf8_validator.h +84 -0
- package/deps/simdutf/src/generic/validate_utf16.h +164 -0
- package/deps/simdutf/src/generic/validate_utf32.h +99 -0
- package/deps/simdutf/src/haswell/avx2_base64.cpp +837 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf16.cpp +28 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf32.cpp +20 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf8.cpp +83 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_latin1.cpp +83 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf32.cpp +210 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf8.cpp +602 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_latin1.cpp +116 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf16.cpp +164 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf8.cpp +569 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_latin1.cpp +60 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf16.cpp +195 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf32.cpp +135 -0
- package/deps/simdutf/src/haswell/avx2_utf16fix.cpp +173 -0
- package/deps/simdutf/src/haswell/avx2_validate_utf16.cpp +17 -0
- package/deps/simdutf/src/haswell/implementation.cpp +1447 -0
- package/deps/simdutf/src/icelake/icelake_ascii_validation.inl.cpp +19 -0
- package/deps/simdutf/src/icelake/icelake_base64.inl.cpp +630 -0
- package/deps/simdutf/src/icelake/icelake_common.inl.cpp +37 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf16.inl.cpp +36 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf32.inl.cpp +23 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf8.inl.cpp +107 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_latin1.inl.cpp +103 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf32.inl.cpp +136 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf8.inl.cpp +206 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_latin1.inl.cpp +74 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf16.inl.cpp +338 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf8.inl.cpp +574 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf8_to_latin1.inl.cpp +104 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf8_to_utf16.inl.cpp +75 -0
- package/deps/simdutf/src/icelake/icelake_convert_valid_utf8_to_latin1.inl.cpp +69 -0
- package/deps/simdutf/src/icelake/icelake_find.inl.cpp +146 -0
- package/deps/simdutf/src/icelake/icelake_from_utf8.inl.cpp +266 -0
- package/deps/simdutf/src/icelake/icelake_from_valid_utf8.inl.cpp +136 -0
- package/deps/simdutf/src/icelake/icelake_macros.inl.cpp +143 -0
- package/deps/simdutf/src/icelake/icelake_utf16fix.cpp +138 -0
- package/deps/simdutf/src/icelake/icelake_utf32_validation.inl.cpp +63 -0
- package/deps/simdutf/src/icelake/icelake_utf8_common.inl.cpp +753 -0
- package/deps/simdutf/src/icelake/icelake_utf8_length_from_utf16.inl.cpp +269 -0
- package/deps/simdutf/src/icelake/icelake_utf8_validation.inl.cpp +116 -0
- package/deps/simdutf/src/icelake/implementation.cpp +1903 -0
- package/deps/simdutf/src/implementation.cpp +2526 -0
- package/deps/simdutf/src/lasx/implementation.cpp +1531 -0
- package/deps/simdutf/src/lasx/lasx_base64.cpp +695 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf16.cpp +76 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf32.cpp +55 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf8.cpp +65 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_latin1.cpp +64 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf32.cpp +183 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf8.cpp +550 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_latin1.cpp +73 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf16.cpp +218 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf8.cpp +589 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_latin1.cpp +72 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf16.cpp +296 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf32.cpp +190 -0
- package/deps/simdutf/src/lasx/lasx_find.cpp +64 -0
- package/deps/simdutf/src/lasx/lasx_validate_utf16.cpp +13 -0
- package/deps/simdutf/src/lasx/lasx_validate_utf32le.cpp +84 -0
- package/deps/simdutf/src/lsx/implementation.cpp +1417 -0
- package/deps/simdutf/src/lsx/lsx_base64.cpp +675 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf16.cpp +39 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf32.cpp +27 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf8.cpp +56 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_latin1.cpp +64 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf32.cpp +133 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf8.cpp +518 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_latin1.cpp +66 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf16.cpp +155 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf8.cpp +459 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_latin1.cpp +75 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf16.cpp +291 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf32.cpp +179 -0
- package/deps/simdutf/src/lsx/lsx_find.cpp +60 -0
- package/deps/simdutf/src/lsx/lsx_validate_utf16.cpp +13 -0
- package/deps/simdutf/src/lsx/lsx_validate_utf32le.cpp +68 -0
- package/deps/simdutf/src/ppc64/implementation.cpp +992 -0
- package/deps/simdutf/src/ppc64/ppc64_base64.cpp +480 -0
- package/deps/simdutf/src/ppc64/ppc64_base64_internal_tests.cpp +401 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf16.cpp +12 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf32.cpp +12 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf8.cpp +149 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_latin1.cpp +67 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf32.cpp +87 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf8.cpp +296 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_latin1.cpp +57 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf16.cpp +117 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf8.cpp +166 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_latin1.cpp +69 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf16.cpp +211 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf32.cpp +153 -0
- package/deps/simdutf/src/ppc64/ppc64_utf16_to_utf8_tables.h +1011 -0
- package/deps/simdutf/src/ppc64/ppc64_utf8_length_from_latin1.cpp +37 -0
- package/deps/simdutf/src/ppc64/ppc64_validate_utf16.cpp +19 -0
- package/deps/simdutf/src/ppc64/templates.cpp +91 -0
- package/deps/simdutf/src/rvv/implementation.cpp +138 -0
- package/deps/simdutf/src/rvv/rvv_find.cpp +27 -0
- package/deps/simdutf/src/rvv/rvv_helpers.inl.cpp +23 -0
- package/deps/simdutf/src/rvv/rvv_latin1_to.inl.cpp +71 -0
- package/deps/simdutf/src/rvv/rvv_length_from.inl.cpp +164 -0
- package/deps/simdutf/src/rvv/rvv_utf16_to.inl.cpp +399 -0
- package/deps/simdutf/src/rvv/rvv_utf16fix.cpp +110 -0
- package/deps/simdutf/src/rvv/rvv_utf32_to.inl.cpp +307 -0
- package/deps/simdutf/src/rvv/rvv_utf8_to.inl.cpp +435 -0
- package/deps/simdutf/src/rvv/rvv_validate.inl.cpp +275 -0
- package/deps/simdutf/src/simdutf/arm64/begin.h +2 -0
- package/deps/simdutf/src/simdutf/arm64/bitmanipulation.h +34 -0
- package/deps/simdutf/src/simdutf/arm64/end.h +2 -0
- package/deps/simdutf/src/simdutf/arm64/implementation.h +307 -0
- package/deps/simdutf/src/simdutf/arm64/intrinsics.h +10 -0
- package/deps/simdutf/src/simdutf/arm64/simd.h +547 -0
- package/deps/simdutf/src/simdutf/arm64/simd16-inl.h +403 -0
- package/deps/simdutf/src/simdutf/arm64/simd32-inl.h +129 -0
- package/deps/simdutf/src/simdutf/arm64/simd64-inl.h +28 -0
- package/deps/simdutf/src/simdutf/arm64.h +43 -0
- package/deps/simdutf/src/simdutf/fallback/begin.h +1 -0
- package/deps/simdutf/src/simdutf/fallback/bitmanipulation.h +13 -0
- package/deps/simdutf/src/simdutf/fallback/end.h +1 -0
- package/deps/simdutf/src/simdutf/fallback/implementation.h +331 -0
- package/deps/simdutf/src/simdutf/fallback.h +42 -0
- package/deps/simdutf/src/simdutf/haswell/begin.h +15 -0
- package/deps/simdutf/src/simdutf/haswell/bitmanipulation.h +35 -0
- package/deps/simdutf/src/simdutf/haswell/end.h +13 -0
- package/deps/simdutf/src/simdutf/haswell/implementation.h +338 -0
- package/deps/simdutf/src/simdutf/haswell/intrinsics.h +67 -0
- package/deps/simdutf/src/simdutf/haswell/simd.h +363 -0
- package/deps/simdutf/src/simdutf/haswell/simd16-inl.h +261 -0
- package/deps/simdutf/src/simdutf/haswell/simd32-inl.h +111 -0
- package/deps/simdutf/src/simdutf/haswell/simd64-inl.h +34 -0
- package/deps/simdutf/src/simdutf/haswell.h +63 -0
- package/deps/simdutf/src/simdutf/icelake/begin.h +14 -0
- package/deps/simdutf/src/simdutf/icelake/bitmanipulation.h +44 -0
- package/deps/simdutf/src/simdutf/icelake/end.h +12 -0
- package/deps/simdutf/src/simdutf/icelake/implementation.h +346 -0
- package/deps/simdutf/src/simdutf/icelake/intrinsics.h +138 -0
- package/deps/simdutf/src/simdutf/icelake/simd.h +17 -0
- package/deps/simdutf/src/simdutf/icelake/simd16-inl.h +90 -0
- package/deps/simdutf/src/simdutf/icelake/simd32-inl.h +47 -0
- package/deps/simdutf/src/simdutf/icelake.h +81 -0
- package/deps/simdutf/src/simdutf/lasx/begin.h +8 -0
- package/deps/simdutf/src/simdutf/lasx/bitmanipulation.h +25 -0
- package/deps/simdutf/src/simdutf/lasx/end.h +8 -0
- package/deps/simdutf/src/simdutf/lasx/implementation.h +310 -0
- package/deps/simdutf/src/simdutf/lasx/intrinsics.h +319 -0
- package/deps/simdutf/src/simdutf/lasx/simd.h +551 -0
- package/deps/simdutf/src/simdutf/lasx/simd16-inl.h +234 -0
- package/deps/simdutf/src/simdutf/lasx/simd32-inl.h +74 -0
- package/deps/simdutf/src/simdutf/lasx/simd64-inl.h +52 -0
- package/deps/simdutf/src/simdutf/lasx.h +49 -0
- package/deps/simdutf/src/simdutf/lsx/begin.h +2 -0
- package/deps/simdutf/src/simdutf/lsx/bitmanipulation.h +25 -0
- package/deps/simdutf/src/simdutf/lsx/end.h +2 -0
- package/deps/simdutf/src/simdutf/lsx/implementation.h +309 -0
- package/deps/simdutf/src/simdutf/lsx/intrinsics.h +196 -0
- package/deps/simdutf/src/simdutf/lsx/simd.h +421 -0
- package/deps/simdutf/src/simdutf/lsx/simd16-inl.h +242 -0
- package/deps/simdutf/src/simdutf/lsx/simd32-inl.h +69 -0
- package/deps/simdutf/src/simdutf/lsx/simd64-inl.h +50 -0
- package/deps/simdutf/src/simdutf/lsx.h +52 -0
- package/deps/simdutf/src/simdutf/ppc64/begin.h +1 -0
- package/deps/simdutf/src/simdutf/ppc64/bitmanipulation.h +29 -0
- package/deps/simdutf/src/simdutf/ppc64/end.h +1 -0
- package/deps/simdutf/src/simdutf/ppc64/implementation.h +348 -0
- package/deps/simdutf/src/simdutf/ppc64/intrinsics.h +19 -0
- package/deps/simdutf/src/simdutf/ppc64/simd.h +177 -0
- package/deps/simdutf/src/simdutf/ppc64/simd16-inl.h +327 -0
- package/deps/simdutf/src/simdutf/ppc64/simd32-inl.h +247 -0
- package/deps/simdutf/src/simdutf/ppc64/simd8-inl.h +618 -0
- package/deps/simdutf/src/simdutf/ppc64.h +40 -0
- package/deps/simdutf/src/simdutf/rvv/begin.h +7 -0
- package/deps/simdutf/src/simdutf/rvv/end.h +7 -0
- package/deps/simdutf/src/simdutf/rvv/implementation.h +321 -0
- package/deps/simdutf/src/simdutf/rvv/intrinsics.h +131 -0
- package/deps/simdutf/src/simdutf/rvv.h +41 -0
- package/deps/simdutf/src/simdutf/westmere/begin.h +8 -0
- package/deps/simdutf/src/simdutf/westmere/bitmanipulation.h +37 -0
- package/deps/simdutf/src/simdutf/westmere/end.h +8 -0
- package/deps/simdutf/src/simdutf/westmere/implementation.h +338 -0
- package/deps/simdutf/src/simdutf/westmere/intrinsics.h +38 -0
- package/deps/simdutf/src/simdutf/westmere/simd.h +379 -0
- package/deps/simdutf/src/simdutf/westmere/simd16-inl.h +242 -0
- package/deps/simdutf/src/simdutf/westmere/simd32-inl.h +151 -0
- package/deps/simdutf/src/simdutf/westmere/simd64-inl.h +33 -0
- package/deps/simdutf/src/simdutf/westmere.h +59 -0
- package/deps/simdutf/src/simdutf.cpp +152 -0
- package/deps/simdutf/src/simdutf_c.cpp +525 -0
- package/deps/simdutf/src/tables/utf16_to_utf8_tables.h +768 -0
- package/deps/simdutf/src/tables/utf32_to_utf16_tables.h +53 -0
- package/deps/simdutf/src/tables/utf8_to_utf16_tables.h +826 -0
- package/deps/simdutf/src/westmere/implementation.cpp +1479 -0
- package/deps/simdutf/src/westmere/internal/loader.cpp +7 -0
- package/deps/simdutf/src/westmere/internal/write_v_u16_11bits_to_utf8.cpp +66 -0
- package/deps/simdutf/src/westmere/sse_base64.cpp +672 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf16.cpp +21 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf32.cpp +31 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf8.cpp +71 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_latin1.cpp +70 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf32.cpp +206 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf8.cpp +504 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_latin1.cpp +82 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf16.cpp +209 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf8.cpp +589 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_latin1.cpp +58 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf16.cpp +197 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf32.cpp +141 -0
- package/deps/simdutf/src/westmere/sse_utf16fix.cpp +82 -0
- package/deps/simdutf/src/westmere/sse_validate_utf16.cpp +17 -0
- package/deps/simdutf/tests/CMakeLists.txt +483 -0
- package/deps/simdutf/tests/atomic_base64_tests.cpp +2845 -0
- package/deps/simdutf/tests/base64_tests.cpp +3617 -0
- package/deps/simdutf/tests/basic_fuzzer.cpp +805 -0
- package/deps/simdutf/tests/bele_tests.cpp +182 -0
- package/deps/simdutf/tests/constexpr_base64_tests.cpp +387 -0
- package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +52 -0
- package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +80 -0
- package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +66 -0
- package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +120 -0
- package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +203 -0
- package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +276 -0
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +109 -0
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +136 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +193 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +381 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +259 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +266 -0
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +148 -0
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +176 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +213 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +318 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +343 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +271 -0
- package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +111 -0
- package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +96 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +148 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +192 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +166 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +215 -0
- package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +181 -0
- package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +261 -0
- package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +516 -0
- package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +579 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +412 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +480 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +671 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +455 -0
- package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +1204 -0
- package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +337 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +37 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +97 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +126 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +71 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +122 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +244 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +49 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +92 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +114 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +109 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +84 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +124 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +221 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +155 -0
- package/deps/simdutf/tests/count_utf16be.cpp +64 -0
- package/deps/simdutf/tests/count_utf16le.cpp +61 -0
- package/deps/simdutf/tests/count_utf8.cpp +87 -0
- package/deps/simdutf/tests/detect_encodings_tests.cpp +312 -0
- package/deps/simdutf/tests/embed/valid_utf8.txt +1 -0
- package/deps/simdutf/tests/embed_tests.cpp +22 -0
- package/deps/simdutf/tests/find_tests.cpp +77 -0
- package/deps/simdutf/tests/fixed_string_tests.cpp +153 -0
- package/deps/simdutf/tests/helpers/CMakeLists.txt +25 -0
- package/deps/simdutf/tests/helpers/compiletime_conversions.h +222 -0
- package/deps/simdutf/tests/helpers/fixed_string.h +267 -0
- package/deps/simdutf/tests/helpers/random_int.cpp +30 -0
- package/deps/simdutf/tests/helpers/random_int.h +39 -0
- package/deps/simdutf/tests/helpers/random_utf16.cpp +123 -0
- package/deps/simdutf/tests/helpers/random_utf16.h +52 -0
- package/deps/simdutf/tests/helpers/random_utf32.cpp +41 -0
- package/deps/simdutf/tests/helpers/random_utf32.h +40 -0
- package/deps/simdutf/tests/helpers/random_utf8.cpp +93 -0
- package/deps/simdutf/tests/helpers/random_utf8.h +36 -0
- package/deps/simdutf/tests/helpers/test.cpp +231 -0
- package/deps/simdutf/tests/helpers/test.h +193 -0
- package/deps/simdutf/tests/helpers/transcode_test_base.cpp +1257 -0
- package/deps/simdutf/tests/helpers/transcode_test_base.h +683 -0
- package/deps/simdutf/tests/helpers/utf16.h +27 -0
- package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +43 -0
- package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +47 -0
- package/deps/simdutf/tests/internal_tests.cpp +27 -0
- package/deps/simdutf/tests/null_safety_tests.cpp +94 -0
- package/deps/simdutf/tests/random_fuzzer.cpp +779 -0
- package/deps/simdutf/tests/readme_tests.cpp +274 -0
- package/deps/simdutf/tests/reference/CMakeLists.txt +23 -0
- package/deps/simdutf/tests/reference/decode_utf16.h +81 -0
- package/deps/simdutf/tests/reference/decode_utf32.h +47 -0
- package/deps/simdutf/tests/reference/encode_latin1.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_latin1.h +32 -0
- package/deps/simdutf/tests/reference/encode_utf16.cpp +49 -0
- package/deps/simdutf/tests/reference/encode_utf16.h +20 -0
- package/deps/simdutf/tests/reference/encode_utf32.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_utf32.h +36 -0
- package/deps/simdutf/tests/reference/encode_utf8.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_utf8.h +40 -0
- package/deps/simdutf/tests/reference/validate_utf16.cpp +60 -0
- package/deps/simdutf/tests/reference/validate_utf16.h +14 -0
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +35 -0
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +13 -0
- package/deps/simdutf/tests/reference/validate_utf32.cpp +27 -0
- package/deps/simdutf/tests/reference/validate_utf32.h +12 -0
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +27 -0
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +12 -0
- package/deps/simdutf/tests/reference/validate_utf8.cpp +82 -0
- package/deps/simdutf/tests/reference/validate_utf8.h +11 -0
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +43 -0
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +12 -0
- package/deps/simdutf/tests/select_implementation.cpp +43 -0
- package/deps/simdutf/tests/simdutf_c_tests.cpp +244 -0
- package/deps/simdutf/tests/span_tests.cpp +401 -0
- package/deps/simdutf/tests/special_tests.cpp +559 -0
- package/deps/simdutf/tests/straight_c_test.c +187 -0
- package/deps/simdutf/tests/text_encoding_tests.cpp +77 -0
- package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +377 -0
- package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +202 -0
- package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +165 -0
- package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +77 -0
- package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +175 -0
- package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +188 -0
- package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +268 -0
- package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +274 -0
- package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +92 -0
- package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +114 -0
- package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +178 -0
- package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +88 -0
- package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +33 -0
- package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +228 -0
- package/deps/simdutf/tools/CMakeLists.txt +85 -0
- package/deps/simdutf/tools/fastbase64.cpp +250 -0
- package/deps/simdutf/tools/sutf.cpp +556 -0
- package/deps/simdutf/tools/sutf.h +40 -0
- package/lib/commonjs/blake3.js +2 -1
- package/lib/commonjs/blake3.js.map +1 -1
- package/lib/commonjs/diffie-hellman.js +5 -4
- package/lib/commonjs/diffie-hellman.js.map +1 -1
- package/lib/commonjs/ecdh.js +5 -4
- package/lib/commonjs/ecdh.js.map +1 -1
- package/lib/module/blake3.js +2 -1
- package/lib/module/blake3.js.map +1 -1
- package/lib/module/diffie-hellman.js +5 -4
- package/lib/module/diffie-hellman.js.map +1 -1
- package/lib/module/ecdh.js +5 -4
- package/lib/module/ecdh.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typescript/blake3.d.ts.map +1 -1
- package/lib/typescript/diffie-hellman.d.ts.map +1 -1
- package/lib/typescript/ecdh.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/blake3.ts +2 -1
- package/src/diffie-hellman.ts +5 -7
- package/src/ecdh.ts +5 -8
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
#ifndef SIMDUTF_LASX_IMPLEMENTATION_H
|
|
2
|
+
#define SIMDUTF_LASX_IMPLEMENTATION_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf.h"
|
|
5
|
+
#include "simdutf/internal/isadetection.h"
|
|
6
|
+
|
|
7
|
+
namespace simdutf {
|
|
8
|
+
namespace lasx {
|
|
9
|
+
|
|
10
|
+
namespace {
|
|
11
|
+
using namespace simdutf;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
class implementation final : public simdutf::implementation {
|
|
15
|
+
public:
|
|
16
|
+
simdutf_really_inline implementation()
|
|
17
|
+
: simdutf::implementation("lasx", "LOONGARCH ASX",
|
|
18
|
+
internal::instruction_set::LSX |
|
|
19
|
+
internal::instruction_set::LASX) {}
|
|
20
|
+
#if SIMDUTF_FEATURE_DETECT_ENCODING
|
|
21
|
+
simdutf_warn_unused int detect_encodings(const char *input,
|
|
22
|
+
size_t length) const noexcept final;
|
|
23
|
+
#endif // SIMDUTF_FEATURE_DETECT_ENCODING
|
|
24
|
+
#if SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
25
|
+
simdutf_warn_unused bool validate_utf8(const char *buf,
|
|
26
|
+
size_t len) const noexcept final;
|
|
27
|
+
#endif // SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
28
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
29
|
+
simdutf_warn_unused result
|
|
30
|
+
validate_utf8_with_errors(const char *buf, size_t len) const noexcept final;
|
|
31
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
32
|
+
#if SIMDUTF_FEATURE_ASCII
|
|
33
|
+
simdutf_warn_unused bool validate_ascii(const char *buf,
|
|
34
|
+
size_t len) const noexcept final;
|
|
35
|
+
simdutf_warn_unused result
|
|
36
|
+
validate_ascii_with_errors(const char *buf, size_t len) const noexcept final;
|
|
37
|
+
#endif // SIMDUTF_FEATURE_ASCII
|
|
38
|
+
|
|
39
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
40
|
+
simdutf_warn_unused bool
|
|
41
|
+
validate_utf16le_as_ascii(const char16_t *buf,
|
|
42
|
+
size_t len) const noexcept final;
|
|
43
|
+
|
|
44
|
+
simdutf_warn_unused bool
|
|
45
|
+
validate_utf16be_as_ascii(const char16_t *buf,
|
|
46
|
+
size_t len) const noexcept final;
|
|
47
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
48
|
+
|
|
49
|
+
#if SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
50
|
+
simdutf_warn_unused bool validate_utf16le(const char16_t *buf,
|
|
51
|
+
size_t len) const noexcept final;
|
|
52
|
+
#endif // SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
53
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
54
|
+
simdutf_warn_unused bool validate_utf16be(const char16_t *buf,
|
|
55
|
+
size_t len) const noexcept final;
|
|
56
|
+
simdutf_warn_unused result validate_utf16le_with_errors(
|
|
57
|
+
const char16_t *buf, size_t len) const noexcept final;
|
|
58
|
+
simdutf_warn_unused result validate_utf16be_with_errors(
|
|
59
|
+
const char16_t *buf, size_t len) const noexcept final;
|
|
60
|
+
void to_well_formed_utf16be(const char16_t *input, size_t len,
|
|
61
|
+
char16_t *output) const noexcept final;
|
|
62
|
+
void to_well_formed_utf16le(const char16_t *input, size_t len,
|
|
63
|
+
char16_t *output) const noexcept final;
|
|
64
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
65
|
+
#if SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
66
|
+
simdutf_warn_unused bool validate_utf32(const char32_t *buf,
|
|
67
|
+
size_t len) const noexcept final;
|
|
68
|
+
#endif // SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
69
|
+
#if SIMDUTF_FEATURE_UTF32
|
|
70
|
+
simdutf_warn_unused result validate_utf32_with_errors(
|
|
71
|
+
const char32_t *buf, size_t len) const noexcept final;
|
|
72
|
+
#endif // SIMDUTF_FEATURE_UTF32
|
|
73
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
74
|
+
simdutf_warn_unused size_t convert_latin1_to_utf8(
|
|
75
|
+
const char *buf, size_t len, char *utf8_output) const noexcept final;
|
|
76
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
77
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
78
|
+
simdutf_warn_unused size_t convert_latin1_to_utf16le(
|
|
79
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
80
|
+
simdutf_warn_unused size_t convert_latin1_to_utf16be(
|
|
81
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
82
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
83
|
+
#if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
84
|
+
simdutf_warn_unused size_t convert_latin1_to_utf32(
|
|
85
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
86
|
+
#endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
87
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
88
|
+
simdutf_warn_unused size_t convert_utf8_to_latin1(
|
|
89
|
+
const char *buf, size_t len, char *latin1_output) const noexcept final;
|
|
90
|
+
simdutf_warn_unused result convert_utf8_to_latin1_with_errors(
|
|
91
|
+
const char *buf, size_t len, char *latin1_buffer) const noexcept final;
|
|
92
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_latin1(
|
|
93
|
+
const char *buf, size_t len, char *latin1_output) const noexcept final;
|
|
94
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
95
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
96
|
+
simdutf_warn_unused size_t convert_utf8_to_utf16le(
|
|
97
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
98
|
+
simdutf_warn_unused size_t convert_utf8_to_utf16be(
|
|
99
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
100
|
+
simdutf_warn_unused result convert_utf8_to_utf16le_with_errors(
|
|
101
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
102
|
+
simdutf_warn_unused result convert_utf8_to_utf16be_with_errors(
|
|
103
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
104
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf16le(
|
|
105
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
106
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf16be(
|
|
107
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
108
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
109
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
110
|
+
simdutf_warn_unused size_t convert_utf8_to_utf32(
|
|
111
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
112
|
+
simdutf_warn_unused result convert_utf8_to_utf32_with_errors(
|
|
113
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
114
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf32(
|
|
115
|
+
const char *buf, size_t len, char32_t *utf32_buffer) const noexcept final;
|
|
116
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
117
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
118
|
+
simdutf_warn_unused size_t
|
|
119
|
+
convert_utf16le_to_latin1(const char16_t *buf, size_t len,
|
|
120
|
+
char *latin1_buffer) const noexcept final;
|
|
121
|
+
simdutf_warn_unused size_t
|
|
122
|
+
convert_utf16be_to_latin1(const char16_t *buf, size_t len,
|
|
123
|
+
char *latin1_buffer) const noexcept final;
|
|
124
|
+
simdutf_warn_unused result convert_utf16le_to_latin1_with_errors(
|
|
125
|
+
const char16_t *buf, size_t len,
|
|
126
|
+
char *latin1_buffer) const noexcept final;
|
|
127
|
+
simdutf_warn_unused result convert_utf16be_to_latin1_with_errors(
|
|
128
|
+
const char16_t *buf, size_t len,
|
|
129
|
+
char *latin1_buffer) const noexcept final;
|
|
130
|
+
simdutf_warn_unused size_t
|
|
131
|
+
convert_valid_utf16le_to_latin1(const char16_t *buf, size_t len,
|
|
132
|
+
char *latin1_buffer) const noexcept final;
|
|
133
|
+
simdutf_warn_unused size_t
|
|
134
|
+
convert_valid_utf16be_to_latin1(const char16_t *buf, size_t len,
|
|
135
|
+
char *latin1_buffer) const noexcept final;
|
|
136
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
137
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
138
|
+
simdutf_warn_unused size_t convert_utf16le_to_utf8(
|
|
139
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
140
|
+
simdutf_warn_unused size_t convert_utf16be_to_utf8(
|
|
141
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
142
|
+
simdutf_warn_unused result convert_utf16le_to_utf8_with_errors(
|
|
143
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
144
|
+
simdutf_warn_unused result convert_utf16be_to_utf8_with_errors(
|
|
145
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
146
|
+
simdutf_warn_unused size_t convert_valid_utf16le_to_utf8(
|
|
147
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
148
|
+
simdutf_warn_unused size_t convert_valid_utf16be_to_utf8(
|
|
149
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
150
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
151
|
+
#if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
152
|
+
simdutf_warn_unused size_t
|
|
153
|
+
convert_utf32_to_latin1(const char32_t *buf, size_t len,
|
|
154
|
+
char *latin1_output) const noexcept final;
|
|
155
|
+
simdutf_warn_unused result
|
|
156
|
+
convert_utf32_to_latin1_with_errors(const char32_t *buf, size_t len,
|
|
157
|
+
char *latin1_output) const noexcept final;
|
|
158
|
+
simdutf_warn_unused size_t
|
|
159
|
+
convert_valid_utf32_to_latin1(const char32_t *buf, size_t len,
|
|
160
|
+
char *latin1_output) const noexcept final;
|
|
161
|
+
#endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
162
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
163
|
+
simdutf_warn_unused size_t convert_utf32_to_utf8(
|
|
164
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
165
|
+
simdutf_warn_unused result convert_utf32_to_utf8_with_errors(
|
|
166
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
167
|
+
simdutf_warn_unused size_t convert_valid_utf32_to_utf8(
|
|
168
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
169
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
170
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
171
|
+
simdutf_warn_unused size_t
|
|
172
|
+
convert_utf32_to_utf16le(const char32_t *buf, size_t len,
|
|
173
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
174
|
+
simdutf_warn_unused size_t
|
|
175
|
+
convert_utf32_to_utf16be(const char32_t *buf, size_t len,
|
|
176
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
177
|
+
simdutf_warn_unused result convert_utf32_to_utf16le_with_errors(
|
|
178
|
+
const char32_t *buf, size_t len,
|
|
179
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
180
|
+
simdutf_warn_unused result convert_utf32_to_utf16be_with_errors(
|
|
181
|
+
const char32_t *buf, size_t len,
|
|
182
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
183
|
+
simdutf_warn_unused size_t
|
|
184
|
+
convert_valid_utf32_to_utf16le(const char32_t *buf, size_t len,
|
|
185
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
186
|
+
simdutf_warn_unused size_t
|
|
187
|
+
convert_valid_utf32_to_utf16be(const char32_t *buf, size_t len,
|
|
188
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
189
|
+
simdutf_warn_unused size_t
|
|
190
|
+
convert_utf16le_to_utf32(const char16_t *buf, size_t len,
|
|
191
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
192
|
+
simdutf_warn_unused size_t
|
|
193
|
+
convert_utf16be_to_utf32(const char16_t *buf, size_t len,
|
|
194
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
195
|
+
simdutf_warn_unused result convert_utf16le_to_utf32_with_errors(
|
|
196
|
+
const char16_t *buf, size_t len,
|
|
197
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
198
|
+
simdutf_warn_unused result convert_utf16be_to_utf32_with_errors(
|
|
199
|
+
const char16_t *buf, size_t len,
|
|
200
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
201
|
+
simdutf_warn_unused size_t
|
|
202
|
+
convert_valid_utf16le_to_utf32(const char16_t *buf, size_t len,
|
|
203
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
204
|
+
simdutf_warn_unused size_t
|
|
205
|
+
convert_valid_utf16be_to_utf32(const char16_t *buf, size_t len,
|
|
206
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
207
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
208
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
209
|
+
void change_endianness_utf16(const char16_t *buf, size_t length,
|
|
210
|
+
char16_t *output) const noexcept final;
|
|
211
|
+
simdutf_warn_unused size_t
|
|
212
|
+
count_utf16le(const char16_t *buf, size_t length) const noexcept override;
|
|
213
|
+
simdutf_warn_unused size_t
|
|
214
|
+
count_utf16be(const char16_t *buf, size_t length) const noexcept override;
|
|
215
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
216
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
217
|
+
simdutf_warn_unused size_t count_utf8(const char *buf,
|
|
218
|
+
size_t length) const noexcept override;
|
|
219
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
220
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
221
|
+
simdutf_warn_unused size_t utf8_length_from_utf16le(
|
|
222
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
223
|
+
simdutf_warn_unused size_t utf8_length_from_utf16be(
|
|
224
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
225
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
226
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
227
|
+
simdutf_warn_unused size_t utf32_length_from_utf16le(
|
|
228
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
229
|
+
simdutf_warn_unused size_t utf32_length_from_utf16be(
|
|
230
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
231
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
232
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
233
|
+
simdutf_warn_unused size_t utf16_length_from_utf8(
|
|
234
|
+
const char *input, size_t length) const noexcept override;
|
|
235
|
+
simdutf_warn_unused result utf8_length_from_utf16le_with_replacement(
|
|
236
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
237
|
+
;
|
|
238
|
+
simdutf_warn_unused result utf8_length_from_utf16be_with_replacement(
|
|
239
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
240
|
+
;
|
|
241
|
+
|
|
242
|
+
simdutf_warn_unused size_t convert_utf16le_to_utf8_with_replacement(
|
|
243
|
+
const char16_t *input, size_t length,
|
|
244
|
+
char *utf8_buffer) const noexcept override;
|
|
245
|
+
|
|
246
|
+
simdutf_warn_unused size_t convert_utf16be_to_utf8_with_replacement(
|
|
247
|
+
const char16_t *input, size_t length,
|
|
248
|
+
char *utf8_buffer) const noexcept override;
|
|
249
|
+
|
|
250
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
251
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
252
|
+
simdutf_warn_unused size_t utf8_length_from_utf32(
|
|
253
|
+
const char32_t *input, size_t length) const noexcept override;
|
|
254
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
255
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
256
|
+
simdutf_warn_unused size_t utf16_length_from_utf32(
|
|
257
|
+
const char32_t *input, size_t length) const noexcept override;
|
|
258
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
259
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
260
|
+
simdutf_warn_unused size_t utf32_length_from_utf8(
|
|
261
|
+
const char *input, size_t length) const noexcept override;
|
|
262
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
263
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
264
|
+
simdutf_warn_unused size_t latin1_length_from_utf8(
|
|
265
|
+
const char *input, size_t length) const noexcept override;
|
|
266
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
267
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
268
|
+
simdutf_warn_unused size_t utf8_length_from_latin1(
|
|
269
|
+
const char *input, size_t length) const noexcept override;
|
|
270
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
271
|
+
#if SIMDUTF_FEATURE_BASE64
|
|
272
|
+
simdutf_warn_unused result base64_to_binary(
|
|
273
|
+
const char *input, size_t length, char *output, base64_options options,
|
|
274
|
+
last_chunk_handling_options last_chunk_options =
|
|
275
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
276
|
+
simdutf_warn_unused full_result base64_to_binary_details(
|
|
277
|
+
const char *input, size_t length, char *output, base64_options options,
|
|
278
|
+
last_chunk_handling_options last_chunk_options =
|
|
279
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
280
|
+
simdutf_warn_unused result base64_to_binary(
|
|
281
|
+
const char16_t *input, size_t length, char *output,
|
|
282
|
+
base64_options options,
|
|
283
|
+
last_chunk_handling_options last_chunk_options =
|
|
284
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
285
|
+
simdutf_warn_unused full_result base64_to_binary_details(
|
|
286
|
+
const char16_t *input, size_t length, char *output,
|
|
287
|
+
base64_options options,
|
|
288
|
+
last_chunk_handling_options last_chunk_options =
|
|
289
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
290
|
+
size_t binary_to_base64(const char *input, size_t length, char *output,
|
|
291
|
+
base64_options options) const noexcept override;
|
|
292
|
+
size_t
|
|
293
|
+
binary_to_base64_with_lines(const char *input, size_t length, char *output,
|
|
294
|
+
size_t line_length,
|
|
295
|
+
base64_options options) const noexcept override;
|
|
296
|
+
const char *find(const char *start, const char *end,
|
|
297
|
+
char character) const noexcept override;
|
|
298
|
+
const char16_t *find(const char16_t *start, const char16_t *end,
|
|
299
|
+
char16_t character) const noexcept override;
|
|
300
|
+
simdutf_warn_unused size_t binary_length_from_base64(
|
|
301
|
+
const char *input, size_t length) const noexcept override;
|
|
302
|
+
simdutf_warn_unused size_t binary_length_from_base64(
|
|
303
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
304
|
+
#endif // SIMDUTF_FEATURE_BASE64
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
} // namespace lasx
|
|
308
|
+
} // namespace simdutf
|
|
309
|
+
|
|
310
|
+
#endif // SIMDUTF_LASX_IMPLEMENTATION_H
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
#ifndef SIMDUTF_LASX_INTRINSICS_H
|
|
2
|
+
#define SIMDUTF_LASX_INTRINSICS_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf.h"
|
|
5
|
+
|
|
6
|
+
// This should be the correct header whether
|
|
7
|
+
// you use visual studio or other compilers.
|
|
8
|
+
#include <lsxintrin.h>
|
|
9
|
+
#include <lasxintrin.h>
|
|
10
|
+
|
|
11
|
+
#if defined(__loongarch_asx)
|
|
12
|
+
#ifdef __clang__
|
|
13
|
+
#define VREGS_PREFIX "$vr"
|
|
14
|
+
#define XREGS_PREFIX "$xr"
|
|
15
|
+
#else // GCC
|
|
16
|
+
#define VREGS_PREFIX "$f"
|
|
17
|
+
#define XREGS_PREFIX "$f"
|
|
18
|
+
#endif
|
|
19
|
+
#define __ALL_REGS \
|
|
20
|
+
"0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26," \
|
|
21
|
+
"27,28,29,30,31"
|
|
22
|
+
// Convert __m128i to __m256i
|
|
23
|
+
static inline __m256i ____m256i(__m128i in) {
|
|
24
|
+
__m256i out = __lasx_xvldi(0);
|
|
25
|
+
__asm__ volatile(".irp i," __ALL_REGS "\n\t"
|
|
26
|
+
" .ifc %[out], " XREGS_PREFIX "\\i \n\t"
|
|
27
|
+
" .irp j," __ALL_REGS "\n\t"
|
|
28
|
+
" .ifc %[in], " VREGS_PREFIX "\\j \n\t"
|
|
29
|
+
" xvpermi.q $xr\\i, $xr\\j, 0x0 \n\t"
|
|
30
|
+
" .endif \n\t"
|
|
31
|
+
" .endr \n\t"
|
|
32
|
+
" .endif \n\t"
|
|
33
|
+
".endr \n\t"
|
|
34
|
+
: [out] "+f"(out)
|
|
35
|
+
: [in] "f"(in));
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
// Convert two __m128i to __m256i
|
|
39
|
+
static inline __m256i lasx_set_q(__m128i inhi, __m128i inlo) {
|
|
40
|
+
__m256i out;
|
|
41
|
+
__asm__ volatile(".irp i," __ALL_REGS "\n\t"
|
|
42
|
+
" .ifc %[hi], " VREGS_PREFIX "\\i \n\t"
|
|
43
|
+
" .irp j," __ALL_REGS "\n\t"
|
|
44
|
+
" .ifc %[lo], " VREGS_PREFIX "\\j \n\t"
|
|
45
|
+
" xvpermi.q $xr\\i, $xr\\j, 0x20 \n\t"
|
|
46
|
+
" .endif \n\t"
|
|
47
|
+
" .endr \n\t"
|
|
48
|
+
" .endif \n\t"
|
|
49
|
+
".endr \n\t"
|
|
50
|
+
".ifnc %[out], %[hi] \n\t"
|
|
51
|
+
".irp i," __ALL_REGS "\n\t"
|
|
52
|
+
" .ifc %[out], " XREGS_PREFIX "\\i \n\t"
|
|
53
|
+
" .irp j," __ALL_REGS "\n\t"
|
|
54
|
+
" .ifc %[hi], " VREGS_PREFIX "\\j \n\t"
|
|
55
|
+
" xvori.b $xr\\i, $xr\\j, 0 \n\t"
|
|
56
|
+
" .endif \n\t"
|
|
57
|
+
" .endr \n\t"
|
|
58
|
+
" .endif \n\t"
|
|
59
|
+
".endr \n\t"
|
|
60
|
+
".endif \n\t"
|
|
61
|
+
: [out] "=f"(out), [hi] "+f"(inhi)
|
|
62
|
+
: [lo] "f"(inlo));
|
|
63
|
+
return out;
|
|
64
|
+
}
|
|
65
|
+
// Convert __m256i low part to __m128i
|
|
66
|
+
static inline __m128i lasx_extracti128_lo(__m256i in) {
|
|
67
|
+
__m128i out;
|
|
68
|
+
__asm__ volatile(".ifnc %[out], %[in] \n\t"
|
|
69
|
+
".irp i," __ALL_REGS "\n\t"
|
|
70
|
+
" .ifc %[out], " VREGS_PREFIX "\\i \n\t"
|
|
71
|
+
" .irp j," __ALL_REGS "\n\t"
|
|
72
|
+
" .ifc %[in], " XREGS_PREFIX "\\j \n\t"
|
|
73
|
+
" vori.b $vr\\i, $vr\\j, 0 \n\t"
|
|
74
|
+
" .endif \n\t"
|
|
75
|
+
" .endr \n\t"
|
|
76
|
+
" .endif \n\t"
|
|
77
|
+
".endr \n\t"
|
|
78
|
+
".endif \n\t"
|
|
79
|
+
: [out] "=f"(out)
|
|
80
|
+
: [in] "f"(in));
|
|
81
|
+
return out;
|
|
82
|
+
}
|
|
83
|
+
// Convert __m256i high part to __m128i
|
|
84
|
+
static inline __m128i lasx_extracti128_hi(__m256i in) {
|
|
85
|
+
__m128i out;
|
|
86
|
+
__asm__ volatile(".irp i," __ALL_REGS "\n\t"
|
|
87
|
+
" .ifc %[out], " VREGS_PREFIX "\\i \n\t"
|
|
88
|
+
" .irp j," __ALL_REGS "\n\t"
|
|
89
|
+
" .ifc %[in], " XREGS_PREFIX "\\j \n\t"
|
|
90
|
+
" xvpermi.q $xr\\i, $xr\\j, 0x11 \n\t"
|
|
91
|
+
" .endif \n\t"
|
|
92
|
+
" .endr \n\t"
|
|
93
|
+
" .endif \n\t"
|
|
94
|
+
".endr \n\t"
|
|
95
|
+
: [out] "=f"(out)
|
|
96
|
+
: [in] "f"(in));
|
|
97
|
+
return out;
|
|
98
|
+
}
|
|
99
|
+
#endif
|
|
100
|
+
|
|
101
|
+
/*
|
|
102
|
+
Encoding of argument for LoongArch64 xvldi instruction. See:
|
|
103
|
+
https://jia.je/unofficial-loongarch-intrinsics-guide/lasx/misc/#__m256i-__lasx_xvldi-imm_n1024_1023-imm
|
|
104
|
+
|
|
105
|
+
1: imm[12:8]=0b10000: broadcast imm[7:0] as 32-bit elements to all lanes
|
|
106
|
+
|
|
107
|
+
2: imm[12:8]=0b10001: broadcast imm[7:0] << 8 as 32-bit elements to all lanes
|
|
108
|
+
|
|
109
|
+
3: imm[12:8]=0b10010: broadcast imm[7:0] << 16 as 32-bit elements to all lanes
|
|
110
|
+
|
|
111
|
+
4: imm[12:8]=0b10011: broadcast imm[7:0] << 24 as 32-bit elements to all lanes
|
|
112
|
+
|
|
113
|
+
5: imm[12:8]=0b10100: broadcast imm[7:0] as 16-bit elements to all lanes
|
|
114
|
+
|
|
115
|
+
6: imm[12:8]=0b10101: broadcast imm[7:0] << 8 as 16-bit elements to all lanes
|
|
116
|
+
|
|
117
|
+
7: imm[12:8]=0b10110: broadcast (imm[7:0] << 8) | 0xFF as 32-bit elements to all
|
|
118
|
+
lanes
|
|
119
|
+
|
|
120
|
+
8: imm[12:8]=0b10111: broadcast (imm[7:0] << 16) | 0xFFFF as 32-bit elements to
|
|
121
|
+
all lanes
|
|
122
|
+
|
|
123
|
+
9: imm[12:8]=0b11000: broadcast imm[7:0] as 8-bit elements to all lanes
|
|
124
|
+
|
|
125
|
+
10: imm[12:8]=0b11001: repeat each bit of imm[7:0] eight times, and broadcast
|
|
126
|
+
the result as 64-bit elements to all lanes
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
namespace lasx_vldi {
|
|
130
|
+
|
|
131
|
+
template <uint16_t v> class const_u16 {
|
|
132
|
+
constexpr static const uint8_t b0 = ((v >> 0 * 8) & 0xff);
|
|
133
|
+
constexpr static const uint8_t b1 = ((v >> 1 * 8) & 0xff);
|
|
134
|
+
|
|
135
|
+
constexpr static bool is_case5 = uint16_t(b0) == v;
|
|
136
|
+
constexpr static bool is_case6 = (uint16_t(b1) << 8) == v;
|
|
137
|
+
constexpr static bool is_case9 = (b0 == b1);
|
|
138
|
+
constexpr static bool is_case10 =
|
|
139
|
+
((b0 == 0xff) || (b0 == 0x00)) && ((b1 == 0xff) || (b1 == 0x00));
|
|
140
|
+
|
|
141
|
+
public:
|
|
142
|
+
constexpr static uint16_t operation = is_case5 ? 0b10100
|
|
143
|
+
: is_case6 ? 0b10101
|
|
144
|
+
: is_case9 ? 0b11000
|
|
145
|
+
: is_case10 ? 0x11001
|
|
146
|
+
: 0xffff;
|
|
147
|
+
|
|
148
|
+
constexpr static uint16_t byte =
|
|
149
|
+
is_case5 ? b0
|
|
150
|
+
: is_case6 ? b1
|
|
151
|
+
: is_case9 ? b0
|
|
152
|
+
: is_case10 ? ((b0 ? 0x55 : 0x00) | (b1 ? 0xaa : 0x00))
|
|
153
|
+
: 0xffff;
|
|
154
|
+
|
|
155
|
+
constexpr static int value = int((operation << 8) | byte) - 8192;
|
|
156
|
+
constexpr static bool valid = operation != 0xffff;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
template <uint32_t v> class const_u32 {
|
|
160
|
+
constexpr static const uint8_t b0 = (v & 0xff);
|
|
161
|
+
constexpr static const uint8_t b1 = ((v >> 8) & 0xff);
|
|
162
|
+
constexpr static const uint8_t b2 = ((v >> 16) & 0xff);
|
|
163
|
+
constexpr static const uint8_t b3 = ((v >> 24) & 0xff);
|
|
164
|
+
|
|
165
|
+
constexpr static bool is_case1 = (uint32_t(b0) == v);
|
|
166
|
+
constexpr static bool is_case2 = ((uint32_t(b1) << 8) == v);
|
|
167
|
+
constexpr static bool is_case3 = ((uint32_t(b2) << 16) == v);
|
|
168
|
+
constexpr static bool is_case4 = ((uint32_t(b3) << 24) == v);
|
|
169
|
+
constexpr static bool is_case5 = (b0 == b2) && (b1 == 0) && (b3 == 0);
|
|
170
|
+
constexpr static bool is_case6 = (b1 == b3) && (b0 == 0) && (b2 == 0);
|
|
171
|
+
constexpr static bool is_case7 = (b3 == 0) && (b2 == 0) && (b0 == 0xff);
|
|
172
|
+
constexpr static bool is_case8 = (b3 == 0) && (b1 == 0xff) && (b0 == 0xff);
|
|
173
|
+
constexpr static bool is_case9 = (b0 == b1) && (b0 == b2) && (b0 == b3);
|
|
174
|
+
constexpr static bool is_case10 =
|
|
175
|
+
((b0 == 0xff) || (b0 == 0x00)) && ((b1 == 0xff) || (b1 == 0x00)) &&
|
|
176
|
+
((b2 == 0xff) || (b2 == 0x00)) && ((b3 == 0xff) || (b3 == 0x00));
|
|
177
|
+
|
|
178
|
+
public:
|
|
179
|
+
constexpr static uint16_t operation = is_case1 ? 0b10000
|
|
180
|
+
: is_case2 ? 0b10001
|
|
181
|
+
: is_case3 ? 0b10010
|
|
182
|
+
: is_case4 ? 0b10011
|
|
183
|
+
: is_case5 ? 0b10100
|
|
184
|
+
: is_case6 ? 0b10101
|
|
185
|
+
: is_case7 ? 0b10110
|
|
186
|
+
: is_case8 ? 0b10111
|
|
187
|
+
: is_case9 ? 0b11000
|
|
188
|
+
: is_case10 ? 0b11001
|
|
189
|
+
: 0xffff;
|
|
190
|
+
|
|
191
|
+
constexpr static uint16_t byte =
|
|
192
|
+
is_case1 ? b0
|
|
193
|
+
: is_case2 ? b1
|
|
194
|
+
: is_case3 ? b2
|
|
195
|
+
: is_case4 ? b3
|
|
196
|
+
: is_case5 ? b0
|
|
197
|
+
: is_case6 ? b1
|
|
198
|
+
: is_case7 ? b1
|
|
199
|
+
: is_case8 ? b2
|
|
200
|
+
: is_case9 ? b0
|
|
201
|
+
: is_case10 ? ((b0 ? 0x11 : 0x00) | (b1 ? 0x22 : 0x00) |
|
|
202
|
+
(b2 ? 0x44 : 0x00) | (b3 ? 0x88 : 0x00))
|
|
203
|
+
: 0xffff;
|
|
204
|
+
|
|
205
|
+
constexpr static int value = int((operation << 8) | byte) - 8192;
|
|
206
|
+
constexpr static bool valid = operation != 0xffff;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
template <uint64_t v> class const_u64 {
|
|
210
|
+
constexpr static const uint8_t b0 = ((v >> 0 * 8) & 0xff);
|
|
211
|
+
constexpr static const uint8_t b1 = ((v >> 1 * 8) & 0xff);
|
|
212
|
+
constexpr static const uint8_t b2 = ((v >> 2 * 8) & 0xff);
|
|
213
|
+
constexpr static const uint8_t b3 = ((v >> 3 * 8) & 0xff);
|
|
214
|
+
constexpr static const uint8_t b4 = ((v >> 4 * 8) & 0xff);
|
|
215
|
+
constexpr static const uint8_t b5 = ((v >> 5 * 8) & 0xff);
|
|
216
|
+
constexpr static const uint8_t b6 = ((v >> 6 * 8) & 0xff);
|
|
217
|
+
constexpr static const uint8_t b7 = ((v >> 7 * 8) & 0xff);
|
|
218
|
+
|
|
219
|
+
constexpr static bool is_case10 =
|
|
220
|
+
((b0 == 0xff) || (b0 == 0x00)) && ((b1 == 0xff) || (b1 == 0x00)) &&
|
|
221
|
+
((b2 == 0xff) || (b2 == 0x00)) && ((b3 == 0xff) || (b3 == 0x00)) &&
|
|
222
|
+
((b4 == 0xff) || (b4 == 0x00)) && ((b5 == 0xff) || (b5 == 0x00)) &&
|
|
223
|
+
((b6 == 0xff) || (b6 == 0x00)) && ((b7 == 0xff) || (b7 == 0x00));
|
|
224
|
+
|
|
225
|
+
public:
|
|
226
|
+
constexpr static bool is_32bit =
|
|
227
|
+
((v & 0xffffffff) == (v >> 32)) && const_u32<(v >> 32)>::value;
|
|
228
|
+
constexpr static uint8_t op_32bit = const_u32<(v >> 32)>::operation;
|
|
229
|
+
constexpr static uint8_t byte_32bit = const_u32<(v >> 32)>::byte;
|
|
230
|
+
|
|
231
|
+
constexpr static uint16_t operation = is_32bit ? op_32bit
|
|
232
|
+
: is_case10 ? 0x11001
|
|
233
|
+
: 0xffff;
|
|
234
|
+
|
|
235
|
+
constexpr static uint16_t byte =
|
|
236
|
+
is_32bit ? byte_32bit
|
|
237
|
+
: is_case10
|
|
238
|
+
? ((b0 ? 0x01 : 0x00) | (b1 ? 0x02 : 0x00) | (b2 ? 0x04 : 0x00) |
|
|
239
|
+
(b3 ? 0x08 : 0x00) | (b4 ? 0x10 : 0x00) | (b5 ? 0x20 : 0x00) |
|
|
240
|
+
(b6 ? 0x40 : 0x00) | (b7 ? 0x80 : 0x00))
|
|
241
|
+
: 0xffff;
|
|
242
|
+
|
|
243
|
+
constexpr static int value = int((operation << 8) | byte) - 8192;
|
|
244
|
+
constexpr static bool valid = operation != 0xffff;
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
} // namespace lasx_vldi
|
|
248
|
+
|
|
249
|
+
// Uncomment when running under QEMU affected
|
|
250
|
+
// by bug https://gitlab.com/qemu-project/qemu/-/issues/2865
|
|
251
|
+
// Versions <= 9.2.2 are affected, likely anything newer is correct.
|
|
252
|
+
#ifndef QEMU_VLDI_BUG
|
|
253
|
+
// #define QEMU_VLDI_BUG 1
|
|
254
|
+
#endif
|
|
255
|
+
|
|
256
|
+
#ifdef QEMU_VLDI_BUG
|
|
257
|
+
#define lasx_splat_u16(v) __lasx_xvreplgr2vr_h(v)
|
|
258
|
+
#define lasx_splat_u32(v) __lasx_xvreplgr2vr_w(v)
|
|
259
|
+
#else
|
|
260
|
+
template <uint16_t x> constexpr __m256i lasx_splat_u16_aux() {
|
|
261
|
+
constexpr bool is_imm10 = (int16_t(x) < 512) && (int16_t(x) > -512);
|
|
262
|
+
constexpr uint16_t imm10 = is_imm10 ? x : 0;
|
|
263
|
+
constexpr bool is_vldi = lasx_vldi::const_u16<x>::valid;
|
|
264
|
+
constexpr int vldi_imm = is_vldi ? lasx_vldi::const_u16<x>::value : 0;
|
|
265
|
+
|
|
266
|
+
return is_imm10 ? __lasx_xvrepli_h(int16_t(imm10))
|
|
267
|
+
: is_vldi ? __lasx_xvldi(vldi_imm)
|
|
268
|
+
: __lasx_xvreplgr2vr_h(x);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
template <uint32_t x> constexpr __m256i lasx_splat_u32_aux() {
|
|
272
|
+
constexpr bool is_imm10 = (int32_t(x) < 512) && (int32_t(x) > -512);
|
|
273
|
+
constexpr uint32_t imm10 = is_imm10 ? x : 0;
|
|
274
|
+
constexpr bool is_vldi = lasx_vldi::const_u32<x>::valid;
|
|
275
|
+
constexpr int vldi_imm = is_vldi ? lasx_vldi::const_u32<x>::value : 0;
|
|
276
|
+
|
|
277
|
+
return is_imm10 ? __lasx_xvrepli_w(int32_t(imm10))
|
|
278
|
+
: is_vldi ? __lasx_xvldi(vldi_imm)
|
|
279
|
+
: __lasx_xvreplgr2vr_w(x);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
#define lasx_splat_u16(v) lasx_splat_u16_aux<(v)>()
|
|
283
|
+
#define lasx_splat_u32(v) lasx_splat_u32_aux<(v)>()
|
|
284
|
+
#endif // QEMU_VLDI_BUG
|
|
285
|
+
|
|
286
|
+
#ifndef lsx_splat_u16
|
|
287
|
+
#ifdef QEMU_VLDI_BUG
|
|
288
|
+
#define lsx_splat_u16(v) __lsx_vreplgr2vr_h(v)
|
|
289
|
+
#define lsx_splat_u32(v) __lsx_vreplgr2vr_w(v)
|
|
290
|
+
#else
|
|
291
|
+
namespace {
|
|
292
|
+
template <uint16_t x> constexpr __m128i lsx_splat_u16_aux() {
|
|
293
|
+
return ((int16_t(x) < 512) && (int16_t(x) > -512))
|
|
294
|
+
? __lsx_vrepli_h(
|
|
295
|
+
((int16_t(x) < 512) && (int16_t(x) > -512)) ? int16_t(x) : 0)
|
|
296
|
+
: (lasx_vldi::const_u16<x>::valid
|
|
297
|
+
? __lsx_vldi(lasx_vldi::const_u16<x>::valid
|
|
298
|
+
? lasx_vldi::const_u16<x>::value
|
|
299
|
+
: 0)
|
|
300
|
+
: __lsx_vreplgr2vr_h(x));
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
template <uint32_t x> constexpr __m128i lsx_splat_u32_aux() {
|
|
304
|
+
return ((int32_t(x) < 512) && (int32_t(x) > -512))
|
|
305
|
+
? __lsx_vrepli_w(
|
|
306
|
+
((int32_t(x) < 512) && (int32_t(x) > -512)) ? int32_t(x) : 0)
|
|
307
|
+
: (lasx_vldi::const_u32<x>::valid
|
|
308
|
+
? __lsx_vldi(lasx_vldi::const_u32<x>::valid
|
|
309
|
+
? lasx_vldi::const_u32<x>::value
|
|
310
|
+
: 0)
|
|
311
|
+
: __lsx_vreplgr2vr_w(x));
|
|
312
|
+
}
|
|
313
|
+
} // namespace
|
|
314
|
+
#define lsx_splat_u16(v) lsx_splat_u16_aux<(v)>()
|
|
315
|
+
#define lsx_splat_u32(v) lsx_splat_u32_aux<(v)>()
|
|
316
|
+
#endif // QEMU_VLDI_BUG
|
|
317
|
+
#endif // lsx_splat_u16
|
|
318
|
+
|
|
319
|
+
#endif // SIMDUTF_LASX_INTRINSICS_H
|