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-04-24 11:13:28 +03:00
2015-10-20 09:13:35 +11:00
2024-05-17 13:57:12 +03:00
2025-05-30 12:27:28 +03:00
2025-05-30 12:27:28 +03:00
2024-05-17 10:44:28 +03:00
2017-01-17 11:38:09 +11:00
2024-05-17 16:58:08 +03:00
2021-02-15 13:54:19 +02:00
2024-05-10 10:08:14 +03:00
2024-05-17 13:57:12 +03:00
2015-10-20 09:13:35 +11:00
2015-10-20 09:13:35 +11:00
2024-04-24 11:13:02 +03:00
2024-05-27 15:41:57 +03:00
2024-04-29 13:13:07 +03:00
2024-05-17 13:57:12 +03:00
2024-05-14 13:32:50 +03:00
2024-05-15 17:05:50 +03:00
2015-10-20 09:13:35 +11:00
2015-10-20 09:13:35 +11:00
2023-09-05 13:49:52 +03:00
2024-05-17 16:58:08 +03:00