[Bug sanitizer/84508] Load of misaligned address using _mm_load_sd
noloader at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Feb 24 17:38:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84508
--- Comment #8 from Jeffrey Walton <noloader at gmail dot com> ---
(In reply to Jeffrey Walton from comment #0)
> According to Intel
> (https://software.intel.com/sites/landingpage/IntrinsicsGuide), there are no
> alignment requirements for _mm_load_sd, _mm_store_sd and _mm_loaddup_pd. For
> example, from _mm_load_sd:
>
> Description
>
> Load a double-precision (64-bit) floating-point element from
> memory into the lower of dst, and zero the upper element.
> mem_addr does not need to be aligned on any particular boundary.
The opening sentence was incorrect. The *_sd functions do not have alignment
requirements. Searching through the Intrinsic Guide reveals the following
functions do not have the alignment requirements:
* _mm_load_sd
* _mm_store_sd
* _mm_load_ss
* _mm_loadh_pi
* _mm_loadl_pd
* _mm_loadl_pi
* _mm_loadu_pd
* _mm_loadu_ps
* _mm_loadu_si128
* _mm_store_sd
* _mm_store_ss
* _mm_storeu_pd
* _mm_storeu_ps
* _mm_storeu_si128
All the functions listed above specifically state "mem_addr does not need to be
aligned on any particular boundary."
The remaining functions have natural alignment or 16-byte alignment
requirements.
More information about the Gcc-bugs
mailing list