since i32 is not legal in riscv64.
It always promoted to i64 before emitting lib call and
for conversions like double to int and double to unsigned int.
wrong lib call is emitted.
Example which libcall difference between gcc and clang.
https://godbolt.org/z/CCkJmq
This patch corrects that.
This looks suspicious; do we really need the slli/srli pair here?