How dos integer shifts work? "Itermediate Language (IL) v2.0" says that ISHL,ISHR,USHR "shift each element in src0 by the unsigned integer bit count provided by the lowest five bits of the corresponding elements in src1. According to GPU ShaderAnalyzer ISHL translates into RV600 LSHL instruction. "R600-Family Instruction Set Architecture" claims that "LSHL_INT - Scalar logical shift left. Zero is shifted into the vacated locations. Src1 is interpreted as an unsigned integer. If Src1>31, then the result is 0x0." Please explain, are the lowest 5-bits of Src1 used as a shift counter or the whole 32-bit register?