Hi Andrew, > On 26/08/2022 12:04, Jakub Jelinek wrote: >>> gcc/ChangeLog: >>> >>> * doc/tm.texi: Regenerate. >>> * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero >>> vecsize. >>> (simd_clone_adjust_argument_types): Likewise. >>> * target.def (compute_vecsize_and_simdlen): Document the new >>> vecsize_int and vecsize_float semantics. >> LGTM, except for a formatting nit. > diff --git a/gcc/omp-simd-clone.cc b/gcc/omp-simd-clone.cc > index 58bd68b129b..68ee4c2c3b0 100644 > --- a/gcc/omp-simd-clone.cc > +++ b/gcc/omp-simd-clone.cc > @@ -504,7 +504,10 @@ simd_clone_adjust_return_type (struct cgraph_node *node) > veclen = node->simdclone->vecsize_int; > else > veclen = node->simdclone->vecsize_float; > - veclen = exact_div (veclen, GET_MODE_BITSIZE (SCALAR_TYPE_MODE (t))); > + if (known_eq (veclen, 0)) > + veclen = node->simdclone->simdlen; > + else > + veclen = exact_div (veclen, GET_MODE_BITSIZE (SCALAR_TYPE_MODE (t))); > if (multiple_p (veclen, node->simdclone->simdlen)) > veclen = node->simdclone->simdlen; > if (POINTER_TYPE_P (t))
this broke bootstrap on (at least) i386-pc-solaris2.11 and sparc-sun-solaris2.11: In file included from /vol/gcc/src/hg/master/local/gcc/coretypes.h:475, from /vol/gcc/src/hg/master/local/gcc/omp-simd-clone.cc:23: /vol/gcc/src/hg/master/local/gcc/poly-int.h: In instantiation of 'typename if_nonpoly<Cb, bool>::type maybe_ne(const poly_int_pod<N, C>&, const Cb&) [with unsigned int N = 1; Ca = long long unsigned int; Cb = int; typename if_nonpoly<Cb, bool>::type = bool]': /vol/gcc/src/hg/master/local/gcc/omp-simd-clone.cc:507:7: required from here /vol/gcc/src/hg/master/local/gcc/poly-int.h:1295:22: error: comparison of integer expressions of different signedness: 'const long long unsigned int' and 'const int' [-Werror=sign-compare] 1295 | return a.coeffs[0] != b; | ~~~~~~~~~~~~^~~~ Changing the three instances of 0 to 0U seems to fix this. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University