[clang] [CIR] Upstream insert op for VectorType (PR #139146)

Amr Hesham via cfe-commits cfe-commits at lists.llvm.org
Fri May 9 09:38:03 PDT 2025


================
@@ -1969,6 +1969,43 @@ def VecCreateOp : CIR_Op<"vec.create", [Pure]> {
   let hasVerifier = 1;
 }
 
+//===----------------------------------------------------------------------===//
+// VecInsertOp
+//===----------------------------------------------------------------------===//
+
+def VecInsertOp : CIR_Op<"vec.insert", [Pure,
+  TypesMatchWith<"argument type matches vector element type", "vec", "value",
+                 "cast<VectorType>($_self).getElementType()">,
+  AllTypesMatch<["result", "vec"]>]> {
+
+  let summary = "Insert one element into a vector object";
+  let description = [{
+    The `cir.vec.insert` operation replaces the element of the given vector at
+    the given index with the given value.  The new vector with the inserted
+    element is returned.
----------------
AmrDeveloper wrote:

As far as I understood, if we didn't emit StoreOp, the old vector will be in its original state, but I will double check in IR and LLVM dialect

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


More information about the cfe-commits mailing list