react-native-quick-crypto 1.0.19 → 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/package.json +2 -2
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
#ifndef SIMDUTF_LSX_IMPLEMENTATION_H
|
|
2
|
+
#define SIMDUTF_LSX_IMPLEMENTATION_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf.h"
|
|
5
|
+
#include "simdutf/internal/isadetection.h"
|
|
6
|
+
|
|
7
|
+
namespace simdutf {
|
|
8
|
+
namespace lsx {
|
|
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("lsx", "LOONGARCH SX",
|
|
18
|
+
internal::instruction_set::LSX) {}
|
|
19
|
+
#if SIMDUTF_FEATURE_DETECT_ENCODING
|
|
20
|
+
simdutf_warn_unused int detect_encodings(const char *input,
|
|
21
|
+
size_t length) const noexcept final;
|
|
22
|
+
#endif // SIMDUTF_FEATURE_DETECT_ENCODING
|
|
23
|
+
#if SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
24
|
+
simdutf_warn_unused bool validate_utf8(const char *buf,
|
|
25
|
+
size_t len) const noexcept final;
|
|
26
|
+
#endif // SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
27
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
28
|
+
simdutf_warn_unused result
|
|
29
|
+
validate_utf8_with_errors(const char *buf, size_t len) const noexcept final;
|
|
30
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
31
|
+
#if SIMDUTF_FEATURE_ASCII
|
|
32
|
+
simdutf_warn_unused bool validate_ascii(const char *buf,
|
|
33
|
+
size_t len) const noexcept final;
|
|
34
|
+
simdutf_warn_unused result
|
|
35
|
+
validate_ascii_with_errors(const char *buf, size_t len) const noexcept final;
|
|
36
|
+
#endif // SIMDUTF_FEATURE_ASCII
|
|
37
|
+
|
|
38
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
39
|
+
simdutf_warn_unused bool
|
|
40
|
+
validate_utf16le_as_ascii(const char16_t *buf,
|
|
41
|
+
size_t len) const noexcept final;
|
|
42
|
+
|
|
43
|
+
simdutf_warn_unused bool
|
|
44
|
+
validate_utf16be_as_ascii(const char16_t *buf,
|
|
45
|
+
size_t len) const noexcept final;
|
|
46
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
47
|
+
|
|
48
|
+
#if SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
49
|
+
simdutf_warn_unused bool validate_utf16le(const char16_t *buf,
|
|
50
|
+
size_t len) const noexcept final;
|
|
51
|
+
#endif // SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
52
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
53
|
+
simdutf_warn_unused bool validate_utf16be(const char16_t *buf,
|
|
54
|
+
size_t len) const noexcept final;
|
|
55
|
+
simdutf_warn_unused result validate_utf16le_with_errors(
|
|
56
|
+
const char16_t *buf, size_t len) const noexcept final;
|
|
57
|
+
simdutf_warn_unused result validate_utf16be_with_errors(
|
|
58
|
+
const char16_t *buf, size_t len) const noexcept final;
|
|
59
|
+
void to_well_formed_utf16be(const char16_t *input, size_t len,
|
|
60
|
+
char16_t *output) const noexcept final;
|
|
61
|
+
void to_well_formed_utf16le(const char16_t *input, size_t len,
|
|
62
|
+
char16_t *output) const noexcept final;
|
|
63
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
64
|
+
#if SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
65
|
+
simdutf_warn_unused bool validate_utf32(const char32_t *buf,
|
|
66
|
+
size_t len) const noexcept final;
|
|
67
|
+
#endif // SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
68
|
+
#if SIMDUTF_FEATURE_UTF32
|
|
69
|
+
simdutf_warn_unused result validate_utf32_with_errors(
|
|
70
|
+
const char32_t *buf, size_t len) const noexcept final;
|
|
71
|
+
#endif // SIMDUTF_FEATURE_UTF32
|
|
72
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
73
|
+
simdutf_warn_unused size_t convert_latin1_to_utf8(
|
|
74
|
+
const char *buf, size_t len, char *utf8_output) const noexcept final;
|
|
75
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
76
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
77
|
+
simdutf_warn_unused size_t convert_latin1_to_utf16le(
|
|
78
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
79
|
+
simdutf_warn_unused size_t convert_latin1_to_utf16be(
|
|
80
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
81
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
82
|
+
#if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
83
|
+
simdutf_warn_unused size_t convert_latin1_to_utf32(
|
|
84
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
85
|
+
#endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
86
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
87
|
+
simdutf_warn_unused size_t convert_utf8_to_latin1(
|
|
88
|
+
const char *buf, size_t len, char *latin1_output) const noexcept final;
|
|
89
|
+
simdutf_warn_unused result convert_utf8_to_latin1_with_errors(
|
|
90
|
+
const char *buf, size_t len, char *latin1_buffer) const noexcept final;
|
|
91
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_latin1(
|
|
92
|
+
const char *buf, size_t len, char *latin1_output) const noexcept final;
|
|
93
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
94
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
95
|
+
simdutf_warn_unused size_t convert_utf8_to_utf16le(
|
|
96
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
97
|
+
simdutf_warn_unused size_t convert_utf8_to_utf16be(
|
|
98
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
99
|
+
simdutf_warn_unused result convert_utf8_to_utf16le_with_errors(
|
|
100
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
101
|
+
simdutf_warn_unused result convert_utf8_to_utf16be_with_errors(
|
|
102
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
103
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf16le(
|
|
104
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
105
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf16be(
|
|
106
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
107
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
108
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
109
|
+
simdutf_warn_unused size_t convert_utf8_to_utf32(
|
|
110
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
111
|
+
simdutf_warn_unused result convert_utf8_to_utf32_with_errors(
|
|
112
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
113
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf32(
|
|
114
|
+
const char *buf, size_t len, char32_t *utf32_buffer) const noexcept final;
|
|
115
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
116
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
117
|
+
simdutf_warn_unused size_t
|
|
118
|
+
convert_utf16le_to_latin1(const char16_t *buf, size_t len,
|
|
119
|
+
char *latin1_buffer) const noexcept final;
|
|
120
|
+
simdutf_warn_unused size_t
|
|
121
|
+
convert_utf16be_to_latin1(const char16_t *buf, size_t len,
|
|
122
|
+
char *latin1_buffer) const noexcept final;
|
|
123
|
+
simdutf_warn_unused result convert_utf16le_to_latin1_with_errors(
|
|
124
|
+
const char16_t *buf, size_t len,
|
|
125
|
+
char *latin1_buffer) const noexcept final;
|
|
126
|
+
simdutf_warn_unused result convert_utf16be_to_latin1_with_errors(
|
|
127
|
+
const char16_t *buf, size_t len,
|
|
128
|
+
char *latin1_buffer) const noexcept final;
|
|
129
|
+
simdutf_warn_unused size_t
|
|
130
|
+
convert_valid_utf16le_to_latin1(const char16_t *buf, size_t len,
|
|
131
|
+
char *latin1_buffer) const noexcept final;
|
|
132
|
+
simdutf_warn_unused size_t
|
|
133
|
+
convert_valid_utf16be_to_latin1(const char16_t *buf, size_t len,
|
|
134
|
+
char *latin1_buffer) const noexcept final;
|
|
135
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
136
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
137
|
+
simdutf_warn_unused size_t convert_utf16le_to_utf8(
|
|
138
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
139
|
+
simdutf_warn_unused size_t convert_utf16be_to_utf8(
|
|
140
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
141
|
+
simdutf_warn_unused result convert_utf16le_to_utf8_with_errors(
|
|
142
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
143
|
+
simdutf_warn_unused result convert_utf16be_to_utf8_with_errors(
|
|
144
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
145
|
+
simdutf_warn_unused size_t convert_valid_utf16le_to_utf8(
|
|
146
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
147
|
+
simdutf_warn_unused size_t convert_valid_utf16be_to_utf8(
|
|
148
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
149
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
150
|
+
#if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
151
|
+
simdutf_warn_unused size_t
|
|
152
|
+
convert_utf32_to_latin1(const char32_t *buf, size_t len,
|
|
153
|
+
char *latin1_output) const noexcept final;
|
|
154
|
+
simdutf_warn_unused result
|
|
155
|
+
convert_utf32_to_latin1_with_errors(const char32_t *buf, size_t len,
|
|
156
|
+
char *latin1_output) const noexcept final;
|
|
157
|
+
simdutf_warn_unused size_t
|
|
158
|
+
convert_valid_utf32_to_latin1(const char32_t *buf, size_t len,
|
|
159
|
+
char *latin1_output) const noexcept final;
|
|
160
|
+
#endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
161
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
162
|
+
simdutf_warn_unused size_t convert_utf32_to_utf8(
|
|
163
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
164
|
+
simdutf_warn_unused result convert_utf32_to_utf8_with_errors(
|
|
165
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
166
|
+
simdutf_warn_unused size_t convert_valid_utf32_to_utf8(
|
|
167
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
168
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
169
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
170
|
+
simdutf_warn_unused size_t
|
|
171
|
+
convert_utf32_to_utf16le(const char32_t *buf, size_t len,
|
|
172
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
173
|
+
simdutf_warn_unused size_t
|
|
174
|
+
convert_utf32_to_utf16be(const char32_t *buf, size_t len,
|
|
175
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
176
|
+
simdutf_warn_unused result convert_utf32_to_utf16le_with_errors(
|
|
177
|
+
const char32_t *buf, size_t len,
|
|
178
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
179
|
+
simdutf_warn_unused result convert_utf32_to_utf16be_with_errors(
|
|
180
|
+
const char32_t *buf, size_t len,
|
|
181
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
182
|
+
simdutf_warn_unused size_t
|
|
183
|
+
convert_valid_utf32_to_utf16le(const char32_t *buf, size_t len,
|
|
184
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
185
|
+
simdutf_warn_unused size_t
|
|
186
|
+
convert_valid_utf32_to_utf16be(const char32_t *buf, size_t len,
|
|
187
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
188
|
+
simdutf_warn_unused size_t
|
|
189
|
+
convert_utf16le_to_utf32(const char16_t *buf, size_t len,
|
|
190
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
191
|
+
simdutf_warn_unused size_t
|
|
192
|
+
convert_utf16be_to_utf32(const char16_t *buf, size_t len,
|
|
193
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
194
|
+
simdutf_warn_unused result convert_utf16le_to_utf32_with_errors(
|
|
195
|
+
const char16_t *buf, size_t len,
|
|
196
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
197
|
+
simdutf_warn_unused result convert_utf16be_to_utf32_with_errors(
|
|
198
|
+
const char16_t *buf, size_t len,
|
|
199
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
200
|
+
simdutf_warn_unused size_t
|
|
201
|
+
convert_valid_utf16le_to_utf32(const char16_t *buf, size_t len,
|
|
202
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
203
|
+
simdutf_warn_unused size_t
|
|
204
|
+
convert_valid_utf16be_to_utf32(const char16_t *buf, size_t len,
|
|
205
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
206
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
207
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
208
|
+
void change_endianness_utf16(const char16_t *buf, size_t length,
|
|
209
|
+
char16_t *output) const noexcept final;
|
|
210
|
+
simdutf_warn_unused size_t
|
|
211
|
+
count_utf16le(const char16_t *buf, size_t length) const noexcept override;
|
|
212
|
+
simdutf_warn_unused size_t
|
|
213
|
+
count_utf16be(const char16_t *buf, size_t length) const noexcept override;
|
|
214
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
215
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
216
|
+
simdutf_warn_unused size_t count_utf8(const char *buf,
|
|
217
|
+
size_t length) const noexcept override;
|
|
218
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
219
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
220
|
+
simdutf_warn_unused size_t utf8_length_from_utf16le(
|
|
221
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
222
|
+
simdutf_warn_unused size_t utf8_length_from_utf16be(
|
|
223
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
224
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
225
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
226
|
+
simdutf_warn_unused size_t utf32_length_from_utf16le(
|
|
227
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
228
|
+
simdutf_warn_unused size_t utf32_length_from_utf16be(
|
|
229
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
230
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
231
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
232
|
+
simdutf_warn_unused size_t utf16_length_from_utf8(
|
|
233
|
+
const char *input, size_t length) const noexcept override;
|
|
234
|
+
simdutf_warn_unused result utf8_length_from_utf16le_with_replacement(
|
|
235
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
236
|
+
;
|
|
237
|
+
simdutf_warn_unused result utf8_length_from_utf16be_with_replacement(
|
|
238
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
239
|
+
;
|
|
240
|
+
|
|
241
|
+
simdutf_warn_unused size_t convert_utf16le_to_utf8_with_replacement(
|
|
242
|
+
const char16_t *input, size_t length,
|
|
243
|
+
char *utf8_buffer) const noexcept override;
|
|
244
|
+
|
|
245
|
+
simdutf_warn_unused size_t convert_utf16be_to_utf8_with_replacement(
|
|
246
|
+
const char16_t *input, size_t length,
|
|
247
|
+
char *utf8_buffer) const noexcept override;
|
|
248
|
+
|
|
249
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
250
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
251
|
+
simdutf_warn_unused size_t utf8_length_from_utf32(
|
|
252
|
+
const char32_t *input, size_t length) const noexcept override;
|
|
253
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
254
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
255
|
+
simdutf_warn_unused size_t utf16_length_from_utf32(
|
|
256
|
+
const char32_t *input, size_t length) const noexcept override;
|
|
257
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
258
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
259
|
+
simdutf_warn_unused size_t utf32_length_from_utf8(
|
|
260
|
+
const char *input, size_t length) const noexcept override;
|
|
261
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
262
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
263
|
+
simdutf_warn_unused size_t latin1_length_from_utf8(
|
|
264
|
+
const char *input, size_t length) const noexcept override;
|
|
265
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
266
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
267
|
+
simdutf_warn_unused size_t utf8_length_from_latin1(
|
|
268
|
+
const char *input, size_t length) const noexcept override;
|
|
269
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
270
|
+
#if SIMDUTF_FEATURE_BASE64
|
|
271
|
+
simdutf_warn_unused result base64_to_binary(
|
|
272
|
+
const char *input, size_t length, char *output, base64_options options,
|
|
273
|
+
last_chunk_handling_options last_chunk_options =
|
|
274
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
275
|
+
simdutf_warn_unused full_result base64_to_binary_details(
|
|
276
|
+
const char *input, size_t length, char *output, base64_options options,
|
|
277
|
+
last_chunk_handling_options last_chunk_options =
|
|
278
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
279
|
+
simdutf_warn_unused result base64_to_binary(
|
|
280
|
+
const char16_t *input, size_t length, char *output,
|
|
281
|
+
base64_options options,
|
|
282
|
+
last_chunk_handling_options last_chunk_options =
|
|
283
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
284
|
+
simdutf_warn_unused full_result base64_to_binary_details(
|
|
285
|
+
const char16_t *input, size_t length, char *output,
|
|
286
|
+
base64_options options,
|
|
287
|
+
last_chunk_handling_options last_chunk_options =
|
|
288
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
289
|
+
size_t binary_to_base64(const char *input, size_t length, char *output,
|
|
290
|
+
base64_options options) const noexcept override;
|
|
291
|
+
size_t
|
|
292
|
+
binary_to_base64_with_lines(const char *input, size_t length, char *output,
|
|
293
|
+
size_t line_length,
|
|
294
|
+
base64_options options) const noexcept override;
|
|
295
|
+
const char *find(const char *start, const char *end,
|
|
296
|
+
char character) const noexcept override;
|
|
297
|
+
const char16_t *find(const char16_t *start, const char16_t *end,
|
|
298
|
+
char16_t character) const noexcept override;
|
|
299
|
+
simdutf_warn_unused size_t binary_length_from_base64(
|
|
300
|
+
const char *input, size_t length) const noexcept override;
|
|
301
|
+
simdutf_warn_unused size_t binary_length_from_base64(
|
|
302
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
303
|
+
#endif // SIMDUTF_FEATURE_BASE64
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
} // namespace lsx
|
|
307
|
+
} // namespace simdutf
|
|
308
|
+
|
|
309
|
+
#endif // SIMDUTF_LSX_IMPLEMENTATION_H
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
#ifndef SIMDUTF_LSX_INTRINSICS_H
|
|
2
|
+
#define SIMDUTF_LSX_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
|
+
|
|
10
|
+
/*
|
|
11
|
+
Encoding of argument for LoongArch64 xvldi instruction. See:
|
|
12
|
+
https://jia.je/unofficial-loongarch-intrinsics-guide/lasx/misc/#__m256i-__lasx_xvldi-imm_n1024_1023-imm
|
|
13
|
+
|
|
14
|
+
1: imm[12:8]=0b10000: broadcast imm[7:0] as 32-bit elements to all lanes
|
|
15
|
+
|
|
16
|
+
2: imm[12:8]=0b10001: broadcast imm[7:0] << 8 as 32-bit elements to all lanes
|
|
17
|
+
|
|
18
|
+
3: imm[12:8]=0b10010: broadcast imm[7:0] << 16 as 32-bit elements to all lanes
|
|
19
|
+
|
|
20
|
+
4: imm[12:8]=0b10011: broadcast imm[7:0] << 24 as 32-bit elements to all lanes
|
|
21
|
+
|
|
22
|
+
5: imm[12:8]=0b10100: broadcast imm[7:0] as 16-bit elements to all lanes
|
|
23
|
+
|
|
24
|
+
6: imm[12:8]=0b10101: broadcast imm[7:0] << 8 as 16-bit elements to all lanes
|
|
25
|
+
|
|
26
|
+
7: imm[12:8]=0b10110: broadcast (imm[7:0] << 8) | 0xFF as 32-bit elements to all
|
|
27
|
+
lanes
|
|
28
|
+
|
|
29
|
+
8: imm[12:8]=0b10111: broadcast (imm[7:0] << 16) | 0xFFFF as 32-bit elements to
|
|
30
|
+
all lanes
|
|
31
|
+
|
|
32
|
+
9: imm[12:8]=0b11000: broadcast imm[7:0] as 8-bit elements to all lanes
|
|
33
|
+
|
|
34
|
+
10: imm[12:8]=0b11001: repeat each bit of imm[7:0] eight times, and broadcast
|
|
35
|
+
the result as 64-bit elements to all lanes
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
namespace vldi {
|
|
39
|
+
|
|
40
|
+
template <uint16_t v> class const_u16 {
|
|
41
|
+
constexpr static const uint8_t b0 = ((v >> 0 * 8) & 0xff);
|
|
42
|
+
constexpr static const uint8_t b1 = ((v >> 1 * 8) & 0xff);
|
|
43
|
+
|
|
44
|
+
constexpr static bool is_case5 = uint16_t(b0) == v;
|
|
45
|
+
constexpr static bool is_case6 = (uint16_t(b1) << 8) == v;
|
|
46
|
+
constexpr static bool is_case9 = (b0 == b1);
|
|
47
|
+
constexpr static bool is_case10 =
|
|
48
|
+
((b0 == 0xff) || (b0 == 0x00)) && ((b1 == 0xff) || (b1 == 0x00));
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
constexpr static uint16_t operation = is_case5 ? 0b10100
|
|
52
|
+
: is_case6 ? 0b10101
|
|
53
|
+
: is_case9 ? 0b11000
|
|
54
|
+
: is_case10 ? 0x11001
|
|
55
|
+
: 0xffff;
|
|
56
|
+
|
|
57
|
+
constexpr static uint16_t byte =
|
|
58
|
+
is_case5 ? b0
|
|
59
|
+
: is_case6 ? b1
|
|
60
|
+
: is_case9 ? b0
|
|
61
|
+
: is_case10 ? ((b0 ? 0x55 : 0x00) | (b1 ? 0xaa : 0x00))
|
|
62
|
+
: 0xffff;
|
|
63
|
+
|
|
64
|
+
constexpr static int value = int((operation << 8) | byte) - 8192;
|
|
65
|
+
constexpr static bool valid = operation != 0xffff;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
template <uint32_t v> class const_u32 {
|
|
69
|
+
constexpr static const uint8_t b0 = (v & 0xff);
|
|
70
|
+
constexpr static const uint8_t b1 = ((v >> 8) & 0xff);
|
|
71
|
+
constexpr static const uint8_t b2 = ((v >> 16) & 0xff);
|
|
72
|
+
constexpr static const uint8_t b3 = ((v >> 24) & 0xff);
|
|
73
|
+
|
|
74
|
+
constexpr static bool is_case1 = (uint32_t(b0) == v);
|
|
75
|
+
constexpr static bool is_case2 = ((uint32_t(b1) << 8) == v);
|
|
76
|
+
constexpr static bool is_case3 = ((uint32_t(b2) << 16) == v);
|
|
77
|
+
constexpr static bool is_case4 = ((uint32_t(b3) << 24) == v);
|
|
78
|
+
constexpr static bool is_case5 = (b0 == b2) && (b1 == 0) && (b3 == 0);
|
|
79
|
+
constexpr static bool is_case6 = (b1 == b3) && (b0 == 0) && (b2 == 0);
|
|
80
|
+
constexpr static bool is_case7 = (b3 == 0) && (b2 == 0) && (b0 == 0xff);
|
|
81
|
+
constexpr static bool is_case8 = (b3 == 0) && (b1 == 0xff) && (b0 == 0xff);
|
|
82
|
+
constexpr static bool is_case9 = (b0 == b1) && (b0 == b2) && (b0 == b3);
|
|
83
|
+
constexpr static bool is_case10 =
|
|
84
|
+
((b0 == 0xff) || (b0 == 0x00)) && ((b1 == 0xff) || (b1 == 0x00)) &&
|
|
85
|
+
((b2 == 0xff) || (b2 == 0x00)) && ((b3 == 0xff) || (b3 == 0x00));
|
|
86
|
+
|
|
87
|
+
public:
|
|
88
|
+
constexpr static uint16_t operation = is_case1 ? 0b10000
|
|
89
|
+
: is_case2 ? 0b10001
|
|
90
|
+
: is_case3 ? 0b10010
|
|
91
|
+
: is_case4 ? 0b10011
|
|
92
|
+
: is_case5 ? 0b10100
|
|
93
|
+
: is_case6 ? 0b10101
|
|
94
|
+
: is_case7 ? 0b10110
|
|
95
|
+
: is_case8 ? 0b10111
|
|
96
|
+
: is_case9 ? 0b11000
|
|
97
|
+
: is_case10 ? 0b11001
|
|
98
|
+
: 0xffff;
|
|
99
|
+
|
|
100
|
+
constexpr static uint16_t byte =
|
|
101
|
+
is_case1 ? b0
|
|
102
|
+
: is_case2 ? b1
|
|
103
|
+
: is_case3 ? b2
|
|
104
|
+
: is_case4 ? b3
|
|
105
|
+
: is_case5 ? b0
|
|
106
|
+
: is_case6 ? b1
|
|
107
|
+
: is_case7 ? b1
|
|
108
|
+
: is_case8 ? b2
|
|
109
|
+
: is_case9 ? b0
|
|
110
|
+
: is_case10 ? ((b0 ? 0x11 : 0x00) | (b1 ? 0x22 : 0x00) |
|
|
111
|
+
(b2 ? 0x44 : 0x00) | (b3 ? 0x88 : 0x00))
|
|
112
|
+
: 0xffff;
|
|
113
|
+
|
|
114
|
+
constexpr static int value = int((operation << 8) | byte) - 8192;
|
|
115
|
+
constexpr static bool valid = operation != 0xffff;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
template <uint64_t v> class const_u64 {
|
|
119
|
+
constexpr static const uint8_t b0 = ((v >> 0 * 8) & 0xff);
|
|
120
|
+
constexpr static const uint8_t b1 = ((v >> 1 * 8) & 0xff);
|
|
121
|
+
constexpr static const uint8_t b2 = ((v >> 2 * 8) & 0xff);
|
|
122
|
+
constexpr static const uint8_t b3 = ((v >> 3 * 8) & 0xff);
|
|
123
|
+
constexpr static const uint8_t b4 = ((v >> 4 * 8) & 0xff);
|
|
124
|
+
constexpr static const uint8_t b5 = ((v >> 5 * 8) & 0xff);
|
|
125
|
+
constexpr static const uint8_t b6 = ((v >> 6 * 8) & 0xff);
|
|
126
|
+
constexpr static const uint8_t b7 = ((v >> 7 * 8) & 0xff);
|
|
127
|
+
|
|
128
|
+
constexpr static bool is_case10 =
|
|
129
|
+
((b0 == 0xff) || (b0 == 0x00)) && ((b1 == 0xff) || (b1 == 0x00)) &&
|
|
130
|
+
((b2 == 0xff) || (b2 == 0x00)) && ((b3 == 0xff) || (b3 == 0x00)) &&
|
|
131
|
+
((b4 == 0xff) || (b4 == 0x00)) && ((b5 == 0xff) || (b5 == 0x00)) &&
|
|
132
|
+
((b6 == 0xff) || (b6 == 0x00)) && ((b7 == 0xff) || (b7 == 0x00));
|
|
133
|
+
|
|
134
|
+
public:
|
|
135
|
+
constexpr static bool is_32bit =
|
|
136
|
+
((v & 0xffffffff) == (v >> 32)) && const_u32<(v >> 32)>::value;
|
|
137
|
+
constexpr static uint8_t op_32bit = const_u32<(v >> 32)>::operation;
|
|
138
|
+
constexpr static uint8_t byte_32bit = const_u32<(v >> 32)>::byte;
|
|
139
|
+
|
|
140
|
+
constexpr static uint16_t operation = is_32bit ? op_32bit
|
|
141
|
+
: is_case10 ? 0x11001
|
|
142
|
+
: 0xffff;
|
|
143
|
+
|
|
144
|
+
constexpr static uint16_t byte =
|
|
145
|
+
is_32bit ? byte_32bit
|
|
146
|
+
: is_case10
|
|
147
|
+
? ((b0 ? 0x01 : 0x00) | (b1 ? 0x02 : 0x00) | (b2 ? 0x04 : 0x00) |
|
|
148
|
+
(b3 ? 0x08 : 0x00) | (b4 ? 0x10 : 0x00) | (b5 ? 0x20 : 0x00) |
|
|
149
|
+
(b6 ? 0x40 : 0x00) | (b7 ? 0x80 : 0x00))
|
|
150
|
+
: 0xffff;
|
|
151
|
+
|
|
152
|
+
constexpr static int value = int((operation << 8) | byte) - 8192;
|
|
153
|
+
constexpr static bool valid = operation != 0xffff;
|
|
154
|
+
};
|
|
155
|
+
} // namespace vldi
|
|
156
|
+
|
|
157
|
+
// Uncomment when running under QEMU affected
|
|
158
|
+
// by bug https://gitlab.com/qemu-project/qemu/-/issues/2865
|
|
159
|
+
// Versions <= 9.2.2 are affected, likely anything newer is correct.
|
|
160
|
+
#ifndef QEMU_VLDI_BUG
|
|
161
|
+
// #define QEMU_VLDI_BUG 1
|
|
162
|
+
#endif
|
|
163
|
+
|
|
164
|
+
#ifndef lsx_splat_u16
|
|
165
|
+
#ifdef QEMU_VLDI_BUG
|
|
166
|
+
#define lsx_splat_u16(v) __lsx_vreplgr2vr_h(v)
|
|
167
|
+
#define lsx_splat_u32(v) __lsx_vreplgr2vr_w(v)
|
|
168
|
+
#else
|
|
169
|
+
namespace {
|
|
170
|
+
template <uint16_t x> constexpr __m128i lsx_splat_u16_aux() {
|
|
171
|
+
return ((int16_t(x) < 512) && (int16_t(x) > -512))
|
|
172
|
+
? __lsx_vrepli_h(
|
|
173
|
+
((int16_t(x) < 512) && (int16_t(x) > -512)) ? int16_t(x) : 0)
|
|
174
|
+
: (vldi::const_u16<x>::valid
|
|
175
|
+
? __lsx_vldi(vldi::const_u16<x>::valid
|
|
176
|
+
? vldi::const_u16<x>::value
|
|
177
|
+
: 0)
|
|
178
|
+
: __lsx_vreplgr2vr_h(x));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
template <uint32_t x> constexpr __m128i lsx_splat_u32_aux() {
|
|
182
|
+
return ((int32_t(x) < 512) && (int32_t(x) > -512))
|
|
183
|
+
? __lsx_vrepli_w(
|
|
184
|
+
((int32_t(x) < 512) && (int32_t(x) > -512)) ? int32_t(x) : 0)
|
|
185
|
+
: (vldi::const_u32<x>::valid
|
|
186
|
+
? __lsx_vldi(vldi::const_u32<x>::valid
|
|
187
|
+
? vldi::const_u32<x>::value
|
|
188
|
+
: 0)
|
|
189
|
+
: __lsx_vreplgr2vr_w(x));
|
|
190
|
+
}
|
|
191
|
+
} // namespace
|
|
192
|
+
#define lsx_splat_u16(v) lsx_splat_u16_aux<(v)>()
|
|
193
|
+
#define lsx_splat_u32(v) lsx_splat_u32_aux<(v)>()
|
|
194
|
+
#endif // QEMU_VLDI_BUG
|
|
195
|
+
#endif // lsx_splat_u16
|
|
196
|
+
#endif // SIMDUTF_LSX_INTRINSICS_H
|