On Wed, 18 Oct 2023, Andre Vieira (lists) wrote: > Made it a local function and changed prototype according to comments. > > Is this OK?
OK. > gcc/ChangeLog: > * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Special > case > simd clone calls and only use types that are mapped to vectors. > (simd_clone_call_p): New helper function. > > On 30/08/2023 13:54, Richard Biener wrote: > > On Wed, 30 Aug 2023, Andre Vieira (lists) wrote: > > > >> The vect_get_smallest_scalar_type helper function was using any argument to > >> a > >> simd clone call when trying to determine the smallest scalar type that > >> would > >> be vectorized. This included the function pointer type in a MASK_CALL for > >> instance, and would result in the wrong type being selected. Instead this > >> patch special cases simd_clone_call's and uses only scalar types of the > >> original function that get transformed into vector types. > > > > Looks sensible. > > > > +bool > > +simd_clone_call_p (gimple *stmt, cgraph_node **out_node) > > > > you could return the cgraph_node * or NULL here. Are you going to > > use the function elsewhere? Otherwise put it in the same TU as > > the only use please and avoid exporting it. > > > > Richard. > > > >> gcc/ChangeLog: > >> > >> * tree-vect-data-refs.cci (vect_get_smallest_scalar_type): Special > >> case > >> simd clone calls and only use types that are mapped to vectors. > >> * tree-vect-stmts.cc (simd_clone_call_p): New helper function. > >> * tree-vectorizer.h (simd_clone_call_p): Declare new function. > >> > >> gcc/testsuite/ChangeLog: > >> > >> * gcc.dg/vect/vect-simd-clone-16f.c: Remove unnecessary differentation > >> between targets with different pointer sizes. > >> * gcc.dg/vect/vect-simd-clone-17f.c: Likewise. > >> * gcc.dg/vect/vect-simd-clone-18f.c: Likewise. > >> > > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)