ypicchi-arm 9e9a10ad01
Fix double shufti's vector end false positive (#325)
* Add regression test for double shufti

It tests for false positive at vector edges.

Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>

* Fix double shufti reporting false positives

Double shufti used to offset one vector, resulting in losing one character
at the end of every vector. This was replaced by a magic value indicating a
match. This meant that if the first char of a pattern fell on the last char of
a vector, double shufti would assume the second character is present and
report a match.
This patch fixes it by keeping the previous vector and feeding its data to the
new one when we shift it, preventing any loss of data.

Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>

* vshl() will call the correct implementation

* implement missing vshr_512_imm(), simplifies caller x86 code

* Fix x86 case, use alignr instead

* it's the reverse, the avx512 alignr is incorrect, need to fix

* Make shufti's OR reduce size agnostic

Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>

* Fix test's array size

Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>

* Fix AVX2/AVX512 alignr implementations and unit tests

* Fix Power VSX alignr

---------

Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>
Co-authored-by: Konstantinos Margaritis <konstantinos@vectorcamp.gr>
2025-06-11 18:55:10 +03:00
..
2024-08-29 13:49:29 +03:00
2024-06-20 14:57:19 +03:00
2015-10-20 09:13:35 +11:00
2024-04-29 13:28:16 +03:00
2015-10-20 09:13:35 +11:00
2021-10-12 11:51:34 +03:00
2024-05-20 17:09:30 +03:00
2019-01-21 09:59:37 +08:00
2021-10-12 11:51:34 +03:00
2024-05-16 12:03:42 +03:00
2023-10-03 09:57:10 +03:00
2015-10-20 09:13:35 +11:00
2023-09-05 13:58:17 +03:00
2017-08-21 11:19:11 +10:00