[PATCH] D61290: globalisel][aarch64] Make G_SEXT_INREG legal from all bit sizes to s32/s64

Daniel Sanders via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 29 18:38:59 PDT 2019


dsanders created this revision.
dsanders added reviewers: bogner, aditya_nandakumar, volkan, aemerson, paquette, arsenm.
Herald added subscribers: Petar.Avramovic, hiraditya, kristof.beyls, javed.absar, rovka, wdng.
Herald added a project: LLVM.

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 <https://reviews.llvm.org/D61289>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D61290

Files:
  llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
  llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
  llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
  llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
  llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
  llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-div.mir
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-ext.mir
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-gep.mir
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-rem.mir
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-sext.mir
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir
  llvm/test/CodeGen/AArch64/GlobalISel/select-int-ext.mir
  llvm/test/CodeGen/AArch64/arm64-fastisel-gep-promote-before-add.ll
  llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61290.197240.patch
Type: text/x-patch
Size: 25114 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190430/69b7e08a/attachment.bin>


More information about the llvm-commits mailing list