[Bug tree-optimization/115994] New: Vectorizer failed to do vectorizaton for .sat_trunc when nunits_in / nunits_out > 2
liuhongt at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 19 02:11:37 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115994
Bug ID: 115994
Summary: Vectorizer failed to do vectorizaton for .sat_trunc
when nunits_in / nunits_out > 2
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: liuhongt at gcc dot gnu.org
Target Milestone: ---
in vectorizable_call
3324 nunits_in = TYPE_VECTOR_SUBPARTS (vectype_in);
3325 nunits_out = TYPE_VECTOR_SUBPARTS (vectype_out);
3326 if (known_eq (nunits_in * 2, nunits_out))
3327 modifier = NARROW;
3328 else if (known_eq (nunits_out, nunits_in))
3329 modifier = NONE;
3330 else if (known_eq (nunits_out * 2, nunits_in))
3331 modifier = WIDEN;
3332 else
3333 return false;
x86 AVX512 supports vpmovusqb/vpmovusqw/vpmovusdb, since current vectorizer
will keep same vector length, then nunits_in / nunits_out will be greater than
2 and failed vectorization for .sat_trunc.
More information about the Gcc-bugs
mailing list