[all-commits] [llvm/llvm-project] 963c0a: [AArch64] Look through bitcast when looking for ex...

David Green via All-commits all-commits at lists.llvm.org
Sun Jun 12 02:59:22 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 963c0a014700ab07bd7c81ffd1789425a297f0fb
      https://github.com/llvm/llvm-project/commit/963c0a014700ab07bd7c81ffd1789425a297f0fb
  Author: David Green <david.green at arm.com>
  Date:   2022-06-12 (Sun, 12 Jun 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/test/CodeGen/AArch64/highextractbitcast.ll

  Log Message:
  -----------
  [AArch64] Look through bitcast when looking for extract_high subvector

Since D61806, DAGCombiner has folded subvector_extract(bitcast(..)) to
bitcast(subvector_extract(..)), which would place a bitcast between a
subvector_extract and the operation that could be converted to a high
neon instruction (like smull2). This adds better matching for the
subvector_extract, through the tablegen extract_high PatFrags to
optionally skip the bitcast under little ending, still matchings an
extract of the high half of the input vector.

I didn't update the extract_high of a duplicate patterns, as the
ComplexPattern need names operands. I did add a extract_high_dup_v8i16
PatFrag to abstract away the common code, which can be extended in a
future patch.

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




More information about the All-commits mailing list