let TargetPrefix = "riscv" in { class TH_VdotTernaryWideMasked : DefaultAttrsIntrinsic< [llvm_anyvector_ty], [LLVMMatchType<0>, llvm_any_ty, llvm_anyvector_ty, LLVMScalarOrSameVectorWidth<2, llvm_i1_ty>, llvm_anyint_ty, LLVMMatchType<3>], [ImmArg>, IntrNoMem]>, RISCVVIntrinsic { let ScalarOperand = 1; let VLOperand = 4; } multiclass TH_VdotTernaryWide { def "int_riscv_" # NAME : RISCVTernaryWideUnMasked; def "int_riscv_" # NAME # "_mask" : TH_VdotTernaryWideMasked; } defm th_vmaqa : TH_VdotTernaryWide; defm th_vmaqau : TH_VdotTernaryWide; defm th_vmaqasu : TH_VdotTernaryWide; defm th_vmaqaus : TH_VdotTernaryWide; }