aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2021-07-14 15:22:37 +0100
committerTamar Christina <tamar.christina@arm.com>2021-07-14 15:22:37 +0100
commitc9165e2d58bb037793c1c93e1b5633a61f88db30 (patch)
tree4af95bee158b03c666038786ff4a1606ce33106b
parent1e0ab1c4ba6159ad7ce71c6cddd5e04d2a636742 (diff)
downloadgcc-c9165e2d58bb037793c1c93e1b5633a61f88db30.zip
gcc-c9165e2d58bb037793c1c93e1b5633a61f88db30.tar.gz
gcc-c9165e2d58bb037793c1c93e1b5633a61f88db30.tar.bz2
AArch32: Correct sdot RTL on aarch32
The RTL Generated from <sup>dot_prod<vsi2qi> is invalid as operand3 cannot be written to, it's a normal input. For the expand it's just another operand but the caller does not expect it to be written to. gcc/ChangeLog: * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
-rw-r--r--gcc/config/arm/neon.md8
1 files changed, 1 insertions, 7 deletions
diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md
index 8b0a396..7645121 100644
--- a/gcc/config/arm/neon.md
+++ b/gcc/config/arm/neon.md
@@ -2961,13 +2961,7 @@
DOTPROD)
(match_operand:VCVTI 3 "register_operand")))]
"TARGET_DOTPROD"
-{
- emit_insn (
- gen_neon_<sup>dot<vsi2qi> (operands[3], operands[3], operands[1],
- operands[2]));
- emit_insn (gen_rtx_SET (operands[0], operands[3]));
- DONE;
-})
+)
;; Auto-vectorizer pattern for usdot
(define_expand "usdot_prod<vsi2qi>"