@@ -3292,41 +3292,12 @@ multiclass sme2_movt_zt_to_zt<string mnemonic, bits<7> opc, SDPatternOperator in
32923292 def : InstAlias<mnemonic # "\t$ZTt, $Zt",
32933293 (!cast<Instruction>(NAME) ZTR:$ZTt, 0, ZPRAny:$Zt), 1>;
32943294
3295- def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), nxv16i8:$zn, sme_elm_idx0_3:$imm),
3296- (!cast<Instruction>(NAME # _PSEUDO) $zt, sme_elm_idx0_3:$imm, $zn)>;
3297- def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), nxv8i16:$zn, sme_elm_idx0_3:$imm),
3298- (!cast<Instruction>(NAME # _PSEUDO) $zt, sme_elm_idx0_3:$imm, $zn)>;
3299- def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), nxv4i32:$zn, sme_elm_idx0_3:$imm),
3300- (!cast<Instruction>(NAME # _PSEUDO) $zt, sme_elm_idx0_3:$imm, $zn)>;
3301- def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), nxv2i64:$zn, sme_elm_idx0_3:$imm),
3302- (!cast<Instruction>(NAME # _PSEUDO) $zt, sme_elm_idx0_3:$imm, $zn)>;
3303- def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), nxv8f16:$zn, sme_elm_idx0_3:$imm),
3304- (!cast<Instruction>(NAME # _PSEUDO) $zt, sme_elm_idx0_3:$imm, $zn)>;
3305- def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), nxv4f32:$zn, sme_elm_idx0_3:$imm),
3306- (!cast<Instruction>(NAME # _PSEUDO) $zt, sme_elm_idx0_3:$imm, $zn)>;
3307- def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), nxv2f64:$zn, sme_elm_idx0_3:$imm),
3308- (!cast<Instruction>(NAME # _PSEUDO) $zt, sme_elm_idx0_3:$imm, $zn)>;
3309- def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), nxv8bf16:$zn, sme_elm_idx0_3:$imm),
3310- (!cast<Instruction>(NAME # _PSEUDO) $zt, sme_elm_idx0_3:$imm, $zn)>;
3311-
3312- //Alias intrinsic
3313- def : Pat<(intrinsic (imm_to_zt untyped:$zt), nxv16i8:$zn),
3314- (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3315- def : Pat<(intrinsic (imm_to_zt untyped:$zt), nxv8i16:$zn),
3316- (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3317- def : Pat<(intrinsic (imm_to_zt untyped:$zt), nxv4i32:$zn),
3318- (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3319- def : Pat<(intrinsic (imm_to_zt untyped:$zt), nxv2i64:$zn),
3320- (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3321- def : Pat<(intrinsic (imm_to_zt untyped:$zt), nxv8f16:$zn),
3322- (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3323- def : Pat<(intrinsic (imm_to_zt untyped:$zt), nxv4f32:$zn),
3324- (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3325- def : Pat<(intrinsic (imm_to_zt untyped:$zt), nxv2f64:$zn),
3326- (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3327- def : Pat<(intrinsic (imm_to_zt untyped:$zt), nxv8bf16:$zn),
3328- (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3329-
3295+ foreach vt = [nxv16i8, nxv8i16, nxv4i32, nxv2i64, nxv8f16, nxv4f32, nxv2f64, nxv8bf16] in {
3296+ def : Pat<(intrinsic_lane (imm_to_zt untyped:$zt), vt:$zn, sme_elm_idx0_3:$imm),
3297+ (!cast<Instruction>(NAME # _PSEUDO) $zt, $imm, $zn)>;
3298+ def : Pat<(intrinsic (imm_to_zt untyped:$zt), vt:$zn),
3299+ (!cast<Instruction>(NAME # _PSEUDO) $zt, 0, $zn)>;
3300+ }
33303301}
33313302
33323303//===----------------------------------------------------------------------===//
0 commit comments