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