]> git.ipfire.org Git - thirdparty/gcc.git/commit
arm: Fix arm backend-use of (u|s|us)dot_prod patterns
authorVictor Do Nascimento <victor.donascimento@arm.com>
Wed, 5 Jun 2024 10:11:06 +0000 (11:11 +0100)
committerVictor Do Nascimento <victor.donascimento@arm.com>
Mon, 30 Sep 2024 14:59:43 +0000 (15:59 +0100)
commitbfa44e604d63ebb90dd2ef645820c4db44cdfd7c
tree5a40adf9eb01528d8cca0ca646819db8c255149a
parent0d0be1d10db2a1877804feb3b9f58f8461835815
arm: Fix arm backend-use of (u|s|us)dot_prod patterns

Given recent changes to the dot_prod standard pattern name, this patch
fixes the arm back-end by implementing the following changes:

1. Add 2nd mode to all patterns relating to the dot-product in .md
files.
2. redirect the single-mode CODE_FOR_neon_(u|s|us)dot<mode> values
generated from `arm_neon_builtins.def' to their new 2-mode
equivalents via means of simple aliases, as per the following example:

  constexpr insn_code CODE_FOR_neon_sdotv8qi
    = CODE_FOR_neon_sdotv2siv8qi;

gcc/ChangeLog:

* config/arm/neon.md (<sup>dot_prod<vsi2qi>): Renamed to...
(<sup>dot_prod<mode><vsi2qi>): ...this.
(neon_<sup>dot<vsi2qi>): Renamed to...
(neon_<sup>dot<mode><vsi2qi>): ...this.
(neon_usdot<vsi2qi>): Renamed to...
(neon_usdot<mode><vsi2qi>): ...this.
(usdot_prod<vsi2qi>): Renamed to...
(usdot_prod<mode><vsi2qi>): ...this.
* config/arm/arm-builtins.cc
(CODE_FOR_neon_sdotv8qi): Definie as alias to
new CODE_FOR_neon_sdotv2siv8qi.
(CODE_FOR_neon_udotv8qi): Definie as alias to
new CODE_FOR_neon_udotv2siv8qi.
(CODE_FOR_neon_usdotv8qi): Definie as alias to
new CODE_FOR_neon_usdotv2siv8qi.
(CODE_FOR_neon_sdotv16qi): Definie as alias to
new CODE_FOR_neon_sdotv4siv16qi.
(CODE_FOR_neon_udotv16qi): Definie as alias to
new CODE_FOR_neon_udotv4siv16qi.
(CODE_FOR_neon_usdotv16qi): Definie as alias to
new CODE_FOR_neon_usdotv4siv16qi.
gcc/config/arm/arm-builtins.cc
gcc/config/arm/neon.md