• wschmidt's avatar
    gcc: · f848237b
    wschmidt authored
    2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
    
    	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
    	CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
    	* config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
    	-maltivec=be with LE targets.
    	(vsx_mergeh_<mode>): Likewise.
    	* config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
    	unspecs.
    	(mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
    	(altivec_vmrghb): Replace with define_expand and new
    	*altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
    	targets.
    	(altivec_vmrghb_direct): New define_insn.
    	(altivec_vmrghh): Replace with define_expand and new
    	*altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
    	targets.
    	(altivec_vmrghh_direct): New define_insn.
    	(altivec_vmrghw): Replace with define_expand and new
    	*altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
    	targets.
    	(altivec_vmrghw_direct): New define_insn.
    	(*altivec_vmrghsf): Adjust for endianness.
    	(altivec_vmrglb): Replace with define_expand and new
    	*altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
    	targets.
    	(altivec_vmrglb_direct): New define_insn.
    	(altivec_vmrglh): Replace with define_expand and new
    	*altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
    	targets.
    	(altivec_vmrglh_direct): New define_insn.
    	(altivec_vmrglw): Replace with define_expand and new
    	*altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
    	targets.
    	(altivec_vmrglw_direct): New define_insn.
    	(*altivec_vmrglsf): Adjust for endianness.
    	(vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
    	(vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
    	(vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
    	(vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
    	(vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
    	(vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
    	(vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
    	(vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
    
    gcc/testsuite:
    
    2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
    
    	* gcc.dg/vmx/merge-be-order.c: New.
    	* gcc.dg/vmx/merge.c: New.
    	* gcc.dg/vmx/merge-vsx-be-order.c: New.
    	* gcc.dg/vmx/merge-vsx.c: New.
    
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207262 138bc75d-0d04-0410-961f-82ee72b054a4
    f848237b
rs6000.c 958 KB