Commit c8694a80 by Jakub Jelinek Committed by Jakub Jelinek

i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.

	* config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_VEC_PACK_SFIX256.
	(bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
	(ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
	(ix86_builtin_vectorized_function): Also vectorize lrint using
	256-bit vectors for -mavx.

From-SVN: r181122
parent 06cadf63
2011-11-07 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
* config/i386/i386.c (enum ix86_builtins): Add
IX86_BUILTIN_VEC_PACK_SFIX256.
(bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
(ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
(ix86_builtin_vectorized_function): Also vectorize lrint using
256-bit vectors for -mavx.
2011-11-07 Anatoly Sokolov <aesok@post.ru> 2011-11-07 Anatoly Sokolov <aesok@post.ru>
* config/cris/constraints.md: New file. * config/cris/constraints.md: New file.
...@@ -332,6 +332,7 @@ DEF_FUNCTION_TYPE (V16HI, V16HI, INT) ...@@ -332,6 +332,7 @@ DEF_FUNCTION_TYPE (V16HI, V16HI, INT)
DEF_FUNCTION_TYPE (V16HI, V16HI, SI) DEF_FUNCTION_TYPE (V16HI, V16HI, SI)
DEF_FUNCTION_TYPE (V16HI, V16HI, V16HI, INT) DEF_FUNCTION_TYPE (V16HI, V16HI, V16HI, INT)
DEF_FUNCTION_TYPE (V32QI, V32QI, V32QI, INT) DEF_FUNCTION_TYPE (V32QI, V32QI, V32QI, INT)
DEF_FUNCTION_TYPE (V8SI, V4DF, V4DF)
DEF_FUNCTION_TYPE (V8SI, V8SI, V4SI) DEF_FUNCTION_TYPE (V8SI, V8SI, V4SI)
DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI) DEF_FUNCTION_TYPE (V8SI, V8SI, V8SI)
DEF_FUNCTION_TYPE (V8SI, V16HI, V16HI) DEF_FUNCTION_TYPE (V8SI, V16HI, V16HI)
......
...@@ -24830,6 +24830,7 @@ enum ix86_builtins ...@@ -24830,6 +24830,7 @@ enum ix86_builtins
IX86_BUILTIN_VEC_SET_V16QI, IX86_BUILTIN_VEC_SET_V16QI,
IX86_BUILTIN_VEC_PACK_SFIX, IX86_BUILTIN_VEC_PACK_SFIX,
IX86_BUILTIN_VEC_PACK_SFIX256,
/* SSE4.2. */ /* SSE4.2. */
IX86_BUILTIN_CRC32QI, IX86_BUILTIN_CRC32QI,
...@@ -26358,6 +26359,8 @@ static const struct builtin_description bdesc_args[] = ...@@ -26358,6 +26359,8 @@ static const struct builtin_description bdesc_args[] =
{ OPTION_MASK_ISA_AVX, CODE_FOR_copysignv8sf3, "__builtin_ia32_copysignps256", IX86_BUILTIN_CPYSGNPS256, UNKNOWN, (int) V8SF_FTYPE_V8SF_V8SF }, { OPTION_MASK_ISA_AVX, CODE_FOR_copysignv8sf3, "__builtin_ia32_copysignps256", IX86_BUILTIN_CPYSGNPS256, UNKNOWN, (int) V8SF_FTYPE_V8SF_V8SF },
{ OPTION_MASK_ISA_AVX, CODE_FOR_copysignv4df3, "__builtin_ia32_copysignpd256", IX86_BUILTIN_CPYSGNPD256, UNKNOWN, (int) V4DF_FTYPE_V4DF_V4DF }, { OPTION_MASK_ISA_AVX, CODE_FOR_copysignv4df3, "__builtin_ia32_copysignpd256", IX86_BUILTIN_CPYSGNPD256, UNKNOWN, (int) V4DF_FTYPE_V4DF_V4DF },
{ OPTION_MASK_ISA_AVX, CODE_FOR_vec_pack_sfix_v4df, "__builtin_ia32_vec_pack_sfix256 ", IX86_BUILTIN_VEC_PACK_SFIX256, UNKNOWN, (int) V8SI_FTYPE_V4DF_V4DF },
/* AVX2 */ /* AVX2 */
{ OPTION_MASK_ISA_AVX2, CODE_FOR_avx2_mpsadbw, "__builtin_ia32_mpsadbw256", IX86_BUILTIN_MPSADBW256, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI_INT }, { OPTION_MASK_ISA_AVX2, CODE_FOR_avx2_mpsadbw, "__builtin_ia32_mpsadbw256", IX86_BUILTIN_MPSADBW256, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI_INT },
{ OPTION_MASK_ISA_AVX2, CODE_FOR_absv32qi2, "__builtin_ia32_pabsb256", IX86_BUILTIN_PABSB256, UNKNOWN, (int) V32QI_FTYPE_V32QI }, { OPTION_MASK_ISA_AVX2, CODE_FOR_absv32qi2, "__builtin_ia32_pabsb256", IX86_BUILTIN_PABSB256, UNKNOWN, (int) V32QI_FTYPE_V32QI },
...@@ -28048,6 +28051,7 @@ ix86_expand_args_builtin (const struct builtin_description *d, ...@@ -28048,6 +28051,7 @@ ix86_expand_args_builtin (const struct builtin_description *d,
case V32QI_FTYPE_V32QI_V32QI: case V32QI_FTYPE_V32QI_V32QI:
case V16HI_FTYPE_V32QI_V32QI: case V16HI_FTYPE_V32QI_V32QI:
case V16HI_FTYPE_V16HI_V16HI: case V16HI_FTYPE_V16HI_V16HI:
case V8SI_FTYPE_V4DF_V4DF:
case V8SI_FTYPE_V8SI_V8SI: case V8SI_FTYPE_V8SI_V8SI:
case V8SI_FTYPE_V16HI_V16HI: case V8SI_FTYPE_V16HI_V16HI:
case V4DI_FTYPE_V4DI_V4DI: case V4DI_FTYPE_V4DI_V4DI:
...@@ -29271,9 +29275,13 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out, ...@@ -29271,9 +29275,13 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
case BUILT_IN_IRINT: case BUILT_IN_IRINT:
case BUILT_IN_LRINT: case BUILT_IN_LRINT:
case BUILT_IN_LLRINT: case BUILT_IN_LLRINT:
if (out_mode == SImode && out_n == 4 if (out_mode == SImode && in_mode == DFmode)
&& in_mode == DFmode && in_n == 2) {
return ix86_builtins[IX86_BUILTIN_VEC_PACK_SFIX]; if (out_n == 4 && in_n == 2)
return ix86_builtins[IX86_BUILTIN_VEC_PACK_SFIX];
else if (out_n == 8 && in_n == 4)
return ix86_builtins[IX86_BUILTIN_VEC_PACK_SFIX256];
}
break; break;
case BUILT_IN_IRINTF: case BUILT_IN_IRINTF:
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