[all-commits] [llvm/llvm-project] 56a8a5: [DAG] matchBinOpReduction - match subvector reduct...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sat Jul 4 07:54:37 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 56a8a5c9fe24d6d8809313633a4a5786d4fd29c6
      https://github.com/llvm/llvm-project/commit/56a8a5c9fe24d6d8809313633a4a5786d4fd29c6
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-07-04 (Sat, 04 Jul 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/test/CodeGen/X86/horizontal-reduce-add.ll
    M llvm/test/CodeGen/X86/horizontal-reduce-fadd.ll

  Log Message:
  -----------
  [DAG] matchBinOpReduction - match subvector reduction patterns beyond a matched shufflevector reduction

Currently matchBinOpReduction only handles shufflevector reduction patterns, but in many cases these only occur in the final stages of a reduction, once we're down to legal vector widths.

Before this its likely that we are performing reductions using subvector extractions to repeatedly split the source vector in half and perform the binop on the halves.

Assuming we've found a non-partial reduction, this patch continues looking for subvector reductions as far as it can beyond the last shufflevector.

Fixes PR37890




More information about the All-commits mailing list