From: Konstantinos Margaritis Date: Thu, 11 Feb 2021 12:21:57 +0000 (+0200) Subject: use unaligned loads for short scans X-Git-Tag: v5.4.1+vectorscan~6^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9fd94e0062159e49939aa6be7fffdc82039d176f;p=thirdparty%2Fvectorscan.git use unaligned loads for short scans --- diff --git a/src/hwlm/noodle_engine_sse.c b/src/hwlm/noodle_engine_sse.c index fcd753fc..0f14852d 100644 --- a/src/hwlm/noodle_engine_sse.c +++ b/src/hwlm/noodle_engine_sse.c @@ -50,7 +50,7 @@ hwlm_error_t scanSingleShort(const struct noodTable *n, const u8 *buf, return HWLM_SUCCESS; } m128 mask128 = noCase ? caseMask : ones128(); - m128 v = and128(load128(d), mask128); + m128 v = and128(loadu128(d), mask128); // mask out where we can't match u32 mask = (0xFFFF >> (16 - l)); @@ -103,7 +103,7 @@ hwlm_error_t scanDoubleShort(const struct noodTable *n, const u8 *buf, DEBUG_PRINTF("d %zu\n", d - buf); m128 mask128 = noCase ? caseMask : ones128(); - m128 v = and128(load128(d), mask128); + m128 v = and128(loadu128(d), mask128); u32 z = movemask128(and128(lshiftbyte_m128(eq128(mask1, v), 1), eq128(mask2, v)));