On Tue, Aug 30, 2022 at 06:54:49PM +0200, Rainer Orth wrote: > > --- 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.
It broke bootstrap for me on x86_64-linux and i686-linux too. I've bootstrapped/regtested the following patch on both overnight and committed to unbreak bootstrap for others. 2022-08-31 Rainer Orth <r...@cebitec.uni-bielefeld.de> Jakub Jelinek <ja...@redhat.com> * omp-simd-clone.cc (simd_clone_adjust_return_type, simd_clone_adjust_argument_types): Use known_eq (veclen, 0U) instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings. --- gcc/omp-simd-clone.cc.jj 2022-08-30 23:10:02.054456930 +0200 +++ gcc/omp-simd-clone.cc 2022-08-30 23:51:03.601664615 +0200 @@ -504,7 +504,7 @@ simd_clone_adjust_return_type (struct cg veclen = node->simdclone->vecsize_int; else veclen = node->simdclone->vecsize_float; - if (known_eq (veclen, 0)) + if (known_eq (veclen, 0U)) veclen = node->simdclone->simdlen; else veclen = exact_div (veclen, GET_MODE_BITSIZE (SCALAR_TYPE_MODE (t))); @@ -621,7 +621,7 @@ simd_clone_adjust_argument_types (struct veclen = sc->vecsize_int; else veclen = sc->vecsize_float; - if (known_eq (veclen, 0)) + if (known_eq (veclen, 0U)) veclen = sc->simdlen; else veclen @@ -676,7 +676,7 @@ simd_clone_adjust_argument_types (struct veclen = sc->vecsize_int; else veclen = sc->vecsize_float; - if (known_eq (veclen, 0)) + if (known_eq (veclen, 0U)) veclen = sc->simdlen; else veclen = exact_div (veclen, Jakub