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

@@ -34,12 +34,27 @@
#define ARCH_ARM_SIMD_UTILS_H
#include <stdio.h>
#include <stdbool.h>
#include "ue2common.h"
#include "util/simd_types.h"
#include "util/unaligned.h"
#include "util/intrinsics.h"
#ifdef HAVE_SVE2
static really_inline
svuint8_t getCharMaskSingle(const u8 c, bool noCase) {
if (noCase) {
uint16_t chars_u16 = (c & 0xdf) | ((c | 0x20) << 8);
return svreinterpret_u8(svdup_u16(chars_u16));
} else {
return svdup_u8(c);
}
}
#endif
#include <string.h> // for memcpy
static really_inline m128 ones128(void) {