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,138 @@
|
|
|
1
|
+
#ifndef SIMDUTF_ICELAKE_INTRINSICS_H
|
|
2
|
+
#define SIMDUTF_ICELAKE_INTRINSICS_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf.h"
|
|
5
|
+
|
|
6
|
+
#ifdef SIMDUTF_VISUAL_STUDIO
|
|
7
|
+
// under clang within visual studio, this will include <x86intrin.h>
|
|
8
|
+
#include <intrin.h> // visual studio or clang
|
|
9
|
+
#include <immintrin.h>
|
|
10
|
+
#else
|
|
11
|
+
|
|
12
|
+
#if SIMDUTF_GCC11ORMORE
|
|
13
|
+
// We should not get warnings while including <x86intrin.h> yet we do
|
|
14
|
+
// under some versions of GCC.
|
|
15
|
+
// If the x86intrin.h header has uninitialized values that are problematic,
|
|
16
|
+
// it is a GCC issue, we want to ignore these warnings.
|
|
17
|
+
SIMDUTF_DISABLE_GCC_WARNING(-Wuninitialized)
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
#include <x86intrin.h> // elsewhere
|
|
21
|
+
|
|
22
|
+
#if SIMDUTF_GCC11ORMORE
|
|
23
|
+
// cancels the suppression of the -Wuninitialized
|
|
24
|
+
SIMDUTF_POP_DISABLE_WARNINGS
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#ifndef _tzcnt_u64
|
|
28
|
+
#define _tzcnt_u64(x) __tzcnt_u64(x)
|
|
29
|
+
#endif // _tzcnt_u64
|
|
30
|
+
#endif // SIMDUTF_VISUAL_STUDIO
|
|
31
|
+
|
|
32
|
+
#ifdef SIMDUTF_CLANG_VISUAL_STUDIO
|
|
33
|
+
/**
|
|
34
|
+
* You are not supposed, normally, to include these
|
|
35
|
+
* headers directly. Instead you should either include intrin.h
|
|
36
|
+
* or x86intrin.h. However, when compiling with clang
|
|
37
|
+
* under Windows (i.e., when _MSC_VER is set), these headers
|
|
38
|
+
* only get included *if* the corresponding features are detected
|
|
39
|
+
* from macros:
|
|
40
|
+
* e.g., if __AVX2__ is set... in turn, we normally set these
|
|
41
|
+
* macros by compiling against the corresponding architecture
|
|
42
|
+
* (e.g., arch:AVX2, -mavx2, etc.) which compiles the whole
|
|
43
|
+
* software with these advanced instructions. In simdutf, we
|
|
44
|
+
* want to compile the whole program for a generic target,
|
|
45
|
+
* and only target our specific kernels. As a workaround,
|
|
46
|
+
* we directly include the needed headers. These headers would
|
|
47
|
+
* normally guard against such usage, but we carefully included
|
|
48
|
+
* <x86intrin.h> (or <intrin.h>) before, so the headers
|
|
49
|
+
* are fooled.
|
|
50
|
+
*/
|
|
51
|
+
#include <bmiintrin.h> // for _blsr_u64
|
|
52
|
+
#include <bmi2intrin.h> // for _pext_u64, _pdep_u64
|
|
53
|
+
#include <lzcntintrin.h> // for __lzcnt64
|
|
54
|
+
#include <immintrin.h> // for most things (AVX2, AVX512, _popcnt64)
|
|
55
|
+
#include <smmintrin.h>
|
|
56
|
+
#include <tmmintrin.h>
|
|
57
|
+
#include <avxintrin.h>
|
|
58
|
+
#include <avx2intrin.h>
|
|
59
|
+
// Important: we need the AVX-512 headers:
|
|
60
|
+
#include <avx512fintrin.h>
|
|
61
|
+
#include <avx512dqintrin.h>
|
|
62
|
+
#include <avx512cdintrin.h>
|
|
63
|
+
#include <avx512bwintrin.h>
|
|
64
|
+
#include <avx512vlintrin.h>
|
|
65
|
+
#include <avx512vlbwintrin.h>
|
|
66
|
+
#include <avx512vbmiintrin.h>
|
|
67
|
+
#include <avx512vbmi2intrin.h>
|
|
68
|
+
#include <avx512vpopcntdqintrin.h>
|
|
69
|
+
#include <avx512vpopcntdqvlintrin.h>
|
|
70
|
+
// unfortunately, we may not get _blsr_u64, but, thankfully, clang
|
|
71
|
+
// has it as a macro.
|
|
72
|
+
#ifndef _blsr_u64
|
|
73
|
+
// we roll our own
|
|
74
|
+
#define _blsr_u64(n) ((n - 1) & n)
|
|
75
|
+
#endif // _blsr_u64
|
|
76
|
+
#endif // SIMDUTF_CLANG_VISUAL_STUDIO
|
|
77
|
+
|
|
78
|
+
#if defined(__GNUC__) && !defined(__clang__)
|
|
79
|
+
|
|
80
|
+
#if __GNUC__ == 8
|
|
81
|
+
#define SIMDUTF_GCC8 1
|
|
82
|
+
#elif __GNUC__ == 9
|
|
83
|
+
#define SIMDUTF_GCC9 1
|
|
84
|
+
#endif // __GNUC__ == 8 || __GNUC__ == 9
|
|
85
|
+
|
|
86
|
+
#endif // defined(__GNUC__) && !defined(__clang__)
|
|
87
|
+
|
|
88
|
+
#if SIMDUTF_GCC8
|
|
89
|
+
#pragma GCC push_options
|
|
90
|
+
#pragma GCC target("avx512f")
|
|
91
|
+
/**
|
|
92
|
+
* GCC 8 fails to provide _mm512_set_epi8. We roll our own.
|
|
93
|
+
*/
|
|
94
|
+
inline __m512i
|
|
95
|
+
_mm512_set_epi8(uint8_t a0, uint8_t a1, uint8_t a2, uint8_t a3, uint8_t a4,
|
|
96
|
+
uint8_t a5, uint8_t a6, uint8_t a7, uint8_t a8, uint8_t a9,
|
|
97
|
+
uint8_t a10, uint8_t a11, uint8_t a12, uint8_t a13, uint8_t a14,
|
|
98
|
+
uint8_t a15, uint8_t a16, uint8_t a17, uint8_t a18, uint8_t a19,
|
|
99
|
+
uint8_t a20, uint8_t a21, uint8_t a22, uint8_t a23, uint8_t a24,
|
|
100
|
+
uint8_t a25, uint8_t a26, uint8_t a27, uint8_t a28, uint8_t a29,
|
|
101
|
+
uint8_t a30, uint8_t a31, uint8_t a32, uint8_t a33, uint8_t a34,
|
|
102
|
+
uint8_t a35, uint8_t a36, uint8_t a37, uint8_t a38, uint8_t a39,
|
|
103
|
+
uint8_t a40, uint8_t a41, uint8_t a42, uint8_t a43, uint8_t a44,
|
|
104
|
+
uint8_t a45, uint8_t a46, uint8_t a47, uint8_t a48, uint8_t a49,
|
|
105
|
+
uint8_t a50, uint8_t a51, uint8_t a52, uint8_t a53, uint8_t a54,
|
|
106
|
+
uint8_t a55, uint8_t a56, uint8_t a57, uint8_t a58, uint8_t a59,
|
|
107
|
+
uint8_t a60, uint8_t a61, uint8_t a62, uint8_t a63) {
|
|
108
|
+
return _mm512_set_epi64(
|
|
109
|
+
uint64_t(a7) + (uint64_t(a6) << 8) + (uint64_t(a5) << 16) +
|
|
110
|
+
(uint64_t(a4) << 24) + (uint64_t(a3) << 32) + (uint64_t(a2) << 40) +
|
|
111
|
+
(uint64_t(a1) << 48) + (uint64_t(a0) << 56),
|
|
112
|
+
uint64_t(a15) + (uint64_t(a14) << 8) + (uint64_t(a13) << 16) +
|
|
113
|
+
(uint64_t(a12) << 24) + (uint64_t(a11) << 32) +
|
|
114
|
+
(uint64_t(a10) << 40) + (uint64_t(a9) << 48) + (uint64_t(a8) << 56),
|
|
115
|
+
uint64_t(a23) + (uint64_t(a22) << 8) + (uint64_t(a21) << 16) +
|
|
116
|
+
(uint64_t(a20) << 24) + (uint64_t(a19) << 32) +
|
|
117
|
+
(uint64_t(a18) << 40) + (uint64_t(a17) << 48) + (uint64_t(a16) << 56),
|
|
118
|
+
uint64_t(a31) + (uint64_t(a30) << 8) + (uint64_t(a29) << 16) +
|
|
119
|
+
(uint64_t(a28) << 24) + (uint64_t(a27) << 32) +
|
|
120
|
+
(uint64_t(a26) << 40) + (uint64_t(a25) << 48) + (uint64_t(a24) << 56),
|
|
121
|
+
uint64_t(a39) + (uint64_t(a38) << 8) + (uint64_t(a37) << 16) +
|
|
122
|
+
(uint64_t(a36) << 24) + (uint64_t(a35) << 32) +
|
|
123
|
+
(uint64_t(a34) << 40) + (uint64_t(a33) << 48) + (uint64_t(a32) << 56),
|
|
124
|
+
uint64_t(a47) + (uint64_t(a46) << 8) + (uint64_t(a45) << 16) +
|
|
125
|
+
(uint64_t(a44) << 24) + (uint64_t(a43) << 32) +
|
|
126
|
+
(uint64_t(a42) << 40) + (uint64_t(a41) << 48) + (uint64_t(a40) << 56),
|
|
127
|
+
uint64_t(a55) + (uint64_t(a54) << 8) + (uint64_t(a53) << 16) +
|
|
128
|
+
(uint64_t(a52) << 24) + (uint64_t(a51) << 32) +
|
|
129
|
+
(uint64_t(a50) << 40) + (uint64_t(a49) << 48) + (uint64_t(a48) << 56),
|
|
130
|
+
uint64_t(a63) + (uint64_t(a62) << 8) + (uint64_t(a61) << 16) +
|
|
131
|
+
(uint64_t(a60) << 24) + (uint64_t(a59) << 32) +
|
|
132
|
+
(uint64_t(a58) << 40) + (uint64_t(a57) << 48) +
|
|
133
|
+
(uint64_t(a56) << 56));
|
|
134
|
+
}
|
|
135
|
+
#pragma GCC pop_options
|
|
136
|
+
#endif // SIMDUTF_GCC8
|
|
137
|
+
|
|
138
|
+
#endif // SIMDUTF_HASWELL_INTRINSICS_H
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#ifndef SIMDUTF_ICELAKE_SIMD_H
|
|
2
|
+
#define SIMDUTF_ICELAKE_SIMD_H
|
|
3
|
+
|
|
4
|
+
namespace simdutf {
|
|
5
|
+
namespace SIMDUTF_IMPLEMENTATION {
|
|
6
|
+
namespace {
|
|
7
|
+
namespace simd {
|
|
8
|
+
|
|
9
|
+
#include "simdutf/icelake/simd16-inl.h"
|
|
10
|
+
#include "simdutf/icelake/simd32-inl.h"
|
|
11
|
+
|
|
12
|
+
} // namespace simd
|
|
13
|
+
} // unnamed namespace
|
|
14
|
+
} // namespace SIMDUTF_IMPLEMENTATION
|
|
15
|
+
} // namespace simdutf
|
|
16
|
+
|
|
17
|
+
#endif // SIMDUTF_ICELAKE_SIMD_H
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
template <typename T> struct simd16;
|
|
2
|
+
|
|
3
|
+
template <> struct simd16<uint16_t> {
|
|
4
|
+
static const size_t SIZE = sizeof(__m512i);
|
|
5
|
+
static const size_t ELEMENTS = SIZE / sizeof(uint16_t);
|
|
6
|
+
|
|
7
|
+
template <typename Pointer>
|
|
8
|
+
static simdutf_really_inline simd16<uint16_t> load(const Pointer *ptr) {
|
|
9
|
+
return simd16<uint16_t>(ptr);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
__m512i value;
|
|
13
|
+
|
|
14
|
+
simdutf_really_inline simd16(const __m512i v) : value(v) {}
|
|
15
|
+
|
|
16
|
+
template <typename Pointer>
|
|
17
|
+
simdutf_really_inline simd16(const Pointer *ptr)
|
|
18
|
+
: value(_mm512_loadu_si512(reinterpret_cast<const __m512i *>(ptr))) {}
|
|
19
|
+
|
|
20
|
+
// operators
|
|
21
|
+
simdutf_really_inline simd16 &operator+=(const simd16 other) {
|
|
22
|
+
value = _mm512_add_epi32(value, other.value);
|
|
23
|
+
return *this;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
simdutf_really_inline simd16 &operator-=(const simd16 other) {
|
|
27
|
+
value = _mm512_sub_epi32(value, other.value);
|
|
28
|
+
return *this;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// methods
|
|
32
|
+
simdutf_really_inline simd16 swap_bytes() const {
|
|
33
|
+
const __m512i byteflip = _mm512_setr_epi64(
|
|
34
|
+
0x0607040502030001, 0x0e0f0c0d0a0b0809, 0x0607040502030001,
|
|
35
|
+
0x0e0f0c0d0a0b0809, 0x0607040502030001, 0x0e0f0c0d0a0b0809,
|
|
36
|
+
0x0607040502030001, 0x0e0f0c0d0a0b0809);
|
|
37
|
+
|
|
38
|
+
return _mm512_shuffle_epi8(value, byteflip);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
simdutf_really_inline uint64_t sum() const {
|
|
42
|
+
const auto lo = _mm512_and_si512(value, _mm512_set1_epi32(0xffff));
|
|
43
|
+
const auto hi = _mm512_srli_epi32(value, 16);
|
|
44
|
+
const auto sum32 = _mm512_add_epi32(lo, hi);
|
|
45
|
+
|
|
46
|
+
return _mm512_reduce_add_epi32(sum32);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// static members
|
|
50
|
+
simdutf_really_inline static simd16<uint16_t> zero() {
|
|
51
|
+
return _mm512_setzero_si512();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
simdutf_really_inline static simd16<uint16_t> splat(uint16_t v) {
|
|
55
|
+
return _mm512_set1_epi16(v);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
template <> struct simd16<bool> {
|
|
60
|
+
__mmask32 value;
|
|
61
|
+
|
|
62
|
+
simdutf_really_inline simd16(const __mmask32 v) : value(v) {}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// ------------------------------------------------------------
|
|
66
|
+
|
|
67
|
+
simdutf_really_inline simd16<uint16_t> min(const simd16<uint16_t> b,
|
|
68
|
+
const simd16<uint16_t> a) {
|
|
69
|
+
return _mm512_min_epu16(a.value, b.value);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
simdutf_really_inline simd16<uint16_t> operator&(const simd16<uint16_t> a,
|
|
73
|
+
uint16_t b) {
|
|
74
|
+
return _mm512_and_si512(a.value, _mm512_set1_epi16(b));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
simdutf_really_inline simd16<uint16_t> operator^(const simd16<uint16_t> a,
|
|
78
|
+
uint16_t b) {
|
|
79
|
+
return _mm512_xor_si512(a.value, _mm512_set1_epi16(b));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
simdutf_really_inline simd16<uint16_t> operator^(const simd16<uint16_t> a,
|
|
83
|
+
const simd16<uint16_t> b) {
|
|
84
|
+
return _mm512_xor_si512(a.value, b.value);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
simdutf_really_inline simd16<bool> operator==(const simd16<uint16_t> a,
|
|
88
|
+
uint16_t b) {
|
|
89
|
+
return _mm512_cmpeq_epi16_mask(a.value, _mm512_set1_epi16(b));
|
|
90
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
template <typename T> struct simd32;
|
|
2
|
+
|
|
3
|
+
template <> struct simd32<uint32_t> {
|
|
4
|
+
static const size_t SIZE = sizeof(__m512i);
|
|
5
|
+
static const size_t ELEMENTS = SIZE / sizeof(uint32_t);
|
|
6
|
+
|
|
7
|
+
__m512i value;
|
|
8
|
+
|
|
9
|
+
simdutf_really_inline simd32(const __m512i v) : value(v) {}
|
|
10
|
+
|
|
11
|
+
template <typename Pointer>
|
|
12
|
+
simdutf_really_inline simd32(const Pointer *ptr)
|
|
13
|
+
: value(_mm512_loadu_si512(reinterpret_cast<const __m512i *>(ptr))) {}
|
|
14
|
+
|
|
15
|
+
uint64_t sum() const {
|
|
16
|
+
const __m512i mask = _mm512_set1_epi64(0xffffffff);
|
|
17
|
+
const __m512i t0 = _mm512_and_si512(value, mask);
|
|
18
|
+
const __m512i t1 = _mm512_srli_epi64(value, 32);
|
|
19
|
+
const __m512i t2 = _mm512_add_epi64(t0, t1);
|
|
20
|
+
return _mm512_reduce_add_epi64(t2);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// operators
|
|
24
|
+
simdutf_really_inline simd32 &operator+=(const simd32 other) {
|
|
25
|
+
value = _mm512_add_epi32(value, other.value);
|
|
26
|
+
return *this;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// static members
|
|
30
|
+
simdutf_really_inline static simd32<uint32_t> zero() {
|
|
31
|
+
return _mm512_setzero_si512();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
simdutf_really_inline static simd32<uint32_t> splat(uint32_t v) {
|
|
35
|
+
return _mm512_set1_epi32(v);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
simdutf_really_inline simd32<uint32_t> min(const simd32<uint32_t> b,
|
|
40
|
+
const simd32<uint32_t> a) {
|
|
41
|
+
return _mm512_min_epu32(a.value, b.value);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
simdutf_really_inline simd32<uint32_t> operator&(const simd32<uint32_t> b,
|
|
45
|
+
const simd32<uint32_t> a) {
|
|
46
|
+
return _mm512_and_si512(a.value, b.value);
|
|
47
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#ifndef SIMDUTF_ICELAKE_H
|
|
2
|
+
#define SIMDUTF_ICELAKE_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf/portability.h"
|
|
5
|
+
|
|
6
|
+
#ifdef __has_include
|
|
7
|
+
// How do we detect that a compiler supports vbmi2?
|
|
8
|
+
// For sure if the following header is found, we are ok?
|
|
9
|
+
#if __has_include(<avx512vbmi2intrin.h>)
|
|
10
|
+
#define SIMDUTF_COMPILER_SUPPORTS_VBMI2 1
|
|
11
|
+
#endif
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifdef _MSC_VER
|
|
15
|
+
#if _MSC_VER >= 1930
|
|
16
|
+
// Visual Studio 2022 and up support VBMI2 under x64 even if the header
|
|
17
|
+
// avx512vbmi2intrin.h is not found.
|
|
18
|
+
// Visual Studio 2019 technically supports VBMI2, but the implementation
|
|
19
|
+
// might be unreliable. Search for visualstudio2019icelakeissue in our
|
|
20
|
+
// tests.
|
|
21
|
+
#ifndef SIMDUTF_COMPILER_SUPPORTS_VBMI2
|
|
22
|
+
#define SIMDUTF_COMPILER_SUPPORTS_VBMI2 1
|
|
23
|
+
#endif
|
|
24
|
+
#endif
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#if SIMDUTF_GCC9OROLDER && SIMDUTF_IS_X86_64
|
|
28
|
+
#define SIMDUTF_IMPLEMENTATION_ICELAKE 0
|
|
29
|
+
#warning \
|
|
30
|
+
"You are using a legacy GCC compiler, we are disabling AVX-512 support"
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
// We allow icelake on x64 as long as the compiler is known to support VBMI2.
|
|
34
|
+
#ifndef SIMDUTF_IMPLEMENTATION_ICELAKE
|
|
35
|
+
#define SIMDUTF_IMPLEMENTATION_ICELAKE \
|
|
36
|
+
((SIMDUTF_IS_X86_64) && (SIMDUTF_COMPILER_SUPPORTS_VBMI2))
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
// To see why (__BMI__) && (__LZCNT__) are not part of this next line, see
|
|
40
|
+
// https://github.com/simdutf/simdutf/issues/1247
|
|
41
|
+
#if ((SIMDUTF_IMPLEMENTATION_ICELAKE) && (SIMDUTF_IS_X86_64) && (__AVX2__) && \
|
|
42
|
+
(SIMDUTF_HAS_AVX512F && SIMDUTF_HAS_AVX512DQ && SIMDUTF_HAS_AVX512VL && \
|
|
43
|
+
SIMDUTF_HAS_AVX512VBMI2) && \
|
|
44
|
+
(!SIMDUTF_IS_32BITS))
|
|
45
|
+
#define SIMDUTF_CAN_ALWAYS_RUN_ICELAKE 1
|
|
46
|
+
#else
|
|
47
|
+
#define SIMDUTF_CAN_ALWAYS_RUN_ICELAKE 0
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
#if SIMDUTF_IMPLEMENTATION_ICELAKE
|
|
51
|
+
#if SIMDUTF_CAN_ALWAYS_RUN_ICELAKE
|
|
52
|
+
#define SIMDUTF_TARGET_ICELAKE
|
|
53
|
+
#else
|
|
54
|
+
#define SIMDUTF_TARGET_ICELAKE \
|
|
55
|
+
SIMDUTF_TARGET_REGION( \
|
|
56
|
+
"avx512f,avx512dq,avx512cd,avx512bw,avx512vbmi,avx512vbmi2," \
|
|
57
|
+
"avx512vl,avx2,bmi,bmi2,pclmul,lzcnt,popcnt,avx512vpopcntdq")
|
|
58
|
+
#endif
|
|
59
|
+
|
|
60
|
+
namespace simdutf {
|
|
61
|
+
namespace icelake {} // namespace icelake
|
|
62
|
+
} // namespace simdutf
|
|
63
|
+
|
|
64
|
+
//
|
|
65
|
+
// These two need to be included outside SIMDUTF_TARGET_REGION
|
|
66
|
+
//
|
|
67
|
+
#include "simdutf/icelake/intrinsics.h"
|
|
68
|
+
#include "simdutf/icelake/implementation.h"
|
|
69
|
+
|
|
70
|
+
//
|
|
71
|
+
// The rest need to be inside the region
|
|
72
|
+
//
|
|
73
|
+
#include "simdutf/icelake/begin.h"
|
|
74
|
+
// Declarations
|
|
75
|
+
#include "simdutf/icelake/bitmanipulation.h"
|
|
76
|
+
#include "simdutf/icelake/simd.h"
|
|
77
|
+
|
|
78
|
+
#include "simdutf/icelake/end.h"
|
|
79
|
+
|
|
80
|
+
#endif // SIMDUTF_IMPLEMENTATION_ICELAKE
|
|
81
|
+
#endif // SIMDUTF_ICELAKE_H
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#ifndef SIMDUTF_LASX_BITMANIPULATION_H
|
|
2
|
+
#define SIMDUTF_LASX_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_LASX_BITMANIPULATION_H
|