https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120846
Bug ID: 120846 Summary: vect_dotprod_hisi is used inconsistently with documentation and name in Test of autovectorization of different dot-prod modes Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: testsuite Assignee: unassigned at gcc dot gnu.org Reporter: amylaar at gcc dot gnu.org CC: rguenth at gcc dot gnu.org, victorldn at gcc dot gnu.org Target Milestone: --- The documentation for check_effective_target_vect_dotprod_hisi says: # Return 1 if the target supports two-way dot products on inpus of hi mode # producing si outputs, 0 otherwise. However, gcc.dg/vect/vect-dotprod-conv-optab.c uses this check to also gate a test for a v4qisi dot product. I am trying to get sensible test results for a processor family that has v2hi -> si dot product across a large part of the subtargets, but has byte vectors and the related conversions only for a much smaller subset. The udot4 function clearly requires v4qi->si dotproduct functionality to vectorize, so I can't understand the reasoning in https://gcc.gnu.org/pipermail/gcc-patches/2024-August/660867.html . Is the test supposed to check vectorization of both the hisi and qisi dotproduct, but only if both are supported, or should it check each depending on if the specific operations is expected to be vectorized?