On 1/27/20 3:54 PM, Stam Markianos-Wright wrote:

On 1/16/20 4:05 PM, Stam Markianos-Wright wrote:


On 1/10/20 6:48 PM, Stam Markianos-Wright wrote:


On 12/18/19 1:25 PM, Stam Markianos-Wright wrote:


On 12/13/19 10:22 AM, Stam Markianos-Wright wrote:
Hi all,

This patch adds the ARMv8.6 Extension ACLE intrinsics for dot product
operations (vector/by element) to the ARM back-end.

These are:
usdot (vector), <us/su>dot (by element).

The functions are optional from ARMv8.2-a as -march=armv8.2-a+i8mm and
for ARM they remain optional as of ARMv8.6-a.

The functions are declared in arm_neon.h, RTL patterns are defined to
generate assembler and tests are added to verify and perform adequate checks.

Regression testing on arm-none-eabi passed successfully.

This patch depends on:

https://gcc.gnu.org/ml/gcc-patches/2019-11/msg02195.html

for ARM CLI updates, and on:

https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00857.html

for testsuite effective_target update.

Ok for trunk?


New diff addressing review comments from Aarch64 version of the patch.

_Change of order of operands in RTL patterns.
_Change tests to use check-function-bodies, compile with optimisation and check for exact registers.
_Rename tests to remove "-compile-" in filename.


.Ping!
.

Cheers,
Stam



ACLE documents are at https://developer.arm.com/docs/101028/latest
ISA documents are at https://developer.arm.com/docs/ddi0596/latest

PS. I don't have commit rights, so if someone could commit on my behalf,
that would be great :)


gcc/ChangeLog:

2019-11-28  Stam Markianos-Wright  <stam.markianos-wri...@arm.com>

     * config/arm/arm-builtins.c (enum arm_type_qualifiers):
     (USTERNOP_QUALIFIERS): New define.
     (USMAC_LANE_QUADTUP_QUALIFIERS): New define.
     (SUMAC_LANE_QUADTUP_QUALIFIERS): New define.
     (arm_expand_builtin_args):
         Add case ARG_BUILTIN_LANE_QUADTUP_INDEX.
     (arm_expand_builtin_1): Add qualifier_lane_quadtup_index.
     * config/arm/arm_neon.h (vusdot_s32): New.
     (vusdot_lane_s32): New.
     (vusdotq_lane_s32): New.
     (vsudot_lane_s32): New.
     (vsudotq_lane_s32): New.
     * config/arm/arm_neon_builtins.def
         (usdot,usdot_lane,sudot_lane): New.
     * config/arm/iterators.md (DOTPROD_I8MM): New.
         (sup, opsuffix): Add <us/su>.
        * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New.
     * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New.


gcc/testsuite/ChangeLog:

2019-12-12  Stam Markianos-Wright  <stam.markianos-wri...@arm.com>

     * gcc.target/arm/simd/vdot-compile-2-1.c: New test.
     * gcc.target/arm/simd/vdot-compile-2-2.c: New test.
     * gcc.target/arm/simd/vdot-compile-2-3.c: New test.
     * gcc.target/arm/simd/vdot-compile-2-4.c: New test.



Reply via email to