[llvm] 3129bdc - [DAG] visitINSERT_VECTOR_ELT - move mergeInsertEltWithShuffle / combineInsertEltToShuffle folds after canonicalization
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 20 06:57:42 PST 2023
Author: Simon Pilgrim
Date: 2023-01-20T14:57:33Z
New Revision: 3129bdce8dddefbf03ab3ef52170132eb4bcf929
URL: https://github.com/llvm/llvm-project/commit/3129bdce8dddefbf03ab3ef52170132eb4bcf929
DIFF: https://github.com/llvm/llvm-project/commit/3129bdce8dddefbf03ab3ef52170132eb4bcf929.diff
LOG: [DAG] visitINSERT_VECTOR_ELT - move mergeInsertEltWithShuffle / combineInsertEltToShuffle folds after canonicalization
Noticed while triaging D127115 regressions - there's no need to attempt these costly folds until after the easy canonicalization cases have been addressed
Added:
Modified:
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index 4e3afebe268f..3b8a136f0d55 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -20149,12 +20149,6 @@ SDValue DAGCombiner::visitINSERT_VECTOR_ELT(SDNode *N) {
// We must know which element is being inserted for folds below here.
unsigned Elt = IndexC->getZExtValue();
- if (SDValue Shuf = mergeInsertEltWithShuffle(N, Elt))
- return Shuf;
-
- if (SDValue Shuf = combineInsertEltToShuffle(N, Elt))
- return Shuf;
-
// Handle <1 x ???> vector insertion special cases.
if (NumElts == 1) {
// insert_vector_elt(x, extract_vector_elt(y, 0), 0) -> y
@@ -20184,6 +20178,12 @@ SDValue DAGCombiner::visitINSERT_VECTOR_ELT(SDNode *N) {
}
}
+ if (SDValue Shuf = mergeInsertEltWithShuffle(N, Elt))
+ return Shuf;
+
+ if (SDValue Shuf = combineInsertEltToShuffle(N, Elt))
+ return Shuf;
+
// Attempt to convert an insert_vector_elt chain into a legal build_vector.
if (!LegalOperations || TLI.isOperationLegal(ISD::BUILD_VECTOR, VT)) {
// vXi1 vector - we don't need to recurse.
More information about the llvm-commits
mailing list