https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66115

carloscastro10 at hotmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|INVALID                     |---

--- Comment #9 from carloscastro10 at hotmail dot com ---
__alignof__(__m128i) is 16, just like __alignof__(long) is 8 and
__alignof__(int) is 4. However, if I have a pointer to long or a pointer to
int, the memory addresses pointed at by those pointers can be aligned to any
byte boundary. Assuming that the address pointed at by a pointer to __m128i is
aligned to a 16-byte boundary is not a correct assumption, especially when
compiling with -mavx. It prevents proper modeling in debug mode of access to
unaligned operands in memory. This problem is also present with the __m256i
type. In AVX, aligned memory load operations (_mm256_load_si256 and similar)
are the exceptions in that they require pointers to aligned memory addresses.
Most AVX operations accept unaligned addresses.

Reply via email to