[AArch64][GlobalISel] Select zip1 and zip2
authorJessica Paquette <jpaquette@apple.com>
Tue, 2 Jun 2020 00:23:20 +0000 (17:23 -0700)
committerJessica Paquette <jpaquette@apple.com>
Wed, 3 Jun 2020 01:57:11 +0000 (18:57 -0700)
commit8b96703652ade915eb444b8dae91ae6a16d32d75
treec1f10599fa538ca4a898ecc010110db22abb69ce
parentf355c7fc2f8fb0db829313b8e43f974ed730cf6d
[AArch64][GlobalISel] Select zip1 and zip2

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. This allows us to select them.

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

Differential Revision: https://reviews.llvm.org/D80969
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 [new file with mode: 0644]
llvm/test/CodeGen/AArch64/GlobalISel/select-zip.mir [new file with mode: 0644]