Hi Robin, on 2021/10/28 下午10:44, Robin Dapp wrote: > Hi, > > as discussed in > https://gcc.gnu.org/pipermail/gcc-patches/2021-October/582627.html this > introduces a bias parameter for the len_load/len_store ifns as well as > optabs that is meant to distinguish between Power and s390 variants. > The default is a bias of 0, while in s390's case vll/vstl do not support > lengths of zero bytes and a bias of -1 should be used. > > Bootstrapped and regtested on Power9 (--with-cpu=power9) and s390 > (--with-arch=z15). > > The tiny changes in the Power backend I will post separately. >
Thanks for extending this! I guess your separated Power (rs6000) patch will be committed with this one together? otherwise I'm worried that those existing rs6000 partial vector cases could fail since the existing rs6000 optabs miss the new operand which isn't optional. You might need to update the documentation doc/md.texi for the new operand in sections len_load_@var{m} and len_store_@var{m}, and might want to add the costing consideration for this non-zero biasing in hunk " else if (LOOP_VINFO_FULLY_WITH_LENGTH_P (loop_vinfo)) { " of function vect_estimate_min_profitable_iters. I may think too much, it seems we can have one assertion in function vect_verify_loop_lens to ensure the (internal_len_load_bias_supported == internal_len_load_bias_supported) to avoid some mixed biasing cases from some weird targets or optab typos. BR, Kewen