Ok. I will add BIAS argument too for the convenience of possible s390 needed. Even though we (RVV) don't really need it. Thank. Will send a small patch V3 soon. juzhe.zhong@rivai.ai From: Robin Dapp Date: 2023-06-15 16:58 To: juzhe.zhong@rivai.ai; rguenther CC: rdapp.gcc; gcc-patches; richard.sandiford; krebbel; uweigand; linkw Subject: Re: [PATCH V2] VECT: Support LEN_MASK_ LOAD/STORE to support flow control for length loop control >>> Can you try using the same wording for length and mask operands >>> as for len_load and maskload? Also len_load has the "bias" >>> operand which you omit here - IIRC that was added for s390 which >>> for unknown reason behaves a little different than power. If >>> len support for s390 ever extends to other ops or power or s390 >>> gain mask support for conditional code we'd likely have to adjust >>> each optab you add. Maybe it's better to add the bias operand >>> now. > > I don't know BIAS well and It seems to be a Power target dependent feature. > I think len_mask_* in general should only need lenght and mask operand. > Actually, the function argument is totally same as vp_load/vp_store in LLVM. > > Could I just keep current format (without BIAS argument)? And extend it with BIAS if > PowerPC want to use LEN_MASK_ * ? FYI: The only proper user of bias is s390 because the insns cannot handle a zero length. Power doesn't actually need it. What we do is just subtract the bias (== 1) from the length in case of n_rgroups == 1 and nothing for bias == 0 so the actually bias support code needed is small. Regards Robin