On Mon, Nov 9, 2015 at 5:28 PM, Richard Sandiford
<[email protected]> wrote:
> After the previous patches it's no longer necessary for
> TARGET_BUILTIN_VECTORIZED_FUNCTION to return functions that
> map to the vector optab of the original operation. We'll use
> a vector form of the internal function instead.
>
>
> gcc/
> * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
> entries that map directly to optabs.
OK.
Thanks,
Uros.
> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
> index a1d59a5..1003ce1 100644
> --- a/gcc/config/i386/i386.c
> +++ b/gcc/config/i386/i386.c
> @@ -41746,27 +41746,6 @@ ix86_builtin_vectorized_function (unsigned int fn,
> tree type_out,
>
> switch (fn)
> {
> - CASE_CFN_SQRT:
> - if (out_mode == DFmode && in_mode == DFmode)
> - {
> - if (out_n == 2 && in_n == 2)
> - return ix86_get_builtin (IX86_BUILTIN_SQRTPD);
> - else if (out_n == 4 && in_n == 4)
> - return ix86_get_builtin (IX86_BUILTIN_SQRTPD256);
> - else if (out_n == 8 && in_n == 8)
> - return ix86_get_builtin (IX86_BUILTIN_SQRTPD512);
> - }
> - if (out_mode == SFmode && in_mode == SFmode)
> - {
> - if (out_n == 4 && in_n == 4)
> - return ix86_get_builtin (IX86_BUILTIN_SQRTPS_NR);
> - else if (out_n == 8 && in_n == 8)
> - return ix86_get_builtin (IX86_BUILTIN_SQRTPS_NR256);
> - else if (out_n == 16 && in_n == 16)
> - return ix86_get_builtin (IX86_BUILTIN_SQRTPS_NR512);
> - }
> - break;
> -
> CASE_CFN_EXP2:
> if (out_mode == SFmode && in_mode == SFmode)
> {
> @@ -41869,27 +41848,6 @@ ix86_builtin_vectorized_function (unsigned int fn,
> tree type_out,
> }
> break;
>
> - CASE_CFN_COPYSIGN:
> - if (out_mode == DFmode && in_mode == DFmode)
> - {
> - if (out_n == 2 && in_n == 2)
> - return ix86_get_builtin (IX86_BUILTIN_CPYSGNPD);
> - else if (out_n == 4 && in_n == 4)
> - return ix86_get_builtin (IX86_BUILTIN_CPYSGNPD256);
> - else if (out_n == 8 && in_n == 8)
> - return ix86_get_builtin (IX86_BUILTIN_CPYSGNPD512);
> - }
> - if (out_mode == SFmode && in_mode == SFmode)
> - {
> - if (out_n == 4 && in_n == 4)
> - return ix86_get_builtin (IX86_BUILTIN_CPYSGNPS);
> - else if (out_n == 8 && in_n == 8)
> - return ix86_get_builtin (IX86_BUILTIN_CPYSGNPS256);
> - else if (out_n == 16 && in_n == 16)
> - return ix86_get_builtin (IX86_BUILTIN_CPYSGNPS512);
> - }
> - break;
> -
> CASE_CFN_FLOOR:
> /* The round insn does not trap on denormals. */
> if (flag_trapping_math || !TARGET_ROUND)
> @@ -41974,27 +41932,6 @@ ix86_builtin_vectorized_function (unsigned int fn,
> tree type_out,
> }
> break;
>
> - CASE_CFN_ROUND:
> - /* The round insn does not trap on denormals. */
> - if (flag_trapping_math || !TARGET_ROUND)
> - break;
> -
> - if (out_mode == DFmode && in_mode == DFmode)
> - {
> - if (out_n == 2 && in_n == 2)
> - return ix86_get_builtin (IX86_BUILTIN_ROUNDPD_AZ);
> - else if (out_n == 4 && in_n == 4)
> - return ix86_get_builtin (IX86_BUILTIN_ROUNDPD_AZ256);
> - }
> - if (out_mode == SFmode && in_mode == SFmode)
> - {
> - if (out_n == 4 && in_n == 4)
> - return ix86_get_builtin (IX86_BUILTIN_ROUNDPS_AZ);
> - else if (out_n == 8 && in_n == 8)
> - return ix86_get_builtin (IX86_BUILTIN_ROUNDPS_AZ256);
> - }
> - break;
> -
> CASE_CFN_FMA:
> if (out_mode == DFmode && in_mode == DFmode)
> {
>