AArch64 NCG: `MO_U_Shr` W8/W16 uses ASR instead of LSR
## Summary
In `compiler/GHC/CmmToAsm/AArch64/CodeGen.hs` (~lines 965-978), the variable-shift path for `MO_U_Shr` at W8 and W16 widths emits `ASR` (arithmetic shift right) after zero-extending with `UXTB`/`UXTH`. Since this is an unsigned shift, it should emit `LSR` (logical shift right) instead.
`ASR` sign-extends the shifted-out bits, which is wrong for an unsigned operation. The zero-extension beforehand masks the issue for small values, but for values with the high bit set within their width (e.g. 0x80 for W8), `ASR` will propagate the sign bit incorrectly.
## Proposed fix
Replace `ASR` with `LSR` in both the W8 and W16 variable-shift `MO_U_Shr` cases.
## Environment
* GHC version used: 9.15
issue