In addition to schedule(simd:static) inplemented earlier (kmp_sch_static_balanced_chunked = 45) added new support for schedule(simd:guided) and schedule(simd:runtime):
kmp_sch_guided_simd = 46, /**< guided with chunk adjustment */ kmp_sch_runtime_simd = 47, /**< runtime with chunk adjustment */
These three schedules cannot be covered solely by compiler or runtime. New schedule types introduced so that the runtime library can get needed information from the compiler on the simd length (for runtime schedule) or on the need of chunk size adjustment (for guided schedule).
For simd:runtime the compiler should provide the simd length in chunk parameter (unused for non-simd schedule).
For simd:guided the runtime library should adjust the size of each chunk to be multiple of the given chunk size provided by compiler (which in turn should be multiple of simd length).
Can we add an array of schedules to iterate over:
{kmp_sch_guided_simd, kmp_sch_static_balanced_chunked} and then send those in to run_loop_64 and run_loop_32?