[arm] Use neon_dot_q type for 128-bit V[US]DOT instructions where appropriate
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 7 Feb 2019 09:32:46 +0000 (09:32 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Thu, 7 Feb 2019 09:32:46 +0000 (09:32 +0000)
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.

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

From-SVN: r268611

gcc/ChangeLog
gcc/config/arm/neon.md

index 6d2067ad98d1d948448dd83ece1f77ed809f0127..eabd7c9edc4c6eb0614b0a281b82b02c5b378c94 100644 (file)
@@ -1,3 +1,9 @@
+2019-02-07  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.
+
 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
index f9d7ba35b137fed383f84eecbe81dd942943d216..4a2c7b99881e96fbff30a53d370ff0df1416c124 100644 (file)
                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
       = 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.