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

Attachment: PR96342-part1-v1.patch
Description: PR96342-part1-v1.patch

Reply via email to