AMDGPU: Copy 16-bit arguments in 32-bit registers as i32 and truncate (#242681)
A 16-bit argument passed in an SGPR, or in a VGPR without real true16,
lives in the low half of a full 32-bit register. Copy the argument as
i32 and truncate it rather than reading it with a 16-bit CopyFromReg of
the 32-bit live-in register. With real true16 a 16-bit VGPR value has
its own register class, so it is still copied directly.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>