diff mbox series

[AArch64] Use neon_dot_q type for 128-bit [US]DOT instructions where appropriate

Message ID 5C59CD4A.2000307@foss.arm.com
State New
Headers show
Series [AArch64] Use neon_dot_q type for 128-bit [US]DOT instructions where appropriate | expand

Commit Message

Kyrill Tkachov Feb. 5, 2019, 5:52 p.m. UTC
Hi all,

For the Dot Product instructions we have the scheduling types neon_dot and neon_dot_q for the 128-bit versions.
It seems that we're only using the former though, not assigning the neon_dot_q type anywhere.

This patch fixes that by adding the <q> mode attribute suffix to the type, similar to how we do it for other
types in aarch64-simd.md.

Bootstrapped and tested on aarch64-none-linux-gnu.

Ok for trunk?

Thanks,
Kyrill

2019-05-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Use neon_dot<q> for type.
     (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
     (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.

Comments

James Greenhalgh Feb. 6, 2019, 5:29 p.m. UTC | #1
On Tue, Feb 05, 2019 at 11:52:10AM -0600, Kyrill Tkachov wrote:
> Hi all,
> 
> For the Dot Product instructions we have the scheduling types neon_dot and neon_dot_q for the 128-bit versions.
> It seems that we're only using the former though, not assigning the neon_dot_q type anywhere.
> 
> This patch fixes that by adding the <q> mode attribute suffix to the type, similar to how we do it for other
> types in aarch64-simd.md.
> 
> Bootstrapped and tested on aarch64-none-linux-gnu.
> 
> Ok for trunk?

OK.

James

> 2019-05-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
>      * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Use neon_dot<q> for type.
>      (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
>      (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
diff mbox series

Patch

diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
index 76e947e36f5b874cdd070e060d8988fec4875959..64a26ff923e3573a316a41742ea6b43f44475740 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -503,7 +503,7 @@  (define_insn "aarch64_<sur>dot<vsi2qi>"
 		DOTPROD)))]
   "TARGET_DOTPROD"
   "<sur>dot\\t%0.<Vtype>, %2.<Vdottype>, %3.<Vdottype>"
-  [(set_attr "type" "neon_dot")]
+  [(set_attr "type" "neon_dot<q>")]
 )
 
 ;; These expands map to the Dot Product optab the vectorizer checks for.
@@ -555,7 +555,7 @@  (define_insn "aarch64_<sur>dot_lane<vsi2qi>"
     operands[4] = aarch64_endian_lane_rtx (V8QImode, INTVAL (operands[4]));
     return "<sur>dot\\t%0.<Vtype>, %2.<Vdottype>, %3.4b[%4]";
   }
-  [(set_attr "type" "neon_dot")]
+  [(set_attr "type" "neon_dot<q>")]
 )
 
 (define_insn "aarch64_<sur>dot_laneq<vsi2qi>"
@@ -570,7 +570,7 @@  (define_insn "aarch64_<sur>dot_laneq<vsi2qi>"
     operands[4] = aarch64_endian_lane_rtx (V16QImode, INTVAL (operands[4]));
     return "<sur>dot\\t%0.<Vtype>, %2.<Vdottype>, %3.4b[%4]";
   }
-  [(set_attr "type" "neon_dot")]
+  [(set_attr "type" "neon_dot<q>")]
 )
 
 (define_expand "copysign<mode>3"