Currently any shifts are generated by C++ backend as "splimpl::shift{string}" calls. However, when the shift amount is constant e.g. "x>>1" or "x<<2", the C++ shift may be generated.