[Bug middle-end/55653] Unnecessary initialization of vector register

2013-10-07 Thread rearnsha at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55653

Richard Earnshaw rearnsha at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.8.0

--- Comment #2 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
Fixed with:

2013-01-08  Tejas Belagod  tejas.bela...@arm.com

* config/aarch64/aarch64-simd.md (vec_initmode): New.
* config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
Declare.
* config/aarch64/aarch64.c (aarch64_simd_dup_constant,
aarch64_simd_make_constant, aarch64_expand_vector_init): New.


[Bug middle-end/55653] Unnecessary initialization of vector register

2013-10-07 Thread rearnsha at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55653

--- Comment #3 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
On the secondary issue of initializing FP vectors to zero, we now generate for

typedef double f __attribute__((vector_size(16)));

f g()
{
  f a = {0.0, 0.0};
  return a;
}

g:
moviv0.2d, 0
ret


[Bug middle-end/55653] Unnecessary initialization of vector register

2012-12-11 Thread pinskia at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55653



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||missed-optimization

 Target||aarch64-*-*

 CC||pinskia at gcc dot gnu.org



--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-12-11 
20:06:00 UTC ---

I think there are two different issues here.  The first issue is a target issue

as {0.0, 0.0} should be done as just an xor which really resolves this issue as

it is able to optimize that out (though it is a good thing to do even without

the other part).



The other issue shouldn't !vector be false here as we have a vector?