This pass applies a collection of peephole optimizers to the current design.
This pass employs the following rules:
* muldiv - Replace (A*B)/B with A
* shiftmul - Replace A>>(B*C) with A'>>(B<<K) where C and K are constants
and A' is derived from A by appropriately inserting padding
into the signal. (right variant)
Analogously, replace A<<(B*C) with appropriate selection of
output bits from A<<(B<<K). (left variant)
* shiftadd - Replace A>>(B+D) with (A'>>D)>>(B) where D is constant and
A' is derived from A by padding or cutting inaccessible bits.