]> git.ipfire.org Git - thirdparty/gcc.git/commit
AArch32: correct usdot-product RTL patterns.
authorTamar Christina <tamar.christina@arm.com>
Mon, 7 Feb 2022 12:55:12 +0000 (12:55 +0000)
committerTamar Christina <tamar.christina@arm.com>
Mon, 7 Feb 2022 12:56:54 +0000 (12:56 +0000)
commitf2d131645114f14bd91a60107c941287370650ea
tree250804b5353a15c0789949a5f35734b51b09ed4b
parent12aae3b93aeae50f5ced1bbef57fe207ecd12930
AArch32: correct usdot-product RTL patterns.

There was a bug in the ACLE specication for dot product which has now
been fixed[1].  This means some intrinsics were missing and are added by this
patch.

Bootstrapped and regtested on arm-none-linux-gnueabihf and no issues.

Ok for master?

[1] https://github.com/ARM-software/acle/releases/tag/r2021Q3

gcc/ChangeLog:

* config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
* config/arm/arm_neon_builtins.def (usdot): Add V16QI.
(usdot_laneq, sudot_laneq): New.
* config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
(neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.

gcc/testsuite/ChangeLog:

* gcc.target/arm/simd/vdot-2-1.c: Add new tests.
* gcc.target/arm/simd/vdot-2-2.c: Likewise and fix output.
gcc/config/arm/arm_neon.h
gcc/config/arm/arm_neon_builtins.def
gcc/config/arm/neon.md
gcc/testsuite/gcc.target/arm/simd/vdot-2-1.c
gcc/testsuite/gcc.target/arm/simd/vdot-2-2.c