[all-commits] [llvm/llvm-project] 3495b8: [AArch64][GlobalISel] Add G_EXT and select ext usi...

Jessica Paquette via All-commits all-commits at lists.llvm.org
Mon Jun 15 12:21:24 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3495b884deb537fe8f66ec8711ad9b9dacbba366
      https://github.com/llvm/llvm-project/commit/3495b884deb537fe8f66ec8711ad9b9dacbba366
  Author: Jessica Paquette <jpaquette at apple.com>
  Date:   2020-06-15 (Mon, 15 Jun 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64Combine.td
    M llvm/lib/Target/AArch64/AArch64InstrGISel.td
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-ext.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-shuffle-splat.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-zip.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/select-ext.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Add G_EXT and select ext using it

Add selection support for ext via a new opcode, G_EXT and a post-legalizer
combine which matches it.

Add an `applyEXT` function, because the AArch64ext patterns require a register
for the immediate. So, we have to create a G_CONSTANT to get these without
writing new patterns or modifying the existing ones.

Tests are the same as arm64-ext.ll.

Also prevent ext from firing on the zip test. It has higher priority, so we
don't want it potentially getting in the way of mask tests.

Also fix up the shuffle-splat test, because ext is now selected there. The
test was incorrectly regbank selected before, which could cause a verifier
failure when you emit copies.

Differential Revision: https://reviews.llvm.org/D81436




More information about the All-commits mailing list