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
..
2025-06-11 18:55:10 +03:00
2025-06-11 18:55:10 +03:00
2025-06-11 18:55:10 +03:00
2024-11-12 10:01:11 +02:00
2019-01-21 09:56:37 +08:00
2024-05-22 16:13:53 +00:00
2015-10-20 09:13:35 +11:00
2024-05-22 16:13:53 +00:00
2024-05-22 16:13:53 +00:00
2024-05-22 16:13:53 +00:00
2017-08-21 11:14:55 +10:00
2016-07-08 11:02:05 +10:00
2024-05-20 14:54:35 +03:00
2016-12-02 11:32:36 +11:00
2021-10-12 11:51:34 +03:00
2021-10-12 11:51:34 +03:00
2024-05-15 10:52:31 +03:00
2016-12-02 11:32:28 +11:00
2024-05-21 15:52:15 +03:00
2017-08-21 11:18:54 +10:00
2017-08-21 11:12:26 +10:00
2016-08-10 15:10:25 +10:00
2024-05-17 11:08:09 +03:00
2017-05-30 13:57:32 +10:00
2024-05-20 17:09:30 +03:00
2024-05-15 17:04:11 +03:00
2016-07-08 11:01:56 +10:00
2024-05-16 23:01:17 +03:00
2024-06-20 14:57:19 +03:00
2015-10-20 09:13:35 +11:00
2017-08-21 11:14:59 +10:00
2024-05-27 12:23:02 +03:00
2024-05-27 12:23:02 +03:00
2017-08-21 11:14:55 +10:00
2024-05-27 12:23:02 +03:00
2016-12-02 11:32:36 +11:00
2025-05-30 12:27:28 +03:00
2024-05-22 10:16:56 +03:00
2016-12-02 11:32:36 +11:00
2021-10-12 11:51:34 +03:00
2021-10-12 11:51:34 +03:00
2025-05-30 12:27:28 +03:00
2021-10-12 11:51:34 +03:00
2016-10-28 14:44:12 +11:00
2021-11-02 22:30:53 +02:00
2016-10-28 14:44:12 +11:00
2024-05-27 12:23:02 +03:00
2024-11-12 10:01:11 +02:00
2021-01-25 14:13:13 +02:00
2016-10-28 14:44:12 +11:00
2024-05-20 14:54:35 +03:00
2024-05-27 12:23:02 +03:00
2024-06-10 10:08:54 +03:00
2016-12-02 11:22:23 +11:00
2016-10-28 14:46:19 +11:00
2015-10-20 09:13:35 +11:00
2024-05-15 10:52:31 +03:00
2016-10-28 14:46:19 +11:00
2021-10-25 09:19:30 +03:00
2022-06-26 22:55:45 +00:00
2016-10-28 14:44:12 +11:00
2016-10-28 14:44:12 +11:00
2016-10-28 14:44:12 +11:00
2016-10-28 14:44:12 +11:00
2016-10-28 14:44:12 +11:00
2024-05-15 10:52:31 +03:00
2024-05-30 16:40:18 +03:00
2024-05-18 21:49:54 +03:00
2021-10-12 11:50:32 +03:00
2016-07-08 11:01:56 +10:00
2024-05-27 12:23:02 +03:00
2017-08-21 11:10:11 +10:00
2024-05-21 15:52:15 +03:00
2019-01-21 09:56:37 +08:00
2024-05-27 12:23:02 +03:00
2016-12-02 11:32:36 +11:00
2025-05-30 21:08:55 +03:00
2021-01-25 14:13:13 +02:00
2021-01-25 14:13:13 +02:00
2024-05-27 12:23:02 +03:00
2021-01-25 14:13:13 +02:00
2021-01-25 14:13:13 +02:00
2021-10-12 11:50:32 +03:00
2021-01-25 14:13:13 +02:00
2024-05-20 14:54:35 +03:00
2016-12-02 11:32:36 +11:00
2024-05-20 17:09:30 +03:00
2024-05-02 14:30:18 +03:00
2016-12-02 11:32:28 +11:00
2024-05-27 12:23:02 +03:00
2017-04-26 15:19:36 +10:00
2021-10-12 11:51:34 +03:00
2025-05-30 21:08:55 +03:00
2024-05-02 14:30:18 +03:00
2016-08-10 15:10:46 +10:00
2024-05-27 12:23:02 +03:00
2021-01-25 14:13:13 +02:00
2016-12-02 11:32:36 +11:00
2023-09-05 13:58:24 +03:00
2024-05-27 12:23:02 +03:00
2015-10-20 09:13:35 +11:00
2024-05-16 15:58:02 +03:00
2016-08-10 15:01:08 +10:00
2021-11-02 22:30:53 +02:00
2021-10-12 11:51:33 +03:00
2024-05-10 10:07:47 +03:00
2024-05-27 12:23:02 +03:00
2015-10-20 09:13:35 +11:00
2024-05-27 12:23:02 +03:00
2024-05-27 12:23:02 +03:00
2016-03-01 11:10:20 +11:00
2024-05-02 10:13:55 +03:00
2016-03-01 11:10:20 +11:00
2024-04-29 13:13:07 +03:00
2016-03-01 11:10:20 +11:00
2024-04-25 13:00:54 +00:00
2024-06-20 14:57:19 +03:00
2024-06-20 14:57:19 +03:00
2021-01-25 14:13:13 +02:00
2024-05-15 17:04:11 +03:00
2024-04-25 13:00:54 +00:00
2024-05-18 21:49:54 +03:00
2021-01-25 14:13:13 +02:00
2024-05-27 12:23:02 +03:00
2021-01-25 14:13:13 +02:00
2025-06-11 18:55:10 +03:00
2025-06-11 18:55:10 +03:00
2021-10-12 11:51:35 +03:00
2021-10-12 11:51:34 +03:00
2024-05-16 23:01:17 +03:00
2017-08-21 11:14:55 +10:00
2024-05-20 14:54:35 +03:00
2016-12-02 11:32:36 +11:00
2016-07-08 11:01:34 +10:00
2024-05-27 12:23:02 +03:00
2016-12-02 11:32:28 +11:00
2024-05-27 12:23:02 +03:00
2017-04-26 15:19:36 +10:00
2024-06-20 14:57:19 +03:00
2024-05-22 16:13:53 +00:00
2024-05-22 16:13:53 +00:00
2024-05-22 16:13:53 +00:00
2024-05-22 16:13:53 +00:00
2021-11-02 22:30:53 +02:00
2024-07-29 11:49:25 +03:00
2024-06-20 14:57:19 +03:00
2021-11-25 18:48:24 +02:00
2021-10-12 11:51:34 +03:00
2021-10-12 11:51:34 +03:00