[llvm] [DAG] Apply Disjoint flag. (PR #118045)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 28 19:23:31 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-selectiondag
Author: fengfeng (fengfeng09)
<details>
<summary>Changes</summary>
or disjoint (or disjoint (x, c0), c1)
-->
or disjont x, or (c0, c1)
Alive2: https://alive2.llvm.org/ce/z/3wPth5
---
Full diff: https://github.com/llvm/llvm-project/pull/118045.diff
1 Files Affected:
- (modified) llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (+4-1)
``````````diff
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index 521829675ae7c3..f56930f08f68ef 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -1220,8 +1220,11 @@ SDValue DAGCombiner::reassociateOpsCommutative(unsigned Opc, const SDLoc &DL,
if (DAG.isConstantIntBuildVectorOrConstantInt(N1)) {
// Reassociate: (op (op x, c1), c2) -> (op x, (op c1, c2))
- if (SDValue OpNode = DAG.FoldConstantArithmetic(Opc, DL, VT, {N01, N1}))
+ if (SDValue OpNode = DAG.FoldConstantArithmetic(Opc, DL, VT, {N01, N1})) {
+ NewFlags.setDisjoint(Flags.hasDisjoint() &&
+ N0->getFlags().hasDisjoint());
return DAG.getNode(Opc, DL, VT, N00, OpNode, NewFlags);
+ }
return SDValue();
}
if (TLI.isReassocProfitable(DAG, N0, N1)) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/118045
More information about the llvm-commits
mailing list