Assignee: unassigned at gcc dot gnu.org
Reporter: sunfish at mozilla dot com
On this C code:
double mem[4096];
double foo(long x) {
return mem[x>>3];
}
GCC emits this x86-64 code:
sarq$3, %rdi
movsd mem(,%rdi,8), %xmm0
The following x86-64 code
Assignee: unassigned at gcc dot gnu.org
Reporter: sunfish at mozilla dot com
On the following C testcase:
#include
typedef double v2f64 __attribute__((__vector_size__(16), may_alias));
typedef int64_t v2i64 __attribute__((__vector_size__(16), may_alias));
static inline v2f64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60826
--- Comment #2 from Dan Gohman ---
A little more detail: I think I have seen GCC use a spill + movsd reload as a
method of zeroing the non-zero-index vector elements of an xmm register,
however that's either not what's happening here, or it may be
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56955
--- Comment #13 from Dan Gohman ---
(In reply to Paul Eggert from comment #12)
> (In reply to Rich Felker from comment #10)
> > This assumption only aids
> > optimization in the case where a pointer residing in the obtained memory is
> > used (e.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56955
--- Comment #17 from Dan Gohman ---
(In reply to Richard Biener from comment #16)
> One reason for why realloc is "hard" is that there is no language that says
> it is undefined to access the object via the old pointer, but there is only
> langua