[llvm] 2a43a44 - [NFCI][DAGCombiner] `foldExtendVectorInregToExtendOfSubvector()`: just build new VT

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 4 14:37:15 PST 2023


Author: Roman Lebedev
Date: 2023-01-05T01:33:24+03:00
New Revision: 2a43a4478cb7e8df4c37714ee956423352abdbac

URL: https://github.com/llvm/llvm-project/commit/2a43a4478cb7e8df4c37714ee956423352abdbac
DIFF: https://github.com/llvm/llvm-project/commit/2a43a4478cb7e8df4c37714ee956423352abdbac.diff

LOG: [NFCI][DAGCombiner] `foldExtendVectorInregToExtendOfSubvector()`: just build new VT

Changing element type seems to not play well with non-simple types,
even though we are operating on EVT's here.

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 0ace0ed689be..0f4d6fbb0e4f 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -13554,8 +13554,9 @@ foldExtendVectorInregToExtendOfSubvector(SDNode *N, const TargetLowering &TLI,
 
   SDValue Src = N->getOperand(0);
   EVT VT = N->getValueType(0);
-  EVT SrcVT =
-      VT.changeVectorElementType(Src.getValueType().getVectorElementType());
+  EVT SrcVT = EVT::getVectorVT(*DAG.getContext(),
+                               Src.getValueType().getVectorElementType(),
+                               VT.getVectorElementCount());
 
   assert((InregOpcode == ISD::SIGN_EXTEND_VECTOR_INREG ||
           InregOpcode == ISD::ZERO_EXTEND_VECTOR_INREG ||


        


More information about the llvm-commits mailing list