diff options
author | bnagaev <bnagaev@yandex-team.ru> | 2022-02-10 16:47:04 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:04 +0300 |
commit | d6449ba66291ff0c0d352c82e6eb3efb4c8a7e8d (patch) | |
tree | d5dca6d44593f5e52556a1cc7b1ab0386e096ebe /contrib/libs/hyperscan/src/fdr/teddy.c | |
parent | 1861d4c1402bb2c67a3e6b43b51706081b74508a (diff) | |
download | ydb-d6449ba66291ff0c0d352c82e6eb3efb4c8a7e8d.tar.gz |
Restoring authorship annotation for <bnagaev@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/hyperscan/src/fdr/teddy.c')
-rw-r--r-- | contrib/libs/hyperscan/src/fdr/teddy.c | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/contrib/libs/hyperscan/src/fdr/teddy.c b/contrib/libs/hyperscan/src/fdr/teddy.c index e6f5476198..8aaf69b26c 100644 --- a/contrib/libs/hyperscan/src/fdr/teddy.c +++ b/contrib/libs/hyperscan/src/fdr/teddy.c @@ -1,31 +1,31 @@ -/* +/* * Copyright (c) 2015-2020, Intel Corporation - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Intel Corporation nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + /** \file * \brief Teddy literal matcher: SSSE3 engine runtime. */ @@ -35,8 +35,8 @@ #include "teddy.h" #include "teddy_internal.h" #include "teddy_runtime_common.h" -#include "util/simd_utils.h" - +#include "util/simd_utils.h" + const u8 ALIGN_DIRECTIVE p_mask_arr[17][32] = { {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, @@ -72,8 +72,8 @@ const u8 ALIGN_DIRECTIVE p_mask_arr[17][32] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} -}; - +}; + #if defined(HAVE_AVX512VBMI) // VBMI strong teddy #define CONF_CHUNK_64(chunk, bucket, off, reason, pt, conf_fn) \ @@ -107,7 +107,7 @@ do { \ CHECK_HWLM_TERMINATE_MATCHING; \ } \ } while(0) - + #define CONF_CHUNK_32(chunk, bucket, off, reason, conf_fn) \ do { \ if (unlikely(chunk != ones_u32)) { \ @@ -117,7 +117,7 @@ do { \ CHECK_HWLM_TERMINATE_MATCHING; \ } \ } while(0) - + #endif #if defined(HAVE_AVX512VBMI) // VBMI strong teddy @@ -496,8 +496,8 @@ m512 prep_conf_teddy_no_reinforcement_m1(const m512 *lo_mask, const m512 val) { PREP_SHUF_MASK_NO_REINFORCEMENT(val); return SHIFT_OR_M1; -} - +} + static really_inline m512 prep_conf_teddy_no_reinforcement_m2(const m512 *lo_mask, const m512 *dup_mask, @@ -505,7 +505,7 @@ m512 prep_conf_teddy_no_reinforcement_m2(const m512 *lo_mask, PREP_SHUF_MASK_NO_REINFORCEMENT(val); return SHIFT_OR_M2; } - + static really_inline m512 prep_conf_teddy_no_reinforcement_m3(const m512 *lo_mask, const m512 *dup_mask, @@ -513,15 +513,15 @@ m512 prep_conf_teddy_no_reinforcement_m3(const m512 *lo_mask, PREP_SHUF_MASK_NO_REINFORCEMENT(val); return SHIFT_OR_M3; } - + static really_inline m512 prep_conf_teddy_no_reinforcement_m4(const m512 *lo_mask, const m512 *dup_mask, const m512 val) { PREP_SHUF_MASK_NO_REINFORCEMENT(val); return SHIFT_OR_M4; -} - +} + static really_inline m512 prep_conf_teddy_m1(const m512 *lo_mask, const m512 *dup_mask, const u8 *ptr, const u64a *r_msk_base, @@ -529,7 +529,7 @@ m512 prep_conf_teddy_m1(const m512 *lo_mask, const m512 *dup_mask, PREP_SHUF_MASK; return or512(SHIFT_OR_M1, r_msk); } - + static really_inline m512 prep_conf_teddy_m2(const m512 *lo_mask, const m512 *dup_mask, const u8 *ptr, const u64a *r_msk_base, @@ -537,7 +537,7 @@ m512 prep_conf_teddy_m2(const m512 *lo_mask, const m512 *dup_mask, PREP_SHUF_MASK; return or512(SHIFT_OR_M2, r_msk); } - + static really_inline m512 prep_conf_teddy_m3(const m512 *lo_mask, const m512 *dup_mask, const u8 *ptr, const u64a *r_msk_base, @@ -545,7 +545,7 @@ m512 prep_conf_teddy_m3(const m512 *lo_mask, const m512 *dup_mask, PREP_SHUF_MASK; return or512(SHIFT_OR_M3, r_msk); } - + static really_inline m512 prep_conf_teddy_m4(const m512 *lo_mask, const m512 *dup_mask, const u8 *ptr, const u64a *r_msk_base, @@ -553,7 +553,7 @@ m512 prep_conf_teddy_m4(const m512 *lo_mask, const m512 *dup_mask, PREP_SHUF_MASK; return or512(SHIFT_OR_M4, r_msk); } - + #define PREP_CONF_FN_NO_REINFORCEMENT(val, n) \ prep_conf_teddy_no_reinforcement_m##n(&lo_mask, dup_mask, val) @@ -732,8 +732,8 @@ m256 prep_conf_teddy_no_reinforcement_m1(const m256 *lo_mask, const m256 val) { PREP_SHUF_MASK_NO_REINFORCEMENT(val); return SHIFT_OR_M1; -} - +} + static really_inline m256 prep_conf_teddy_no_reinforcement_m2(const m256 *lo_mask, const m256 *dup_mask, @@ -741,7 +741,7 @@ m256 prep_conf_teddy_no_reinforcement_m2(const m256 *lo_mask, PREP_SHUF_MASK_NO_REINFORCEMENT(val); return SHIFT_OR_M2; } - + static really_inline m256 prep_conf_teddy_no_reinforcement_m3(const m256 *lo_mask, const m256 *dup_mask, @@ -749,7 +749,7 @@ m256 prep_conf_teddy_no_reinforcement_m3(const m256 *lo_mask, PREP_SHUF_MASK_NO_REINFORCEMENT(val); return SHIFT_OR_M3; } - + static really_inline m256 prep_conf_teddy_no_reinforcement_m4(const m256 *lo_mask, const m256 *dup_mask, @@ -757,7 +757,7 @@ m256 prep_conf_teddy_no_reinforcement_m4(const m256 *lo_mask, PREP_SHUF_MASK_NO_REINFORCEMENT(val); return SHIFT_OR_M4; } - + static really_inline m256 prep_conf_teddy_m1(const m256 *lo_mask, const m256 *dup_mask, const u8 *ptr, const u64a *r_msk_base, @@ -765,7 +765,7 @@ m256 prep_conf_teddy_m1(const m256 *lo_mask, const m256 *dup_mask, PREP_SHUF_MASK; return or256(SHIFT_OR_M1, r_msk); } - + static really_inline m256 prep_conf_teddy_m2(const m256 *lo_mask, const m256 *dup_mask, const u8 *ptr, const u64a *r_msk_base, @@ -773,7 +773,7 @@ m256 prep_conf_teddy_m2(const m256 *lo_mask, const m256 *dup_mask, PREP_SHUF_MASK; return or256(SHIFT_OR_M2, r_msk); } - + static really_inline m256 prep_conf_teddy_m3(const m256 *lo_mask, const m256 *dup_mask, const u8 *ptr, const u64a *r_msk_base, @@ -781,7 +781,7 @@ m256 prep_conf_teddy_m3(const m256 *lo_mask, const m256 *dup_mask, PREP_SHUF_MASK; return or256(SHIFT_OR_M3, r_msk); } - + static really_inline m256 prep_conf_teddy_m4(const m256 *lo_mask, const m256 *dup_mask, const u8 *ptr, const u64a *r_msk_base, |