diff --git a/clang/include/clang/Basic/riscv_vector.td b/clang/include/clang/Basic/riscv_vector.td --- a/clang/include/clang/Basic/riscv_vector.td +++ b/clang/include/clang/Basic/riscv_vector.td @@ -2007,6 +2007,7 @@ // 16.6. vmsof.m set-only-first mask bit def vmsof : RVVMaskUnaryBuiltin; +} let NoMaskPolicy = HasPassthruOperand, HasNoMaskedOverloaded = false in { // 16.8. Vector Iota Instruction @@ -2016,7 +2017,6 @@ defm vid : RVVOutBuiltinSet<"vid", "csil", [["v", "v", "v"], ["v", "Uv", "Uv"]]>; } -} // 17. Vector Permutation Instructions // 17.1. Integer Scalar Move Instructions diff --git a/llvm/include/llvm/IR/IntrinsicsRISCV.td b/llvm/include/llvm/IR/IntrinsicsRISCV.td --- a/llvm/include/llvm/IR/IntrinsicsRISCV.td +++ b/llvm/include/llvm/IR/IntrinsicsRISCV.td @@ -816,7 +816,7 @@ } // Output: (vector) // Input: (passthru, vl) - class RISCVNullaryIntrinsicTU + class RISCVID : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, llvm_anyint_ty], [IntrNoMem]>, RISCVVIntrinsic { @@ -1460,26 +1460,26 @@ let VLOperand = 2; } // Output: (vector) - // Input: (maskedoff, mask type vector_in, mask, vl) + // Input: (maskedoff, mask type vector_in, mask, vl, policy) def int_riscv_viota_mask : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>, LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>, - llvm_anyint_ty], - [IntrNoMem]>, RISCVVIntrinsic { + llvm_anyint_ty, LLVMMatchType<1>], + [ImmArg>, IntrNoMem]>, RISCVVIntrinsic { let VLOperand = 3; } // Output: (vector) // Input: (passthru, vl) - def int_riscv_vid : RISCVNullaryIntrinsicTU; + def int_riscv_vid : RISCVID; // Output: (vector) - // Input: (maskedoff, mask, vl) + // Input: (maskedoff, mask, vl, policy) def int_riscv_vid_mask : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>, - llvm_anyint_ty], - [IntrNoMem]>, RISCVVIntrinsic { + llvm_anyint_ty, LLVMMatchType<1>], + [ImmArg>, IntrNoMem]>, RISCVVIntrinsic { let VLOperand = 2; } diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td @@ -907,7 +907,7 @@ class VPseudoNullaryMask: Pseudo<(outs GetVRegNoV0.R:$rd), (ins GetVRegNoV0.R:$merge, VMaskOp:$vm, AVL:$vl, - ixlenimm:$sew), []>, RISCVVPseudo { + ixlenimm:$sew, ixlenimm:$policy), []>, RISCVVPseudo { let mayLoad = 0; let mayStore = 0; let hasSideEffects = 0; @@ -916,6 +916,7 @@ let HasSEWOp = 1; let HasMergeOp = 1; let UsesMaskPolicy = 1; + let HasVecPolicyOp = 1; let BaseInstr = !cast(PseudoToVInst.VInst); } @@ -1730,7 +1731,7 @@ Sched<[WriteVMIotV, ReadVMIotV, ReadVMask]>; def "_" # m.MX # "_TU" : VPseudoUnaryNoMaskTU, Sched<[WriteVMIotV, ReadVMIotV, ReadVMask]>; - def "_" # m.MX # "_MASK" : VPseudoUnaryMask, + def "_" # m.MX # "_MASK" : VPseudoUnaryMaskTA, Sched<[WriteVMIotV, ReadVMIotV, ReadVMask]>; } } @@ -3307,8 +3308,8 @@ vti.Log2SEW, vti.LMul, VR>; def : VPatUnaryNoMaskTU; - def : VPatUnaryMask; + def : VPatUnaryMaskTA; } } @@ -3361,10 +3362,10 @@ vti.RegClass:$merge, GPR:$vl, vti.Log2SEW)>; def : Pat<(vti.Vector (!cast(intrinsic # "_mask") (vti.Vector vti.RegClass:$merge), - (vti.Mask V0), VLOpFrag)), + (vti.Mask V0), VLOpFrag, (XLenVT timm:$policy))), (!cast(instruction#"_V_" # vti.LMul.MX # "_MASK") vti.RegClass:$merge, (vti.Mask V0), - GPR:$vl, vti.Log2SEW)>; + GPR:$vl, vti.Log2SEW, (XLenVT timm:$policy))>; } } diff --git a/llvm/test/CodeGen/RISCV/rvv/masked-tama.ll b/llvm/test/CodeGen/RISCV/rvv/masked-tama.ll --- a/llvm/test/CodeGen/RISCV/rvv/masked-tama.ll +++ b/llvm/test/CodeGen/RISCV/rvv/masked-tama.ll @@ -1267,3 +1267,47 @@ ret %a } + +declare @llvm.riscv.vid.mask.nxv1i8( + , + , + iXLen, iXLen); + +define @intrinsic_vid_mask_v_nxv1i8( %0, iXLen %1) nounwind { +; CHECK-LABEL: intrinsic_vid_mask_v_nxv1i8: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma +; CHECK-NEXT: vid.v v8, v0.t +; CHECK-NEXT: ret +entry: + %a = call @llvm.riscv.vid.mask.nxv1i8( + undef, + %0, + iXLen %1, iXLen 3) + + ret %a +} + +declare @llvm.riscv.viota.mask.nxv1i8( + , + , + , + iXLen, iXLen); + +define @intrinsic_viota_mask_m_nxv1i8_nxv1i1( %0, %1, iXLen %2) nounwind { +; CHECK-LABEL: intrinsic_viota_mask_m_nxv1i8_nxv1i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vmv1r.v v9, v0 +; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma +; CHECK-NEXT: vmv1r.v v0, v8 +; CHECK-NEXT: viota.m v8, v9, v0.t +; CHECK-NEXT: ret +entry: + %a = call @llvm.riscv.viota.mask.nxv1i8( + undef, + %0, + %1, + iXLen %2, iXLen 3) + + ret %a +} diff --git a/llvm/test/CodeGen/RISCV/rvv/masked-tamu.ll b/llvm/test/CodeGen/RISCV/rvv/masked-tamu.ll --- a/llvm/test/CodeGen/RISCV/rvv/masked-tamu.ll +++ b/llvm/test/CodeGen/RISCV/rvv/masked-tamu.ll @@ -1196,3 +1196,45 @@ ret %a } + +declare @llvm.riscv.vid.mask.nxv1i8( + , + , + iXLen, iXLen); + +define @intrinsic_vid_mask_v_nxv1i8( %0, %1, iXLen %2) nounwind { +; CHECK-LABEL: intrinsic_vid_mask_v_nxv1i8: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, mu +; CHECK-NEXT: vid.v v8, v0.t +; CHECK-NEXT: ret +entry: + %a = call @llvm.riscv.vid.mask.nxv1i8( + %0, + %1, + iXLen %2, iXLen 1) + + ret %a +} + +declare @llvm.riscv.viota.mask.nxv1i8( + , + , + , + iXLen, iXLen); + +define @intrinsic_viota_mask_m_nxv1i8_nxv1i1( %0, %1, iXLen %2) nounwind { +; CHECK-LABEL: intrinsic_viota_mask_m_nxv1i8_nxv1i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, mu +; CHECK-NEXT: viota.m v8, v0, v0.t +; CHECK-NEXT: ret +entry: + %a = call @llvm.riscv.viota.mask.nxv1i8( + %0, + %1, + %1, + iXLen %2, iXLen 1) + + ret %a +} diff --git a/llvm/test/CodeGen/RISCV/rvv/masked-tuma.ll b/llvm/test/CodeGen/RISCV/rvv/masked-tuma.ll --- a/llvm/test/CodeGen/RISCV/rvv/masked-tuma.ll +++ b/llvm/test/CodeGen/RISCV/rvv/masked-tuma.ll @@ -1196,3 +1196,45 @@ ret %a } + +declare @llvm.riscv.vid.mask.nxv1i8( + , + , + iXLen, iXLen); + +define @intrinsic_vid_mask_v_nxv1i8( %0, %1, iXLen %2) nounwind { +; CHECK-LABEL: intrinsic_vid_mask_v_nxv1i8: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli zero, a0, e8, mf8, tu, ma +; CHECK-NEXT: vid.v v8, v0.t +; CHECK-NEXT: ret +entry: + %a = call @llvm.riscv.vid.mask.nxv1i8( + %0, + %1, + iXLen %2, iXLen 2) + + ret %a +} + +declare @llvm.riscv.viota.mask.nxv1i8( + , + , + , + iXLen, iXLen); + +define @intrinsic_viota_mask_m_nxv1i8_nxv1i1( %0, %1, iXLen %2) nounwind { +; CHECK-LABEL: intrinsic_viota_mask_m_nxv1i8_nxv1i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli zero, a0, e8, mf8, tu, ma +; CHECK-NEXT: viota.m v8, v0, v0.t +; CHECK-NEXT: ret +entry: + %a = call @llvm.riscv.viota.mask.nxv1i8( + %0, + %1, + %1, + iXLen %2, iXLen 2) + + ret %a +} diff --git a/llvm/test/CodeGen/RISCV/rvv/masked-tumu.ll b/llvm/test/CodeGen/RISCV/rvv/masked-tumu.ll --- a/llvm/test/CodeGen/RISCV/rvv/masked-tumu.ll +++ b/llvm/test/CodeGen/RISCV/rvv/masked-tumu.ll @@ -1196,3 +1196,45 @@ ret %a } + +declare @llvm.riscv.vid.mask.nxv1i8( + , + , + iXLen, iXLen); + +define @intrinsic_vid_mask_v_nxv1i8( %0, %1, iXLen %2) nounwind { +; CHECK-LABEL: intrinsic_vid_mask_v_nxv1i8: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli zero, a0, e8, mf8, tu, mu +; CHECK-NEXT: vid.v v8, v0.t +; CHECK-NEXT: ret +entry: + %a = call @llvm.riscv.vid.mask.nxv1i8( + %0, + %1, + iXLen %2, iXLen 0) + + ret %a +} + +declare @llvm.riscv.viota.mask.nxv1i8( + , + , + , + iXLen, iXLen); + +define @intrinsic_viota_mask_m_nxv1i8_nxv1i1( %0, %1, iXLen %2) nounwind { +; CHECK-LABEL: intrinsic_viota_mask_m_nxv1i8_nxv1i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetvli zero, a0, e8, mf8, tu, mu +; CHECK-NEXT: viota.m v8, v0, v0.t +; CHECK-NEXT: ret +entry: + %a = call @llvm.riscv.viota.mask.nxv1i8( + %0, + %1, + %1, + iXLen %2, iXLen 0) + + ret %a +} diff --git a/llvm/test/CodeGen/RISCV/rvv/vid.ll b/llvm/test/CodeGen/RISCV/rvv/vid.ll --- a/llvm/test/CodeGen/RISCV/rvv/vid.ll +++ b/llvm/test/CodeGen/RISCV/rvv/vid.ll @@ -24,7 +24,7 @@ declare @llvm.riscv.vid.mask.nxv1i8( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv1i8( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv1i8: @@ -36,7 +36,7 @@ %a = call @llvm.riscv.vid.mask.nxv1i8( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -62,7 +62,7 @@ declare @llvm.riscv.vid.mask.nxv2i8( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv2i8( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv2i8: @@ -74,7 +74,7 @@ %a = call @llvm.riscv.vid.mask.nxv2i8( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -100,7 +100,7 @@ declare @llvm.riscv.vid.mask.nxv4i8( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv4i8( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv4i8: @@ -112,7 +112,7 @@ %a = call @llvm.riscv.vid.mask.nxv4i8( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -138,7 +138,7 @@ declare @llvm.riscv.vid.mask.nxv8i8( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv8i8( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv8i8: @@ -150,7 +150,7 @@ %a = call @llvm.riscv.vid.mask.nxv8i8( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -176,7 +176,7 @@ declare @llvm.riscv.vid.mask.nxv16i8( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv16i8( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv16i8: @@ -188,7 +188,7 @@ %a = call @llvm.riscv.vid.mask.nxv16i8( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -214,7 +214,7 @@ declare @llvm.riscv.vid.mask.nxv32i8( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv32i8( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv32i8: @@ -226,7 +226,7 @@ %a = call @llvm.riscv.vid.mask.nxv32i8( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -252,7 +252,7 @@ declare @llvm.riscv.vid.mask.nxv1i16( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv1i16( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv1i16: @@ -264,7 +264,7 @@ %a = call @llvm.riscv.vid.mask.nxv1i16( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -290,7 +290,7 @@ declare @llvm.riscv.vid.mask.nxv2i16( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv2i16( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv2i16: @@ -302,7 +302,7 @@ %a = call @llvm.riscv.vid.mask.nxv2i16( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -328,7 +328,7 @@ declare @llvm.riscv.vid.mask.nxv4i16( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv4i16( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv4i16: @@ -340,7 +340,7 @@ %a = call @llvm.riscv.vid.mask.nxv4i16( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -366,7 +366,7 @@ declare @llvm.riscv.vid.mask.nxv8i16( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv8i16( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv8i16: @@ -378,7 +378,7 @@ %a = call @llvm.riscv.vid.mask.nxv8i16( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -404,7 +404,7 @@ declare @llvm.riscv.vid.mask.nxv16i16( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv16i16( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv16i16: @@ -416,7 +416,7 @@ %a = call @llvm.riscv.vid.mask.nxv16i16( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -442,7 +442,7 @@ declare @llvm.riscv.vid.mask.nxv32i16( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv32i16( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv32i16: @@ -454,7 +454,7 @@ %a = call @llvm.riscv.vid.mask.nxv32i16( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -480,7 +480,7 @@ declare @llvm.riscv.vid.mask.nxv1i32( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv1i32( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv1i32: @@ -492,7 +492,7 @@ %a = call @llvm.riscv.vid.mask.nxv1i32( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -518,7 +518,7 @@ declare @llvm.riscv.vid.mask.nxv2i32( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv2i32( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv2i32: @@ -530,7 +530,7 @@ %a = call @llvm.riscv.vid.mask.nxv2i32( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -556,7 +556,7 @@ declare @llvm.riscv.vid.mask.nxv4i32( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv4i32( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv4i32: @@ -568,7 +568,7 @@ %a = call @llvm.riscv.vid.mask.nxv4i32( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -594,7 +594,7 @@ declare @llvm.riscv.vid.mask.nxv8i32( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv8i32( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv8i32: @@ -606,7 +606,7 @@ %a = call @llvm.riscv.vid.mask.nxv8i32( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -632,7 +632,7 @@ declare @llvm.riscv.vid.mask.nxv16i32( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv16i32( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv16i32: @@ -644,7 +644,7 @@ %a = call @llvm.riscv.vid.mask.nxv16i32( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -670,7 +670,7 @@ declare @llvm.riscv.vid.mask.nxv1i64( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv1i64( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv1i64: @@ -682,7 +682,7 @@ %a = call @llvm.riscv.vid.mask.nxv1i64( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -708,7 +708,7 @@ declare @llvm.riscv.vid.mask.nxv2i64( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv2i64( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv2i64: @@ -720,7 +720,7 @@ %a = call @llvm.riscv.vid.mask.nxv2i64( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -746,7 +746,7 @@ declare @llvm.riscv.vid.mask.nxv4i64( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv4i64( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv4i64: @@ -758,7 +758,7 @@ %a = call @llvm.riscv.vid.mask.nxv4i64( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -784,7 +784,7 @@ declare @llvm.riscv.vid.mask.nxv8i64( , , - iXLen); + iXLen, iXLen); define @intrinsic_vid_mask_v_nxv8i64( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_vid_mask_v_nxv8i64: @@ -796,7 +796,7 @@ %a = call @llvm.riscv.vid.mask.nxv8i64( %0, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } diff --git a/llvm/test/CodeGen/RISCV/rvv/viota.ll b/llvm/test/CodeGen/RISCV/rvv/viota.ll --- a/llvm/test/CodeGen/RISCV/rvv/viota.ll +++ b/llvm/test/CodeGen/RISCV/rvv/viota.ll @@ -27,7 +27,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv1i8_nxv1i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv1i8_nxv1i1: @@ -40,7 +40,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -69,7 +69,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv2i8_nxv2i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv2i8_nxv2i1: @@ -82,7 +82,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -111,7 +111,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv4i8_nxv4i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv4i8_nxv4i1: @@ -124,7 +124,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -153,7 +153,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv8i8_nxv8i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv8i8_nxv8i1: @@ -166,7 +166,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -195,7 +195,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv16i8_nxv16i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv16i8_nxv16i1: @@ -208,7 +208,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -237,7 +237,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv32i8_nxv32i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv32i8_nxv32i1: @@ -250,7 +250,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -279,7 +279,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv64i8_nxv64i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv64i8_nxv64i1: @@ -292,7 +292,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -321,7 +321,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv1i16_nxv1i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv1i16_nxv1i1: @@ -334,7 +334,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -363,7 +363,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv2i16_nxv2i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv2i16_nxv2i1: @@ -376,7 +376,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -405,7 +405,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv4i16_nxv4i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv4i16_nxv4i1: @@ -418,7 +418,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -447,7 +447,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv8i16_nxv8i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv8i16_nxv8i1: @@ -460,7 +460,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -489,7 +489,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv16i16_nxv16i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv16i16_nxv16i1: @@ -502,7 +502,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -531,7 +531,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv32i16_nxv32i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv32i16_nxv32i1: @@ -544,7 +544,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -573,7 +573,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv1i32_nxv1i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv1i32_nxv1i1: @@ -586,7 +586,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -615,7 +615,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv2i32_nxv2i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv2i32_nxv2i1: @@ -628,7 +628,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -657,7 +657,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv4i32_nxv4i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv4i32_nxv4i1: @@ -670,7 +670,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -699,7 +699,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv8i32_nxv8i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv8i32_nxv8i1: @@ -712,7 +712,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -741,7 +741,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv16i32_nxv16i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv16i32_nxv16i1: @@ -754,7 +754,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -783,7 +783,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv1i64_nxv1i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv1i64_nxv1i1: @@ -796,7 +796,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -825,7 +825,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv2i64_nxv2i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv2i64_nxv2i1: @@ -838,7 +838,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -867,7 +867,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv4i64_nxv4i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv4i64_nxv4i1: @@ -880,7 +880,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a } @@ -909,7 +909,7 @@ , , , - iXLen); + iXLen, iXLen); define @intrinsic_viota_mask_m_nxv8i64_nxv8i1( %0, %1, iXLen %2) nounwind { ; CHECK-LABEL: intrinsic_viota_mask_m_nxv8i64_nxv8i1: @@ -922,7 +922,7 @@ %0, %1, %1, - iXLen %2) + iXLen %2, iXLen 0) ret %a }