aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2019-02-07 09:32:46 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2019-02-07 09:32:46 +0000
commit51e6029f6994e9185f6ba931402bd7f64f891237 (patch)
treefdec4eb57bc6b923fd8df666c0ec5d37d553a8ec /gcc
parent3ed8fcfa3a82b0986b4c2090a3ea4b5fdfddeb3b (diff)
downloadgcc-51e6029f6994e9185f6ba931402bd7f64f891237.zip
gcc-51e6029f6994e9185f6ba931402bd7f64f891237.tar.gz
gcc-51e6029f6994e9185f6ba931402bd7f64f891237.tar.bz2
[arm] Use neon_dot_q type for 128-bit V[US]DOT instructions where appropriate
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/neon.md4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6d2067a..eabd7c9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
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>):
Use neon_dot<q> for type.
(aarch64_<sur>dot_lane<vsi2qi>): Likewise.
diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md
index f9d7ba3..4a2c7b9 100644
--- a/gcc/config/arm/neon.md
+++ b/gcc/config/arm/neon.md
@@ -3542,7 +3542,7 @@
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 @@
= 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.