[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