Hi gcc-patches mailing list, Karl Meakin via Sourceware Forge <[email protected]> has requested that the following forgejo pull request be published on the mailing list.
Created on: 2026-05-13 15:39:36+00:00 Latest update: 2026-05-14 12:43:55+00:00 Changes: 121 changed files, 20499 additions, 16808 deletions Head revision: karmea01/gcc-TEST ref dsg/karmea01/neon-port commit 2ba74dce304d89c5fb8166b72fde1f2cde688121 Base revision: gcc/gcc-TEST ref trunk commit ecfbd7d1b92886024ac6e94000425b3cd0bd0194 r17-500-gecfbd7d1b92886 Merge base: ecfbd7d1b92886024ac6e94000425b3cd0bd0194 Full diff url: https://forge.sourceware.org/gcc/gcc-TEST/pulls/158.diff Discussion: https://forge.sourceware.org/gcc/gcc-TEST/pulls/158 Requested Reviewers: rdfm This patch is a proof of concept patch which ports a few NEON intrinsics (intrinsics defined in `arm_neon.h`) to the "pragma-based" framework used by SVE/SME intrinsics. If successful, I will follow up with further patches porting the rest. tested with `make check` changelog: * v1: Initial revision * v2: Appease `check_GNU_style.py` Changed files: - A: gcc/config/aarch64/aarch64-acle-builtins.h - A: gcc/config/aarch64/aarch64-neon-builtins-base.cc - A: gcc/config/aarch64/aarch64-neon-builtins-base.def - A: gcc/config/aarch64/aarch64-neon-builtins-base.h - A: gcc/config/aarch64/aarch64-neon-builtins-functions.h - A: gcc/config/aarch64/aarch64-neon-builtins-shapes.cc - A: gcc/config/aarch64/aarch64-neon-builtins-shapes.h - A: gcc/config/aarch64/aarch64-neon-builtins.cc - A: gcc/config/aarch64/aarch64-neon-builtins.def - A: gcc/config/aarch64/aarch64-neon-builtins.h - A: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_indices.c - A: gcc/testsuite/gcc.target/aarch64/neon/aarch64-neon.exp - A: gcc/testsuite/gcc.target/aarch64/neon/arm_neon_test.h - A: gcc/testsuite/gcc.target/aarch64/neon/vadd.c - A: gcc/testsuite/gcc.target/aarch64/neon/vand.c - A: gcc/testsuite/gcc.target/aarch64/neon/vbcax.c - A: gcc/testsuite/gcc.target/aarch64/neon/vbic.c - A: gcc/testsuite/gcc.target/aarch64/neon/vbsl.c - A: gcc/testsuite/gcc.target/aarch64/neon/vcls.c - A: gcc/testsuite/gcc.target/aarch64/neon/vclz.c - A: gcc/testsuite/gcc.target/aarch64/neon/vcnt.c - A: gcc/testsuite/gcc.target/aarch64/neon/vcombine.c - A: gcc/testsuite/gcc.target/aarch64/neon/vcopy_lane.c - A: gcc/testsuite/gcc.target/aarch64/neon/vcreate.c - A: gcc/testsuite/gcc.target/aarch64/neon/vdup.c - A: gcc/testsuite/gcc.target/aarch64/neon/vdup_lane.c - A: gcc/testsuite/gcc.target/aarch64/neon/veor.c - A: gcc/testsuite/gcc.target/aarch64/neon/veor3.c - A: gcc/testsuite/gcc.target/aarch64/neon/vext.c - A: gcc/testsuite/gcc.target/aarch64/neon/vget_high.c - A: gcc/testsuite/gcc.target/aarch64/neon/vget_lane.c - A: gcc/testsuite/gcc.target/aarch64/neon/vget_low.c - A: gcc/testsuite/gcc.target/aarch64/neon/vmov_n.c - A: gcc/testsuite/gcc.target/aarch64/neon/vmvn.c - A: gcc/testsuite/gcc.target/aarch64/neon/vorn.c - A: gcc/testsuite/gcc.target/aarch64/neon/vorr.c - A: gcc/testsuite/gcc.target/aarch64/neon/vrax1.c - A: gcc/testsuite/gcc.target/aarch64/neon/vrbit.c - A: gcc/testsuite/gcc.target/aarch64/neon/vreinterpret.c - A: gcc/testsuite/gcc.target/aarch64/neon/vrev.c - A: gcc/testsuite/gcc.target/aarch64/neon/vset_lane.c - A: gcc/testsuite/gcc.target/aarch64/neon/vtrn.c - A: gcc/testsuite/gcc.target/aarch64/neon/vuzp.c - A: gcc/testsuite/gcc.target/aarch64/neon/vxar.c - A: gcc/testsuite/gcc.target/aarch64/neon/vzip.c - A: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_indices.c - D: gcc/config/aarch64/aarch64-sve-builtins.h - D: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_bf16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_bf16_indices_2.c - D: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_laneq_bf16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_laneq_bf16_indices_2.c - D: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_lane_bf16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_lane_bf16_indices_2.c - D: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_laneq_bf16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_laneq_bf16_indices_2.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f32_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f64_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p8_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s32_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s64_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s8_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u32_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u64_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u8_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c - D: gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c - M: .editorconfig - M: gcc/config.gcc - M: gcc/config/aarch64/aarch64-builtins.cc - M: gcc/config/aarch64/aarch64-builtins.h - M: gcc/config/aarch64/aarch64-c.cc - M: gcc/config/aarch64/aarch64-protos.h - M: gcc/config/aarch64/aarch64-simd-builtins.def - M: gcc/config/aarch64/aarch64-simd-pragma-builtins.def - M: gcc/config/aarch64/aarch64-simd.md - M: gcc/config/aarch64/aarch64-sve-builtins-base.cc - M: gcc/config/aarch64/aarch64-sve-builtins-base.h - M: gcc/config/aarch64/aarch64-sve-builtins-functions.h - M: gcc/config/aarch64/aarch64-sve-builtins-shapes.cc - M: gcc/config/aarch64/aarch64-sve-builtins-shapes.h - M: gcc/config/aarch64/aarch64-sve-builtins-sme.cc - M: gcc/config/aarch64/aarch64-sve-builtins-sme.h - M: gcc/config/aarch64/aarch64-sve-builtins-sve2.cc - M: gcc/config/aarch64/aarch64-sve-builtins-sve2.h - M: gcc/config/aarch64/aarch64-sve-builtins.cc - M: gcc/config/aarch64/aarch64-sve-builtins.def - M: gcc/config/aarch64/aarch64.cc - M: gcc/config/aarch64/aarch64.md - M: gcc/config/aarch64/arm_neon.h - M: gcc/config/aarch64/iterators.md - M: gcc/config/aarch64/t-aarch64 - M: gcc/testsuite/g++.target/aarch64/lane-bound-1.C - M: gcc/testsuite/g++.target/aarch64/pr103147-6.C - M: gcc/testsuite/g++.target/aarch64/pr117048.C - M: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c - M: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_vect_copy_lane_1.c - M: gcc/testsuite/gcc.target/aarch64/lane-bound-3.c - M: gcc/testsuite/gcc.target/aarch64/pr103147-6.c - M: gcc/testsuite/gcc.target/aarch64/pr113573.c - M: gcc/testsuite/gcc.target/aarch64/sha3_1.c - M: gcc/testsuite/gcc.target/aarch64/sha3_2.c - M: gcc/testsuite/gcc.target/aarch64/sha3_3.c - M: gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_6.c - M: gcc/testsuite/gcc.target/aarch64/simd/mf8_data_2.c - M: gcc/testsuite/gcc.target/aarch64/simd/vset_lane_s16_const_1.c - M: gcc/testsuite/gcc.target/aarch64/sme/inlining_10.c - M: gcc/testsuite/gcc.target/aarch64/sme/inlining_11.c - M: gcc/testsuite/gcc.target/aarch64/target_attr_10.c - M: gcc/testsuite/gcc.target/aarch64/vmov_n_1.c Karl Meakin (7): Configure EditorConfig for Git commit messages aarch64: Rename `aarch64-sve-builtins.h` to `aarch64-acle-builtins.h` aarch64: Port NEON add intrinsics to pragma-based framework aarch64: Port NEON vector manipulation intrinsics to pragma-based framework aarch64: Port NEON bit manipulation intrinsics to pragma-based framework aarch64: Port NEON permutation intrinsics to pragma-based framework aarch64: Port NEON reinterpret intrinsics to pragma-based framework .editorconfig | 7 + gcc/config.gcc | 49 +- ...sve-builtins.h => aarch64-acle-builtins.h} | 1000 +- gcc/config/aarch64/aarch64-builtins.cc | 548 +- gcc/config/aarch64/aarch64-builtins.h | 1 + gcc/config/aarch64/aarch64-c.cc | 17 +- .../aarch64/aarch64-neon-builtins-base.cc | 772 + .../aarch64/aarch64-neon-builtins-base.def | 147 + .../aarch64/aarch64-neon-builtins-base.h | 29 + .../aarch64/aarch64-neon-builtins-functions.h | 29 + .../aarch64/aarch64-neon-builtins-shapes.cc | 132 + .../aarch64/aarch64-neon-builtins-shapes.h | 29 + gcc/config/aarch64/aarch64-neon-builtins.cc | 86 + gcc/config/aarch64/aarch64-neon-builtins.def | 40 + gcc/config/aarch64/aarch64-neon-builtins.h | 28 + gcc/config/aarch64/aarch64-protos.h | 4 +- gcc/config/aarch64/aarch64-simd-builtins.def | 36 - .../aarch64/aarch64-simd-pragma-builtins.def | 105 - gcc/config/aarch64/aarch64-simd.md | 13 +- .../aarch64/aarch64-sve-builtins-base.cc | 16 +- .../aarch64/aarch64-sve-builtins-base.h | 2 +- .../aarch64/aarch64-sve-builtins-functions.h | 2 +- .../aarch64/aarch64-sve-builtins-shapes.cc | 47 +- .../aarch64/aarch64-sve-builtins-shapes.h | 2 +- .../aarch64/aarch64-sve-builtins-sme.cc | 8 +- gcc/config/aarch64/aarch64-sve-builtins-sme.h | 2 +- .../aarch64/aarch64-sve-builtins-sve2.cc | 8 +- .../aarch64/aarch64-sve-builtins-sve2.h | 2 +- gcc/config/aarch64/aarch64-sve-builtins.cc | 917 +- gcc/config/aarch64/aarch64-sve-builtins.def | 11 + gcc/config/aarch64/aarch64.cc | 40 +- gcc/config/aarch64/aarch64.md | 6 - gcc/config/aarch64/arm_neon.h | 22960 ++++++---------- gcc/config/aarch64/iterators.md | 2 +- gcc/config/aarch64/t-aarch64 | 56 +- .../g++.target/aarch64/lane-bound-1.C | 2 +- gcc/testsuite/g++.target/aarch64/pr103147-6.C | 1 + gcc/testsuite/g++.target/aarch64/pr117048.C | 2 +- .../aarch64/advsimd-intrinsics/bf16_dup.c | 6 +- .../bf16_vect_copy_lane_1.c | 3 +- .../vcopy_lane_bf16_indices_1.c | 18 - .../vcopy_lane_bf16_indices_2.c | 18 - .../advsimd-intrinsics/vcopy_lane_indices.c | 68 + .../vcopy_laneq_bf16_indices_1.c | 17 - .../vcopy_laneq_bf16_indices_2.c | 17 - .../vcopyq_lane_bf16_indices_1.c | 17 - .../vcopyq_lane_bf16_indices_2.c | 17 - .../vcopyq_laneq_bf16_indices_1.c | 17 - .../vcopyq_laneq_bf16_indices_2.c | 17 - .../gcc.target/aarch64/lane-bound-3.c | 4 +- .../gcc.target/aarch64/neon/aarch64-neon.exp | 39 + .../gcc.target/aarch64/neon/arm_neon_test.h | 24 + gcc/testsuite/gcc.target/aarch64/neon/vadd.c | 203 + gcc/testsuite/gcc.target/aarch64/neon/vand.c | 116 + gcc/testsuite/gcc.target/aarch64/neon/vbcax.c | 60 + gcc/testsuite/gcc.target/aarch64/neon/vbic.c | 116 + gcc/testsuite/gcc.target/aarch64/neon/vbsl.c | 214 + gcc/testsuite/gcc.target/aarch64/neon/vcls.c | 88 + gcc/testsuite/gcc.target/aarch64/neon/vclz.c | 88 + gcc/testsuite/gcc.target/aarch64/neon/vcnt.c | 25 + .../gcc.target/aarch64/neon/vcombine.c | 120 + .../gcc.target/aarch64/neon/vcopy_lane.c | 428 + .../gcc.target/aarch64/neon/vcreate.c | 119 + gcc/testsuite/gcc.target/aarch64/neon/vdup.c | 226 + .../gcc.target/aarch64/neon/vdup_lane.c | 647 + gcc/testsuite/gcc.target/aarch64/neon/veor.c | 116 + gcc/testsuite/gcc.target/aarch64/neon/veor3.c | 60 + gcc/testsuite/gcc.target/aarch64/neon/vext.c | 216 + .../gcc.target/aarch64/neon/vget_high.c | 116 + .../gcc.target/aarch64/neon/vget_lane.c | 232 + .../gcc.target/aarch64/neon/vget_low.c | 100 + .../gcc.target/aarch64/neon/vmov_n.c | 212 + gcc/testsuite/gcc.target/aarch64/neon/vmvn.c | 102 + gcc/testsuite/gcc.target/aarch64/neon/vorn.c | 116 + gcc/testsuite/gcc.target/aarch64/neon/vorr.c | 116 + gcc/testsuite/gcc.target/aarch64/neon/vrax1.c | 11 + gcc/testsuite/gcc.target/aarch64/neon/vrbit.c | 46 + .../gcc.target/aarch64/neon/vreinterpret.c | 3143 +++ gcc/testsuite/gcc.target/aarch64/neon/vrev.c | 311 + .../gcc.target/aarch64/neon/vset_lane.c | 234 + gcc/testsuite/gcc.target/aarch64/neon/vtrn.c | 566 + gcc/testsuite/gcc.target/aarch64/neon/vuzp.c | 566 + gcc/testsuite/gcc.target/aarch64/neon/vxar.c | 25 + gcc/testsuite/gcc.target/aarch64/neon/vzip.c | 559 + gcc/testsuite/gcc.target/aarch64/pr103147-6.c | 1 + gcc/testsuite/gcc.target/aarch64/pr113573.c | 62 +- gcc/testsuite/gcc.target/aarch64/sha3_1.c | 2 +- gcc/testsuite/gcc.target/aarch64/sha3_2.c | 2 +- gcc/testsuite/gcc.target/aarch64/sha3_3.c | 2 +- .../aarch64/simd/fold_to_highpart_6.c | 24 +- .../gcc.target/aarch64/simd/mf8_data_2.c | 1 - .../aarch64/simd/vget_lane_f32_indices_1.c | 17 - .../aarch64/simd/vget_lane_f64_indices_1.c | 17 - .../aarch64/simd/vget_lane_indices.c | 46 + .../aarch64/simd/vget_lane_p16_indices_1.c | 17 - .../aarch64/simd/vget_lane_p8_indices_1.c | 17 - .../aarch64/simd/vget_lane_s16_indices_1.c | 17 - .../aarch64/simd/vget_lane_s32_indices_1.c | 17 - .../aarch64/simd/vget_lane_s64_indices_1.c | 17 - .../aarch64/simd/vget_lane_s8_indices_1.c | 17 - .../aarch64/simd/vget_lane_u16_indices_1.c | 17 - .../aarch64/simd/vget_lane_u32_indices_1.c | 17 - .../aarch64/simd/vget_lane_u64_indices_1.c | 17 - .../aarch64/simd/vget_lane_u8_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_f32_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_f64_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_p16_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_p8_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_s16_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_s32_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_s64_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_s8_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_u16_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_u32_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_u64_indices_1.c | 17 - .../aarch64/simd/vgetq_lane_u8_indices_1.c | 17 - .../aarch64/simd/vset_lane_s16_const_1.c | 2 +- .../gcc.target/aarch64/sme/inlining_10.c | 7 - .../gcc.target/aarch64/sme/inlining_11.c | 7 - .../gcc.target/aarch64/target_attr_10.c | 4 +- gcc/testsuite/gcc.target/aarch64/vmov_n_1.c | 2 +- 121 files changed, 20499 insertions(+), 16808 deletions(-) rename gcc/config/aarch64/{aarch64-sve-builtins.h => aarch64-acle-builtins.h} (59%) create mode 100644 gcc/config/aarch64/aarch64-neon-builtins-base.cc create mode 100644 gcc/config/aarch64/aarch64-neon-builtins-base.def create mode 100644 gcc/config/aarch64/aarch64-neon-builtins-base.h create mode 100644 gcc/config/aarch64/aarch64-neon-builtins-functions.h create mode 100644 gcc/config/aarch64/aarch64-neon-builtins-shapes.cc create mode 100644 gcc/config/aarch64/aarch64-neon-builtins-shapes.h create mode 100644 gcc/config/aarch64/aarch64-neon-builtins.cc create mode 100644 gcc/config/aarch64/aarch64-neon-builtins.def create mode 100644 gcc/config/aarch64/aarch64-neon-builtins.h delete mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_bf16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_bf16_indices_2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_indices.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_laneq_bf16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_laneq_bf16_indices_2.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_lane_bf16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_lane_bf16_indices_2.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_laneq_bf16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_laneq_bf16_indices_2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/aarch64-neon.exp create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/arm_neon_test.h create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vadd.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vand.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vbcax.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vbic.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vbsl.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vcls.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vclz.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vcnt.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vcombine.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vcopy_lane.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vcreate.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vdup.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vdup_lane.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/veor.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/veor3.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vext.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vget_high.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vget_lane.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vget_low.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vmov_n.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vmvn.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vorn.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vorr.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vrax1.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vrbit.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vreinterpret.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vrev.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vset_lane.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vtrn.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vuzp.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vxar.c create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vzip.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f32_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f64_indices_1.c create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_indices.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p8_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s32_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s64_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s8_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u32_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u64_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u8_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c Range-diff against v1: -: ------------ > 1: d21069d5c995 Configure EditorConfig for Git commit messages 1: ce6ee60fba85 ! 2: 705915ba6df5 aarch64: Rename `aarch64-sve-builtins.h` to `aarch64-acle-builtins.h` @@ gcc/config/aarch64/aarch64-sve-builtins-sme.cc: FUNCTION (svzero_mask_za, svzero FUNCTION (svzero_zt, svzero_zt_impl, ) -} /* end namespace aarch64_sve */ -+} /* end namespace aarch64_acle */ ++} ## gcc/config/aarch64/aarch64-sve-builtins-sme.h ## @@ @@ gcc/config/aarch64/aarch64-sve-builtins-sve2.cc: FUNCTION (svzipq2, svzipq_impl, FUNCTION (svluti4_lane, svluti_lane_impl, (4)) -} /* end namespace aarch64_sve */ -+} /* end namespace aarch64_acle */ ++} ## gcc/config/aarch64/aarch64-sve-builtins-sve2.h ## @@ 2: bab47f9ce02b = 3: baab4a1afc5a aarch64: Port NEON add intrinsics to pragma-based framework 3: 3b01731ba59e = 4: 20ad24ee0eed aarch64: Port NEON vector manipulation intrinsics to pragma-based framework 4: 46e80833e292 ! 5: bfe249e58171 aarch64: Port NEON bit manipulation intrinsics to pragma-based framework @@ gcc/config/aarch64/aarch64-neon-builtins-base.cc: struct gimple_dup_lane : publi + tree_code m_code; + +public: -+ constexpr gimple_not_rhs (tree_code code) : m_code (code) {} ++ constexpr gimple_not_rhs (tree_code code) ++ : m_code (code) ++ {} + + gimple *fold (gimple_folder &f) const override + { 5: a641d1dd08ed ! 6: b80d5a8e65dc aarch64: Port NEON permutation intrinsics to pragma-based framework @@ gcc/config/aarch64/aarch64-builtins.cc: struct aarch64_simd_type_info_trees static machine_mode aarch64_simd_tuple_modes[ARM_NEON_H_TYPES_LAST][3]; -static GTY(()) tree aarch64_simd_tuple_types[ARM_NEON_H_TYPES_LAST][3]; -+GTY(()) tree aarch64_simd_tuple_types[ARM_NEON_H_TYPES_LAST][3]; ++GTY (()) tree aarch64_simd_tuple_types[ARM_NEON_H_TYPES_LAST][3]; static GTY(()) tree aarch64_simd_intOI_type_node = NULL_TREE; static GTY(()) tree aarch64_simd_intCI_type_node = NULL_TREE; 6: bbc2b70b1d76 = 7: 2ba74dce304d aarch64: Port NEON reinterpret intrinsics to pragma-based framework -- 2.54.0
