This patch implements custom floating-point reduction ISD nodes that
have vector results, which are used to lower the following intrinsics:
- llvm.aarch64.sve.fadda
- llvm.aarch64.sve.faddv
- llvm.aarch64.sve.fmaxv
- llvm.aarch64.sve.fmaxnmv
- llvm.aarch64.sve.fminv
- llvm.aarch64.sve.fminnmv
SVE reduction instructions keep their result within a vector register,
with all other bits set to zero.
Changes in this patch were implemented by Paul Walker and Sander de
Smalen.
Please commit this separately.