When the 'multiply x by 2*n` are compiled into shift left, the SHL const seems to be wrong. It could also because we do not align memory address spec or the semantic of GEP.