[llvm] [X86] X86TargetLowering::computeKnownBitsForTargetNode - add X86ISD::VPMADD52L\H handling (PR #156349)
Hongyu Chen via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 6 10:33:24 PDT 2025
=?utf-8?b?6buD5ZyL5bqt?= <we3223 at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/156349 at github.com>
================
@@ -38994,9 +38994,32 @@ void X86TargetLowering::computeKnownBitsForTargetNode(const SDValue Op,
computeKnownBitsForPSADBW(LHS, RHS, Known, DemandedElts, DAG, Depth);
break;
}
+
}
break;
}
+ case X86ISD::VPMADD52L:
+ case X86ISD::VPMADD52H: {
+ EVT VT = Op.getValueType();
+ if (!VT.isVector() || VT.getScalarSizeInBits() != 64) {
+ Known.resetAll();
+ return;
+ }
+ KnownBits K0 =
+ DAG.computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1);
+ KnownBits K1 =
+ DAG.computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1);
+ KnownBits KAcc =
+ DAG.computeKnownBits(Op.getOperand(2), DemandedElts, Depth + 1);
+ K0 = K0.trunc(52);
+ K1 = K1.trunc(52);
+ KnownBits KnownMul = (Op.getOpcode() == X86ISD::VPMADD52L)
+ ? KnownBits::mul(K0, K1)
+ : KnownBits::mulhu(K0, K1);
+ KnownMul = KnownMul.zext(64);
+ Known = KnownBits::computeForAddSub(true, false, false, KAcc, KnownMul);
----------------
XChy wrote:
```suggestion
Known = KnownBits::add(KAcc, KnownMul);
```
https://github.com/llvm/llvm-project/pull/156349
More information about the llvm-commits
mailing list