Add SVE2 support for vermicelli

Change-Id: Ia025de53521fbaefe5fb1e4425aaf75c7d80a14e
This commit is contained in:
George Wort
2021-06-07 13:55:09 +01:00
committed by Konstantinos Margaritis
parent 7162446358
commit 9fb79ac3ec
8 changed files with 877 additions and 496 deletions

View File

@@ -26,16 +26,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
static really_inline
svuint8_t getCharMaskSingle(const struct noodTable *n, bool noCase) {
if (noCase) {
uint16_t chars_u16 = (n->key0 & 0xdf) | ((n->key0 | 0x20) << 8);
return svreinterpret_u8(svdup_u16(chars_u16));
} else {
return svdup_u8(n->key0);
}
}
static really_inline
hwlm_error_t checkMatched(const struct noodTable *n, const u8 *buf, size_t len,
const struct cb_info *cbi, const u8 *d,
@@ -120,7 +110,7 @@ hwlm_error_t scanSingle(const struct noodTable *n, const u8 *buf, size_t len,
assert(d < e);
assert(d >= buf);
svuint8_t chars = getCharMaskSingle(n, noCase);
svuint8_t chars = getCharMaskSingle(n->key0, noCase);
size_t scan_len = e - d;
if (scan_len <= svcntb()) {