[GCC][PATCH][AArch64]Add ACLE intrinsics for dot product (usdot - vector, <us/su...
authorStam Markianos-Wright <stam.markianos-wright@arm.com>
Thu, 16 Jan 2020 14:20:48 +0000 (14:20 +0000)
committerStam Markianos-Wright <stam.markianos-wright@arm.com>
Thu, 16 Jan 2020 14:26:11 +0000 (14:26 +0000)
commit8c197c851e7528baba7cb837f34c05ba2242f705
tree96b1e6c14a4349f673fcf43f52ab6e3e7ecde6be
parent545f5fad17ff0decb2a145d2ea513580630858c3
[GCC][PATCH][AArch64]Add ACLE intrinsics for dot product (usdot - vector, <us/su>dot - by element) for AArch64 AdvSIMD ARMv8.6 Extension

gcc/ChangeLog:

2020-01-16  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

* config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers):
New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS,
TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP.
(aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX.
(aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index.
* config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane,
usdot_laneq, sudot_lane,sudot_laneq): New.
* config/aarch64/aarch64-simd.md (aarch64_usdot): New.
(aarch64_<sur>dot_lane): New.
* config/aarch64/arm_neon.h (vusdot_s32): New.
(vusdotq_s32): New.
(vusdot_lane_s32): New.
(vsudot_lane_s32): New.
* config/aarch64/iterators.md (DOTPROD_I8MM): New iterator.
(UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs.

gcc/testsuite/ChangeLog:

2020-01-16  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

* gcc.target/aarch64/advsimd-intrinsics/vdot-compile-3-1.c: New test.
* gcc.target/aarch64/advsimd-intrinsics/vdot-compile-3-2.c: New test.
* gcc.target/aarch64/advsimd-intrinsics/vdot-compile-3-3.c: New test.
* gcc.target/aarch64/advsimd-intrinsics/vdot-compile-3-4.c: New test.
gcc/ChangeLog
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/iterators.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c [new file with mode: 0755]
gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c [new file with mode: 0755]
gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-3.c [new file with mode: 0755]
gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-4.c [new file with mode: 0755]