This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, rs6000] Add expansions for min/max vector reductions


On 16/09/15 15:28, Bill Schmidt wrote:
2015-09-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

         * config/rs6000/altivec.md (UNSPEC_REDUC_SMAX, UNSPEC_REDUC_SMIN,
         UNSPEC_REDUC_UMAX, UNSPEC_REDUC_UMIN, UNSPEC_REDUC_SMAX_SCAL,
         UNSPEC_REDUC_SMIN_SCAL, UNSPEC_REDUC_UMAX_SCAL,
         UNSPEC_REDUC_UMIN_SCAL): New enumerated constants.
         (reduc_smax_v2di): New define_expand.
         (reduc_smax_scal_v2di): Likewise.
         (reduc_smin_v2di): Likewise.
         (reduc_smin_scal_v2di): Likewise.
         (reduc_umax_v2di): Likewise.
         (reduc_umax_scal_v2di): Likewise.
         (reduc_umin_v2di): Likewise.
         (reduc_umin_scal_v2di): Likewise.
         (reduc_smax_v4si): Likewise.
         (reduc_smin_v4si): Likewise.
         (reduc_umax_v4si): Likewise.
         (reduc_umin_v4si): Likewise.
         (reduc_smax_v8hi): Likewise.
         (reduc_smin_v8hi): Likewise.
         (reduc_umax_v8hi): Likewise.
         (reduc_umin_v8hi): Likewise.
         (reduc_smax_v16qi): Likewise.
         (reduc_smin_v16qi): Likewise.
         (reduc_umax_v16qi): Likewise.
         (reduc_umin_v16qi): Likewise.
         (reduc_smax_scal_<mode>): Likewise.
         (reduc_smin_scal_<mode>): Likewise.
         (reduc_umax_scal_<mode>): Likewise.
         (reduc_umin_scal_<mode>): Likewise.

You shouldn't need the non-_scal reductions. Indeed, they shouldn't be used if the _scal are present. The non-_scal's were previously defined as producing a vector with one element holding the result and the other elements all zero, and this was only ever used with a vec_extract immediately after; the _scal pattern now includes the vec_extract as well. Hence the non-_scal patterns are deprecated / considered legacy, as per md.texi.

I proposed a patch to migrate PPC off the old patterns, but have forgotten to ping it recently - last at https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01024.html ... (ping?!)

--Alan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]