[PATCH v1 1/3] x86: Align varshift table to 32-bytes

Sunil Pandey skpgkp2@gmail.com
Thu Jul 14 02:51:29 GMT 2022


On Thu, Jun 9, 2022 at 8:15 AM H.J. Lu via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> On Wed, Jun 8, 2022 at 9:16 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> >
> > This ensures the load will never split a cache line.
> > ---
> >  sysdeps/x86_64/multiarch/varshift.c | 5 +++--
> >  sysdeps/x86_64/multiarch/varshift.h | 3 ++-
> >  2 files changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/sysdeps/x86_64/multiarch/varshift.c b/sysdeps/x86_64/multiarch/varshift.c
> > index c8210f0546..d27767520a 100644
> > --- a/sysdeps/x86_64/multiarch/varshift.c
> > +++ b/sysdeps/x86_64/multiarch/varshift.c
> > @@ -16,9 +16,10 @@
> >     License along with the GNU C Library; if not, see
> >     <https://www.gnu.org/licenses/>.  */
> >
> > -#include "varshift.h"
> > +#include <stdint.h>
> >
> > -const int8_t ___m128i_shift_right[31] attribute_hidden =
> > +const int8_t ___m128i_shift_right[31] attribute_hidden
> > +    __attribute__((aligned(32))) =
> >    {
> >      0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
> >      -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
> > diff --git a/sysdeps/x86_64/multiarch/varshift.h b/sysdeps/x86_64/multiarch/varshift.h
> > index af30694488..ffd12d79e4 100644
> > --- a/sysdeps/x86_64/multiarch/varshift.h
> > +++ b/sysdeps/x86_64/multiarch/varshift.h
> > @@ -19,7 +19,8 @@
> >  #include <stdint.h>
> >  #include <tmmintrin.h>
> >
> > -extern const int8_t ___m128i_shift_right[31] attribute_hidden;
> > +extern const int8_t ___m128i_shift_right[31] attribute_hidden
> > +    __attribute__ ((aligned (32)));
> >
> >  static __inline__ __m128i
> >  __m128i_shift_right (__m128i value, unsigned long int offset)
> > --
> > 2.34.1
> >
>
> LGTM.
>
> Thanks.
>
> --
> H.J.

I would like to backport this patch to release branches.
Any comments or objections?

--Sunil


More information about the Libc-alpha mailing list