Commit d85f364c by Bill Schmidt Committed by William Schmidt

rs6000.c (altivec_expand_vec_perm_const): Change CODE_FOR_altivec_vpku[hw]um to…

rs6000.c (altivec_expand_vec_perm_const): Change CODE_FOR_altivec_vpku[hw]um to CODE_FOR_altivec_vpku[hw]um_direct.

2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
	CODE_FOR_altivec_vpku[hw]um to
	CODE_FOR_altivec_vpku[hw]um_direct.
	* config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
	UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
	(vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
	UNSPEC_VUNPACK_LO_SIGN_DIRECT.

From-SVN: r207525
parent 7ec4847a
2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
CODE_FOR_altivec_vpku[hw]um to
CODE_FOR_altivec_vpku[hw]um_direct.
* config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
(vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
UNSPEC_VUNPACK_LO_SIGN_DIRECT.
2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.md (altivec_vsum2sws): Adjust code * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
generation for -maltivec=be. generation for -maltivec=be.
(altivec_vsumsws): Simplify redundant test. (altivec_vsumsws): Simplify redundant test.
......
...@@ -2566,14 +2566,14 @@ ...@@ -2566,14 +2566,14 @@
(define_expand "vec_unpacks_hi_<VP_small_lc>" (define_expand "vec_unpacks_hi_<VP_small_lc>"
[(set (match_operand:VP 0 "register_operand" "=v") [(set (match_operand:VP 0 "register_operand" "=v")
(unspec:VP [(match_operand:<VP_small> 1 "register_operand" "v")] (unspec:VP [(match_operand:<VP_small> 1 "register_operand" "v")]
UNSPEC_VUNPACK_HI_SIGN))] UNSPEC_VUNPACK_HI_SIGN_DIRECT))]
"<VI_unit>" "<VI_unit>"
"") "")
(define_expand "vec_unpacks_lo_<VP_small_lc>" (define_expand "vec_unpacks_lo_<VP_small_lc>"
[(set (match_operand:VP 0 "register_operand" "=v") [(set (match_operand:VP 0 "register_operand" "=v")
(unspec:VP [(match_operand:<VP_small> 1 "register_operand" "v")] (unspec:VP [(match_operand:<VP_small> 1 "register_operand" "v")]
UNSPEC_VUNPACK_LO_SIGN))] UNSPEC_VUNPACK_LO_SIGN_DIRECT))]
"<VI_unit>" "<VI_unit>"
"") "")
......
...@@ -29888,9 +29888,9 @@ altivec_expand_vec_perm_const (rtx operands[4]) ...@@ -29888,9 +29888,9 @@ altivec_expand_vec_perm_const (rtx operands[4])
unsigned char perm[16]; unsigned char perm[16];
}; };
static const struct altivec_perm_insn patterns[] = { static const struct altivec_perm_insn patterns[] = {
{ OPTION_MASK_ALTIVEC, CODE_FOR_altivec_vpkuhum, { OPTION_MASK_ALTIVEC, CODE_FOR_altivec_vpkuhum_direct,
{ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 } }, { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 } },
{ OPTION_MASK_ALTIVEC, CODE_FOR_altivec_vpkuwum, { OPTION_MASK_ALTIVEC, CODE_FOR_altivec_vpkuwum_direct,
{ 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 } }, { 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 } },
{ OPTION_MASK_ALTIVEC, { OPTION_MASK_ALTIVEC,
(BYTES_BIG_ENDIAN ? CODE_FOR_altivec_vmrghb_direct (BYTES_BIG_ENDIAN ? CODE_FOR_altivec_vmrghb_direct
...@@ -30055,14 +30055,14 @@ altivec_expand_vec_perm_const (rtx operands[4]) ...@@ -30055,14 +30055,14 @@ altivec_expand_vec_perm_const (rtx operands[4])
halfwords (BE numbering) when the even halfwords (LE halfwords (BE numbering) when the even halfwords (LE
numbering) are what we need. */ numbering) are what we need. */
if (!BYTES_BIG_ENDIAN if (!BYTES_BIG_ENDIAN
&& icode == CODE_FOR_altivec_vpkuwum && icode == CODE_FOR_altivec_vpkuwum_direct
&& ((GET_CODE (op0) == REG && ((GET_CODE (op0) == REG
&& GET_MODE (op0) != V4SImode) && GET_MODE (op0) != V4SImode)
|| (GET_CODE (op0) == SUBREG || (GET_CODE (op0) == SUBREG
&& GET_MODE (XEXP (op0, 0)) != V4SImode))) && GET_MODE (XEXP (op0, 0)) != V4SImode)))
continue; continue;
if (!BYTES_BIG_ENDIAN if (!BYTES_BIG_ENDIAN
&& icode == CODE_FOR_altivec_vpkuhum && icode == CODE_FOR_altivec_vpkuhum_direct
&& ((GET_CODE (op0) == REG && ((GET_CODE (op0) == REG
&& GET_MODE (op0) != V8HImode) && GET_MODE (op0) != V8HImode)
|| (GET_CODE (op0) == SUBREG || (GET_CODE (op0) == SUBREG
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment