This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/12872] Wrong alignment of La_x86_64_vector
- From: "hjl.tools at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Fri, 8 Jul 2011 17:15:57 +0000
- Subject: [Bug libc/12872] Wrong alignment of La_x86_64_vector
- Auto-submitted: auto-generated
- References: <bug-12872-131@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=12872
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-08 17:15:55 UTC ---
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #1)
> > > The alignment is what it is. This is an data structure which is part of the
> > > interface of . It cannot be changed. Use unaligned accesses.
> >
> > Then La_x86_64_ymm should be marked as 16byte aligned.
>
> Why is this necessary? The La_x86_64_ymm values are never accessed directly.
> They are part of La_x86_64_vector and that union (thanks to one of your
> patches) is aligned to 16 bytes. This should be enough. Where exactly are the
> problematic uses?
The ymm field may be used:
[hjl@gnu-6 elf]$ grep La_x86_64_ymm *.c
tst-auditmod4b.c: = (La_x86_64_ymm) _mm256_set1_epi32 (i + 1);
tst-auditmod4b.c: = (La_x86_64_ymm) _mm256_set1_epi32 (0x12349876);
tst-auditmod6b.c: = (La_x86_64_ymm) _mm256_set1_epi32 (i + 2);
tst-auditmod6b.c: = (La_x86_64_ymm) _mm256_set1_epi32 (0x12349876);
tst-auditmod6c.c: = (La_x86_64_ymm) _mm256_set1_epi32 (i + 0x101);
tst-auditmod6c.c: = (La_x86_64_ymm) _mm256_set1_epi32 (0x98abcdef);
tst-auditmod7b.c: = (La_x86_64_ymm) _mm256_set1_epi32 (i + 0x101);
tst-auditmod7b.c: = (La_x86_64_ymm) _mm256_set1_epi32 (0x98abcdef);
[hjl@gnu-6 elf]$
Compiler thinks it is aligned at 32byte and generates aligned 32bye vector
move.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.