[clang] [llvm] Add support for flag output operand "=@cc" for SystemZ. (PR #125970)

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 24 07:39:07 PDT 2025


================
@@ -9040,10 +9041,6 @@ SDValue SystemZTargetLowering::combineSELECT_CCMASK(
   SDValue FalseVal = N->getOperand(1);
   const auto &&TrueSDVals = simplifyAssumingCCVal(TrueVal, CCReg, DAG);
   const auto &&FalseSDVals = simplifyAssumingCCVal(FalseVal, CCReg, DAG);
-  // There might be cases where TrueSDVals and FalseSDVals are empty as
-  // TrueVal and FalseVal both are non-constant, and they have already been
-  // optimized by combineCCMask, we can not take early exit here, just bypass it
-  // and directly create a new SELECT_CCMASK.
----------------
uweigand wrote:

Instead, I'd suggest to set `TrueSDVals` to `{ TrueVal, TrueVal, TrueVal, TrueVal }` here if empty (and similarly for `FalseSDVal`).  [ Or maybe combine this step with merging true/false together into a single vector based on `CCMaskVal` , which would simplify code below.]


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


More information about the llvm-commits mailing list