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, 4.7] Add float/double vector reductions to VSX


On Wed, Mar 23, 2011 at 1:42 PM, Michael Meissner
<meissner@linux.vnet.ibm.com> wrote:
> Pat Haugen noticed we were doing stores in benchmarks where we were doing
> vector reductions to extract the final float element. ?So I decided to take a
> look. ?This code implements the vector reductions without doing stores for
> float vectors, and eliminates a vector shift for double vectors.
>
> I suspect there are more opportunities for improving vector extract and insert
> with VSX.
>
> I did a bootstrap and make check with no regressions. ?Is this ok to install on
> the trunk?
>
> [gcc]
> 2011-03-23 ?Michael Meissner ?<meissner@linux.vnet.ibm.com>
>
> ? ? ? ?PR target/48258
> ? ? ? ?* config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
> ? ? ? ?reduction.
> ? ? ? ?(VEC_reduc): New code iterator and splitters for vector reduction.
> ? ? ? ?(VEC_reduc_name): Ditto.
> ? ? ? ?(VEC_reduc_rtx): Ditto.
> ? ? ? ?(reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
> ? ? ? ?(reduc_<VEC_reduc_name>_v4sf): Ditto.
>
> ? ? ? ?* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
> ? ? ? ?support for extracting SF on VSX.
>
> ? ? ? ?* config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
> ? ? ? ?generating xscvspdp.
> ? ? ? ?(vsx_extract_v4sf): New insn to extract SF from V4SF vector.
> ? ? ? ?(vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
> ? ? ? ?double add, minimum, maximum vector reduction.
> ? ? ? ?(vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
> ? ? ? ?(vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
> ? ? ? ?optimize double vector reduction.
> ? ? ? ?(vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
>
> [gcc/testsuite]
> 2011-03-23 ?Michael Meissner ?<meissner@linux.vnet.ibm.com>
>
> ? ? ? ?PR target/48258
> ? ? ? ?* gcc.target/powerpc/pr48258-1.c: New file.
> ? ? ? ?* gcc.target/powerpc/pr48258-2.c: Ditto.

The additions are okay.

Except the patch includes a change to pattern vsx_xxpermdi_<mode> that
is not explained nor mentioned in the ChangeLog.

- David


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