AMDGPU: Insert readfirstlane for write_register of a VGPR value (#229854)
The default selection just emits a regular copy which is obviously broken if
the source value ends up in a VGPR. This intrinsic currently only supports a
handful of named SGPRs.
In the DAG, conservatively insert a readfirstlane during selection which
should fold away if the value ends up in SGPRs. In GlobalISel,
RegBankLegalize handles it like other operations that require readfirstlane
(usually writing to m0).
Also round out the error test coverage. Fixes an XFAIL'd test.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>