. . .
Therefore, on 8086/8088, etc.,
>> long long int A;
>> int B;
>> A = B << 32;
might get compiled into
MOV CL, 32
SHL X, CL
which would clear any number 32 bits or less.
BUT, on 80386, it might get compiled into
SHL X,32
or
MOV CL,32
SHL X,CL
and either way, would do NOTHING!
because, starting with the 80386?, the shift amount is ANDed with 1Fh.
So, should the compiler optimize that to
MOV X,0
or
NOP
?