diff --git a/llvm/include/llvm/IR/IntrinsicsLoongArch.td b/llvm/include/llvm/IR/IntrinsicsLoongArch.td index f5e3d412666a2..84026aa9d3624 100644 --- a/llvm/include/llvm/IR/IntrinsicsLoongArch.td +++ b/llvm/include/llvm/IR/IntrinsicsLoongArch.td @@ -19,6 +19,10 @@ let TargetPrefix = "loongarch" in { class MaskedAtomicRMW : Intrinsic<[itype], [llvm_anyptr_ty, itype, itype, itype], [IntrArgMemOnly, NoCapture>, ImmArg>]>; +// T @llvm..T.

(any*, T, T, T, T imm); +class LoongArchMaskedAtomicRMWFiveArg + : Intrinsic<[itype], [llvm_anyptr_ty, itype, itype, itype, itype], + [IntrArgMemOnly, NoCapture>, ImmArg>]>; // We define 32-bit and 64-bit variants of the above, where T stands for i32 // or i64 respectively: @@ -31,9 +35,9 @@ multiclass MaskedAtomicRMWIntrinsics { multiclass MaskedAtomicRMWFiveOpIntrinsics { // i32 @llvm..i32.

(any*, i32, i32, i32, i32 imm); - def _i32 : MaskedAtomicRMWFiveArg; + def _i32 : LoongArchMaskedAtomicRMWFiveArg; // i64 @llvm..i64.

(any*, i64, i64, i64, i64 imm); - def _i64 : MaskedAtomicRMWFiveArg; + def _i64 : LoongArchMaskedAtomicRMWFiveArg; } defm int_loongarch_masked_atomicrmw_xchg : MaskedAtomicRMWIntrinsics; diff --git a/llvm/include/llvm/IR/IntrinsicsRISCV.td b/llvm/include/llvm/IR/IntrinsicsRISCV.td index 243100f0c7180..80c5c7035c19b 100644 --- a/llvm/include/llvm/IR/IntrinsicsRISCV.td +++ b/llvm/include/llvm/IR/IntrinsicsRISCV.td @@ -26,28 +26,28 @@ let TargetPrefix = "riscv" in { // T @llvm..T.

(any*, T, T, T imm); - class MaskedAtomicRMWFourArg + class RISCVMaskedAtomicRMWFourArg : Intrinsic<[itype], [llvm_anyptr_ty, itype, itype, itype], [IntrArgMemOnly, NoCapture>, ImmArg>]>; // T @llvm..T.

(any*, T, T, T, T imm); - class MaskedAtomicRMWFiveArg + class RISCVMaskedAtomicRMWFiveArg : Intrinsic<[itype], [llvm_anyptr_ty, itype, itype, itype, itype], [IntrArgMemOnly, NoCapture>, ImmArg>]>; // We define 32-bit and 64-bit variants of the above, where T stands for i32 // or i64 respectively: - multiclass MaskedAtomicRMWFourArgIntrinsics { + multiclass RISCVMaskedAtomicRMWFourArgIntrinsics { // i32 @llvm..i32.

(any*, i32, i32, i32 imm); - def _i32 : MaskedAtomicRMWFourArg; + def _i32 : RISCVMaskedAtomicRMWFourArg; // i64 @llvm..i32.

(any*, i64, i64, i64 imm); - def _i64 : MaskedAtomicRMWFourArg; + def _i64 : RISCVMaskedAtomicRMWFourArg; } - multiclass MaskedAtomicRMWFiveArgIntrinsics { + multiclass RISCVMaskedAtomicRMWFiveArgIntrinsics { // i32 @llvm..i32.

(any*, i32, i32, i32, i32 imm); - def _i32 : MaskedAtomicRMWFiveArg; + def _i32 : RISCVMaskedAtomicRMWFiveArg; // i64 @llvm..i64.

(any*, i64, i64, i64, i64 imm); - def _i64 : MaskedAtomicRMWFiveArg; + def _i64 : RISCVMaskedAtomicRMWFiveArg; } // These intrinsics are intended only for internal compiler use (i.e. as @@ -56,21 +56,21 @@ let TargetPrefix = "riscv" in { // @llvm.riscv.masked.atomicrmw.*.{i32,i64}.

( // ptr addr, ixlen oparg, ixlen mask, ixlenimm ordering) - defm int_riscv_masked_atomicrmw_xchg : MaskedAtomicRMWFourArgIntrinsics; - defm int_riscv_masked_atomicrmw_add : MaskedAtomicRMWFourArgIntrinsics; - defm int_riscv_masked_atomicrmw_sub : MaskedAtomicRMWFourArgIntrinsics; - defm int_riscv_masked_atomicrmw_nand : MaskedAtomicRMWFourArgIntrinsics; - defm int_riscv_masked_atomicrmw_umax : MaskedAtomicRMWFourArgIntrinsics; - defm int_riscv_masked_atomicrmw_umin : MaskedAtomicRMWFourArgIntrinsics; + defm int_riscv_masked_atomicrmw_xchg : RISCVMaskedAtomicRMWFourArgIntrinsics; + defm int_riscv_masked_atomicrmw_add : RISCVMaskedAtomicRMWFourArgIntrinsics; + defm int_riscv_masked_atomicrmw_sub : RISCVMaskedAtomicRMWFourArgIntrinsics; + defm int_riscv_masked_atomicrmw_nand : RISCVMaskedAtomicRMWFourArgIntrinsics; + defm int_riscv_masked_atomicrmw_umax : RISCVMaskedAtomicRMWFourArgIntrinsics; + defm int_riscv_masked_atomicrmw_umin : RISCVMaskedAtomicRMWFourArgIntrinsics; // Signed min and max need an extra operand to do sign extension with. // @llvm.riscv.masked.atomicrmw.{max,min}.{i32,i64}.

( // ptr addr, ixlen oparg, ixlen mask, ixlen shamt, ixlenimm ordering) - defm int_riscv_masked_atomicrmw_max : MaskedAtomicRMWFiveArgIntrinsics; - defm int_riscv_masked_atomicrmw_min : MaskedAtomicRMWFiveArgIntrinsics; + defm int_riscv_masked_atomicrmw_max : RISCVMaskedAtomicRMWFiveArgIntrinsics; + defm int_riscv_masked_atomicrmw_min : RISCVMaskedAtomicRMWFiveArgIntrinsics; // @llvm.riscv.masked.cmpxchg.{i32,i64}.

( // ptr addr, ixlen cmpval, ixlen newval, ixlen mask, ixlenimm ordering) - defm int_riscv_masked_cmpxchg : MaskedAtomicRMWFiveArgIntrinsics; + defm int_riscv_masked_cmpxchg : RISCVMaskedAtomicRMWFiveArgIntrinsics; } // TargetPrefix = "riscv" @@ -79,33 +79,33 @@ let TargetPrefix = "riscv" in { let TargetPrefix = "riscv" in { - class BitManipGPRIntrinsics + class RISCVBitManipGPRIntrinsics : DefaultAttrsIntrinsic<[llvm_any_ty], [LLVMMatchType<0>], [IntrNoMem, IntrSpeculatable]>; - class BitManipGPRGPRIntrinsics + class RISCVBitManipGPRGPRIntrinsics : DefaultAttrsIntrinsic<[llvm_any_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem, IntrSpeculatable]>; // Zbb - def int_riscv_orc_b : BitManipGPRIntrinsics; + def int_riscv_orc_b : RISCVBitManipGPRIntrinsics; // Zbc or Zbkc - def int_riscv_clmul : BitManipGPRGPRIntrinsics; - def int_riscv_clmulh : BitManipGPRGPRIntrinsics; + def int_riscv_clmul : RISCVBitManipGPRGPRIntrinsics; + def int_riscv_clmulh : RISCVBitManipGPRGPRIntrinsics; // Zbc - def int_riscv_clmulr : BitManipGPRGPRIntrinsics; + def int_riscv_clmulr : RISCVBitManipGPRGPRIntrinsics; // Zbkb - def int_riscv_brev8 : BitManipGPRIntrinsics; - def int_riscv_zip : BitManipGPRIntrinsics; - def int_riscv_unzip : BitManipGPRIntrinsics; + def int_riscv_brev8 : RISCVBitManipGPRIntrinsics; + def int_riscv_zip : RISCVBitManipGPRIntrinsics; + def int_riscv_unzip : RISCVBitManipGPRIntrinsics; // Zbkx - def int_riscv_xperm4 : BitManipGPRGPRIntrinsics; - def int_riscv_xperm8 : BitManipGPRGPRIntrinsics; + def int_riscv_xperm4 : RISCVBitManipGPRGPRIntrinsics; + def int_riscv_xperm8 : RISCVBitManipGPRGPRIntrinsics; } // TargetPrefix = "riscv" //===----------------------------------------------------------------------===// diff --git a/llvm/include/llvm/IR/IntrinsicsRISCVXTHead.td b/llvm/include/llvm/IR/IntrinsicsRISCVXTHead.td index 5af10a3e197aa..c851f34a41c7d 100644 --- a/llvm/include/llvm/IR/IntrinsicsRISCVXTHead.td +++ b/llvm/include/llvm/IR/IntrinsicsRISCVXTHead.td @@ -12,7 +12,7 @@ let TargetPrefix = "riscv" in { - class TH_VdotTernaryWideMasked + class RISCV_TH_VdotTernaryWideMasked : DefaultAttrsIntrinsic< [llvm_anyvector_ty], [LLVMMatchType<0>, llvm_any_ty, llvm_anyvector_ty, LLVMScalarOrSameVectorWidth<2, llvm_i1_ty>, @@ -22,13 +22,13 @@ let TargetPrefix = "riscv" in { let VLOperand = 4; } - multiclass TH_VdotTernaryWide { + multiclass RISCV_TH_VdotTernaryWide { def "int_riscv_" # NAME : RISCVTernaryWideUnMasked; - def "int_riscv_" # NAME # "_mask" : TH_VdotTernaryWideMasked; + def "int_riscv_" # NAME # "_mask" : RISCV_TH_VdotTernaryWideMasked; } - defm th_vmaqa : TH_VdotTernaryWide; - defm th_vmaqau : TH_VdotTernaryWide; - defm th_vmaqasu : TH_VdotTernaryWide; - defm th_vmaqaus : TH_VdotTernaryWide; + defm th_vmaqa : RISCV_TH_VdotTernaryWide; + defm th_vmaqau : RISCV_TH_VdotTernaryWide; + defm th_vmaqasu : RISCV_TH_VdotTernaryWide; + defm th_vmaqaus : RISCV_TH_VdotTernaryWide; }