[PATCH] D80969: [AArch64][GlobalISel] Select zip1 and zip2

Jessica Paquette via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 1 18:26:14 PDT 2020


paquette created this revision.
paquette added a reviewer: aemerson.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls, rovka.
Herald added a project: LLVM.

Port the code to recognize a zip1/zip2 shuffle mask from AArch64ISelLowering and put it into the post-legalizer combiner.

Add G_ZIP1 and G_ZIP2 to AArch64InstrGISel.td and hook them up as equivalent nodes to AArch64zip1 and AArch64zip2. By doing this, we can select them without having to actually write any code in the selector. This same approach should work for several other instructions handled in `AArch64TargetLowering::LowerVECTOR_SHUFFLE`.

Minor code size improvements for SPECINT2000 at -O3 on 197.parser, 252.eon, and 186.crafty.


https://reviews.llvm.org/D80969

Files:
  llvm/lib/Target/AArch64/AArch64Combine.td
  llvm/lib/Target/AArch64/AArch64InstrGISel.td
  llvm/lib/Target/AArch64/AArch64PostLegalizerCombiner.cpp
  llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-zip.mir
  llvm/test/CodeGen/AArch64/GlobalISel/select-zip.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80969.267774.patch
Type: text/x-patch
Size: 15912 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200602/f8ec039e/attachment.bin>


More information about the llvm-commits mailing list