Take the following example: typedef __attribute__ ((vector_size (16))) float v4sf; typedef __attribute__ ((vector_size (16))) int v4si; v4sf t; void foo (float t1) { t = (v4sf)(v4si){1,1,1,1}; t+=t; } ------ There should be no lvx in it but there is currently because VIEW_CONVERT_EXPR is foldded at the tree level now.
-- Summary: vec_init needs to be improved for floating point types Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org GCC target triplet: powerpc*-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27887