AArch64: Correct dot-product auto-vect optab RTL
authorTamar Christina <tamar.christina@arm.com>
Wed, 14 Jul 2021 14:23:23 +0000 (15:23 +0100)
committerTamar Christina <tamar.christina@arm.com>
Wed, 14 Jul 2021 14:41:31 +0000 (15:41 +0100)
commit6d1cdb27828d2ef1ae1ab0209836646a269b9610
tree75555790d0fa7ad5c88cd7f87ca5ed40fa39570a
parentc9165e2d58bb037793c1c93e1b5633a61f88db30
AArch64: Correct dot-product auto-vect optab RTL

The current RTL for the vectorizer patterns for dot-product are incorrect.
Operand3 isn't an output parameter so we can't write to it.

This fixes this issue and reduces the number of RTL.

gcc/ChangeLog:

* config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
(sdot_prod, udot_prod): ...These.
* config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
(aarch64_<sur>dot<vsi2qi>): Rename to...
(<sur>dot_prod<vsi2qi>): ...This.
* config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
Update builtins.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h