From 9fd94e0062159e49939aa6be7fffdc82039d176f Mon Sep 17 00:00:00 2001 From: Konstantinos Margaritis Date: Thu, 11 Feb 2021 14:21:57 +0200 Subject: [PATCH] use unaligned loads for short scans --- src/hwlm/noodle_engine_sse.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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)));