From: Tamar Christina Date: Wed, 14 Jul 2021 14:22:37 +0000 (+0100) Subject: AArch32: Correct sdot RTL on aarch32 X-Git-Tag: basepoints/gcc-13~6012 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9165e2d58bb037793c1c93e1b5633a61f88db30;p=thirdparty%2Fgcc.git AArch32: Correct sdot RTL on aarch32 The RTL Generated from dot_prod 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 (dot_prod): Drop statements. --- diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md index 8b0a396947cc..764512166e9d 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_dot (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"