P extension fixed-point saturation flag CSR


Chuanhua Chang
 

P extension specification has defined a fixed-point saturation flag CSR. We need to allocate it officially in the user standard read/write address range. Should we use the same CSR for V and P extension? The current vector extension spec defines a "vxsat" CSR that can be used for both P and V extensions.

Best Regards,
Chuanhua


andrew@...
 

Analogous to the F and V extensions sharing fflags/frm, I’d think that P and V would share vxsat/vxrm.

The reasoning is slightly different from the floating-point CSRs; in that case, sharing the registers helps vectorized code to efficiently implement C99 semantics for dynamic rounding mode and exception flags. That concern doesn’t apply to fixed point (at least not today). But the other advantages still apply, namely, smaller context and fewer CSRs.

On Tue, Aug 4, 2020 at 7:36 PM Chuanhua Chang <chchang@...> wrote:
P extension specification has defined a fixed-point saturation flag CSR. We need to allocate it officially in the user standard read/write address range. Should we use the same CSR for V and P extension? The current vector extension spec defines a "vxsat" CSR that can be used for both P and V extensions.

Best Regards,
Chuanhua


Krste Asanovic
 

Yes, should share the flag.  Code that has an outer check for saturation to check if re-scaling needed, won’t want to care whether it was caused by scalar or vector routine.

Krste

On Aug 4, 2020, at 7:54 PM, Andrew Waterman <andrew@...> wrote:

Analogous to the F and V extensions sharing fflags/frm, I’d think that P and V would share vxsat/vxrm.

The reasoning is slightly different from the floating-point CSRs; in that case, sharing the registers helps vectorized code to efficiently implement C99 semantics for dynamic rounding mode and exception flags. That concern doesn’t apply to fixed point (at least not today). But the other advantages still apply, namely, smaller context and fewer CSRs.

On Tue, Aug 4, 2020 at 7:36 PM Chuanhua Chang <chchang@...> wrote:
P extension specification has defined a fixed-point saturation flag CSR. We need to allocate it officially in the user standard read/write address range. Should we use the same CSR for V and P extension? The current vector extension spec defines a "vxsat" CSR that can be used for both P and V extensions.

Best Regards,
Chuanhua




Chuanhua Chang
 

Thanks. I will update the P extension specification to use the vxsat CSR.

Best Regards,
Chuanhua