[all-commits] [llvm/llvm-project] 5c166f: [x86] make SLM extract vector element more expensi...

RotateRight via All-commits all-commits at lists.llvm.org
Wed Nov 27 11:10:21 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5c166f1d1969e9c1e5b72aa672add429b9c22b53
      https://github.com/llvm/llvm-project/commit/5c166f1d1969e9c1e5b72aa672add429b9c22b53
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2019-11-27 (Wed, 27 Nov 2019)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/fptosi.ll
    M llvm/test/Analysis/CostModel/X86/fptoui.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-extract_subvector.ll
    M llvm/test/Analysis/CostModel/X86/vector-extract.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleaving.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hadd.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hsub.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sext.ll
    M llvm/test/Transforms/SLPVectorizer/X86/zext.ll

  Log Message:
  -----------
  [x86] make SLM extract vector element more expensive than default

I'm not sure what the effect of this change will be on all of the affected
tests or a larger benchmark, but it fixes the horizontal add/sub problems
noted here:
https://reviews.llvm.org/D59710?vs=227972&id=228095&whitespace=ignore-most#toc

The costs are based on reciprocal throughput numbers in Agner's tables for
PEXTR*; these appear to be very slow ops on Silvermont.

This is a small step towards the larger motivation discussed in PR43605:
https://bugs.llvm.org/show_bug.cgi?id=43605

Also, it seems likely that insert/extract is the source of perf regressions on
other CPUs (up to 30%) that were cited as part of the reason to revert D59710,
so maybe we'll extend the table-based approach to other subtargets.

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




More information about the All-commits mailing list