Hi,
This is the first patch for PR96698.
In order to support the generating of SVE functions for "omp declare
simd", this patch changes the type of the field "simdlen" of struct
cgraph_simd_clone from unsigned int to poly_uint64.
Although Richard mentioned in the PR that poly_uint64 will naturally
decay to a uint64_t in i386 target files, it seems that operation /= is not
supported yet, so I change "clonei->simdlen /= GET_MODE_BITSIZE (TYPE_MODE
(base_type));" into "clonei->simdlen = clonei->simdlen / GET_MODE_BITSIZE
(TYPE_MODE (base_type));". Also calls of to_constant () is added in printf to
pass the bootstrap. However, I have no idea whether these are the best ways to
do so, any suggestion?
Richard also suggested to define a new macro to calculate a vector multiple
instead of using constant_multiple_p in part2 patch, while I found that there
are similar situations in part1 patch as well, so I do this in part1 patch. I
didn't think of a better name, so I use "vector_unroll_factor".
Bootstrap and tested on both aarch64 and x86 Linux platform, no new
regression witnessed.
Ok for trunk?
Thanks,
Yang Yang
PR96342-part1-v1.patch
Description: PR96342-part1-v1.patch
