[PATCH] D27846: [SLP] Support for horizontal min/max reduction

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 16 05:47:19 PST 2016


ABataev created this revision.
ABataev added reviewers: RKSimon, spatel, mkuper, mzolotukhin, hfinkel.
ABataev added a subscriber: llvm-commits.

SLP vectorizer supports horizontal reductions for Add/FAdd binary operations. Patch adds support for horizontal min/max reductions.
Function getReductionCost() is split to getArithmeticReductionCost() for binary operation reductions and getMinMaxReductionCost() for min/max reductions.
Patch fixes PR26956.


https://reviews.llvm.org/D27846

Files:
  include/llvm/Analysis/TargetTransformInfo.h
  include/llvm/Analysis/TargetTransformInfoImpl.h
  include/llvm/CodeGen/BasicTTIImpl.h
  include/llvm/Transforms/Vectorize/SLPVectorizer.h
  lib/Analysis/CostModel.cpp
  lib/Analysis/TargetTransformInfo.cpp
  lib/Target/X86/X86TargetTransformInfo.cpp
  lib/Target/X86/X86TargetTransformInfo.h
  lib/Transforms/Vectorize/SLPVectorizer.cpp
  test/Transforms/SLPVectorizer/X86/horizontal-list.ll
  test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27846.81744.patch
Type: text/x-patch
Size: 198555 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161216/63178581/attachment-0001.bin>


More information about the llvm-commits mailing list