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.

Reply via email to