[Bug middle-end/55653] Unnecessary initialization of vector register
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
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
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?