[PATCH] D80867: [x86][WIP] form reduction intrinsics over raw IR

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat May 30 06:52:25 PDT 2020


spatel created this revision.
spatel added reviewers: craig.topper, RKSimon.
Herald added subscribers: zzheng, hiraditya, mcrosier.
Herald added a project: LLVM.

This flips the switch on forming reduction intrinsics in the vectorizers. The IR diffs seem ok, but that doesn't provide any info on what happens in expansion/codegen. I will see if we can expose any obvious bugs using PhaseOrdering IR tests that include the expansion pass.

A motivating example is seen in https://bugs.llvm.org/show_bug.cgi?id=43953#c2 - if we had intrinsics there, we might get CGP or InstCombine to fold them.


https://reviews.llvm.org/D80867

Files:
  llvm/lib/Target/X86/X86TargetTransformInfo.h
  llvm/test/Transforms/LoopVectorize/X86/imprecise-through-phis.ll
  llvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
  llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
  llvm/test/Transforms/LoopVectorize/X86/pr35432.ll
  llvm/test/Transforms/LoopVectorize/X86/pr42674.ll
  llvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll
  llvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll
  llvm/test/Transforms/LoopVectorize/X86/tail_loop_folding.ll
  llvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR35628_1.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR35628_2.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR40310.ll
  llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
  llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
  llvm/test/Transforms/SLPVectorizer/X86/horizontal.ll
  llvm/test/Transforms/SLPVectorizer/X86/reassociated-loads.ll
  llvm/test/Transforms/SLPVectorizer/X86/reduction.ll
  llvm/test/Transforms/SLPVectorizer/X86/reduction_loads.ll
  llvm/test/Transforms/SLPVectorizer/X86/reduction_unrolled.ll
  llvm/test/Transforms/SLPVectorizer/X86/remark_horcost.ll
  llvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll
  llvm/test/Transforms/SLPVectorizer/X86/reverse_extract_elements.ll
  llvm/test/Transforms/SLPVectorizer/X86/scheduling.ll
  llvm/test/Transforms/SLPVectorizer/X86/undef_vect.ll
  llvm/test/Transforms/SLPVectorizer/X86/used-reduced-op.ll
  llvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80867.267454.patch
Type: text/x-patch
Size: 184021 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200530/1dc3a061/attachment-0001.bin>


More information about the llvm-commits mailing list