Skip to content

Commit 77b2736

Browse files
committed
Fix incorrect properties for some ZA intrinsics
1 parent b090068 commit 77b2736

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
@@ -3257,14 +3257,14 @@ let TargetPrefix = "aarch64" in {
32573257
: DefaultAttrsIntrinsic<[],
32583258
[llvm_i32_ty,
32593259
llvm_anyvector_ty, LLVMMatchType<0>],
3260-
[IntrWriteMem, IntrInaccessibleMemOnly]>;
3260+
[IntrInaccessibleMemOnly]>;
32613261

32623262
class SME2_ZA_Write_VG4_Intrinsic
32633263
: DefaultAttrsIntrinsic<[],
32643264
[llvm_i32_ty,
32653265
llvm_anyvector_ty, LLVMMatchType<0>,
32663266
LLVMMatchType<0>, LLVMMatchType<0>],
3267-
[IntrWriteMem, IntrInaccessibleMemOnly]>;
3267+
[IntrInaccessibleMemOnly]>;
32683268

32693269
class SVE2_VG2_Multi_Single_Intrinsic
32703270
: DefaultAttrsIntrinsic<[llvm_anyvector_ty, LLVMMatchType<0>],
@@ -3677,18 +3677,48 @@ let TargetPrefix = "aarch64" in {
36773677
//
36783678
// Multi-Single add/sub
36793679
//
3680-
def int_aarch64_sme_add_write_single_za_vg1x2 : SME2_Matrix_ArrayVector_VG2_Multi_Single_Intrinsic;
3681-
def int_aarch64_sme_sub_write_single_za_vg1x2 : SME2_Matrix_ArrayVector_VG2_Multi_Single_Intrinsic;
3682-
def int_aarch64_sme_add_write_single_za_vg1x4 : SME2_Matrix_ArrayVector_VG4_Multi_Single_Intrinsic;
3683-
def int_aarch64_sme_sub_write_single_za_vg1x4 : SME2_Matrix_ArrayVector_VG4_Multi_Single_Intrinsic;
3680+
3681+
class SME2_Add_Sub_Write_VG2_Multi_Single_Intrinsic
3682+
: DefaultAttrsIntrinsic<[],
3683+
[llvm_i32_ty,
3684+
llvm_anyvector_ty, LLVMMatchType<0>,
3685+
LLVMMatchType<0>],
3686+
[IntrInaccessibleMemOnly, IntrWriteMem]>;
3687+
3688+
class SME2_Add_Sub_Write_VG4_Multi_Single_Intrinsic
3689+
: DefaultAttrsIntrinsic<[],
3690+
[llvm_i32_ty,
3691+
llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>,
3692+
LLVMMatchType<0>],
3693+
[IntrInaccessibleMemOnly, IntrWriteMem]>;
3694+
3695+
def int_aarch64_sme_add_write_single_za_vg1x2 : SME2_Add_Sub_Write_VG2_Multi_Single_Intrinsic;
3696+
def int_aarch64_sme_sub_write_single_za_vg1x2 : SME2_Add_Sub_Write_VG2_Multi_Single_Intrinsic;
3697+
def int_aarch64_sme_add_write_single_za_vg1x4 : SME2_Add_Sub_Write_VG4_Multi_Single_Intrinsic;
3698+
def int_aarch64_sme_sub_write_single_za_vg1x4 : SME2_Add_Sub_Write_VG4_Multi_Single_Intrinsic;
36843699

36853700
//
36863701
// Multi-Multi add/sub
36873702
//
3688-
def int_aarch64_sme_add_write_za_vg1x2 : SME2_Matrix_ArrayVector_VG2_Multi_Multi_Intrinsic;
3689-
def int_aarch64_sme_sub_write_za_vg1x2 : SME2_Matrix_ArrayVector_VG2_Multi_Multi_Intrinsic;
3690-
def int_aarch64_sme_add_write_za_vg1x4 : SME2_Matrix_ArrayVector_VG4_Multi_Multi_Intrinsic;
3691-
def int_aarch64_sme_sub_write_za_vg1x4 : SME2_Matrix_ArrayVector_VG4_Multi_Multi_Intrinsic;
3703+
class SME2_Add_Sub_Write_VG2_Multi_Multi_Intrinsic
3704+
: DefaultAttrsIntrinsic<[],
3705+
[llvm_i32_ty,
3706+
llvm_anyvector_ty, LLVMMatchType<0>,
3707+
LLVMMatchType<0>, LLVMMatchType<0>],
3708+
[IntrInaccessibleMemOnly, IntrWriteMem]>;
3709+
3710+
class SME2_Add_Sub_Write_VG4_Multi_Multi_Intrinsic
3711+
: DefaultAttrsIntrinsic<[],
3712+
[llvm_i32_ty,
3713+
llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>,
3714+
LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>,
3715+
LLVMMatchType<0>, LLVMMatchType<0>],
3716+
[IntrInaccessibleMemOnly, IntrWriteMem]>;
3717+
3718+
def int_aarch64_sme_add_write_za_vg1x2 : SME2_Add_Sub_Write_VG2_Multi_Multi_Intrinsic;
3719+
def int_aarch64_sme_sub_write_za_vg1x2 : SME2_Add_Sub_Write_VG2_Multi_Multi_Intrinsic;
3720+
def int_aarch64_sme_add_write_za_vg1x4 : SME2_Add_Sub_Write_VG4_Multi_Multi_Intrinsic;
3721+
def int_aarch64_sme_sub_write_za_vg1x4 : SME2_Add_Sub_Write_VG4_Multi_Multi_Intrinsic;
36923722

36933723
// Multi-vector clamps
36943724
def int_aarch64_sve_sclamp_single_x2 : SVE2_VG2_Multi_Single_Single_Intrinsic;
@@ -3984,12 +4014,12 @@ let TargetPrefix = "aarch64" in {
39844014
def int_aarch64_sve_fp8_fmlalltt : SVE2_FP8_FMLA_FDOT;
39854015
def int_aarch64_sve_fp8_fmlalltt_lane : SVE2_FP8_FMLA_FDOT_Lane;
39864016

3987-
class SME2_FP8_CVT_X2_Single_Intrinsic
4017+
class SVE2_FP8_CVT_X2_Single_Intrinsic
39884018
: DefaultAttrsIntrinsic<[llvm_anyvector_ty, LLVMMatchType<0>],
39894019
[llvm_nxv16i8_ty],
39904020
[IntrReadMem, IntrInaccessibleMemOnly]>;
39914021

3992-
class SME2_FP8_CVT_Single_X4_Intrinsic
4022+
class SVE2_FP8_CVT_Single_X4_Intrinsic
39934023
: DefaultAttrsIntrinsic<[llvm_nxv16i8_ty],
39944024
[llvm_nxv4f32_ty, llvm_nxv4f32_ty, llvm_nxv4f32_ty, llvm_nxv4f32_ty],
39954025
[IntrReadMem, IntrInaccessibleMemOnly]>;
@@ -4053,14 +4083,14 @@ let TargetPrefix = "aarch64" in {
40534083
//
40544084
// CVT from FP8 to half-precision/BFloat16 multi-vector
40554085
//
4056-
def int_aarch64_sve_fp8_cvt1_x2 : SME2_FP8_CVT_X2_Single_Intrinsic;
4057-
def int_aarch64_sve_fp8_cvt2_x2 : SME2_FP8_CVT_X2_Single_Intrinsic;
4086+
def int_aarch64_sve_fp8_cvt1_x2 : SVE2_FP8_CVT_X2_Single_Intrinsic;
4087+
def int_aarch64_sve_fp8_cvt2_x2 : SVE2_FP8_CVT_X2_Single_Intrinsic;
40584088

40594089
//
40604090
// CVT from FP8 to deinterleaved half-precision/BFloat16 multi-vector
40614091
//
4062-
def int_aarch64_sve_fp8_cvtl1_x2 : SME2_FP8_CVT_X2_Single_Intrinsic;
4063-
def int_aarch64_sve_fp8_cvtl2_x2 : SME2_FP8_CVT_X2_Single_Intrinsic;
4092+
def int_aarch64_sve_fp8_cvtl1_x2 : SVE2_FP8_CVT_X2_Single_Intrinsic;
4093+
def int_aarch64_sve_fp8_cvtl2_x2 : SVE2_FP8_CVT_X2_Single_Intrinsic;
40644094

40654095
//
40664096
// CVT to FP8 from half-precision/BFloat16/single-precision multi-vector
@@ -4070,8 +4100,8 @@ let TargetPrefix = "aarch64" in {
40704100
[llvm_anyvector_ty, LLVMMatchType<0>],
40714101
[IntrReadMem, IntrInaccessibleMemOnly]>;
40724102

4073-
def int_aarch64_sve_fp8_cvt_x4 : SME2_FP8_CVT_Single_X4_Intrinsic;
4074-
def int_aarch64_sve_fp8_cvtn_x4 : SME2_FP8_CVT_Single_X4_Intrinsic;
4103+
def int_aarch64_sve_fp8_cvt_x4 : SVE2_FP8_CVT_Single_X4_Intrinsic;
4104+
def int_aarch64_sve_fp8_cvtn_x4 : SVE2_FP8_CVT_Single_X4_Intrinsic;
40754105

40764106
// FP8 outer product
40774107
def int_aarch64_sme_fp8_fmopa_za16 : SME_FP8_OuterProduct_Intrinsic;

0 commit comments

Comments
 (0)