SystemC data types were not originally intended to be synthesized and exhibit some behaviors that are sub-optimal for hardware. The operation on Vivado HLS data types behave a bit differently than operation on SystemC data types.
For shift left operation:
Vivado HLS ap_(u)int will shift then assign, hence removing the upper bits.
SystemC both sc_big(u)int and sc_(u)int will assign then shift, hence preserving the upper bits.