[llvm] 4592bb7 - visitINSERT_VECTOR_ELT - pull out repeated dyn_cast. NFCI.

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 5 05:31:17 PST 2020


Author: Simon Pilgrim
Date: 2020-02-05T13:30:54Z
New Revision: 4592bb71954707eda04ee9cc09df84217e5f3bd5

URL: https://github.com/llvm/llvm-project/commit/4592bb71954707eda04ee9cc09df84217e5f3bd5
DIFF: https://github.com/llvm/llvm-project/commit/4592bb71954707eda04ee9cc09df84217e5f3bd5.diff

LOG: visitINSERT_VECTOR_ELT - pull out repeated dyn_cast. NFCI.

This always gets called at least once.

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 f8b90ae6274a..9625134eae78 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -16900,11 +16900,11 @@ SDValue DAGCombiner::visitINSERT_VECTOR_ELT(SDNode *N) {
 
   EVT VT = InVec.getValueType();
   unsigned NumElts = VT.getVectorNumElements();
+  auto *IndexC = dyn_cast<ConstantSDNode>(EltNo);
 
   // Insert into out-of-bounds element is undefined.
-  if (auto *IndexC = dyn_cast<ConstantSDNode>(EltNo))
-    if (IndexC->getZExtValue() >= VT.getVectorNumElements())
-      return DAG.getUNDEF(VT);
+  if (IndexC && IndexC->getZExtValue() >= VT.getVectorNumElements())
+    return DAG.getUNDEF(VT);
 
   // Remove redundant insertions:
   // (insert_vector_elt x (extract_vector_elt x idx) idx) -> x
@@ -16912,7 +16912,6 @@ SDValue DAGCombiner::visitINSERT_VECTOR_ELT(SDNode *N) {
       InVec == InVal.getOperand(0) && EltNo == InVal.getOperand(1))
     return InVec;
 
-  auto *IndexC = dyn_cast<ConstantSDNode>(EltNo);
   if (!IndexC) {
     // If this is variable insert to undef vector, it might be better to splat:
     // inselt undef, InVal, EltNo --> build_vector < InVal, InVal, ... >


        


More information about the llvm-commits mailing list