
hyperscan
redwingz
这个作者很懒,什么都没留下…
展开
-
vermicelli双字符匹配
其次,分别与第一个要查找的字符chars1,以及第二个字符chars2进行比较。如下示例,假设需要匹配的两个字符为:ab,输入64字节长度字符串为:thisisatestchabt…对于字符b,仅在位置14产生了一处匹配(mask2)。之后,将mask2右移1位,这样mask2的第14位移动到了第13位,将其与mask1进行位与操作,得到匹配结果z,第13位为1(ctz64函数获得)。dvermMini函数执行双字符匹配,每次最多可检测64字节的输入数据,返回第一个匹配的起始位置。原创 2023-06-11 18:15:00 · 188 阅读 · 0 评论 -
vermicelli单字符匹配
vermMini函数处理单字符的匹配,每次最多匹配64字节长度的数据,返回首个匹配位置。参数chars中保存了64个相同字符(如字符a),待匹配数据长度小于等于VERM_BOUNDARY(64)字节。AVX-512指令_mm512_maskz_loadu_epi8将buf 到 buf_end内存中数据以字节为单位加载到m512变量中,64bit掩码mask指定了要加载到data中的字节,mask中bit为零表示不加载buf对应字节位置的数据。原创 2023-06-04 21:07:00 · 205 阅读 · 0 评论