Skip to content

Usage of L_shl(), L_shl_o(), L_shl_sat() and L_shr(), L_shr_o(), L_shr_sat()

In the BASOP code there are few implementations of left shift operation (and also right shift operation): L_shl(), L_shl_o() and L_shl_sat() and all of them are getting used in the code. The only difference between L_shl() and L_shl_o() seems to be that L_shl_o() sets an overflow flag (no assert) in an overflow condition whereas L_shl() triggers an assert. Is it intentional to use L_shl_sat() or L_shl_o() instead of L_shl() and not trigger assert() in an overflow condition? If not then this should be fixed as it might be masking some issues.

Tagging @norvell for awareness (in case this was discussed previously)