react-native-quick-crypto 1.0.19 → 1.1.1
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/android/build.gradle +5 -1
- package/cpp/argon2/HybridArgon2.cpp +10 -3
- package/cpp/blake3/HybridBlake3.cpp +5 -3
- package/cpp/cipher/CCMCipher.cpp +29 -16
- package/cpp/cipher/CCMCipher.hpp +2 -4
- package/cpp/cipher/ChaCha20Cipher.cpp +14 -18
- package/cpp/cipher/ChaCha20Cipher.hpp +2 -4
- package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +34 -23
- package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +2 -4
- package/cpp/cipher/GCMCipher.cpp +14 -15
- package/cpp/cipher/HybridCipher.cpp +39 -36
- package/cpp/cipher/HybridCipher.hpp +17 -1
- package/cpp/cipher/HybridRsaCipher.cpp +74 -29
- package/cpp/cipher/OCBCipher.cpp +4 -3
- package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +14 -13
- package/cpp/cipher/XSalsa20Cipher.cpp +72 -6
- package/cpp/cipher/XSalsa20Cipher.hpp +25 -3
- package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +21 -25
- package/cpp/dh/HybridDiffieHellman.cpp +29 -0
- package/cpp/ec/HybridEcKeyPair.cpp +35 -33
- package/cpp/ec/HybridEcKeyPair.hpp +3 -7
- package/cpp/ecdh/HybridECDH.cpp +23 -0
- package/cpp/ed25519/HybridEdKeyPair.cpp +73 -117
- package/cpp/ed25519/HybridEdKeyPair.hpp +5 -9
- package/cpp/hash/HybridHash.cpp +5 -7
- package/cpp/hkdf/HybridHkdf.cpp +6 -4
- package/cpp/hmac/HybridHmac.cpp +4 -6
- package/cpp/kmac/HybridKmac.cpp +4 -4
- package/cpp/mldsa/HybridMlDsaKeyPair.cpp +37 -49
- package/cpp/mlkem/HybridMlKemKeyPair.cpp +39 -43
- package/cpp/pbkdf2/HybridPbkdf2.cpp +7 -8
- package/cpp/rsa/HybridRsaKeyPair.cpp +5 -8
- package/cpp/rsa/HybridRsaKeyPair.hpp +4 -7
- package/cpp/scrypt/HybridScrypt.cpp +6 -4
- package/cpp/sign/HybridSignHandle.cpp +25 -68
- package/cpp/sign/HybridVerifyHandle.cpp +23 -60
- package/cpp/utils/HybridUtils.cpp +213 -111
- package/cpp/utils/HybridUtils.hpp +9 -2
- package/cpp/utils/QuickCryptoUtils.hpp +72 -0
- package/deps/simdutf/LICENSE-APACHE +201 -0
- package/deps/simdutf/LICENSE-MIT +18 -0
- package/deps/simdutf/README.md +2782 -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/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/lib/commonjs/argon2.js +51 -2
- package/lib/commonjs/argon2.js.map +1 -1
- package/lib/commonjs/cipher.js +109 -11
- package/lib/commonjs/cipher.js.map +1 -1
- package/lib/commonjs/dsa.js +8 -2
- package/lib/commonjs/dsa.js.map +1 -1
- package/lib/commonjs/hash.js +15 -5
- package/lib/commonjs/hash.js.map +1 -1
- package/lib/commonjs/hkdf.js +33 -6
- package/lib/commonjs/hkdf.js.map +1 -1
- package/lib/commonjs/hmac.js +15 -5
- package/lib/commonjs/hmac.js.map +1 -1
- package/lib/commonjs/keys/publicCipher.js +10 -4
- package/lib/commonjs/keys/publicCipher.js.map +1 -1
- package/lib/commonjs/random.js +11 -2
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/rsa.js +12 -5
- package/lib/commonjs/rsa.js.map +1 -1
- package/lib/commonjs/scrypt.js +47 -6
- package/lib/commonjs/scrypt.js.map +1 -1
- package/lib/commonjs/subtle.js +76 -5
- package/lib/commonjs/subtle.js.map +1 -1
- package/lib/commonjs/utils/cipher.js +18 -7
- package/lib/commonjs/utils/cipher.js.map +1 -1
- package/lib/commonjs/utils/conversion.js +33 -9
- package/lib/commonjs/utils/conversion.js.map +1 -1
- package/lib/commonjs/utils/timingSafeEqual.js +7 -2
- package/lib/commonjs/utils/timingSafeEqual.js.map +1 -1
- package/lib/commonjs/x509certificate.js +6 -6
- package/lib/commonjs/x509certificate.js.map +1 -1
- package/lib/module/argon2.js +51 -2
- package/lib/module/argon2.js.map +1 -1
- package/lib/module/cipher.js +109 -11
- package/lib/module/cipher.js.map +1 -1
- package/lib/module/dsa.js +8 -2
- package/lib/module/dsa.js.map +1 -1
- package/lib/module/hash.js +15 -5
- package/lib/module/hash.js.map +1 -1
- package/lib/module/hkdf.js +33 -6
- package/lib/module/hkdf.js.map +1 -1
- package/lib/module/hmac.js +15 -5
- package/lib/module/hmac.js.map +1 -1
- package/lib/module/keys/publicCipher.js +10 -4
- package/lib/module/keys/publicCipher.js.map +1 -1
- package/lib/module/random.js +11 -2
- package/lib/module/random.js.map +1 -1
- package/lib/module/rsa.js +11 -4
- package/lib/module/rsa.js.map +1 -1
- package/lib/module/scrypt.js +47 -6
- package/lib/module/scrypt.js.map +1 -1
- package/lib/module/subtle.js +76 -5
- package/lib/module/subtle.js.map +1 -1
- package/lib/module/utils/cipher.js +18 -7
- package/lib/module/utils/cipher.js.map +1 -1
- package/lib/module/utils/conversion.js +33 -9
- package/lib/module/utils/conversion.js.map +1 -1
- package/lib/module/utils/timingSafeEqual.js +8 -3
- package/lib/module/utils/timingSafeEqual.js.map +1 -1
- package/lib/module/x509certificate.js +6 -6
- package/lib/module/x509certificate.js.map +1 -1
- package/lib/typescript/argon2.d.ts.map +1 -1
- package/lib/typescript/cipher.d.ts +2 -2
- package/lib/typescript/cipher.d.ts.map +1 -1
- package/lib/typescript/dsa.d.ts.map +1 -1
- package/lib/typescript/hash.d.ts +2 -2
- package/lib/typescript/hash.d.ts.map +1 -1
- package/lib/typescript/hkdf.d.ts.map +1 -1
- package/lib/typescript/hmac.d.ts +2 -2
- package/lib/typescript/hmac.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/publicCipher.d.ts.map +1 -1
- package/lib/typescript/random.d.ts.map +1 -1
- package/lib/typescript/rsa.d.ts.map +1 -1
- package/lib/typescript/scrypt.d.ts.map +1 -1
- package/lib/typescript/specs/utils.nitro.d.ts +0 -2
- package/lib/typescript/specs/utils.nitro.d.ts.map +1 -1
- package/lib/typescript/subtle.d.ts.map +1 -1
- package/lib/typescript/utils/cipher.d.ts +13 -1
- package/lib/typescript/utils/cipher.d.ts.map +1 -1
- package/lib/typescript/utils/conversion.d.ts +9 -6
- package/lib/typescript/utils/conversion.d.ts.map +1 -1
- package/lib/typescript/utils/timingSafeEqual.d.ts.map +1 -1
- package/lib/typescript/x509certificate.d.ts.map +1 -1
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +0 -2
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +0 -3
- package/package.json +38 -6
- package/src/argon2.ts +80 -2
- package/src/cipher.ts +139 -15
- package/src/dsa.ts +11 -2
- package/src/hash.ts +17 -7
- package/src/hkdf.ts +44 -6
- package/src/hmac.ts +17 -7
- package/src/keys/publicCipher.ts +10 -4
- package/src/random.ts +11 -2
- package/src/rsa.ts +18 -4
- package/src/scrypt.ts +73 -6
- package/src/specs/utils.nitro.ts +0 -2
- package/src/subtle.ts +90 -8
- package/src/utils/cipher.ts +30 -8
- package/src/utils/conversion.ts +58 -20
- package/src/utils/timingSafeEqual.ts +8 -3
- package/src/x509certificate.ts +5 -6
- package/deps/blake3/.cargo/config.toml +0 -2
- package/deps/blake3/.git-blame-ignore-revs +0 -2
- package/deps/blake3/.github/workflows/build_b3sum.py +0 -38
- package/deps/blake3/.github/workflows/ci.yml +0 -491
- package/deps/blake3/.github/workflows/tag.yml +0 -43
- package/deps/blake3/.github/workflows/upload_github_release_asset.py +0 -73
- package/deps/blake3/CONTRIBUTING.md +0 -31
- package/deps/blake3/Cargo.toml +0 -135
- package/deps/blake3/b3sum/Cargo.lock +0 -513
- package/deps/blake3/b3sum/Cargo.toml +0 -26
- package/deps/blake3/b3sum/README.md +0 -72
- package/deps/blake3/b3sum/src/main.rs +0 -564
- package/deps/blake3/b3sum/src/unit_tests.rs +0 -235
- package/deps/blake3/b3sum/tests/cli_tests.rs +0 -680
- package/deps/blake3/b3sum/what_does_check_do.md +0 -176
- package/deps/blake3/benches/bench.rs +0 -623
- package/deps/blake3/build.rs +0 -389
- package/deps/blake3/c/CMakeLists.txt +0 -383
- package/deps/blake3/c/CMakePresets.json +0 -73
- package/deps/blake3/c/Makefile.testing +0 -82
- package/deps/blake3/c/blake3-config.cmake.in +0 -14
- package/deps/blake3/c/blake3_avx2.c +0 -326
- package/deps/blake3/c/blake3_avx2_x86-64_unix.S +0 -1815
- package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +0 -1817
- package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +0 -1828
- package/deps/blake3/c/blake3_avx512.c +0 -1388
- package/deps/blake3/c/blake3_avx512_x86-64_unix.S +0 -4824
- package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +0 -2615
- package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +0 -2634
- package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +0 -32
- package/deps/blake3/c/blake3_c_rust_bindings/README.md +0 -4
- package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +0 -477
- package/deps/blake3/c/blake3_c_rust_bindings/build.rs +0 -253
- package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +0 -31
- package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +0 -333
- package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +0 -696
- package/deps/blake3/c/blake3_sse2.c +0 -566
- package/deps/blake3/c/blake3_sse2_x86-64_unix.S +0 -2291
- package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +0 -2332
- package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +0 -2350
- package/deps/blake3/c/blake3_sse41.c +0 -560
- package/deps/blake3/c/blake3_sse41_x86-64_unix.S +0 -2028
- package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +0 -2069
- package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +0 -2089
- package/deps/blake3/c/blake3_tbb.cpp +0 -37
- package/deps/blake3/c/dependencies/CMakeLists.txt +0 -3
- package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +0 -28
- package/deps/blake3/c/example.c +0 -36
- package/deps/blake3/c/example_tbb.c +0 -57
- package/deps/blake3/c/libblake3.pc.in +0 -12
- package/deps/blake3/c/main.c +0 -166
- package/deps/blake3/c/test.py +0 -97
- package/deps/blake3/media/B3.svg +0 -70
- package/deps/blake3/media/BLAKE3.svg +0 -85
- package/deps/blake3/media/speed.svg +0 -1474
- package/deps/blake3/reference_impl/Cargo.toml +0 -8
- package/deps/blake3/reference_impl/README.md +0 -14
- package/deps/blake3/reference_impl/reference_impl.rs +0 -374
- package/deps/blake3/src/ffi_avx2.rs +0 -65
- package/deps/blake3/src/ffi_avx512.rs +0 -169
- package/deps/blake3/src/ffi_neon.rs +0 -82
- package/deps/blake3/src/ffi_sse2.rs +0 -126
- package/deps/blake3/src/ffi_sse41.rs +0 -126
- package/deps/blake3/src/guts.rs +0 -60
- package/deps/blake3/src/hazmat.rs +0 -704
- package/deps/blake3/src/io.rs +0 -64
- package/deps/blake3/src/join.rs +0 -92
- package/deps/blake3/src/lib.rs +0 -1835
- package/deps/blake3/src/platform.rs +0 -587
- package/deps/blake3/src/portable.rs +0 -198
- package/deps/blake3/src/rust_avx2.rs +0 -474
- package/deps/blake3/src/rust_sse2.rs +0 -775
- package/deps/blake3/src/rust_sse41.rs +0 -766
- package/deps/blake3/src/test.rs +0 -1049
- package/deps/blake3/src/traits.rs +0 -227
- package/deps/blake3/src/wasm32_simd.rs +0 -794
- package/deps/blake3/test_vectors/Cargo.toml +0 -19
- package/deps/blake3/test_vectors/cross_test.sh +0 -25
- package/deps/blake3/test_vectors/src/bin/generate.rs +0 -4
- package/deps/blake3/test_vectors/src/lib.rs +0 -350
- package/deps/blake3/test_vectors/test_vectors.json +0 -217
- package/deps/blake3/tools/compiler_version/Cargo.toml +0 -7
- package/deps/blake3/tools/compiler_version/build.rs +0 -6
- package/deps/blake3/tools/compiler_version/src/main.rs +0 -27
- package/deps/blake3/tools/instruction_set_support/Cargo.toml +0 -6
- package/deps/blake3/tools/instruction_set_support/src/main.rs +0 -10
- package/deps/blake3/tools/release.md +0 -16
- package/deps/ncrypto/.bazelignore +0 -4
- package/deps/ncrypto/.bazelrc +0 -1
- package/deps/ncrypto/.bazelversion +0 -1
- package/deps/ncrypto/.clang-format +0 -111
- package/deps/ncrypto/.github/workflows/bazel.yml +0 -58
- package/deps/ncrypto/.github/workflows/commitlint.yml +0 -16
- package/deps/ncrypto/.github/workflows/linter.yml +0 -38
- package/deps/ncrypto/.github/workflows/macos.yml +0 -43
- package/deps/ncrypto/.github/workflows/release-please.yml +0 -16
- package/deps/ncrypto/.github/workflows/ubuntu.yml +0 -128
- package/deps/ncrypto/.github/workflows/visual-studio.yml +0 -49
- package/deps/ncrypto/.python-version +0 -1
- package/deps/ncrypto/.release-please-manifest.json +0 -3
- package/deps/ncrypto/BUILD.bazel +0 -44
- package/deps/ncrypto/CHANGELOG.md +0 -37
- package/deps/ncrypto/CMakeLists.txt +0 -79
- package/deps/ncrypto/MODULE.bazel +0 -16
- package/deps/ncrypto/MODULE.bazel.lock +0 -461
- package/deps/ncrypto/cmake/CPM.cmake +0 -1225
- package/deps/ncrypto/cmake/ncrypto-flags.cmake +0 -17
- package/deps/ncrypto/ncrypto.pc.in +0 -10
- package/deps/ncrypto/patches/0001-Expose-libdecrepit-so-NodeJS-can-use-it-for-ncrypto.patch +0 -28
- package/deps/ncrypto/pyproject.toml +0 -38
- package/deps/ncrypto/release-please-config.json +0 -11
- package/deps/ncrypto/src/CMakeLists.txt +0 -40
- package/deps/ncrypto/tests/BUILD.bazel +0 -11
- package/deps/ncrypto/tests/CMakeLists.txt +0 -7
- package/deps/ncrypto/tests/basic.cpp +0 -856
- package/deps/ncrypto/tools/run-clang-format.sh +0 -42
- package/lib/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
template <typename T> struct simd16;
|
|
2
|
+
|
|
3
|
+
template <typename T, typename Mask = simd16<bool>>
|
|
4
|
+
struct base16 : base<simd16<T>> {
|
|
5
|
+
using bitmask_type = uint32_t;
|
|
6
|
+
|
|
7
|
+
simdutf_really_inline base16() : base<simd16<T>>() {}
|
|
8
|
+
simdutf_really_inline base16(const __m256i _value)
|
|
9
|
+
: base<simd16<T>>(_value) {}
|
|
10
|
+
template <typename Pointer>
|
|
11
|
+
simdutf_really_inline base16(const Pointer *ptr)
|
|
12
|
+
: base16(__lasx_xvld(reinterpret_cast<const __m256i *>(ptr), 0)) {}
|
|
13
|
+
|
|
14
|
+
/// the size of vector in bytes
|
|
15
|
+
static const int SIZE = sizeof(base<simd16<T>>::value);
|
|
16
|
+
|
|
17
|
+
/// the number of elements of type T a vector can hold
|
|
18
|
+
static const int ELEMENTS = SIZE / sizeof(T);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// SIMD byte mask type (returned by things like eq and gt)
|
|
22
|
+
template <> struct simd16<bool> : base16<bool> {
|
|
23
|
+
static simdutf_really_inline simd16<bool> splat(bool _value) {
|
|
24
|
+
return __lasx_xvreplgr2vr_h(uint16_t(-(!!_value)));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
simdutf_really_inline simd16() : base16() {}
|
|
28
|
+
simdutf_really_inline simd16(const __m256i _value) : base16<bool>(_value) {}
|
|
29
|
+
// Splat constructor
|
|
30
|
+
simdutf_really_inline simd16(bool _value) : base16<bool>(splat(_value)) {}
|
|
31
|
+
|
|
32
|
+
simdutf_really_inline bitmask_type to_bitmask() const {
|
|
33
|
+
__m256i mask = __lasx_xvmsknz_b(this->value);
|
|
34
|
+
bitmask_type mask0 = __lasx_xvpickve2gr_wu(mask, 0);
|
|
35
|
+
bitmask_type mask1 = __lasx_xvpickve2gr_wu(mask, 4);
|
|
36
|
+
return (mask0 | (mask1 << 16));
|
|
37
|
+
}
|
|
38
|
+
simdutf_really_inline simd16<bool> operator~() const { return *this ^ true; }
|
|
39
|
+
|
|
40
|
+
simdutf_really_inline bool is_zero() const {
|
|
41
|
+
return __lasx_xbz_v(this->value);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
template <unsigned N> simdutf_really_inline simd16 byte_right_shift() const {
|
|
45
|
+
const auto t0 = __lasx_xvbsrl_v(this->value, N);
|
|
46
|
+
const auto t1 = __lasx_xvpermi_q(this->value, __lasx_xvldi(0), 0b00000011);
|
|
47
|
+
const auto t2 = __lasx_xvbsll_v(t1, 16 - N);
|
|
48
|
+
const auto t3 = __lasx_xvor_v(t0, t2);
|
|
49
|
+
return t3;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
simdutf_really_inline uint16_t first() const {
|
|
53
|
+
return uint16_t(__lasx_xvpickve2gr_w(value, 0));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
template <typename T> struct base16_numeric : base16<T> {
|
|
58
|
+
static simdutf_really_inline simd16<T> splat(T _value) {
|
|
59
|
+
return __lasx_xvreplgr2vr_h((uint16_t)_value);
|
|
60
|
+
}
|
|
61
|
+
static simdutf_really_inline simd16<T> zero() { return __lasx_xvldi(0); }
|
|
62
|
+
template <typename Pointer>
|
|
63
|
+
static simdutf_really_inline simd16<T> load(const Pointer values) {
|
|
64
|
+
return __lasx_xvld(values, 0);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
simdutf_really_inline base16_numeric() : base16<T>() {}
|
|
68
|
+
simdutf_really_inline base16_numeric(const __m256i _value)
|
|
69
|
+
: base16<T>(_value) {}
|
|
70
|
+
|
|
71
|
+
// Store to array
|
|
72
|
+
simdutf_really_inline void store(T dst[8]) const {
|
|
73
|
+
return __lasx_xvst(this->value, reinterpret_cast<__m256i *>(dst), 0);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Override to distinguish from bool version
|
|
77
|
+
simdutf_really_inline simd16<T> operator~() const { return *this ^ 0xFFFFu; }
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// Unsigned code units
|
|
81
|
+
template <> struct simd16<uint16_t> : base16_numeric<uint16_t> {
|
|
82
|
+
simdutf_really_inline simd16() : base16_numeric<uint16_t>() {}
|
|
83
|
+
simdutf_really_inline simd16(const __m256i _value)
|
|
84
|
+
: base16_numeric<uint16_t>(_value) {}
|
|
85
|
+
|
|
86
|
+
// Splat constructor
|
|
87
|
+
simdutf_really_inline simd16(uint16_t _value) : simd16(splat(_value)) {}
|
|
88
|
+
|
|
89
|
+
// Array constructor
|
|
90
|
+
simdutf_really_inline simd16(const uint16_t *values) : simd16(load(values)) {}
|
|
91
|
+
simdutf_really_inline simd16(const char16_t *values)
|
|
92
|
+
: simd16(load(reinterpret_cast<const uint16_t *>(values))) {}
|
|
93
|
+
|
|
94
|
+
// Order-specific operations
|
|
95
|
+
simdutf_really_inline simd16 &operator+=(const simd16 other) {
|
|
96
|
+
value = __lasx_xvadd_h(value, other.value);
|
|
97
|
+
return *this;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Change the endianness
|
|
101
|
+
simdutf_really_inline simd16<uint16_t> swap_bytes() const {
|
|
102
|
+
return __lasx_xvshuf4i_b(this->value, 0b10110001);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
template <unsigned N>
|
|
106
|
+
static simdutf_really_inline simd8<uint8_t>
|
|
107
|
+
pack_shifted_right(const simd16<uint16_t> &v0, const simd16<uint16_t> &v1) {
|
|
108
|
+
return __lasx_xvpermi_d(__lasx_xvssrlni_bu_h(v1.value, v0.value, N),
|
|
109
|
+
0b11011000);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Pack with the unsigned saturation of two uint16_t code units into single
|
|
113
|
+
// uint8_t vector
|
|
114
|
+
static simdutf_really_inline simd8<uint8_t> pack(const simd16<uint16_t> &v0,
|
|
115
|
+
const simd16<uint16_t> &v1) {
|
|
116
|
+
|
|
117
|
+
return pack_shifted_right<0>(v0, v1);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
simdutf_really_inline uint64_t sum() const {
|
|
121
|
+
const auto sum_u32 = __lasx_xvhaddw_wu_hu(value, value);
|
|
122
|
+
const auto sum_u64 = __lasx_xvhaddw_du_wu(sum_u32, sum_u32);
|
|
123
|
+
|
|
124
|
+
return uint64_t(__lasx_xvpickve2gr_du(sum_u64, 0)) +
|
|
125
|
+
uint64_t(__lasx_xvpickve2gr_du(sum_u64, 1)) +
|
|
126
|
+
uint64_t(__lasx_xvpickve2gr_du(sum_u64, 2)) +
|
|
127
|
+
uint64_t(__lasx_xvpickve2gr_du(sum_u64, 3));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
template <unsigned N> simdutf_really_inline simd16 byte_right_shift() const {
|
|
131
|
+
return __lasx_xvbsrl_v(this->value, N);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
simdutf_really_inline simd16<bool> operator<(const simd16<uint16_t> a,
|
|
136
|
+
const simd16<uint16_t> b) {
|
|
137
|
+
return __lasx_xvslt_hu(a.value, b.value);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
simdutf_really_inline simd16<bool> operator>(const simd16<uint16_t> a,
|
|
141
|
+
const simd16<uint16_t> b) {
|
|
142
|
+
return __lasx_xvslt_hu(b.value, a.value);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
simdutf_really_inline simd16<bool> operator<=(const simd16<uint16_t> a,
|
|
146
|
+
const simd16<uint16_t> b) {
|
|
147
|
+
return __lasx_xvsle_hu(a.value, b.value);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
simdutf_really_inline simd16<bool> operator>=(const simd16<uint16_t> a,
|
|
151
|
+
const simd16<uint16_t> b) {
|
|
152
|
+
return __lasx_xvsle_hu(b.value, a.value);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
template <typename T> struct simd16x32 {
|
|
156
|
+
static constexpr int NUM_CHUNKS = 64 / sizeof(simd16<T>);
|
|
157
|
+
static_assert(NUM_CHUNKS == 2,
|
|
158
|
+
"LASX kernel should use two registers per 64-byte block.");
|
|
159
|
+
simd16<T> chunks[NUM_CHUNKS];
|
|
160
|
+
|
|
161
|
+
simd16x32(const simd16x32<T> &o) = delete; // no copy allowed
|
|
162
|
+
simd16x32<T> &
|
|
163
|
+
operator=(const simd16<T> other) = delete; // no assignment allowed
|
|
164
|
+
simd16x32() = delete; // no default constructor allowed
|
|
165
|
+
|
|
166
|
+
simdutf_really_inline simd16x32(const simd16<T> chunk0,
|
|
167
|
+
const simd16<T> chunk1)
|
|
168
|
+
: chunks{chunk0, chunk1} {}
|
|
169
|
+
simdutf_really_inline simd16x32(const T *ptr)
|
|
170
|
+
: chunks{simd16<T>::load(ptr),
|
|
171
|
+
simd16<T>::load(ptr + sizeof(simd16<T>) / sizeof(T))} {}
|
|
172
|
+
|
|
173
|
+
simdutf_really_inline void store(T *ptr) const {
|
|
174
|
+
this->chunks[0].store(ptr + sizeof(simd16<T>) * 0 / sizeof(T));
|
|
175
|
+
this->chunks[1].store(ptr + sizeof(simd16<T>) * 1 / sizeof(T));
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
simdutf_really_inline void swap_bytes() {
|
|
179
|
+
this->chunks[0] = this->chunks[0].swap_bytes();
|
|
180
|
+
this->chunks[1] = this->chunks[1].swap_bytes();
|
|
181
|
+
}
|
|
182
|
+
simdutf_really_inline uint64_t to_bitmask() const {
|
|
183
|
+
uint64_t r_lo = uint32_t(this->chunks[0].to_bitmask());
|
|
184
|
+
uint64_t r_hi = this->chunks[1].to_bitmask();
|
|
185
|
+
return r_lo | (r_hi << 32);
|
|
186
|
+
}
|
|
187
|
+
simdutf_really_inline uint64_t gteq(const T m) const {
|
|
188
|
+
const simd16<T> mask = simd16<T>::splat(m);
|
|
189
|
+
return simd16x32<bool>(this->chunks[0] >= mask, this->chunks[1] >= mask)
|
|
190
|
+
.to_bitmask();
|
|
191
|
+
}
|
|
192
|
+
simdutf_really_inline uint64_t lteq(const T m) const {
|
|
193
|
+
const simd16<T> mask = simd16<T>::splat(m);
|
|
194
|
+
return simd16x32<bool>(this->chunks[0] <= mask, this->chunks[1] <= mask)
|
|
195
|
+
.to_bitmask();
|
|
196
|
+
}
|
|
197
|
+
}; // struct simd16x32<T>
|
|
198
|
+
|
|
199
|
+
simdutf_really_inline simd16<uint16_t> min(const simd16<uint16_t> a,
|
|
200
|
+
const simd16<uint16_t> b) {
|
|
201
|
+
return __lasx_xvmin_hu(a.value, b.value);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
simdutf_really_inline simd16<bool> operator==(const simd16<uint16_t> a,
|
|
205
|
+
uint16_t b) {
|
|
206
|
+
const auto bv = __lasx_xvreplgr2vr_h(b);
|
|
207
|
+
return __lasx_xvseq_h(a.value, bv);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
simdutf_really_inline simd16<uint16_t> as_vector_u16(const simd16<bool> x) {
|
|
211
|
+
return x.value;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
simdutf_really_inline simd16<uint16_t> operator&(const simd16<uint16_t> a,
|
|
215
|
+
uint16_t b) {
|
|
216
|
+
const auto bv = __lasx_xvreplgr2vr_h(b);
|
|
217
|
+
return __lasx_xvand_v(a.value, bv);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
simdutf_really_inline simd16<uint16_t> operator&(const simd16<uint16_t> a,
|
|
221
|
+
const simd16<uint16_t> b) {
|
|
222
|
+
return __lasx_xvand_v(a.value, b.value);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
simdutf_really_inline simd16<uint16_t> operator^(const simd16<uint16_t> a,
|
|
226
|
+
uint16_t b) {
|
|
227
|
+
const auto bv = __lasx_xvreplgr2vr_h(b);
|
|
228
|
+
return __lasx_xvxor_v(a.value, bv);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
simdutf_really_inline simd16<bool> operator^(const simd16<bool> a,
|
|
232
|
+
const simd16<bool> b) {
|
|
233
|
+
return __lasx_xvxor_v(a.value, b.value);
|
|
234
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
template <typename T> struct simd32;
|
|
2
|
+
|
|
3
|
+
template <> struct simd32<uint32_t> {
|
|
4
|
+
__m256i value;
|
|
5
|
+
static const int SIZE = sizeof(value);
|
|
6
|
+
static const int ELEMENTS = SIZE / sizeof(uint32_t);
|
|
7
|
+
|
|
8
|
+
// constructors
|
|
9
|
+
simdutf_really_inline simd32(__m256i v) : value(v) {}
|
|
10
|
+
|
|
11
|
+
template <typename Ptr>
|
|
12
|
+
simdutf_really_inline simd32(Ptr *ptr) : value(__lasx_xvld(ptr, 0)) {}
|
|
13
|
+
|
|
14
|
+
// in-place operators
|
|
15
|
+
simdutf_really_inline simd32 &operator-=(const simd32 other) {
|
|
16
|
+
value = __lasx_xvsub_w(value, other.value);
|
|
17
|
+
return *this;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// members
|
|
21
|
+
simdutf_really_inline uint64_t sum() const {
|
|
22
|
+
const auto odd = __lasx_xvsrli_d(value, 32);
|
|
23
|
+
const auto even = __lasx_xvand_v(value, __lasx_xvreplgr2vr_d(0xffffffff));
|
|
24
|
+
|
|
25
|
+
const auto sum64 = __lasx_xvadd_d(odd, even);
|
|
26
|
+
|
|
27
|
+
return uint64_t(__lasx_xvpickve2gr_du(sum64, 0)) +
|
|
28
|
+
uint64_t(__lasx_xvpickve2gr_du(sum64, 1)) +
|
|
29
|
+
uint64_t(__lasx_xvpickve2gr_du(sum64, 2)) +
|
|
30
|
+
uint64_t(__lasx_xvpickve2gr_du(sum64, 3));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// static members
|
|
34
|
+
static simdutf_really_inline simd32<uint32_t> splat(uint32_t x) {
|
|
35
|
+
return __lasx_xvreplgr2vr_w(x);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static simdutf_really_inline simd32<uint32_t> zero() {
|
|
39
|
+
return __lasx_xvrepli_w(0);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// ------------------------------------------------------------
|
|
44
|
+
|
|
45
|
+
template <> struct simd32<bool> {
|
|
46
|
+
__m256i value;
|
|
47
|
+
static const int SIZE = sizeof(value);
|
|
48
|
+
|
|
49
|
+
// constructors
|
|
50
|
+
simdutf_really_inline simd32(__m256i v) : value(v) {}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// ------------------------------------------------------------
|
|
54
|
+
|
|
55
|
+
simdutf_really_inline simd32<uint32_t> operator&(const simd32<uint32_t> a,
|
|
56
|
+
const simd32<uint32_t> b) {
|
|
57
|
+
return __lasx_xvor_v(a.value, b.value);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
simdutf_really_inline simd32<bool> operator<(const simd32<uint32_t> a,
|
|
61
|
+
const simd32<uint32_t> b) {
|
|
62
|
+
return __lasx_xvslt_wu(a.value, b.value);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
simdutf_really_inline simd32<bool> operator>(const simd32<uint32_t> a,
|
|
66
|
+
const simd32<uint32_t> b) {
|
|
67
|
+
return __lasx_xvslt_wu(b.value, a.value);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// ------------------------------------------------------------
|
|
71
|
+
|
|
72
|
+
simdutf_really_inline simd32<uint32_t> as_vector_u32(const simd32<bool> v) {
|
|
73
|
+
return v.value;
|
|
74
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
template <typename T> struct simd64;
|
|
2
|
+
|
|
3
|
+
template <> struct simd64<uint64_t> {
|
|
4
|
+
__m256i value;
|
|
5
|
+
static const int SIZE = sizeof(value);
|
|
6
|
+
static const int ELEMENTS = SIZE / sizeof(uint64_t);
|
|
7
|
+
|
|
8
|
+
// constructors
|
|
9
|
+
simdutf_really_inline simd64(__m256i v) : value(v) {}
|
|
10
|
+
|
|
11
|
+
template <typename Ptr>
|
|
12
|
+
simdutf_really_inline simd64(Ptr *ptr) : value(__lasx_xvld(ptr, 0)) {}
|
|
13
|
+
|
|
14
|
+
// in-place operators
|
|
15
|
+
simdutf_really_inline simd64 &operator+=(const simd64 other) {
|
|
16
|
+
value = __lasx_xvadd_d(value, other.value);
|
|
17
|
+
return *this;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// members
|
|
21
|
+
simdutf_really_inline uint64_t sum() const {
|
|
22
|
+
return uint64_t(__lasx_xvpickve2gr_du(value, 0)) +
|
|
23
|
+
uint64_t(__lasx_xvpickve2gr_du(value, 1)) +
|
|
24
|
+
uint64_t(__lasx_xvpickve2gr_du(value, 2)) +
|
|
25
|
+
uint64_t(__lasx_xvpickve2gr_du(value, 3));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// static members
|
|
29
|
+
static simdutf_really_inline simd64<uint64_t> zero() {
|
|
30
|
+
return __lasx_xvrepli_d(0);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// ------------------------------------------------------------
|
|
35
|
+
|
|
36
|
+
template <> struct simd64<bool> {
|
|
37
|
+
__m256i value;
|
|
38
|
+
static const int SIZE = sizeof(value);
|
|
39
|
+
|
|
40
|
+
// constructors
|
|
41
|
+
simdutf_really_inline simd64(__m256i v) : value(v) {}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// ------------------------------------------------------------
|
|
45
|
+
|
|
46
|
+
simd64<uint64_t> sum_8bytes(const simd8<uint8_t> v) {
|
|
47
|
+
const auto sum_u16 = __lasx_xvhaddw_hu_bu(v, v);
|
|
48
|
+
const auto sum_u32 = __lasx_xvhaddw_wu_hu(sum_u16, sum_u16);
|
|
49
|
+
const auto sum_u64 = __lasx_xvhaddw_du_wu(sum_u32, sum_u32);
|
|
50
|
+
|
|
51
|
+
return simd64<uint64_t>(sum_u64);
|
|
52
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#ifndef SIMDUTF_LASX_H
|
|
2
|
+
#define SIMDUTF_LASX_H
|
|
3
|
+
|
|
4
|
+
#ifdef SIMDUTF_FALLBACK_H
|
|
5
|
+
#error "lasx.h must be included before fallback.h"
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
#include "simdutf/portability.h"
|
|
9
|
+
|
|
10
|
+
#ifndef SIMDUTF_IMPLEMENTATION_LASX
|
|
11
|
+
#define SIMDUTF_IMPLEMENTATION_LASX (SIMDUTF_IS_LSX)
|
|
12
|
+
#endif
|
|
13
|
+
#if SIMDUTF_IMPLEMENTATION_LASX && SIMDUTF_IS_LASX
|
|
14
|
+
#define SIMDUTF_CAN_ALWAYS_RUN_LASX 1
|
|
15
|
+
#else
|
|
16
|
+
#define SIMDUTF_CAN_ALWAYS_RUN_LASX 0
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#define SIMDUTF_CAN_ALWAYS_RUN_FALLBACK (SIMDUTF_IMPLEMENTATION_FALLBACK)
|
|
20
|
+
#include "simdutf/internal/isadetection.h"
|
|
21
|
+
|
|
22
|
+
#if SIMDUTF_IMPLEMENTATION_LASX
|
|
23
|
+
#define SIMDUTF_TARGET_LASX SIMDUTF_TARGET_REGION("lasx,lsx")
|
|
24
|
+
|
|
25
|
+
// For runtime dispatching to work, we need the lsxintrin to appear
|
|
26
|
+
// before we call SIMDUTF_TARGET_LASX. It is unclear why.
|
|
27
|
+
#include <lsxintrin.h>
|
|
28
|
+
|
|
29
|
+
namespace simdutf {
|
|
30
|
+
/**
|
|
31
|
+
* Implementation for LoongArch ASX.
|
|
32
|
+
*/
|
|
33
|
+
namespace lasx {} // namespace lasx
|
|
34
|
+
} // namespace simdutf
|
|
35
|
+
|
|
36
|
+
#include "simdutf/lasx/implementation.h"
|
|
37
|
+
|
|
38
|
+
#include "simdutf/lasx/begin.h"
|
|
39
|
+
|
|
40
|
+
// Declarations
|
|
41
|
+
#include "simdutf/lasx/intrinsics.h"
|
|
42
|
+
#include "simdutf/lasx/bitmanipulation.h"
|
|
43
|
+
#include "simdutf/lasx/simd.h"
|
|
44
|
+
|
|
45
|
+
#include "simdutf/lasx/end.h"
|
|
46
|
+
|
|
47
|
+
#endif // SIMDUTF_IMPLEMENTATION_LASX
|
|
48
|
+
|
|
49
|
+
#endif // SIMDUTF_LASX_H
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#ifndef SIMDUTF_LSX_BITMANIPULATION_H
|
|
2
|
+
#define SIMDUTF_LSX_BITMANIPULATION_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf.h"
|
|
5
|
+
#include <limits>
|
|
6
|
+
|
|
7
|
+
namespace simdutf {
|
|
8
|
+
namespace SIMDUTF_IMPLEMENTATION {
|
|
9
|
+
namespace {
|
|
10
|
+
|
|
11
|
+
simdutf_really_inline int count_ones(uint64_t input_num) {
|
|
12
|
+
return __lsx_vpickve2gr_w(__lsx_vpcnt_d(__lsx_vreplgr2vr_d(input_num)), 0);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#if SIMDUTF_NEED_TRAILING_ZEROES
|
|
16
|
+
simdutf_really_inline int trailing_zeroes(uint64_t input_num) {
|
|
17
|
+
return __builtin_ctzll(input_num);
|
|
18
|
+
}
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
} // unnamed namespace
|
|
22
|
+
} // namespace SIMDUTF_IMPLEMENTATION
|
|
23
|
+
} // namespace simdutf
|
|
24
|
+
|
|
25
|
+
#endif // SIMDUTF_LSX_BITMANIPULATION_H
|