@@ -4272,9 +4272,9 @@ def : Pat<(nxv4i32 (partial_reduce_smla nxv4i32:$Acc, nxv8i16:$MulLHS, nxv8i16:$
42724272defm SQCVTN_Z2Z_StoH : sve2p1_multi_vec_extract_narrow<"sqcvtn", 0b00, int_aarch64_sve_sqcvtn_x2>;
42734273defm UQCVTN_Z2Z_StoH : sve2p1_multi_vec_extract_narrow<"uqcvtn", 0b01, int_aarch64_sve_uqcvtn_x2>;
42744274defm SQCVTUN_Z2Z_StoH : sve2p1_multi_vec_extract_narrow<"sqcvtun", 0b10, int_aarch64_sve_sqcvtun_x2>;
4275- defm SQRSHRN_Z2ZI_StoH : sve2p1_multi_vec_shift_narrow <"sqrshrn", 0b101, int_aarch64_sve_sqrshrn_x2>;
4276- defm UQRSHRN_Z2ZI_StoH : sve2p1_multi_vec_shift_narrow <"uqrshrn", 0b111, int_aarch64_sve_uqrshrn_x2>;
4277- defm SQRSHRUN_Z2ZI_StoH : sve2p1_multi_vec_shift_narrow <"sqrshrun", 0b001, int_aarch64_sve_sqrshrun_x2>;
4275+ defm SQRSHRN_Z2ZI_StoH : sve_multi_vec_shift_narrow <"sqrshrn", 0b101, int_aarch64_sve_sqrshrn_x2>;
4276+ defm UQRSHRN_Z2ZI_StoH : sve_multi_vec_shift_narrow <"uqrshrn", 0b111, int_aarch64_sve_uqrshrn_x2>;
4277+ defm SQRSHRUN_Z2ZI_StoH : sve_multi_vec_shift_narrow <"sqrshrun", 0b001, int_aarch64_sve_sqrshrun_x2>;
42784278
42794279defm WHILEGE_2PXX : sve2p1_int_while_rr_pair<"whilege", 0b000>;
42804280defm WHILEGT_2PXX : sve2p1_int_while_rr_pair<"whilegt", 0b001>;
@@ -4648,6 +4648,17 @@ let Predicates = [HasSVE2p3_or_SME2p3] in {
46484648 defm SCVTFLT_ZZ : sve2_int_to_fp_upcvt<"scvtflt", 0b10>;
46494649 defm UCVTF_ZZ : sve2_int_to_fp_upcvt<"ucvtf", 0b01>;
46504650 defm UCVTFLT_ZZ : sve2_int_to_fp_upcvt<"ucvtflt", 0b11>;
4651+
4652+ // SVE2 saturating shift right narrow by immediate and interleave
4653+ defm SQRSHRN_Z2ZI_HtoB : sve_multi_vec_round_shift_narrow<"sqrshrn", 0b101>;
4654+ defm SQRSHRUN_Z2ZI_HtoB : sve_multi_vec_round_shift_narrow<"sqrshrun", 0b001>;
4655+ defm SQSHRN_Z2ZI_HtoB : sve_multi_vec_round_shift_narrow<"sqshrn", 0b000>;
4656+ defm SQSHRUN_Z2ZI_HtoB : sve_multi_vec_round_shift_narrow<"sqshrun", 0b100>;
4657+ defm UQRSHRN_Z2ZI_HtoB : sve_multi_vec_round_shift_narrow<"uqrshrn", 0b111>;
4658+ defm UQSHRN_Z2ZI_HtoB : sve_multi_vec_round_shift_narrow<"uqshrn", 0b010>;
4659+ defm SQSHRUN_Z2ZI_StoH : sve_multi_vec_shift_narrow<"sqshrun", 0b100, null_frag>;
4660+ defm SQSHRN_Z2ZI_StoH : sve_multi_vec_shift_narrow<"sqshrn", 0b000, null_frag>;
4661+ defm UQSHRN_Z2ZI_StoH : sve_multi_vec_shift_narrow<"uqshrn", 0b010, null_frag>;
46514662} // End HasSME2p3orSVE2p3
46524663
46534664//===----------------------------------------------------------------------===//
0 commit comments