mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-11-20 02:47:11 +03:00
Implement new DoubleVermicelli16 acceleration functions using SVE2
Change-Id: Id4a8ffca840caab930a6e78cc0dfd0fe7d320b4e
This commit is contained in:
committed by
Konstantinos Margaritis
parent
91f5f10831
commit
e1f0f6baf7
@@ -91,6 +91,28 @@ const u8 *run_accel(const union AccelAux *accel, const u8 *c, const u8 *c_end) {
|
||||
|
||||
rv = vermicelli16Exec(accel->verm16.mask, c, c_end);
|
||||
break;
|
||||
|
||||
case ACCEL_DVERM16:
|
||||
DEBUG_PRINTF("accel dverm16 %p %p\n", c, c_end);
|
||||
if (c_end - c < 18) {
|
||||
return c;
|
||||
}
|
||||
|
||||
/* need to stop one early to get an accurate end state */
|
||||
rv = vermicelliDouble16Exec(accel->dverm16.mask, accel->dverm16.firsts,
|
||||
c, c_end - 1);
|
||||
break;
|
||||
|
||||
case ACCEL_DVERM16_MASKED:
|
||||
DEBUG_PRINTF("accel dverm16 masked %p %p\n", c, c_end);
|
||||
if (c_end - c < 18) {
|
||||
return c;
|
||||
}
|
||||
|
||||
/* need to stop one early to get an accurate end state */
|
||||
rv = vermicelliDoubleMasked16Exec(accel->mdverm16.mask, accel->mdverm16.c1,
|
||||
accel->mdverm16.m1, c, c_end - 1);
|
||||
break;
|
||||
#endif // HAVE_SVE2
|
||||
|
||||
case ACCEL_DVERM_MASKED:
|
||||
|
||||
Reference in New Issue
Block a user