From: Saurabh Jha <saurabh....@arm.com> This patch series is a revised version of: https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667692.html
In the refactor patch, I redesigned how types are declared and how expand happens. I have taken some ideas from the reviews of the other patch series: https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667723.html In the lut patch, I added support for luti4 and put the second operand inside braces, as the ACLE spec states. Also added a system of checking lanes. In the lut patch, I am now treating index as just another argument, named s32_index. This is leading to simpler code in aarch64-builtins.cc. Regression tested on aarch64-unknown-linux-gnu and found no regressions. Ok for master? Thank you, Saurabh Saurabh Jha (1): aarch64: Add support for AdvSIMD lut Vladimir Miloserdov (1): aarch64: Refactor AdvSIMD intrinsics gcc/config/aarch64/aarch64-builtins.cc | 211 ++++- .../aarch64/aarch64-option-extensions.def | 2 + .../aarch64/aarch64-simd-pragma-builtins.def | 61 +- gcc/config/aarch64/aarch64-simd.md | 24 + gcc/config/aarch64/aarch64.h | 4 + gcc/config/aarch64/iterators.md | 49 +- gcc/doc/invoke.texi | 2 + .../aarch64/simd/lut-incorrect-range.c | 212 +++++ .../gcc.target/aarch64/simd/lut-no-flag.c | 10 + gcc/testsuite/gcc.target/aarch64/simd/lut.c | 849 ++++++++++++++++++ 10 files changed, 1383 insertions(+), 41 deletions(-) create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/lut-incorrect-range.c create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/lut-no-flag.c create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/lut.c -- 2.34.1