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.
Is there some reason to mark EXTRACT_VECTOR_ELT "Custom" when the type isn't legal?