This patch adds vector-predicated ("VP") reduction intrinsics corresponding to
each of the existing unpredicated llvm.vector.reduce.* versions. Unlike the
unpredicated reductions, all VP reductions have a start value. This start value
is returned when the no vector element is active.
Support for expansion on targets without native vector-predication support is
included.
This patch is based on the "reduction
slice" of the LLVM-VP reference patch
(https://reviews.llvm.org/D57504).
With the start value added, I think it's the second operand now?