Skip to content

Commit ca0a3e1

Browse files
committed
Fix incorrect properties for some ZA intrinsics
1 parent b98f4c4 commit ca0a3e1

File tree

1 file changed

+48
-18
lines changed

1 file changed

+48
-18
lines changed

llvm/include/llvm/IR/IntrinsicsAArch64.td

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)