https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68484
--- Comment #10 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #9)
> Fixed for GCC 7 by r7-5301 (aka PR 70118).
- *(long long *)__P = ((__v2di)__B)[0];
+ *(__m64_u *)__P = (__m64) ((__v2di)__B)[0];
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68484
Andrew Pinski changed:
What|Removed |Added
Component|tree-optimization |target
See Also|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68484
--- Comment #5 from H.J. Lu ---
(In reply to Richard Biener from comment #4)
> As the summary mentions 'volatile' I'll also point to the implementation of
> the intrinsics which have
>
> /* Store four SPFP values. The address must be 16-byte
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68484
--- Comment #6 from Marc Glisse ---
clang has:
static __inline__ void __DEFAULT_FN_ATTRS
_mm_storel_epi64(__m128i *__p, __m128i __a)
{
struct __mm_storel_epi64_struct {
long long __u;
} __attribute__((__packed__, __may_alias__));
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68484
Richard Biener changed:
What|Removed |Added
Target||x86_64-*-*, i?86-*-*
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68484
--- Comment #7 from Vladimir Sedach ---
The "store" pointer could be not only volatile, but also static or global with
same error.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68484
--- Comment #8 from Vladimir Sedach ---
Adding "static" to "volatile" "solves" the problem:
static int * volatile x = _x;
I'm using this trick to avoid aggressive optimization when measuring the time
of execution. The compiler does not skip