mpt to execute this instruction with VEX.L not equal to 0 will cause #UD.</p>
<p>If the value specified in the first source operand exceeds OperandSize -1, the COUNT value is masked.</p>
<p>SARX,SHRX, and SHLX instructions do not update flags.</p>
<h2>Operation</h2>
<pre>TEMP ← SRC1;
IF VEX.W1 and CS.L = 1
THEN
    countMASK ←3FH;
ELSE
    countMASK ←1FH;
FI
COUNT ← (SRC2 AND countMASK)
DEST[OperandSize -1] = TEMP[OperandSize -1];
DO WHILE (COUNT ≠ 0)
    IF instruction is SHLX
         THEN
     