Hi all, This patch series implements the arm MVE ACLE types currently found under config/arm/arm_mve_types.h internally via a new pragma. Exposing the MVE ACLE types internally allows for an MVE intrinsics implementation similar to the current SVE implementation.
Any prefix of the patch series should build and pass regression tests. Thanks, Murray --- Murray Steele (2): arm: Move arm_simd_info array declaration into header arm: Define MVE types internally via pragma gcc/config.gcc | 2 +- gcc/config/arm/arm-builtins.c | 87 +------- gcc/config/arm/arm-builtins.h | 87 ++++++++ gcc/config/arm/arm-c.c | 21 ++ gcc/config/arm/arm-mve-builtins.cc | 192 ++++++++++++++++++ gcc/config/arm/arm-mve-builtins.def | 41 ++++ gcc/config/arm/arm-mve-builtins.h | 34 ++++ gcc/config/arm/arm-protos.h | 5 + gcc/config/arm/arm_mve_types.h | 30 +-- gcc/config/arm/t-arm | 10 + .../arm/mve/general-c/type_redef_1.c | 7 + .../arm/mve/general-c/type_redef_10.c | 7 + .../arm/mve/general-c/type_redef_11.c | 7 + .../arm/mve/general-c/type_redef_12.c | 7 + .../arm/mve/general-c/type_redef_13.c | 7 + .../arm/mve/general-c/type_redef_14.c | 7 + .../arm/mve/general-c/type_redef_15.c | 7 + .../arm/mve/general-c/type_redef_16.c | 7 + .../arm/mve/general-c/type_redef_17.c | 7 + .../arm/mve/general-c/type_redef_18.c | 7 + .../arm/mve/general-c/type_redef_19.c | 7 + .../arm/mve/general-c/type_redef_2.c | 7 + .../arm/mve/general-c/type_redef_20.c | 7 + .../arm/mve/general-c/type_redef_21.c | 7 + .../arm/mve/general-c/type_redef_22.c | 7 + .../arm/mve/general-c/type_redef_23.c | 7 + .../arm/mve/general-c/type_redef_24.c | 7 + .../arm/mve/general-c/type_redef_25.c | 7 + .../arm/mve/general-c/type_redef_26.c | 7 + .../arm/mve/general-c/type_redef_27.c | 7 + .../arm/mve/general-c/type_redef_28.c | 7 + .../arm/mve/general-c/type_redef_29.c | 7 + .../arm/mve/general-c/type_redef_3.c | 7 + .../arm/mve/general-c/type_redef_30.c | 7 + .../arm/mve/general-c/type_redef_31.c | 7 + .../arm/mve/general-c/type_redef_4.c | 7 + .../arm/mve/general-c/type_redef_5.c | 7 + .../arm/mve/general-c/type_redef_6.c | 7 + .../arm/mve/general-c/type_redef_7.c | 7 + .../arm/mve/general-c/type_redef_8.c | 7 + .../arm/mve/general-c/type_redef_9.c | 7 + .../arm/mve/general/double_pragmas_1.c | 8 + .../gcc.target/arm/mve/general/nomve_1.c | 3 + gcc/testsuite/gcc.target/arm/mve/mve.exp | 6 + 44 files changed, 627 insertions(+), 116 deletions(-) create mode 100644 gcc/config/arm/arm-mve-builtins.cc create mode 100644 gcc/config/arm/arm-mve-builtins.def create mode 100644 gcc/config/arm/arm-mve-builtins.h create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_1.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_10.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_11.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_12.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_13.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_14.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_15.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_16.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_17.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_18.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_19.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_2.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_20.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_21.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_22.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_23.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_24.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_25.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_26.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_27.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_28.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_29.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_3.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_30.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_31.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_4.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_5.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_6.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_7.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_8.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_9.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general/double_pragmas_1.c create mode 100644 gcc/testsuite/gcc.target/arm/mve/general/nomve_1.c