This is an archive of the discontinued LLVM Phabricator instance.

globalisel][aarch64] Make G_SEXT_INREG legal from all bit sizes to s32/s64
AcceptedPublic

Authored by dsanders on Apr 29 2019, 6:38 PM.

Details

Summary

I had hoped to demonstrate selectively marking certain bit sizes legal but
it turns out AArch64 supports them all via SBFM/UBFM. Added a unit test to
demonstrate that instead. Targets with more limited support for bit sizes
can use .legalForTypeWithImm({{s32, 8}, {s32, 16}}).lower() and similar to
keep G_SEXT_INREG for certain sizes and lower to shifts for others.

Depends on D61289