diff mbox series

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

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

Commit Message

Kyrill Tkachov Feb. 7, 2019, 9:28 a.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 neon.md.

Bootstrapped and tested on arm-none-linux-gnueabihf.

Committing to trunk.

Thanks,
Kyrill

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

     * config/arm/neon.md (neon_<sup>dot<vsi2qi>): Use neon_dot<q> for type.
     (neon_<sup>dot_lane<vsi2qi>): Likewise.
diff mbox series

Patch

diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md
index f9d7ba35b137fed383f84eecbe81dd942943d216..4a2c7b99881e96fbff30a53d370ff0df1416c124 100644
--- a/gcc/config/arm/neon.md
+++ b/gcc/config/arm/neon.md
@@ -3542,7 +3542,7 @@  (define_insn "neon_<sup>dot<vsi2qi>"
 		DOTPROD)))]
   "TARGET_DOTPROD"
   "v<sup>dot.<opsuffix>\\t%<V_reg>0, %<V_reg>2, %<V_reg>3"
-  [(set_attr "type" "neon_dot")]
+  [(set_attr "type" "neon_dot<q>")]
 )
 
 ;; These instructions map to the __builtins for the Dot Product
@@ -3561,7 +3561,7 @@  (define_insn "neon_<sup>dot_lane<vsi2qi>"
       = GEN_INT (NEON_ENDIAN_LANE_N (V8QImode, INTVAL (operands[4])));
     return "v<sup>dot.<opsuffix>\\t%<V_reg>0, %<V_reg>2, %P3[%c4]";
   }
-  [(set_attr "type" "neon_dot")]
+  [(set_attr "type" "neon_dot<q>")]
 )
 
 ;; These expands map to the Dot Product optab the vectorizer checks for.