This series fixes the support for 64-bit scalar shifts with MVE, by fixing the patterns and the intrinsics definitions.
It was already approved by Richard on the forge as part of https://forge.sourceware.org/gcc/gcc-TEST/pulls/121 I extracted these 4 patches from the longer series to make backports easier. OK for trunk and gcc-15 (cherry-picks apply cleanly)? Christophe Lyon (4): arm: fix MVE asrl lsll lsrl patterns [PR122216] arm: add support for out of range shift amount in MVE asrl and lsll [PR122216] arm: [MVE intrinsics] add scalar_s64_shift scalar_u64_shift shapes [PR122216] arm: [MVE intrinsics] rework asrl lsll [PR122216] gcc/config/arm/arm-mve-builtins-base.cc | 44 ++++ gcc/config/arm/arm-mve-builtins-base.def | 2 + gcc/config/arm/arm-mve-builtins-base.h | 2 + gcc/config/arm/arm-mve-builtins-shapes.cc | 30 +++ gcc/config/arm/arm-mve-builtins-shapes.h | 2 + gcc/config/arm/arm.md | 17 +- gcc/config/arm/arm_mve.h | 16 -- gcc/config/arm/constraints.md | 5 +- gcc/config/arm/mve.md | 199 ++++++++++++++++++ gcc/config/arm/thumb2.md | 24 --- .../arm/mve/intrinsics/asrl-various-ranges.c | 161 ++++++++++++++ .../arm/mve/intrinsics/lsll-various-ranges.c | 160 ++++++++++++++ 12 files changed, 607 insertions(+), 55 deletions(-) create mode 100644 gcc/testsuite/gcc.target/arm/mve/intrinsics/asrl-various-ranges.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/intrinsics/lsll-various-ranges.c -- 2.34.1
