This is the mail archive of the gcc@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: (R5900) Implementing Vector Support


Hi Matthew,


On Friday, June 3, 2016 9:36 PM, Matthew Fortune <Matthew.Fortune@imgtec.com> wrote:
> The conclusion we came to when developing MSA is that simplify_gen_subreg
> is the way to go for converting between vector modes:
>
> simplify_gen_subreg (new_mode, rtx, old_mode, 0)
>
> I'm not sure there is much need to change modes after reload so do it
> upfront at expand time or when splitting and you should be OK.
>
> See trunk mips.c for a number of uses of this when converting vector modes.


Thank you. I will try to go with your suggestion after the segmentation fault is taken care of, given that the MSA stuff is newer and similar.

> define_expand only provides a way to generate an instruction or sequence
> of instructions to achieve the overall goal. You must also have
> define_insn definitions for any pattern you emit or the generated code
> will fail to match.


This description seems to fit exactly what I've been trying to do so far. All patterns emitted as part of the expands, do exist.
Thanks.

> A define_insn_and_split is just shorthand for a define_insn where one
> or more output patterns are '#' (split) and you want to define the
> split alongside the instruction rather than as a separate define_split.
> As far as I understand the difference is syntactic sugar.


Thank you for clearing this up.

> It may take time but I'm sure we can help talk through the problems. As
> a new GCC developer you are a welcome addition to the community.


Thank you.

Thanks and regards,
-W Y


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