[llvm] [SelectionDAG][RISCV] Move VP_REDUCE* legalization to LegalizeDAG.cpp. (PR #90522)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 29 21:07:09 PDT 2024


================
@@ -5613,6 +5668,13 @@ void SelectionDAGLegalize::PromoteNode(SDNode *Node) {
                     DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)));
     break;
   }
+  case ISD::VP_REDUCE_FADD:
+  case ISD::VP_REDUCE_FMUL:
+  case ISD::VP_REDUCE_FMAX:
+  case ISD::VP_REDUCE_FMIN:
+  case ISD::VP_REDUCE_SEQ_FADD:
----------------
topperc wrote:

I removed them because they weren't tested. The code was incorrect as written for min/max because it promoted using any_extend instead of sign/zero_extend. I can add it back and fix the bugs if you think I should. The function was introduced specifically for f16 on RISC-V.

https://github.com/llvm/llvm-project/pull/90522


More information about the llvm-commits mailing list