This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: arch-specific template code
- From: Ulrich Drepper <drepper at gmail dot com>
- To: Marc Glisse <marc dot glisse at inria dot fr>
- Cc: Paolo Carlini <paolo dot carlini at oracle dot com>, libstdc++ at gcc dot gnu dot org
- Date: Sat, 8 Sep 2012 09:10:51 -0400
- Subject: Re: arch-specific template code
- References: <CAOPLpQex7niqQ4VWoSheHpbb8-Jf9S+nULgxB3WNUp4r_xyriw@mail.gmail.com> <503BF427.1030300@oracle.com> <CAOPLpQdRUONpKZ9WfD1VP+YgmJVoJxp1L6OL=5hXH2LzjnZ8ww@mail.gmail.com> <alpine.DEB.2.02.1208281418540.20374@stedding.saclay.inria.fr> <CAOPLpQfgMoJjgwtZ6WMvpY41Vj0BD3SUQs3RNO1dbKQzp8KMaw@mail.gmail.com> <alpine.DEB.2.02.1208281716410.20374@stedding.saclay.inria.fr> <504B0C31.2040207@oracle.com> <alpine.DEB.2.02.1209081115290.3775@laptop-mg.saclay.inria.fr>
On Sat, Sep 8, 2012 at 6:12 AM, Marc Glisse <marc.glisse@inria.fr> wrote:
> PR 54400: horizontal add
> PR 54408: sqrt
> PR 54422: unaligned load/store
> PR 54427: operator< and others in C++
You'll also need various shifting:operations
- based on sub-words, measured in bits
- a whole vector, byte-wise.
Those are essential for the code like the SFMT implementation. Maybe
the former you have in PR 54427 but the second is something that
doesn't exist in C or C++. You can do that via a byte-wise shuffle.
But in that case the compiler has to recognize the shuffle patterns
like { 6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,7} and then don't use
shuffle but instead use the rotate instruction.