This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU/GlobalISel: Fix some illegal scalar argument types
ClosedPublic

Authored by arsenm on Feb 24 2020, 3:46 PM.

Details

Summary

Fixes integrs that don't evenly divide to i32 pieces. We should
probably extract some of the code in the legalizer to start handling
argument breakdowns. I'm dissatisfied with the argument lowering's
handling of vectors for example, and we should not be producing the
weird G_EXTRACTs we do now.

Diff Detail

Event Timeline

arsenm created this revision.Feb 24 2020, 3:46 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 24 2020, 3:46 PM
foad added inline comments.Mar 10 2020, 2:38 AM
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-function-args.ll
258

Isn't the whole point of the zeroext attribute that you don't need an explicit G_ZEXT here? You can just use [[MV]] directly.

arsenm marked an inline comment as done.Mar 10 2020, 8:51 AM
arsenm added inline comments.
llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-function-args.ll
258

We need an equivalent of ISD::AssertZext, but don't have it. This is serving as a placeholder

This revision is now accepted and ready to land.Mar 15 2020, 10:11 PM