Thanks for the comments. I will fix doc's description as you suggested. I personally prefer **NOT** to include BIAS in the gather/scatter since I don't known how it will be used. Let's wait for Richi or Richard more comments. Thanks. juzhe.zhong@rivai.ai From: Robin Dapp Date: 2023-06-29 23:04 To: juzhe.zhong; gcc-patches CC: rdapp.gcc; richard.sandiford; rguenther Subject: Re: [PATCH] Machine Description: Add LEN_MASK_{GATHER_LOAD, SCATTER_STORE} pattern Hi Juzhe, just looking at the documentation changes. > +@cindex @code{len_mask_gather_load@var{m}@var{n}} instruction pattern > +@item @samp{len_mask_gather_load@var{m}@var{n}} > +Like @samp{gather_load@var{m}@var{n}}, but takes an extra len operand > +as operand 5 and an extra mask operand as operand 6. Bit @var{i} of > +the mask is set and i < len if element @var{i} of the result should be > +loaded from memory. Element @var{i} of the result should be undefined > +value when either Bit @var{i} of the mask is clear or i >= len. > + I would suggest to rephrase this slightly as: "Like ... but takes an extra length operand (operand 5) as well as a mask operand (operand 6). Similar to len_maskload, the instruction loads at most (operand 5) elements from memory. Bit @var{i} of the mask is set if element @var{i} of the result should be loaded from memory and clear if element @var{i} of the result should be undefined. Mask elements @var{i} with i > (operand 5) are ignored." to make it more similar to mask_gather_load. Further improvements welcome though - not sure if we should refer to len_maskload at all because it has a bias operand and mask_gather_load doesn't. > +@cindex @code{len_mask_scatter_store@var{m}@var{n}} instruction pattern > +@item @samp{len_mask_scatter_store@var{m}@var{n}} > +Like @samp{scatter_store@var{m}@var{n}}, but takes an extra len operand as > +operand 5 and an extra mask operand as operand 6. Bit @var{i} of the mask > +is set and i < len if element @var{i} of the result should be stored to memory. > + "an extra length operand (operand 5)... The instruction stores at most (operand 5) elements of (operand 4) to memory. Bit @var{i} of the mask is set if element @var{i} of (operand 4) should be stored. Mask elements @var{i} with i > (operand 5) are ignored." Regards Robin