[llvm] 1e9e389 - [AArch64] Add a performBICiCombine function.
David Green via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 14 23:23:37 PST 2025
Author: David Green
Date: 2025-12-15T07:23:31Z
New Revision: 1e9e38983ceaccfc8b39763ec732357fdb4d65ad
URL: https://github.com/llvm/llvm-project/commit/1e9e38983ceaccfc8b39763ec732357fdb4d65ad
DIFF: https://github.com/llvm/llvm-project/commit/1e9e38983ceaccfc8b39763ec732357fdb4d65ad.diff
LOG: [AArch64] Add a performBICiCombine function.
This moves the code out of PerformDAGCombine directly, changing the return
to return SDValue(N, 0) to match other uses of SimplifyDemandedBits.
Added:
Modified:
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index 9145492eb5d71..614395c2ed06e 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -19598,6 +19598,19 @@ static SDValue performUADDVCombine(SDNode *N, SelectionDAG &DAG) {
return SDValue();
}
+static SDValue performBICiCombine(SDNode *N, SelectionDAG &DAG,
+ TargetLowering::DAGCombinerInfo &DCI) {
+ APInt DemandedBits =
+ APInt::getAllOnes(N->getValueType(0).getScalarSizeInBits());
+ APInt DemandedElts =
+ APInt::getAllOnes(N->getValueType(0).getVectorNumElements());
+
+ if (DAG.getTargetLoweringInfo().SimplifyDemandedBits(
+ SDValue(N, 0), DemandedBits, DemandedElts, DCI))
+ return SDValue(N, 0);
+ return SDValue();
+}
+
static SDValue performXorCombine(SDNode *N, SelectionDAG &DAG,
TargetLowering::DAGCombinerInfo &DCI,
const AArch64Subtarget *Subtarget) {
@@ -28399,18 +28412,8 @@ SDValue AArch64TargetLowering::PerformDAGCombine(SDNode *N,
return performFlagSettingCombine(N, DCI, ISD::ADD);
case AArch64ISD::SUBS:
return performFlagSettingCombine(N, DCI, ISD::SUB);
- case AArch64ISD::BICi: {
- APInt DemandedBits =
- APInt::getAllOnes(N->getValueType(0).getScalarSizeInBits());
- APInt DemandedElts =
- APInt::getAllOnes(N->getValueType(0).getVectorNumElements());
-
- if (DAG.getTargetLoweringInfo().SimplifyDemandedBits(
- SDValue(N, 0), DemandedBits, DemandedElts, DCI))
- return SDValue();
-
- break;
- }
+ case AArch64ISD::BICi:
+ return performBICiCombine(N, DAG, DCI);
case ISD::XOR:
return performXorCombine(N, DAG, DCI, Subtarget);
case ISD::MUL:
More information about the llvm-commits
mailing list