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