mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-11-19 10:34:25 +03:00
Implement new Vermicelli16 acceleration functions using SVE2.
The scheme utilises the MATCH and NMATCH instructions to scan for 16 characters at the same rate as vermicelli scans for one. Change-Id: Ie2cef904c56651e6108593c668e9b65bc001a886
This commit is contained in:
committed by
Konstantinos Margaritis
parent
b6a7ee7e84
commit
b54710d208
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2015-2016, Intel Corporation
|
||||
* Copyright (c) 2021, Arm Limited
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
@@ -52,6 +53,8 @@ struct SubCastle {
|
||||
#define CASTLE_NVERM 2
|
||||
#define CASTLE_SHUFTI 3
|
||||
#define CASTLE_TRUFFLE 4
|
||||
#define CASTLE_VERM16 5
|
||||
#define CASTLE_NVERM16 6
|
||||
|
||||
enum ExclusiveType {
|
||||
NOT_EXCLUSIVE, //!< no subcastles are exclusive
|
||||
@@ -129,6 +132,9 @@ struct ALIGN_AVX_DIRECTIVE Castle {
|
||||
struct {
|
||||
char c;
|
||||
} verm;
|
||||
struct {
|
||||
m128 mask;
|
||||
} verm16;
|
||||
struct {
|
||||
m128 mask_lo;
|
||||
m128 mask_hi;
|
||||
|
||||
Reference in New Issue
Block a user