Re: Proposing more portable vector cod


Nick Knight
 

Hi Joseph,

Thanks for your comments. I apologize, but I don't fully understand your proposal, or the problem it solves. To help explain my confusion, here are two thoughts.

The supported LMUL (and EMUL) values are 2^k (k = -3:3) on all implementations, so software requesting EMUL > 8 is illegal everywhere.

I agree that we could make widening instructions more flexible by having them decrease VL (and LMUL) so that EMUL becomes valid. The fault-first loads adjust VL automatically, so this is not without some precedent. However, In my opinion, it's too much of a burden to do this manually (using vsetvli), and I don't see any portability issues with that.

Best,
Nick Knight


On Tue, Sep 29, 2020 at 9:32 AM Joseph Rahmeh <Joseph.Rahmeh@...> wrote:

 

In the latest vector proposal (draft of version 1.0), there is the following restriction on widening instructions (section 11.2)

 

For all widening instructions, the destination EEW and EMUL values must be a supported configuration, otherwise an illegal instruction exception is raised.

 

This seems unduly restrictive and will limit software portability.  If the destination EEW is supported but EMUL is not, it would improve code portability if strip-mining reduces VL accordingly instead of raising an exception.

 

Similarly,  code would be more portable, if any proposed combination of SEW/LMUL is replaced by SEW/LMUL2 if SEW is supported and LMUL is not.  LMUL2 would be the highest supported group multiplier for the given SEW.

 

 

Join tech-vector-ext@lists.riscv.org to automatically receive all group messages.