On Fri, Aug 13, 2021 at 12:20 AM Michael Meissner
<meiss...@linux.ibm.com> wrote:
>
> Move xx* builtins to vsx.md.
>
> I originally posted this patch in May.  It needed a slight tune up as the
> souces have changed, so I'm reposting it now.
>
> I noticed that the xx built-in functions (xxspltiw, xxspltidp, xxsplti32dx,
> xxeval, xxblend, and xxpermx) were all defined in altivec.md.  However, since
> the XX instructions can take both traditional floating point and Altivec
> registers, these built-in functions should be in vsx.md.
>
> This patch just moves the insns from altivec.md to vsx.md.
>
> I also moved the VM3 mode iterator and VM3_char mode attribute from altivec.md
> to vsx.md, since the only use of these were for the XXBLEND insns.
>
> I have built little endian power9 compilers, little endian power10 compilers,
> and big endian power8 compilers with this patch applied, and there were no
> regressions.  Can I apply this patch to the master branch?
>
> Note this patch assumes the previous patch:
>
>         Fix xxeval predicates (PR 99921).
>
> has been applied.
>
> 2021-08-12  Michael Meissner  <meiss...@linux.ibm.com>
>
> gcc/
>         * config/rs6000/altivec.md (UNSPEC_XXEVAL): Move to vsx.md.
>         (UNSPEC_XXSPLTIW): Move to vsx.md.
>         (UNSPEC_XXSPLTID): Move to vsx.md.
>         (UNSPEC_XXSPLTI32DX): Move to vsx.md.
>         (UNSPEC_XXBLEND): Move to vsx.md.
>         (UNSPEC_XXPERMX): Move to vsx.md.
>         (VM3): Move to vsx.md.
>         (VM3_char): Move to vsx.md.
>         (xxspltiw_v4si): Move to vsx.md.
>         (xxspltiw_v4sf): Move to vsx.md.
>         (xxspltiw_v4sf_inst): Move to vsx.md.
>         (xxspltidp_v2df): Move to vsx.md.
>         (xxspltidp_v2df_inst): Move to vsx.md.
>         (xxsplti32dx_v4si_inst): Move to vsx.md.
>         (xxsplti32dx_v4sf): Move to vsx.md.
>         (xxsplti32dx_v4sf_inst): Move to vsx.md.
>         (xxblend_<mode>): Move to vsx.md.
>         (xxpermx): Move to vsx.md.
>         (xxpermx_inst): Move to vsx.md.
>         * config/rs6000/vsx.md (UNSPEC_XXEVAL): Move from altivec.md.
>         (UNSPEC_XXSPLTIW): Move from altivec.md.
>         (UNSPEC_XXSPLTID): Move from altivec.md.
>         (UNSPEC_XXSPLTI32DX): Move from altivec.md.
>         (UNSPEC_XXBLEND): Move from altivec.md.
>         (UNSPEC_XXPERMX): Move from altivec.md.
>         (VM3): Move from altivec.md.
>         (VM3_char): Move from altivec.md.
>         (xxspltiw_v4si): Move from altivec.md.
>         (xxspltiw_v4sf): Move from altivec.md.
>         (xxspltiw_v4sf_inst): Move from altivec.md.
>         (xxspltidp_v2df): Move from altivec.md.
>         (xxspltidp_v2df_inst): Move from altivec.md.
>         (xxsplti32dx_v4si_inst): Move from altivec.md.
>         (xxsplti32dx_v4sf): Move from altivec.md.
>         (xxsplti32dx_v4sf_inst): Move from altivec.md.
>         (xxblend_<mode>): Move from altivec.md.
>         (xxpermx): Move from altivec.md.
>         (xxpermx_inst): Move from altivec.md

Okay.

I wanted to give Segher a chance to comment on the structure.

You could have used "Same" or "Likewise" in the ChangeLog, but that's fine.

Thanks, David

Reply via email to