https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114635
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu.org
--- Comment #21 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Regarding the topic of POLY_INT_CST, choosing among multiple simdlen etc:
In OpenMP 6.1, OpenMP 6.1 added the 'scaled' modifier to 'simdlen'
for aarch64/RISC-V:
simd( [scaled(<arithmetic-type> [,divisor]) :] length)
which is supposed to help with the this and related issues; the scaled(<type)
is permitted to be a runtime-only known value; divisor (default: 1) and
length must be constant positive numbers. → PR127723
This 'simd' clause can be used on loops ('omp simd' as in comment 0) but also
on declaration ('omp declare simd'), in the latter case, mangling needs to be
decided on.
In any case, parser(-only) support for 'scaled' has been implemented in
mainline (cf. PR127723), but the internal handling (targetm hooks, code gen,
...) is left to the vectorization experts. Likewise the case that the user has
not specified any 'simdlen' clause - as in comment 0.
[Once working, extending to the __simd__ might make sense - to enable GLIB's
vector math functions on aarch64/RISC-V.]