[Bug target/60778] New: shift not folded into shift on x86-64

2014-04-07 Thread sunfish at mozilla dot com
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

[Bug target/60826] New: inefficient code for vector xor on SSE2

2014-04-11 Thread sunfish at mozilla dot com
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

[Bug target/60826] inefficient code for vector xor on SSE2

2014-04-14 Thread sunfish at mozilla dot com
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

[Bug other/56955] documentation for attribute malloc contradicts itself

2014-05-20 Thread sunfish at mozilla dot com
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.

[Bug other/56955] documentation for attribute malloc contradicts itself

2014-05-21 Thread sunfish at mozilla dot com
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