This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [MIPS] Add sbasic supoert ffor MSA (SIMD)


> +(define_expand "one_cmpl<mode>2"
> +  [(match_operand:IMSA 0 "register_operand")
> +   (match_operand:IMSA 1 "register_operand")]
> +  "ISA_HAS_MSA"
> +{
> +  if (<MODE>mode == V16QImode)
> +    emit_insn (gen_msa_nori_b (operands[0], operands[1], const0_rtx));
> +  else
> +    {
> +      rtx reg = gen_reg_rtx (<MODE>mode);
> +      emit_insn (gen_msa_ldi<mode> (reg, const0_rtx));
> +      emit_insn (gen_msa_nor_v_<msafmt> (operands[0], reg, operands[1]));
> +    }
> +  DONE;
> +})

Surely ~(x | x) would be preferable to ~(x | 0) if you actually have to load 0
into a register.

And most definitely combine would prefer to see NOT instead of a complex
expression.  I think you're better off with a define_insn than an expand.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]