Introduce experimental generic intrinsics for horizontal vector reductions.

Description

Introduce experimental generic intrinsics for horizontal vector reductions.

  • This change allows targets to opt-in to using them instead of the log2 shufflevector algorithm.
  • The SLP and Loop vectorizers have the common code to do shuffle reductions factored out into LoopUtils, and now have a unified interface for generating reductions regardless of the preference of the target. LoopUtils now uses TTI to determine what kind of reductions the target wants to handle.
  • For CodeGen, basic legalization support is added.

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

Details

Committed
aemersonMay 9 2017, 3:43 AM
Differential Revision
D30086: Add generic IR vector reductions
Parents
rL302513: [X86] Clang option -fuse-init-array has no effect when generating for MCU target
Branches
Unknown
Tags
Unknown