diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index 7397f1ec5ca0cb9e3cdd5c46772f604e640666e4..51789f954affd9fa88e2bc1bcc3dacf64ccb5bde 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -635,18 +635,12 @@ (define_insn "aarch64_usdot" ;; and so the vectorizer provides r, in which the result has to be accumulated. (define_expand "dot_prod" [(set (match_operand:VS 0 "register_operand") - (plus:VS (unspec:VS [(match_operand: 1 "register_operand") + (plus:VS (match_operand:VS 3 "register_operand") + (unspec:VS [(match_operand: 1 "register_operand") (match_operand: 2 "register_operand")] - DOTPROD) - (match_operand:VS 3 "register_operand")))] + DOTPROD)))] "TARGET_DOTPROD" -{ - emit_insn ( - gen_aarch64_dot (operands[3], operands[3], operands[1], - operands[2])); - emit_insn (gen_rtx_SET (operands[0], operands[3])); - DONE; -}) +) ;; Auto-vectorizer pattern for usdot. The operand[3] and operand[0] are the ;; RMW parameters that when it comes to the vectorizer.