https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102575
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |tree-optimization Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2021-10-03 Severity|normal |enhancement --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- /app/example.cpp:5:1: note: === vect_slp_analyze_bb === /app/example.cpp:5:1: note: === vect_analyze_data_refs === /app/example.cpp:5:1: missed: not vectorized: no vectype for stmt: *a_2(D) = __complex__ (1.0e+0, 0.0); scalar_type: complex double /app/example.cpp:5:1: missed: not vectorized: no vectype for stmt: MEM[(complex double *)a_2(D) + 16B] = __complex__ (1.0e+0, 0.0); scalar_type: complex double /app/example.cpp:5:1: note: === vect_analyze_data_ref_accesses === /app/example.cpp:5:1: missed: not vectorized: no grouped stores in basic block. /app/example.cpp:5:1: note: ***** Analysis failed with vector mode VOID void test (complex double * a) Yes SLP does not understand how to handle complex double And then expand splits the complex type store into two different stores.