On Tue, Oct 12, 2021 at 9:50 PM Xionghu Luo <luo...@linux.ibm.com> wrote:
>
> Resend this patch.  Previous discussion is:
>
> https://gcc.gnu.org/pipermail/gcc-patches/2021-June/572330.html
>
> vmrghb only accepts permute index {0, 16, 1, 17, 2, 18, 3, 19, 4, 20,
> 5, 21, 6, 22, 7, 23} no matter for BE or LE in ISA, similarly for vmrglb.
> Remove UNSPEC_VMRGH_DIRECT/UNSPEC_VMRGL_DIRECT pattern as vec_select
> + vec_concat as normal RTL.
>
> Tested pass on P8LE, P9LE and P8BE{m32}, ok for trunk?
>
> gcc/ChangeLog:
>
>         * config/rs6000/altivec.md (*altivec_vmrghb_internal): Delete.
>         (altivec_vmrghb_direct): New.
>         (*altivec_vmrghh_internal): Delete.
>         (altivec_vmrghh_direct): New.
>         (*altivec_vmrghw_internal): Delete.
>         (altivec_vmrghw_direct_<mode>): New.
>         (altivec_vmrghw_direct): Delete.
>         (*altivec_vmrglb_internal): Delete.
>         (altivec_vmrglb_direct): New.
>         (*altivec_vmrglh_internal): Delete.
>         (altivec_vmrglh_direct): New.
>         (*altivec_vmrglw_internal): Delete.
>         (altivec_vmrglw_direct_<mode>): New.
>         (altivec_vmrglw_direct): Delete.
>         * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust.
>         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):
>         Adjust.
>         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust.
>         (vsx_xxmrglw_<mode>): Adjust.
>
> gcc/testsuite/ChangeLog:
>
>         * gcc.target/powerpc/builtins-1.c: Update instruction counts.

This patch is okay.

Thanks, David

Reply via email to