[llvm] [IR][REVEC] Define llvm.vector.broadcast intrinsic (PR #208212)

Gaƫtan Bossu via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 10:51:41 PDT 2026


================
@@ -1587,6 +1587,16 @@ multiclass sve_int_perm_dup_i<string asm> {
               (!cast<Instruction>(NAME # _D) (SUBREG_TO_REG $vec, dsub), sve_elm_idx_extdup_d:$index)>;
   }
 
+  // Broadcast whole fixed-length vectors to packed SVE types.
+  // See LowerVECTOR_REPEAT for handling of legal unpacked types.
+  foreach VT = [nxv16i8, nxv8i16, nxv8f16, nxv8bf16,
+                nxv4i32, nxv4f32, nxv2i64, nxv2f64] in {
+    def : Pat<(VT (vector_repeat (SVEType<VT>.ZSub V128:$vec))),
+              (!cast<Instruction>(NAME # _Q) (SUBREG_TO_REG $vec, zsub), (i64 0))>;
+    def : Pat<(VT (vector_repeat (SVEType<VT>.DSub V64:$vec))),
+              (!cast<Instruction>(NAME # _D) (SUBREG_TO_REG $vec, dsub), (i64 0))>;
----------------
gbossu wrote:

Removed.

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


More information about the llvm-commits mailing list