[llvm] [DAG] Fold build_vector(build_pair()) patterns. (PR #88261)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 12 07:15:48 PDT 2024


================
@@ -23497,6 +23497,29 @@ SDValue DAGCombiner::visitBUILD_VECTOR(SDNode *N) {
       return DAG.getNode(ISD::SPLAT_VECTOR, SDLoc(N), VT, V);
     }
 
+  // build_vector(build_pair(x,y)) -> bitcast(build_pair(x,y))
+  if (N->getNumOperands() == 1 &&
+      N->getOperand(0).getOpcode() == ISD::BUILD_PAIR)
+    return DAG.getBitcast(VT, N->getOperand(0));
+
----------------
arsenm wrote:

I'm surprised you get away without any legality checks 

https://github.com/llvm/llvm-project/pull/88261


More information about the llvm-commits mailing list