[llvm] [RISCV] Handle scalable ops with < EEW / 2 narrow types in combineBinOp_VLToVWBinOp_VL (PR #84158)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 18 01:21:06 PDT 2024


================
@@ -14112,7 +14102,9 @@ static SDValue combineBinOp_VLToVWBinOp_VL(SDNode *N,
                                            TargetLowering::DAGCombinerInfo &DCI,
                                            const RISCVSubtarget &Subtarget) {
   SelectionDAG &DAG = DCI.DAG;
-  if (DCI.isBeforeLegalize())
+  // Don't perform this until types are legalized and any legal i1 types are
+  // custom lowered to avoid introducing unselectable V{S,Z}EXT_VLs.
+  if (DCI.isBeforeLegalizeOps())
----------------
lukel97 wrote:

I've updated the PR to instead check that the narrow element type isn't i1 across the different possible extend ops

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


More information about the llvm-commits mailing list