This is an archive of the discontinued LLVM Phabricator instance.

[AMDGPU] Define 16 bit SGPR subregs
ClosedPublic

Authored by rampitec on Apr 15 2020, 3:37 PM.

Details

Summary

These are needed as a counterpart for VGPR subregs even though
there are no scalar instructions which can operate 16 bit values.
When we are materializing a constant that is done into an SGPR
and that SGPR may/will be copied into a 16 bit VGPR subreg. Such
copy is illegal. There are also similar problems if a source
operand of a 16 bit VALU instruction is an SGPR. In addition
we need to get a register with a lo16 subregister of an SGPR
RC during selection and this fails as well.

All of that makes me believe we need these subregisters as a
syntactic glue.

Diff Detail

Event Timeline

rampitec created this revision.Apr 15 2020, 3:37 PM
arsenm accepted this revision.Apr 16 2020, 9:00 AM
This revision is now accepted and ready to land.Apr 16 2020, 9:00 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptApr 16 2020, 10:35 AM