I know, right shifting a negative signed type depends on the implementation, but what if I perform a left shift? For example:
int i = -1; i << 1;
otherwise, the behavior is undefined.
This includes the
if E1 has a signed type and non-negative value