@@ -3300,14 +3300,14 @@ let TargetPrefix = "aarch64" in {
33003300 : DefaultAttrsIntrinsic<[],
33013301 [llvm_i32_ty,
33023302 llvm_anyvector_ty, LLVMMatchType<0>],
3303- [IntrWriteMem, IntrInaccessibleMemOnly]>;
3303+ [IntrInaccessibleMemOnly]>;
33043304
33053305 class SME2_ZA_Write_VG4_Intrinsic
33063306 : DefaultAttrsIntrinsic<[],
33073307 [llvm_i32_ty,
33083308 llvm_anyvector_ty, LLVMMatchType<0>,
33093309 LLVMMatchType<0>, LLVMMatchType<0>],
3310- [IntrWriteMem, IntrInaccessibleMemOnly]>;
3310+ [IntrInaccessibleMemOnly]>;
33113311
33123312 class SVE2_VG2_Multi_Single_Intrinsic
33133313 : DefaultAttrsIntrinsic<[llvm_anyvector_ty, LLVMMatchType<0>],
@@ -3720,18 +3720,48 @@ let TargetPrefix = "aarch64" in {
37203720 //
37213721 // Multi-Single add/sub
37223722 //
3723- def int_aarch64_sme_add_write_single_za_vg1x2 : SME2_Matrix_ArrayVector_VG2_Multi_Single_Intrinsic;
3724- def int_aarch64_sme_sub_write_single_za_vg1x2 : SME2_Matrix_ArrayVector_VG2_Multi_Single_Intrinsic;
3725- def int_aarch64_sme_add_write_single_za_vg1x4 : SME2_Matrix_ArrayVector_VG4_Multi_Single_Intrinsic;
3726- def int_aarch64_sme_sub_write_single_za_vg1x4 : SME2_Matrix_ArrayVector_VG4_Multi_Single_Intrinsic;
3723+
3724+ class SME2_Add_Sub_Write_VG2_Multi_Single_Intrinsic
3725+ : DefaultAttrsIntrinsic<[],
3726+ [llvm_i32_ty,
3727+ llvm_anyvector_ty, LLVMMatchType<0>,
3728+ LLVMMatchType<0>],
3729+ [IntrInaccessibleMemOnly, IntrWriteMem]>;
3730+
3731+ class SME2_Add_Sub_Write_VG4_Multi_Single_Intrinsic
3732+ : DefaultAttrsIntrinsic<[],
3733+ [llvm_i32_ty,
3734+ llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>,
3735+ LLVMMatchType<0>],
3736+ [IntrInaccessibleMemOnly, IntrWriteMem]>;
3737+
3738+ def int_aarch64_sme_add_write_single_za_vg1x2 : SME2_Add_Sub_Write_VG2_Multi_Single_Intrinsic;
3739+ def int_aarch64_sme_sub_write_single_za_vg1x2 : SME2_Add_Sub_Write_VG2_Multi_Single_Intrinsic;
3740+ def int_aarch64_sme_add_write_single_za_vg1x4 : SME2_Add_Sub_Write_VG4_Multi_Single_Intrinsic;
3741+ def int_aarch64_sme_sub_write_single_za_vg1x4 : SME2_Add_Sub_Write_VG4_Multi_Single_Intrinsic;
37273742
37283743 //
37293744 // Multi-Multi add/sub
37303745 //
3731- def int_aarch64_sme_add_write_za_vg1x2 : SME2_Matrix_ArrayVector_VG2_Multi_Multi_Intrinsic;
3732- def int_aarch64_sme_sub_write_za_vg1x2 : SME2_Matrix_ArrayVector_VG2_Multi_Multi_Intrinsic;
3733- def int_aarch64_sme_add_write_za_vg1x4 : SME2_Matrix_ArrayVector_VG4_Multi_Multi_Intrinsic;
3734- def int_aarch64_sme_sub_write_za_vg1x4 : SME2_Matrix_ArrayVector_VG4_Multi_Multi_Intrinsic;
3746+ class SME2_Add_Sub_Write_VG2_Multi_Multi_Intrinsic
3747+ : DefaultAttrsIntrinsic<[],
3748+ [llvm_i32_ty,
3749+ llvm_anyvector_ty, LLVMMatchType<0>,
3750+ LLVMMatchType<0>, LLVMMatchType<0>],
3751+ [IntrInaccessibleMemOnly, IntrWriteMem]>;
3752+
3753+ class SME2_Add_Sub_Write_VG4_Multi_Multi_Intrinsic
3754+ : DefaultAttrsIntrinsic<[],
3755+ [llvm_i32_ty,
3756+ llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>,
3757+ LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>,
3758+ LLVMMatchType<0>, LLVMMatchType<0>],
3759+ [IntrInaccessibleMemOnly, IntrWriteMem]>;
3760+
3761+ def int_aarch64_sme_add_write_za_vg1x2 : SME2_Add_Sub_Write_VG2_Multi_Multi_Intrinsic;
3762+ def int_aarch64_sme_sub_write_za_vg1x2 : SME2_Add_Sub_Write_VG2_Multi_Multi_Intrinsic;
3763+ def int_aarch64_sme_add_write_za_vg1x4 : SME2_Add_Sub_Write_VG4_Multi_Multi_Intrinsic;
3764+ def int_aarch64_sme_sub_write_za_vg1x4 : SME2_Add_Sub_Write_VG4_Multi_Multi_Intrinsic;
37353765
37363766 // Multi-vector clamps
37373767 def int_aarch64_sve_sclamp_single_x2 : SVE2_VG2_Multi_Single_Single_Intrinsic;
@@ -4027,12 +4057,12 @@ let TargetPrefix = "aarch64" in {
40274057 def int_aarch64_sve_fp8_fmlalltt : SVE2_FP8_FMLA_FDOT;
40284058 def int_aarch64_sve_fp8_fmlalltt_lane : SVE2_FP8_FMLA_FDOT_Lane;
40294059
4030- class SME2_FP8_CVT_X2_Single_Intrinsic
4060+ class SVE2_FP8_CVT_X2_Single_Intrinsic
40314061 : DefaultAttrsIntrinsic<[llvm_anyvector_ty, LLVMMatchType<0>],
40324062 [llvm_nxv16i8_ty],
40334063 [IntrReadMem, IntrInaccessibleMemOnly]>;
40344064
4035- class SME2_FP8_CVT_Single_X4_Intrinsic
4065+ class SVE2_FP8_CVT_Single_X4_Intrinsic
40364066 : DefaultAttrsIntrinsic<[llvm_nxv16i8_ty],
40374067 [llvm_nxv4f32_ty, llvm_nxv4f32_ty, llvm_nxv4f32_ty, llvm_nxv4f32_ty],
40384068 [IntrReadMem, IntrInaccessibleMemOnly]>;
@@ -4096,14 +4126,14 @@ let TargetPrefix = "aarch64" in {
40964126 //
40974127 // CVT from FP8 to half-precision/BFloat16 multi-vector
40984128 //
4099- def int_aarch64_sve_fp8_cvt1_x2 : SME2_FP8_CVT_X2_Single_Intrinsic ;
4100- def int_aarch64_sve_fp8_cvt2_x2 : SME2_FP8_CVT_X2_Single_Intrinsic ;
4129+ def int_aarch64_sve_fp8_cvt1_x2 : SVE2_FP8_CVT_X2_Single_Intrinsic ;
4130+ def int_aarch64_sve_fp8_cvt2_x2 : SVE2_FP8_CVT_X2_Single_Intrinsic ;
41014131
41024132 //
41034133 // CVT from FP8 to deinterleaved half-precision/BFloat16 multi-vector
41044134 //
4105- def int_aarch64_sve_fp8_cvtl1_x2 : SME2_FP8_CVT_X2_Single_Intrinsic ;
4106- def int_aarch64_sve_fp8_cvtl2_x2 : SME2_FP8_CVT_X2_Single_Intrinsic ;
4135+ def int_aarch64_sve_fp8_cvtl1_x2 : SVE2_FP8_CVT_X2_Single_Intrinsic ;
4136+ def int_aarch64_sve_fp8_cvtl2_x2 : SVE2_FP8_CVT_X2_Single_Intrinsic ;
41074137
41084138 //
41094139 // CVT to FP8 from half-precision/BFloat16/single-precision multi-vector
@@ -4113,8 +4143,8 @@ let TargetPrefix = "aarch64" in {
41134143 [llvm_anyvector_ty, LLVMMatchType<0>],
41144144 [IntrReadMem, IntrInaccessibleMemOnly]>;
41154145
4116- def int_aarch64_sve_fp8_cvt_x4 : SME2_FP8_CVT_Single_X4_Intrinsic ;
4117- def int_aarch64_sve_fp8_cvtn_x4 : SME2_FP8_CVT_Single_X4_Intrinsic ;
4146+ def int_aarch64_sve_fp8_cvt_x4 : SVE2_FP8_CVT_Single_X4_Intrinsic ;
4147+ def int_aarch64_sve_fp8_cvtn_x4 : SVE2_FP8_CVT_Single_X4_Intrinsic ;
41184148
41194149 // FP8 outer product
41204150 def int_aarch64_sme_fp8_fmopa_za16 : SME_FP8_OuterProduct_Intrinsic;
0 commit comments