Hello,
according to the specification
SLL, SRL, and SRA perform logical left, logical right, and arithmetic right shifts on the value in register rs1 by the shift amount held in the lower 5 bits of register rs2 .
But if I look at the pattern and the selectShiftMask, I cannot see where the check is for rs2. Can somebody explain how LLVM knows that the value of the register will not be higher than 5 bits? I think that I understand the first case with ISD::AND but I don’t understand why the function returns true when no condition applies (the last return).
Thank you!
