Hi Carl,
On Fri, Jun 16, 2017 at 02:19:05PM -0700, Carl Love wrote:
> * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
Indent is broken on this line.
> ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
> ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW enties.
Typo ("entries").
> * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin(),
> builtin_function_type()): Add needed ALTIVEC_BUILTIN_* case
> statements.
No () please, just the names.
> * config/rs6000/altivec.md (define_c_enum "unspec",
> define_expand "vec_widen_umult_even_v4si",
> define_expand "vec_widen_smult_even_v4si",
> define_expand "vec_widen_umult_odd_v4si",
> define_expand "vec_widen_smult_odd_v4si",
> define_insn "altivec_vmuleuw", define_insn "altivec_vmulesw",
> define_insn "altivec_vmulouw", define_insn "altivec_vmulosw"): Add
> support to generate vmuleuw, vmulesw, vmulouw, vmulosw instructions.
(UNSPEC_VMULEUW, UNSPEC_VMULESW, UNSPEC_VMULOUW, UNSPEC_VMULOSW):
New enum "unspec" values.
(vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vmuleuw,
altivec_vmulesw, altivec_vmulouw, altivec_vmulosw): New patterns.
(Or similar. Mention all new names added. Usually for new things, just
saying "New." or "New frobnitz." is enough; the changelog does not describe
the design, or why you added something: it says just what changed).
> +(define_expand "vec_widen_umult_even_v4si"
> + [(use (match_operand:V2DI 0 "register_operand" ""))
> + (use (match_operand:V4SI 1 "register_operand" ""))
> + (use (match_operand:V4SI 2 "register_operand" ""))]
You can leave off the default (empty) constraint strings, in expanders.
> + "TARGET_ALTIVEC"
> +{
> + if (VECTOR_ELT_ORDER_BIG)
> + emit_insn (gen_altivec_vmuleuw (operands[0], operands[1],
> operands[2]));
Your patch was wrapped in the mail. Please try to prevent that, so that
other people can apply the patch to test out, etc.
> +(define_insn "altivec_vmuleuw"
> + [(set (match_operand:V2DI 0 "register_operand" "=v")
> + (unspec:V2DI [(match_operand:V4SI 1 "register_operand" "v")
> + (match_operand:V4SI 2 "register_operand" "v")]
> + UNSPEC_VMULEUW))]
The one-but-last line should be indented with tabs instead of spaces, too.
(This happens a few time more later in the patch; please check it all).
Okay for trunk with those last nits fixed. Thanks!
Segher