on 2022/8/12 19:14, Richard Biener wrote: > On Fri, Aug 12, 2022 at 11:41 AM Kewen.Lin <li...@linux.ibm.com> wrote: >> >> Hi, >> >> As PR106322 shows, in some cases for some vector type whose >> TYPE_MODE is a scalar integral mode instead of a vector mode, >> it's possible to obtain wrong target support information when >> querying with the scalar integral mode. For example, for the >> test case in PR106322, on ppc64 32bit vectorizer gets vector >> type "vector(2) short unsigned int" for scalar type "short >> unsigned int", its mode is SImode instead of V2HImode. The >> target support querying checks umul_highpart optab with SImode >> and considers it's supported, then vectorizer further generates >> .MULH IFN call for that vector type. Unfortunately it's wrong >> to use SImode support for that vector type multiply highpart >> here. >> >> This patch is to teach vectorizable_call analysis not to allow >> vect_emulated_vector_p type for both vectype_in and vectype_out >> as Richi suggested. >> >> Bootstrapped and regtested on x86_64-redhat-linux, >> aarch64-linux-gnu and powerpc64{,le}-linux-gnu. >> >> Is it ok for trunk? > > OK for trunk. > >> If it's ok, I guess we want this to be >> backported? > > Yes, but you just missed the RC for 12.2 so please wait until after GCC 12.2 > is released and the branch is open again. The testcase looks mightly > complicated > so fallout there might be well possible as well ;) I suppose it wasn't > possible > to craft a simple C testcase after the analysis?
Thanks for the hints! Let me give it a try next week and get back to you then. BR, Kewen