: target
Assignee: unassigned at gcc dot gnu.org
Reporter: carloscastro10 at hotmail dot com
Target Milestone: ---
The _mm512_packus_epi32 intrinsic compiles fine under -Og, -O2, -O3, but does
not compile under -O0. For a simple example consider the following code:
#include
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66115
carloscastro10 at hotmail dot com changed:
What|Removed |Added
Status|RESOLVED|UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66115
--- Comment #7 from carloscastro10 at hotmail dot com ---
It cannot be a requirement. If it was, functions like __m128i _mm_loadu_si128
(__m128i const* mem_addr), which have always relied on mem_addr not being
necessarily aligned, would not work
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66115
--- Comment #5 from carloscastro10 at hotmail dot com ---
That is correct. And there is no requirement that a pointer to __m128i be
aligned to a 16-byte boundary.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66115
--- Comment #3 from carloscastro10 at hotmail dot com ---
The AVX specification relaxed the memory alignment requirements for SSE
operations when using the VEX prefix. In this case the use of a non-aligned
memory address for an operand is valid
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66115
--- Comment #1 from carloscastro10 at hotmail dot com ---
Created attachment 35519
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35519&action=edit
test.ii for the example
: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: carloscastro10 at hotmail dot com
Target Milestone: ---
When compiling with -mavx, operands to SSE instructions are allowed to be
aligned