_rotl in the complier guide specifies that the function "rotates src2 to the left by the amount in src1". But this implementation in host intrinsics port uses src2(b) to determine src1 rotation. It should be otherwise. "b" should be rotated. "a" specifies rotation amount.
Compiler guide:
unsigned _rotl (unsigned src1, unsigned src2); ROTL Rotates src2 to the left by the amount in src1
Host Intrinsics port:
uint32 _rotl(uint32 a, uint32 b)
{
uint16 shift;
uint32 y;
/* take 5 LSBs */
shift = b & 0x1F;
y = (a << shift) | (a >> (32-shift));
return(y);
} /* end of _rotl() function */
RV