[PATCH] D70185: [MIPS GlobalISel] Select andi, ori and xori

Petar Avramovic via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 13 08:00:48 PST 2019


Petar.Avramovic created this revision.
Petar.Avramovic added reviewers: atanasyan, petarj.
Herald added subscribers: llvm-commits, jrtc27, hiraditya, arichardson, rovka, sdardis.
Herald added a project: LLVM.

Introduce IntImmLeaf version of PatLeaf immZExt16 for 32-bit immediates.
Change immZExt16 with imm32ZExt16 for andi, ori and xori.
This keeps same behavior for SDAG and allows for GlobalISel selectImpl
to select 'G_CONSTANT imm' + G_AND, G_OR, G_XOR into ANDi, ORi, XORi,
respectively, when 32-bit imm satisfies imm32ZExt16 predicate: zero
extending 16 low bits of imm is equal to imm.
Large number of test changes comes from zero extending of small types
which is transformed into 'and' with bitmask in legalizer.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D70185

Files:
  llvm/lib/Target/Mips/MipsInstrInfo.td
  llvm/test/CodeGen/Mips/GlobalISel/instruction-select/bitwise.mir
  llvm/test/CodeGen/Mips/GlobalISel/instruction-select/branch.mir
  llvm/test/CodeGen/Mips/GlobalISel/instruction-select/jump_table_and_brjt.mir
  llvm/test/CodeGen/Mips/GlobalISel/instruction-select/mul.mir
  llvm/test/CodeGen/Mips/GlobalISel/instruction-select/phi.mir
  llvm/test/CodeGen/Mips/GlobalISel/instruction-select/select.mir
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/add.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/bitwise.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/branch.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/constants.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/fptosi_and_fptoui.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/icmp.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/jump_table_and_brjt.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/long_ambiguous_chain_s32.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/long_ambiguous_chain_s64.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/mul.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/phi.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/rem_and_div.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/select.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/sitofp_and_uitofp.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/sub.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/test_TypeInfoforMF.ll
  llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/truncStore_and_aExtLoad.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70185.229102.patch
Type: text/x-patch
Size: 93902 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191113/5c35ccff/attachment-0001.bin>


More information about the llvm-commits mailing list