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