Message ID | 871tbznnlq.fsf@e105548-lin.cambridge.arm.com |
---|---|
State | New |
Headers | show |
On Mon, Nov 9, 2015 at 5:28 PM, Richard Sandiford <richard.sandiford@arm.com> 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) > { >
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) {