[llvm] [SPIRV] Support selection of G_CONCAT_VECTORS (PR #201686)

Juan Manuel Martinez CaamaƱo via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 8 00:58:18 PDT 2026


================
@@ -3967,6 +3971,27 @@ bool SPIRVInstructionSelector::selectSplatVector(Register ResVReg,
   return true;
 }
 
+bool SPIRVInstructionSelector::selectConcatVectors(Register ResVReg,
+                                                   SPIRVTypeInst ResType,
+                                                   MachineInstr &I) const {
+  // Implement G_CONCAT_VECTORS using OpCompositeConstruct, which allows vector
+  // constituents that share the result's component type to be
+  // concatenated in operand order.
+  if (ResType->getOpcode() != SPIRV::OpTypeVector)
+    report_fatal_error(
+        "Cannot select G_CONCAT_VECTORS with a non-vector result");
----------------
jmmartinez wrote:

For `selectSplatVector` and `selectBuildVector` we handle `SPIRV::OpTypeArray` types.

Can the same happen for `G_CONCAT_VECTORS` ?

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


More information about the llvm-commits mailing list