case RISCV::BI__builtin_rvv_vget_v_i8m2_i8m1:
case RISCV::BI__builtin_rvv_vget_v_i8m4_i8m1:
case RISCV::BI__builtin_rvv_vget_v_i8m8_i8m1:
case RISCV::BI__builtin_rvv_vget_v_i16m2_i16m1:
case RISCV::BI__builtin_rvv_vget_v_i16m4_i16m1:
case RISCV::BI__builtin_rvv_vget_v_i16m8_i16m1:
case RISCV::BI__builtin_rvv_vget_v_i32m2_i32m1:
case RISCV::BI__builtin_rvv_vget_v_i32m4_i32m1:
case RISCV::BI__builtin_rvv_vget_v_i32m8_i32m1:
case RISCV::BI__builtin_rvv_vget_v_i64m2_i64m1:
case RISCV::BI__builtin_rvv_vget_v_i64m4_i64m1:
case RISCV::BI__builtin_rvv_vget_v_i64m8_i64m1:
case RISCV::BI__builtin_rvv_vget_v_f32m2_f32m1:
case RISCV::BI__builtin_rvv_vget_v_f32m4_f32m1:
case RISCV::BI__builtin_rvv_vget_v_f32m8_f32m1:
case RISCV::BI__builtin_rvv_vget_v_f64m2_f64m1:
case RISCV::BI__builtin_rvv_vget_v_f64m4_f64m1:
case RISCV::BI__builtin_rvv_vget_v_f64m8_f64m1:
case RISCV::BI__builtin_rvv_vget_v_u8m2_u8m1:
case RISCV::BI__builtin_rvv_vget_v_u8m4_u8m1:
case RISCV::BI__builtin_rvv_vget_v_u8m8_u8m1:
case RISCV::BI__builtin_rvv_vget_v_u16m2_u16m1:
case RISCV::BI__builtin_rvv_vget_v_u16m4_u16m1:
case RISCV::BI__builtin_rvv_vget_v_u16m8_u16m1:
case RISCV::BI__builtin_rvv_vget_v_u32m2_u32m1:
case RISCV::BI__builtin_rvv_vget_v_u32m4_u32m1:
case RISCV::BI__builtin_rvv_vget_v_u32m8_u32m1:
case RISCV::BI__builtin_rvv_vget_v_u64m2_u64m1:
case RISCV::BI__builtin_rvv_vget_v_u64m4_u64m1:
case RISCV::BI__builtin_rvv_vget_v_u64m8_u64m1:
case RISCV::BI__builtin_rvv_vget_v_i8m4_i8m2:
case RISCV::BI__builtin_rvv_vget_v_i8m8_i8m2:
case RISCV::BI__builtin_rvv_vget_v_i16m4_i16m2:
case RISCV::BI__builtin_rvv_vget_v_i16m8_i16m2:
case RISCV::BI__builtin_rvv_vget_v_i32m4_i32m2:
case RISCV::BI__builtin_rvv_vget_v_i32m8_i32m2:
case RISCV::BI__builtin_rvv_vget_v_i64m4_i64m2:
case RISCV::BI__builtin_rvv_vget_v_i64m8_i64m2:
case RISCV::BI__builtin_rvv_vget_v_f32m4_f32m2:
case RISCV::BI__builtin_rvv_vget_v_f32m8_f32m2:
case RISCV::BI__builtin_rvv_vget_v_f64m4_f64m2:
case RISCV::BI__builtin_rvv_vget_v_f64m8_f64m2:
case RISCV::BI__builtin_rvv_vget_v_u8m4_u8m2:
case RISCV::BI__builtin_rvv_vget_v_u8m8_u8m2:
case RISCV::BI__builtin_rvv_vget_v_u16m4_u16m2:
case RISCV::BI__builtin_rvv_vget_v_u16m8_u16m2:
case RISCV::BI__builtin_rvv_vget_v_u32m4_u32m2:
case RISCV::BI__builtin_rvv_vget_v_u32m8_u32m2:
case RISCV::BI__builtin_rvv_vget_v_u64m4_u64m2:
case RISCV::BI__builtin_rvv_vget_v_u64m8_u64m2:
case RISCV::BI__builtin_rvv_vget_v_i8m8_i8m4:
case RISCV::BI__builtin_rvv_vget_v_i16m8_i16m4:
case RISCV::BI__builtin_rvv_vget_v_i32m8_i32m4:
case RISCV::BI__builtin_rvv_vget_v_i64m8_i64m4:
case RISCV::BI__builtin_rvv_vget_v_f32m8_f32m4:
case RISCV::BI__builtin_rvv_vget_v_f64m8_f64m4:
case RISCV::BI__builtin_rvv_vget_v_u8m8_u8m4:
case RISCV::BI__builtin_rvv_vget_v_u16m8_u16m4:
case RISCV::BI__builtin_rvv_vget_v_u32m8_u32m4:
case RISCV::BI__builtin_rvv_vget_v_u64m8_u64m4:

      {
        ID = Intrinsic::experimental_vector_extract;
        ScalableVectorType *VecTy = cast<ScalableVectorType>(ResultType);
        Ops[1] = Builder.CreateMul(Ops[1],
                                   ConstantInt::get(Ops[1]->getType(),
                                                    VecTy->getMinNumElements()));
        IntrinsicTypes = {ResultType, Ops[0]->getType()};
        return Builder.CreateCall(CGM.getIntrinsic(ID, IntrinsicTypes), Ops, "");
      }
      break;
case RISCV::BI__builtin_rvv_vset_v_i8m1_i8m2:
case RISCV::BI__builtin_rvv_vset_v_i16m1_i16m2:
case RISCV::BI__builtin_rvv_vset_v_i32m1_i32m2:
case RISCV::BI__builtin_rvv_vset_v_i64m1_i64m2:
case RISCV::BI__builtin_rvv_vset_v_f32m1_f32m2:
case RISCV::BI__builtin_rvv_vset_v_f64m1_f64m2:
case RISCV::BI__builtin_rvv_vset_v_u8m1_u8m2:
case RISCV::BI__builtin_rvv_vset_v_u16m1_u16m2:
case RISCV::BI__builtin_rvv_vset_v_u32m1_u32m2:
case RISCV::BI__builtin_rvv_vset_v_u64m1_u64m2:
case RISCV::BI__builtin_rvv_vset_v_i8m1_i8m4:
case RISCV::BI__builtin_rvv_vset_v_i8m2_i8m4:
case RISCV::BI__builtin_rvv_vset_v_i16m1_i16m4:
case RISCV::BI__builtin_rvv_vset_v_i16m2_i16m4:
case RISCV::BI__builtin_rvv_vset_v_i32m1_i32m4:
case RISCV::BI__builtin_rvv_vset_v_i32m2_i32m4:
case RISCV::BI__builtin_rvv_vset_v_i64m1_i64m4:
case RISCV::BI__builtin_rvv_vset_v_i64m2_i64m4:
case RISCV::BI__builtin_rvv_vset_v_f32m1_f32m4:
case RISCV::BI__builtin_rvv_vset_v_f32m2_f32m4:
case RISCV::BI__builtin_rvv_vset_v_f64m1_f64m4:
case RISCV::BI__builtin_rvv_vset_v_f64m2_f64m4:
case RISCV::BI__builtin_rvv_vset_v_u8m1_u8m4:
case RISCV::BI__builtin_rvv_vset_v_u8m2_u8m4:
case RISCV::BI__builtin_rvv_vset_v_u16m1_u16m4:
case RISCV::BI__builtin_rvv_vset_v_u16m2_u16m4:
case RISCV::BI__builtin_rvv_vset_v_u32m1_u32m4:
case RISCV::BI__builtin_rvv_vset_v_u32m2_u32m4:
case RISCV::BI__builtin_rvv_vset_v_u64m1_u64m4:
case RISCV::BI__builtin_rvv_vset_v_u64m2_u64m4:
case RISCV::BI__builtin_rvv_vset_v_i8m1_i8m8:
case RISCV::BI__builtin_rvv_vset_v_i8m2_i8m8:
case RISCV::BI__builtin_rvv_vset_v_i8m4_i8m8:
case RISCV::BI__builtin_rvv_vset_v_i16m1_i16m8:
case RISCV::BI__builtin_rvv_vset_v_i16m2_i16m8:
case RISCV::BI__builtin_rvv_vset_v_i16m4_i16m8:
case RISCV::BI__builtin_rvv_vset_v_i32m1_i32m8:
case RISCV::BI__builtin_rvv_vset_v_i32m2_i32m8:
case RISCV::BI__builtin_rvv_vset_v_i32m4_i32m8:
case RISCV::BI__builtin_rvv_vset_v_i64m1_i64m8:
case RISCV::BI__builtin_rvv_vset_v_i64m2_i64m8:
case RISCV::BI__builtin_rvv_vset_v_i64m4_i64m8:
case RISCV::BI__builtin_rvv_vset_v_f32m1_f32m8:
case RISCV::BI__builtin_rvv_vset_v_f32m2_f32m8:
case RISCV::BI__builtin_rvv_vset_v_f32m4_f32m8:
case RISCV::BI__builtin_rvv_vset_v_f64m1_f64m8:
case RISCV::BI__builtin_rvv_vset_v_f64m2_f64m8:
case RISCV::BI__builtin_rvv_vset_v_f64m4_f64m8:
case RISCV::BI__builtin_rvv_vset_v_u8m1_u8m8:
case RISCV::BI__builtin_rvv_vset_v_u8m2_u8m8:
case RISCV::BI__builtin_rvv_vset_v_u8m4_u8m8:
case RISCV::BI__builtin_rvv_vset_v_u16m1_u16m8:
case RISCV::BI__builtin_rvv_vset_v_u16m2_u16m8:
case RISCV::BI__builtin_rvv_vset_v_u16m4_u16m8:
case RISCV::BI__builtin_rvv_vset_v_u32m1_u32m8:
case RISCV::BI__builtin_rvv_vset_v_u32m2_u32m8:
case RISCV::BI__builtin_rvv_vset_v_u32m4_u32m8:
case RISCV::BI__builtin_rvv_vset_v_u64m1_u64m8:
case RISCV::BI__builtin_rvv_vset_v_u64m2_u64m8:
case RISCV::BI__builtin_rvv_vset_v_u64m4_u64m8:

      {
        ID = Intrinsic::experimental_vector_insert;
        IntrinsicTypes = {ResultType, Ops[2]->getType()};
        ScalableVectorType *VecTy = cast<ScalableVectorType>(Ops[2]->getType());
        Ops[1] = Builder.CreateMul(Ops[1],
                                   ConstantInt::get(Ops[1]->getType(),
                                                    VecTy->getMinNumElements()));
        std::swap(Ops[1], Ops[2]);
        return Builder.CreateCall(CGM.getIntrinsic(ID, IntrinsicTypes), Ops, "");
      }
      break;
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf2_i8m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf4_i8m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf8_i8m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf2_i16m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf4_i16m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32mf2_i32m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf2_f16m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf4_f16m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32mf2_f32m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf4_i8mf2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf8_i8mf2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf4_i16mf2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf4_f16mf2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf8_i8mf4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8m1_i8m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf2_i8m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf4_i8m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf8_i8m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16m1_i16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf2_i16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf4_i16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32m1_i32m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32mf2_i32m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i64m1_i64m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16m1_f16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf2_f16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf4_f16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32m1_f32m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32mf2_f32m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f64m1_f64m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8m1_i8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8m2_i8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf2_i8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf4_i8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf8_i8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16m1_i16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16m2_i16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf2_i16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf4_i16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32m1_i32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32m2_i32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32mf2_i32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i64m1_i64m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i64m2_i64m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16m1_f16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16m2_f16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf2_f16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf4_f16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32m1_f32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32m2_f32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32mf2_f32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f64m1_f64m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f64m2_f64m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8m1_i8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8m2_i8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8m4_i8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf2_i8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf4_i8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i8mf8_i8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16m1_i16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16m2_i16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16m4_i16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf2_i16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i16mf4_i16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32m1_i32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32m2_i32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32m4_i32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i32mf2_i32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i64m1_i64m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i64m2_i64m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_i64m4_i64m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16m1_f16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16m2_f16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16m4_f16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf2_f16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f16mf4_f16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32m1_f32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32m2_f32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32m4_f32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f32mf2_f32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f64m1_f64m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f64m2_f64m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_f64m4_f64m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf2_u8m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf4_u8m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf8_u8m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf2_u16m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf4_u16m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32mf2_u32m1:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf4_u8mf2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf8_u8mf2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf4_u16mf2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf8_u8mf4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8m1_u8m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf2_u8m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf4_u8m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf8_u8m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16m1_u16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf2_u16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf4_u16m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32m1_u32m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32mf2_u32m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u64m1_u64m2:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8m1_u8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8m2_u8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf2_u8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf4_u8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf8_u8m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16m1_u16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16m2_u16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf2_u16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf4_u16m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32m1_u32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32m2_u32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32mf2_u32m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u64m1_u64m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u64m2_u64m4:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8m1_u8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8m2_u8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8m4_u8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf2_u8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf4_u8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u8mf8_u8m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16m1_u16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16m2_u16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16m4_u16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf2_u16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u16mf4_u16m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32m1_u32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32m2_u32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32m4_u32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u32mf2_u32m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u64m1_u64m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u64m2_u64m8:
case RISCV::BI__builtin_rvv_vlmul_ext_v_u64m4_u64m8:

        ID = Intrinsic::experimental_vector_insert;
        IntrinsicTypes = {ResultType, Ops[0]->getType()};
        Ops.push_back(llvm::UndefValue::get(ResultType));
        std::swap(Ops[0], Ops[1]);
        Ops.push_back(ConstantInt::get(Int64Ty, 0));
        return Builder.CreateCall(CGM.getIntrinsic(ID, IntrinsicTypes), Ops, "");
      break;
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m1_i8mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m2_i8mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m4_i8mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m8_i8mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m1_i16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m2_i16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m4_i16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m8_i16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m1_i32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m2_i32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m4_i32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m8_i32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m1_f16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m2_f16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m4_f16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m8_f16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m1_f32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m2_f32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m4_f32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m8_f32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m1_i8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m2_i8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m4_i8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m8_i8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m1_i16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m2_i16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m4_i16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m8_i16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16mf2_i16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m1_f16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m2_f16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m4_f16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m8_f16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16mf2_f16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m1_i8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m2_i8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m4_i8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m8_i8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8mf4_i8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m2_i8m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m4_i8m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m8_i8m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m2_i16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m4_i16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m8_i16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m2_i32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m4_i32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m8_i32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i64m2_i64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i64m4_i64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i64m8_i64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m2_f16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m4_f16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m8_f16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m2_f32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m4_f32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m8_f32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f64m2_f64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f64m4_f64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f64m8_f64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m4_i8m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m8_i8m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m4_i16m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m8_i16m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m4_i32m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m8_i32m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i64m4_i64m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i64m8_i64m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m4_f16m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m8_f16m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m4_f32m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m8_f32m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f64m4_f64m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f64m8_f64m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i8m8_i8m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i16m8_i16m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i32m8_i32m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_i64m8_i64m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f16m8_f16m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f32m8_f32m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_f64m8_f64m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m1_u8mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m2_u8mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m4_u8mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m8_u8mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m1_u16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m2_u16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m4_u16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m8_u16mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m1_u32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m2_u32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m4_u32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m8_u32mf2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m1_u8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m2_u8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m4_u8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m8_u8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m1_u16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m2_u16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m4_u16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m8_u16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16mf2_u16mf4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m1_u8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m2_u8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m4_u8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m8_u8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8mf4_u8mf8:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m2_u8m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m4_u8m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m8_u8m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m2_u16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m4_u16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m8_u16m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m2_u32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m4_u32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m8_u32m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u64m2_u64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u64m4_u64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u64m8_u64m1:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m4_u8m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m8_u8m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m4_u16m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m8_u16m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m4_u32m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m8_u32m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u64m4_u64m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u64m8_u64m2:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u8m8_u8m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u16m8_u16m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u32m8_u32m4:
case RISCV::BI__builtin_rvv_vlmul_trunc_v_u64m8_u64m4:
 {
        ID = Intrinsic::experimental_vector_extract;
        IntrinsicTypes = {ResultType, Ops[0]->getType()};
        Ops.push_back(ConstantInt::get(Int64Ty, 0));
        return Builder.CreateCall(CGM.getIntrinsic(ID, IntrinsicTypes), Ops, "");
      } break;
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m1_f16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m2_f16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m4_f16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m8_f16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16mf2_f16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16mf4_f16mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m1_f32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m2_f32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m4_f32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m8_f32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32mf2_f32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m1_f64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m2_f64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m4_f64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m8_f64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m1_f16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m2_f16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m4_f16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m8_f16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16mf2_f16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16mf4_f16mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m1_f32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m2_f32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m4_f32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m8_f32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32mf2_f32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m1_f64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m2_f64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m4_f64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m8_f64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m1_i16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m2_i16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m4_i16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m8_i16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8mf2_i16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8mf4_i16mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m1_i16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m2_i16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m4_i16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m8_i16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32mf2_i16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m1_i16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m2_i16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m4_i16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m8_i16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m1_i32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m2_i32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m4_i32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m8_i32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8mf2_i32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m1_i32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m2_i32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m4_i32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m8_i32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16mf2_i32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m1_i32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m2_i32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m4_i32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m8_i32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m1_i64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m2_i64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m4_i64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m8_i64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m1_i64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m2_i64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m4_i64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m8_i64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m1_i64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m2_i64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m4_i64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m8_i64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m1_i8m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m2_i8m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m4_i8m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m8_i8m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16mf2_i8mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16mf4_i8mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m1_i8m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m2_i8m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m4_i8m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m8_i8m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32mf2_i8mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m1_i8m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m2_i8m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m4_i8m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m8_i8m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16m1_i16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16m2_i16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16m4_i16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16m8_i16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16mf2_i16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16mf4_i16mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32m1_i32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32m2_i32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32m4_i32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32m8_i32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32mf2_i32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f64m1_i64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_f64m2_i64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f64m4_i64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_f64m8_i64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m1_i8m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m2_i8m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m4_i8m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m8_i8m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8mf2_i8mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8mf4_i8mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8mf8_i8mf8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m1_i16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m2_i16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m4_i16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m8_i16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16mf2_i16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16mf4_i16mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m1_i32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m2_i32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m4_i32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m8_i32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32mf2_i32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m1_i64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m2_i64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m4_i64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m8_i64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m1_u16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m2_u16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m4_u16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m8_u16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8mf2_u16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8mf4_u16mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m1_u16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m2_u16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m4_u16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m8_u16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32mf2_u16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m1_u16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m2_u16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m4_u16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m8_u16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m1_u32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m2_u32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m4_u32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m8_u32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8mf2_u32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m1_u32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m2_u32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m4_u32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m8_u32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16mf2_u32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m1_u32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m2_u32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m4_u32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m8_u32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m1_u64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m2_u64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m4_u64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u8m8_u64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m1_u64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m2_u64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m4_u64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m8_u64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m1_u64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m2_u64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m4_u64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m8_u64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m1_u8m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m2_u8m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m4_u8m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16m8_u8m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16mf2_u8mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u16mf4_u8mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m1_u8m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m2_u8m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m4_u8m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32m8_u8m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_u32mf2_u8mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m1_u8m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m2_u8m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m4_u8m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_u64m8_u8m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16m1_u16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16m2_u16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16m4_u16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16m8_u16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16mf2_u16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f16mf4_u16mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32m1_u32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32m2_u32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32m4_u32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32m8_u32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_f32mf2_u32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f64m1_u64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_f64m2_u64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_f64m4_u64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_f64m8_u64m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m1_u8m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m2_u8m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m4_u8m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8m8_u8m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8mf2_u8mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8mf4_u8mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i8mf8_u8mf8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m1_u16m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m2_u16m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m4_u16m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16m8_u16m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16mf2_u16mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i16mf4_u16mf4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m1_u32m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m2_u32m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m4_u32m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32m8_u32m8:
case RISCV::BI__builtin_rvv_vreinterpret_v_i32mf2_u32mf2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m1_u64m1:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m2_u64m2:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m4_u64m4:
case RISCV::BI__builtin_rvv_vreinterpret_v_i64m8_u64m8:

        return Builder.CreateBitCast(Ops[0], ResultType);
      break;
case RISCV::BI__builtin_rvv_vundefined_i8m1:
case RISCV::BI__builtin_rvv_vundefined_i8m2:
case RISCV::BI__builtin_rvv_vundefined_i8m4:
case RISCV::BI__builtin_rvv_vundefined_i8m8:
case RISCV::BI__builtin_rvv_vundefined_i8mf2:
case RISCV::BI__builtin_rvv_vundefined_i8mf4:
case RISCV::BI__builtin_rvv_vundefined_i8mf8:
case RISCV::BI__builtin_rvv_vundefined_i16m1:
case RISCV::BI__builtin_rvv_vundefined_i16m2:
case RISCV::BI__builtin_rvv_vundefined_i16m4:
case RISCV::BI__builtin_rvv_vundefined_i16m8:
case RISCV::BI__builtin_rvv_vundefined_i16mf2:
case RISCV::BI__builtin_rvv_vundefined_i16mf4:
case RISCV::BI__builtin_rvv_vundefined_i32m1:
case RISCV::BI__builtin_rvv_vundefined_i32m2:
case RISCV::BI__builtin_rvv_vundefined_i32m4:
case RISCV::BI__builtin_rvv_vundefined_i32m8:
case RISCV::BI__builtin_rvv_vundefined_i32mf2:
case RISCV::BI__builtin_rvv_vundefined_i64m1:
case RISCV::BI__builtin_rvv_vundefined_i64m2:
case RISCV::BI__builtin_rvv_vundefined_i64m4:
case RISCV::BI__builtin_rvv_vundefined_i64m8:
case RISCV::BI__builtin_rvv_vundefined_f16m1:
case RISCV::BI__builtin_rvv_vundefined_f16m2:
case RISCV::BI__builtin_rvv_vundefined_f16m4:
case RISCV::BI__builtin_rvv_vundefined_f16m8:
case RISCV::BI__builtin_rvv_vundefined_f16mf2:
case RISCV::BI__builtin_rvv_vundefined_f16mf4:
case RISCV::BI__builtin_rvv_vundefined_f32m1:
case RISCV::BI__builtin_rvv_vundefined_f32m2:
case RISCV::BI__builtin_rvv_vundefined_f32m4:
case RISCV::BI__builtin_rvv_vundefined_f32m8:
case RISCV::BI__builtin_rvv_vundefined_f32mf2:
case RISCV::BI__builtin_rvv_vundefined_f64m1:
case RISCV::BI__builtin_rvv_vundefined_f64m2:
case RISCV::BI__builtin_rvv_vundefined_f64m4:
case RISCV::BI__builtin_rvv_vundefined_f64m8:
case RISCV::BI__builtin_rvv_vundefined_u8m1:
case RISCV::BI__builtin_rvv_vundefined_u8m2:
case RISCV::BI__builtin_rvv_vundefined_u8m4:
case RISCV::BI__builtin_rvv_vundefined_u8m8:
case RISCV::BI__builtin_rvv_vundefined_u8mf2:
case RISCV::BI__builtin_rvv_vundefined_u8mf4:
case RISCV::BI__builtin_rvv_vundefined_u8mf8:
case RISCV::BI__builtin_rvv_vundefined_u16m1:
case RISCV::BI__builtin_rvv_vundefined_u16m2:
case RISCV::BI__builtin_rvv_vundefined_u16m4:
case RISCV::BI__builtin_rvv_vundefined_u16m8:
case RISCV::BI__builtin_rvv_vundefined_u16mf2:
case RISCV::BI__builtin_rvv_vundefined_u16mf4:
case RISCV::BI__builtin_rvv_vundefined_u32m1:
case RISCV::BI__builtin_rvv_vundefined_u32m2:
case RISCV::BI__builtin_rvv_vundefined_u32m4:
case RISCV::BI__builtin_rvv_vundefined_u32m8:
case RISCV::BI__builtin_rvv_vundefined_u32mf2:
case RISCV::BI__builtin_rvv_vundefined_u64m1:
case RISCV::BI__builtin_rvv_vundefined_u64m2:
case RISCV::BI__builtin_rvv_vundefined_u64m4:
case RISCV::BI__builtin_rvv_vundefined_u64m8:

        return llvm::UndefValue::get(ResultType);
      break;
case RISCV::BI__builtin_rvv_vaadd_vv_i8m1:
case RISCV::BI__builtin_rvv_vaadd_vv_i8m2:
case RISCV::BI__builtin_rvv_vaadd_vv_i8m4:
case RISCV::BI__builtin_rvv_vaadd_vv_i8m8:
case RISCV::BI__builtin_rvv_vaadd_vv_i8mf2:
case RISCV::BI__builtin_rvv_vaadd_vv_i8mf4:
case RISCV::BI__builtin_rvv_vaadd_vv_i8mf8:
case RISCV::BI__builtin_rvv_vaadd_vv_i16m1:
case RISCV::BI__builtin_rvv_vaadd_vv_i16m2:
case RISCV::BI__builtin_rvv_vaadd_vv_i16m4:
case RISCV::BI__builtin_rvv_vaadd_vv_i16m8:
case RISCV::BI__builtin_rvv_vaadd_vv_i16mf2:
case RISCV::BI__builtin_rvv_vaadd_vv_i16mf4:
case RISCV::BI__builtin_rvv_vaadd_vv_i32m1:
case RISCV::BI__builtin_rvv_vaadd_vv_i32m2:
case RISCV::BI__builtin_rvv_vaadd_vv_i32m4:
case RISCV::BI__builtin_rvv_vaadd_vv_i32m8:
case RISCV::BI__builtin_rvv_vaadd_vv_i32mf2:
case RISCV::BI__builtin_rvv_vaadd_vv_i64m1:
case RISCV::BI__builtin_rvv_vaadd_vv_i64m2:
case RISCV::BI__builtin_rvv_vaadd_vv_i64m4:
case RISCV::BI__builtin_rvv_vaadd_vv_i64m8:
case RISCV::BI__builtin_rvv_vaadd_vx_i8m1:
case RISCV::BI__builtin_rvv_vaadd_vx_i8m2:
case RISCV::BI__builtin_rvv_vaadd_vx_i8m4:
case RISCV::BI__builtin_rvv_vaadd_vx_i8m8:
case RISCV::BI__builtin_rvv_vaadd_vx_i8mf2:
case RISCV::BI__builtin_rvv_vaadd_vx_i8mf4:
case RISCV::BI__builtin_rvv_vaadd_vx_i8mf8:
case RISCV::BI__builtin_rvv_vaadd_vx_i16m1:
case RISCV::BI__builtin_rvv_vaadd_vx_i16m2:
case RISCV::BI__builtin_rvv_vaadd_vx_i16m4:
case RISCV::BI__builtin_rvv_vaadd_vx_i16m8:
case RISCV::BI__builtin_rvv_vaadd_vx_i16mf2:
case RISCV::BI__builtin_rvv_vaadd_vx_i16mf4:
case RISCV::BI__builtin_rvv_vaadd_vx_i32m1:
case RISCV::BI__builtin_rvv_vaadd_vx_i32m2:
case RISCV::BI__builtin_rvv_vaadd_vx_i32m4:
case RISCV::BI__builtin_rvv_vaadd_vx_i32m8:
case RISCV::BI__builtin_rvv_vaadd_vx_i32mf2:
case RISCV::BI__builtin_rvv_vaadd_vx_i64m1:
case RISCV::BI__builtin_rvv_vaadd_vx_i64m2:
case RISCV::BI__builtin_rvv_vaadd_vx_i64m4:
case RISCV::BI__builtin_rvv_vaadd_vx_i64m8:
  ID = Intrinsic::riscv_vaadd;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vaadd_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vaadd_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vaadd_vx_i64m8_m:
  ID = Intrinsic::riscv_vaadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vaaddu_vv_u8m1:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8m2:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8m4:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8m8:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16m1:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16m2:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16m4:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16m8:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32m1:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32m2:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32m4:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32m8:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vaaddu_vv_u64m1:
case RISCV::BI__builtin_rvv_vaaddu_vv_u64m2:
case RISCV::BI__builtin_rvv_vaaddu_vv_u64m4:
case RISCV::BI__builtin_rvv_vaaddu_vv_u64m8:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8m1:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8m2:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8m4:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8m8:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16m1:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16m2:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16m4:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16m8:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32m1:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32m2:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32m4:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32m8:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vaaddu_vx_u64m1:
case RISCV::BI__builtin_rvv_vaaddu_vx_u64m2:
case RISCV::BI__builtin_rvv_vaaddu_vx_u64m4:
case RISCV::BI__builtin_rvv_vaaddu_vx_u64m8:
  ID = Intrinsic::riscv_vaaddu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vaaddu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vaaddu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vaaddu_vx_u64m8_m:
  ID = Intrinsic::riscv_vaaddu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vadc_vvm_i8m1:
case RISCV::BI__builtin_rvv_vadc_vvm_i8m2:
case RISCV::BI__builtin_rvv_vadc_vvm_i8m4:
case RISCV::BI__builtin_rvv_vadc_vvm_i8m8:
case RISCV::BI__builtin_rvv_vadc_vvm_i8mf2:
case RISCV::BI__builtin_rvv_vadc_vvm_i8mf4:
case RISCV::BI__builtin_rvv_vadc_vvm_i8mf8:
case RISCV::BI__builtin_rvv_vadc_vvm_i16m1:
case RISCV::BI__builtin_rvv_vadc_vvm_i16m2:
case RISCV::BI__builtin_rvv_vadc_vvm_i16m4:
case RISCV::BI__builtin_rvv_vadc_vvm_i16m8:
case RISCV::BI__builtin_rvv_vadc_vvm_i16mf2:
case RISCV::BI__builtin_rvv_vadc_vvm_i16mf4:
case RISCV::BI__builtin_rvv_vadc_vvm_i32m1:
case RISCV::BI__builtin_rvv_vadc_vvm_i32m2:
case RISCV::BI__builtin_rvv_vadc_vvm_i32m4:
case RISCV::BI__builtin_rvv_vadc_vvm_i32m8:
case RISCV::BI__builtin_rvv_vadc_vvm_i32mf2:
case RISCV::BI__builtin_rvv_vadc_vvm_i64m1:
case RISCV::BI__builtin_rvv_vadc_vvm_i64m2:
case RISCV::BI__builtin_rvv_vadc_vvm_i64m4:
case RISCV::BI__builtin_rvv_vadc_vvm_i64m8:
case RISCV::BI__builtin_rvv_vadc_vxm_i8m1:
case RISCV::BI__builtin_rvv_vadc_vxm_i8m2:
case RISCV::BI__builtin_rvv_vadc_vxm_i8m4:
case RISCV::BI__builtin_rvv_vadc_vxm_i8m8:
case RISCV::BI__builtin_rvv_vadc_vxm_i8mf2:
case RISCV::BI__builtin_rvv_vadc_vxm_i8mf4:
case RISCV::BI__builtin_rvv_vadc_vxm_i8mf8:
case RISCV::BI__builtin_rvv_vadc_vxm_i16m1:
case RISCV::BI__builtin_rvv_vadc_vxm_i16m2:
case RISCV::BI__builtin_rvv_vadc_vxm_i16m4:
case RISCV::BI__builtin_rvv_vadc_vxm_i16m8:
case RISCV::BI__builtin_rvv_vadc_vxm_i16mf2:
case RISCV::BI__builtin_rvv_vadc_vxm_i16mf4:
case RISCV::BI__builtin_rvv_vadc_vxm_i32m1:
case RISCV::BI__builtin_rvv_vadc_vxm_i32m2:
case RISCV::BI__builtin_rvv_vadc_vxm_i32m4:
case RISCV::BI__builtin_rvv_vadc_vxm_i32m8:
case RISCV::BI__builtin_rvv_vadc_vxm_i32mf2:
case RISCV::BI__builtin_rvv_vadc_vxm_i64m1:
case RISCV::BI__builtin_rvv_vadc_vxm_i64m2:
case RISCV::BI__builtin_rvv_vadc_vxm_i64m4:
case RISCV::BI__builtin_rvv_vadc_vxm_i64m8:
case RISCV::BI__builtin_rvv_vadc_vvm_u8m1:
case RISCV::BI__builtin_rvv_vadc_vvm_u8m2:
case RISCV::BI__builtin_rvv_vadc_vvm_u8m4:
case RISCV::BI__builtin_rvv_vadc_vvm_u8m8:
case RISCV::BI__builtin_rvv_vadc_vvm_u8mf2:
case RISCV::BI__builtin_rvv_vadc_vvm_u8mf4:
case RISCV::BI__builtin_rvv_vadc_vvm_u8mf8:
case RISCV::BI__builtin_rvv_vadc_vvm_u16m1:
case RISCV::BI__builtin_rvv_vadc_vvm_u16m2:
case RISCV::BI__builtin_rvv_vadc_vvm_u16m4:
case RISCV::BI__builtin_rvv_vadc_vvm_u16m8:
case RISCV::BI__builtin_rvv_vadc_vvm_u16mf2:
case RISCV::BI__builtin_rvv_vadc_vvm_u16mf4:
case RISCV::BI__builtin_rvv_vadc_vvm_u32m1:
case RISCV::BI__builtin_rvv_vadc_vvm_u32m2:
case RISCV::BI__builtin_rvv_vadc_vvm_u32m4:
case RISCV::BI__builtin_rvv_vadc_vvm_u32m8:
case RISCV::BI__builtin_rvv_vadc_vvm_u32mf2:
case RISCV::BI__builtin_rvv_vadc_vvm_u64m1:
case RISCV::BI__builtin_rvv_vadc_vvm_u64m2:
case RISCV::BI__builtin_rvv_vadc_vvm_u64m4:
case RISCV::BI__builtin_rvv_vadc_vvm_u64m8:
case RISCV::BI__builtin_rvv_vadc_vxm_u8m1:
case RISCV::BI__builtin_rvv_vadc_vxm_u8m2:
case RISCV::BI__builtin_rvv_vadc_vxm_u8m4:
case RISCV::BI__builtin_rvv_vadc_vxm_u8m8:
case RISCV::BI__builtin_rvv_vadc_vxm_u8mf2:
case RISCV::BI__builtin_rvv_vadc_vxm_u8mf4:
case RISCV::BI__builtin_rvv_vadc_vxm_u8mf8:
case RISCV::BI__builtin_rvv_vadc_vxm_u16m1:
case RISCV::BI__builtin_rvv_vadc_vxm_u16m2:
case RISCV::BI__builtin_rvv_vadc_vxm_u16m4:
case RISCV::BI__builtin_rvv_vadc_vxm_u16m8:
case RISCV::BI__builtin_rvv_vadc_vxm_u16mf2:
case RISCV::BI__builtin_rvv_vadc_vxm_u16mf4:
case RISCV::BI__builtin_rvv_vadc_vxm_u32m1:
case RISCV::BI__builtin_rvv_vadc_vxm_u32m2:
case RISCV::BI__builtin_rvv_vadc_vxm_u32m4:
case RISCV::BI__builtin_rvv_vadc_vxm_u32m8:
case RISCV::BI__builtin_rvv_vadc_vxm_u32mf2:
case RISCV::BI__builtin_rvv_vadc_vxm_u64m1:
case RISCV::BI__builtin_rvv_vadc_vxm_u64m2:
case RISCV::BI__builtin_rvv_vadc_vxm_u64m4:
case RISCV::BI__builtin_rvv_vadc_vxm_u64m8:
  ID = Intrinsic::riscv_vadc;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vadd_vv_i8m1:
case RISCV::BI__builtin_rvv_vadd_vv_i8m2:
case RISCV::BI__builtin_rvv_vadd_vv_i8m4:
case RISCV::BI__builtin_rvv_vadd_vv_i8m8:
case RISCV::BI__builtin_rvv_vadd_vv_i8mf2:
case RISCV::BI__builtin_rvv_vadd_vv_i8mf4:
case RISCV::BI__builtin_rvv_vadd_vv_i8mf8:
case RISCV::BI__builtin_rvv_vadd_vv_i16m1:
case RISCV::BI__builtin_rvv_vadd_vv_i16m2:
case RISCV::BI__builtin_rvv_vadd_vv_i16m4:
case RISCV::BI__builtin_rvv_vadd_vv_i16m8:
case RISCV::BI__builtin_rvv_vadd_vv_i16mf2:
case RISCV::BI__builtin_rvv_vadd_vv_i16mf4:
case RISCV::BI__builtin_rvv_vadd_vv_i32m1:
case RISCV::BI__builtin_rvv_vadd_vv_i32m2:
case RISCV::BI__builtin_rvv_vadd_vv_i32m4:
case RISCV::BI__builtin_rvv_vadd_vv_i32m8:
case RISCV::BI__builtin_rvv_vadd_vv_i32mf2:
case RISCV::BI__builtin_rvv_vadd_vv_i64m1:
case RISCV::BI__builtin_rvv_vadd_vv_i64m2:
case RISCV::BI__builtin_rvv_vadd_vv_i64m4:
case RISCV::BI__builtin_rvv_vadd_vv_i64m8:
case RISCV::BI__builtin_rvv_vadd_vx_i8m1:
case RISCV::BI__builtin_rvv_vadd_vx_i8m2:
case RISCV::BI__builtin_rvv_vadd_vx_i8m4:
case RISCV::BI__builtin_rvv_vadd_vx_i8m8:
case RISCV::BI__builtin_rvv_vadd_vx_i8mf2:
case RISCV::BI__builtin_rvv_vadd_vx_i8mf4:
case RISCV::BI__builtin_rvv_vadd_vx_i8mf8:
case RISCV::BI__builtin_rvv_vadd_vx_i16m1:
case RISCV::BI__builtin_rvv_vadd_vx_i16m2:
case RISCV::BI__builtin_rvv_vadd_vx_i16m4:
case RISCV::BI__builtin_rvv_vadd_vx_i16m8:
case RISCV::BI__builtin_rvv_vadd_vx_i16mf2:
case RISCV::BI__builtin_rvv_vadd_vx_i16mf4:
case RISCV::BI__builtin_rvv_vadd_vx_i32m1:
case RISCV::BI__builtin_rvv_vadd_vx_i32m2:
case RISCV::BI__builtin_rvv_vadd_vx_i32m4:
case RISCV::BI__builtin_rvv_vadd_vx_i32m8:
case RISCV::BI__builtin_rvv_vadd_vx_i32mf2:
case RISCV::BI__builtin_rvv_vadd_vx_i64m1:
case RISCV::BI__builtin_rvv_vadd_vx_i64m2:
case RISCV::BI__builtin_rvv_vadd_vx_i64m4:
case RISCV::BI__builtin_rvv_vadd_vx_i64m8:
case RISCV::BI__builtin_rvv_vadd_vv_u8m1:
case RISCV::BI__builtin_rvv_vadd_vv_u8m2:
case RISCV::BI__builtin_rvv_vadd_vv_u8m4:
case RISCV::BI__builtin_rvv_vadd_vv_u8m8:
case RISCV::BI__builtin_rvv_vadd_vv_u8mf2:
case RISCV::BI__builtin_rvv_vadd_vv_u8mf4:
case RISCV::BI__builtin_rvv_vadd_vv_u8mf8:
case RISCV::BI__builtin_rvv_vadd_vv_u16m1:
case RISCV::BI__builtin_rvv_vadd_vv_u16m2:
case RISCV::BI__builtin_rvv_vadd_vv_u16m4:
case RISCV::BI__builtin_rvv_vadd_vv_u16m8:
case RISCV::BI__builtin_rvv_vadd_vv_u16mf2:
case RISCV::BI__builtin_rvv_vadd_vv_u16mf4:
case RISCV::BI__builtin_rvv_vadd_vv_u32m1:
case RISCV::BI__builtin_rvv_vadd_vv_u32m2:
case RISCV::BI__builtin_rvv_vadd_vv_u32m4:
case RISCV::BI__builtin_rvv_vadd_vv_u32m8:
case RISCV::BI__builtin_rvv_vadd_vv_u32mf2:
case RISCV::BI__builtin_rvv_vadd_vv_u64m1:
case RISCV::BI__builtin_rvv_vadd_vv_u64m2:
case RISCV::BI__builtin_rvv_vadd_vv_u64m4:
case RISCV::BI__builtin_rvv_vadd_vv_u64m8:
case RISCV::BI__builtin_rvv_vadd_vx_u8m1:
case RISCV::BI__builtin_rvv_vadd_vx_u8m2:
case RISCV::BI__builtin_rvv_vadd_vx_u8m4:
case RISCV::BI__builtin_rvv_vadd_vx_u8m8:
case RISCV::BI__builtin_rvv_vadd_vx_u8mf2:
case RISCV::BI__builtin_rvv_vadd_vx_u8mf4:
case RISCV::BI__builtin_rvv_vadd_vx_u8mf8:
case RISCV::BI__builtin_rvv_vadd_vx_u16m1:
case RISCV::BI__builtin_rvv_vadd_vx_u16m2:
case RISCV::BI__builtin_rvv_vadd_vx_u16m4:
case RISCV::BI__builtin_rvv_vadd_vx_u16m8:
case RISCV::BI__builtin_rvv_vadd_vx_u16mf2:
case RISCV::BI__builtin_rvv_vadd_vx_u16mf4:
case RISCV::BI__builtin_rvv_vadd_vx_u32m1:
case RISCV::BI__builtin_rvv_vadd_vx_u32m2:
case RISCV::BI__builtin_rvv_vadd_vx_u32m4:
case RISCV::BI__builtin_rvv_vadd_vx_u32m8:
case RISCV::BI__builtin_rvv_vadd_vx_u32mf2:
case RISCV::BI__builtin_rvv_vadd_vx_u64m1:
case RISCV::BI__builtin_rvv_vadd_vx_u64m2:
case RISCV::BI__builtin_rvv_vadd_vx_u64m4:
case RISCV::BI__builtin_rvv_vadd_vx_u64m8:
  ID = Intrinsic::riscv_vadd;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vadd_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vadd_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vadd_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vadd_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vadd_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vadd_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vadd_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vadd_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vadd_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vadd_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vadd_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vadd_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vadd_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vadd_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vadd_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vadd_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vadd_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vadd_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vadd_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vadd_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vadd_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vadd_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vadd_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vadd_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vadd_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vadd_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vadd_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vadd_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vadd_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vadd_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vadd_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vadd_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vadd_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vadd_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vadd_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vadd_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vadd_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vadd_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vadd_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vadd_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vadd_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vadd_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vadd_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vadd_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vadd_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vadd_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vadd_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vadd_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vadd_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vadd_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vadd_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vadd_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vadd_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vadd_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vadd_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vadd_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vadd_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vadd_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vadd_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vadd_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vadd_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vadd_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vadd_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vadd_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vadd_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vadd_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vadd_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vadd_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vadd_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vadd_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vadd_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vadd_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vadd_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vadd_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vadd_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vadd_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vadd_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vadd_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vadd_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vadd_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vadd_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vadd_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vadd_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vadd_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vadd_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vadd_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vadd_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vadd_vx_u64m8_m:
  ID = Intrinsic::riscv_vadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32m1:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32m2:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32m4:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32m8:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32m1:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32m2:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32m4:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32m8:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32m1:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32m2:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32m4:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32m8:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32m1:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32m2:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32m4:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32m8:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32m1:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32m2:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32m4:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32m8:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32m1:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32m2:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32m4:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32m8:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i32m1:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i32m2:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i32m4:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u32m1:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u32m2:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u32m4:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i64m1:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i64m2:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i64m4:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i64m8:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u64m1:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u64m2:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u64m4:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u64m8:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i64m1:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i64m2:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i64m4:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i64m8:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u64m1:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u64m2:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u64m4:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u64m8:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i64m1:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i64m2:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i64m4:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i64m8:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u64m1:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u64m2:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u64m4:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u64m8:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i64m1:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i64m2:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i64m4:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i64m8:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u64m1:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u64m2:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u64m4:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u64m8:
  ID = Intrinsic::riscv_vamoadd;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoaddei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoaddei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoaddei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoaddei64_v_u64m8_m:
  ID = Intrinsic::riscv_vamoadd_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoandei8_v_i32m1:
case RISCV::BI__builtin_rvv_vamoandei8_v_i32m2:
case RISCV::BI__builtin_rvv_vamoandei8_v_i32m4:
case RISCV::BI__builtin_rvv_vamoandei8_v_i32m8:
case RISCV::BI__builtin_rvv_vamoandei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32m1:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32m2:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32m4:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32m8:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32m1:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32m2:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32m4:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32m8:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32m1:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32m2:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32m4:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32m8:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32m1:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32m2:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32m4:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32m8:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32m1:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32m2:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32m4:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32m8:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoandei64_v_i32m1:
case RISCV::BI__builtin_rvv_vamoandei64_v_i32m2:
case RISCV::BI__builtin_rvv_vamoandei64_v_i32m4:
case RISCV::BI__builtin_rvv_vamoandei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoandei64_v_u32m1:
case RISCV::BI__builtin_rvv_vamoandei64_v_u32m2:
case RISCV::BI__builtin_rvv_vamoandei64_v_u32m4:
case RISCV::BI__builtin_rvv_vamoandei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoandei8_v_i64m1:
case RISCV::BI__builtin_rvv_vamoandei8_v_i64m2:
case RISCV::BI__builtin_rvv_vamoandei8_v_i64m4:
case RISCV::BI__builtin_rvv_vamoandei8_v_i64m8:
case RISCV::BI__builtin_rvv_vamoandei8_v_u64m1:
case RISCV::BI__builtin_rvv_vamoandei8_v_u64m2:
case RISCV::BI__builtin_rvv_vamoandei8_v_u64m4:
case RISCV::BI__builtin_rvv_vamoandei8_v_u64m8:
case RISCV::BI__builtin_rvv_vamoandei16_v_i64m1:
case RISCV::BI__builtin_rvv_vamoandei16_v_i64m2:
case RISCV::BI__builtin_rvv_vamoandei16_v_i64m4:
case RISCV::BI__builtin_rvv_vamoandei16_v_i64m8:
case RISCV::BI__builtin_rvv_vamoandei16_v_u64m1:
case RISCV::BI__builtin_rvv_vamoandei16_v_u64m2:
case RISCV::BI__builtin_rvv_vamoandei16_v_u64m4:
case RISCV::BI__builtin_rvv_vamoandei16_v_u64m8:
case RISCV::BI__builtin_rvv_vamoandei32_v_i64m1:
case RISCV::BI__builtin_rvv_vamoandei32_v_i64m2:
case RISCV::BI__builtin_rvv_vamoandei32_v_i64m4:
case RISCV::BI__builtin_rvv_vamoandei32_v_i64m8:
case RISCV::BI__builtin_rvv_vamoandei32_v_u64m1:
case RISCV::BI__builtin_rvv_vamoandei32_v_u64m2:
case RISCV::BI__builtin_rvv_vamoandei32_v_u64m4:
case RISCV::BI__builtin_rvv_vamoandei32_v_u64m8:
case RISCV::BI__builtin_rvv_vamoandei64_v_i64m1:
case RISCV::BI__builtin_rvv_vamoandei64_v_i64m2:
case RISCV::BI__builtin_rvv_vamoandei64_v_i64m4:
case RISCV::BI__builtin_rvv_vamoandei64_v_i64m8:
case RISCV::BI__builtin_rvv_vamoandei64_v_u64m1:
case RISCV::BI__builtin_rvv_vamoandei64_v_u64m2:
case RISCV::BI__builtin_rvv_vamoandei64_v_u64m4:
case RISCV::BI__builtin_rvv_vamoandei64_v_u64m8:
  ID = Intrinsic::riscv_vamoand;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoandei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoandei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoandei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoandei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoandei64_v_u64m8_m:
  ID = Intrinsic::riscv_vamoand_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32m1:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32m2:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32m4:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32m8:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32m1:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32m2:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32m4:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32m8:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32m1:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32m2:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32m4:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32m8:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i32m1:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i32m2:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i32m4:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i64m1:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i64m2:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i64m4:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i64m8:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i64m1:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i64m2:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i64m4:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i64m8:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i64m1:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i64m2:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i64m4:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i64m8:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i64m1:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i64m2:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i64m4:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i64m8:
  ID = Intrinsic::riscv_vamomax;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamomaxei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamomaxei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamomaxei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamomaxei64_v_i64m8_m:
  ID = Intrinsic::riscv_vamomax_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32m1:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32m2:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32m4:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32m8:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32m1:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32m2:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32m4:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32m8:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32m1:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32m2:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32m4:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32m8:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u32m1:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u32m2:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u32m4:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u64m1:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u64m2:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u64m4:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u64m8:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u64m1:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u64m2:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u64m4:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u64m8:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u64m1:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u64m2:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u64m4:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u64m8:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u64m1:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u64m2:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u64m4:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u64m8:
  ID = Intrinsic::riscv_vamomaxu;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamomaxuei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamomaxuei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamomaxuei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamomaxuei64_v_u64m8_m:
  ID = Intrinsic::riscv_vamomaxu_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamominei8_v_i32m1:
case RISCV::BI__builtin_rvv_vamominei8_v_i32m2:
case RISCV::BI__builtin_rvv_vamominei8_v_i32m4:
case RISCV::BI__builtin_rvv_vamominei8_v_i32m8:
case RISCV::BI__builtin_rvv_vamominei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vamominei16_v_i32m1:
case RISCV::BI__builtin_rvv_vamominei16_v_i32m2:
case RISCV::BI__builtin_rvv_vamominei16_v_i32m4:
case RISCV::BI__builtin_rvv_vamominei16_v_i32m8:
case RISCV::BI__builtin_rvv_vamominei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vamominei32_v_i32m1:
case RISCV::BI__builtin_rvv_vamominei32_v_i32m2:
case RISCV::BI__builtin_rvv_vamominei32_v_i32m4:
case RISCV::BI__builtin_rvv_vamominei32_v_i32m8:
case RISCV::BI__builtin_rvv_vamominei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vamominei64_v_i32m1:
case RISCV::BI__builtin_rvv_vamominei64_v_i32m2:
case RISCV::BI__builtin_rvv_vamominei64_v_i32m4:
case RISCV::BI__builtin_rvv_vamominei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vamominei8_v_i64m1:
case RISCV::BI__builtin_rvv_vamominei8_v_i64m2:
case RISCV::BI__builtin_rvv_vamominei8_v_i64m4:
case RISCV::BI__builtin_rvv_vamominei8_v_i64m8:
case RISCV::BI__builtin_rvv_vamominei16_v_i64m1:
case RISCV::BI__builtin_rvv_vamominei16_v_i64m2:
case RISCV::BI__builtin_rvv_vamominei16_v_i64m4:
case RISCV::BI__builtin_rvv_vamominei16_v_i64m8:
case RISCV::BI__builtin_rvv_vamominei32_v_i64m1:
case RISCV::BI__builtin_rvv_vamominei32_v_i64m2:
case RISCV::BI__builtin_rvv_vamominei32_v_i64m4:
case RISCV::BI__builtin_rvv_vamominei32_v_i64m8:
case RISCV::BI__builtin_rvv_vamominei64_v_i64m1:
case RISCV::BI__builtin_rvv_vamominei64_v_i64m2:
case RISCV::BI__builtin_rvv_vamominei64_v_i64m4:
case RISCV::BI__builtin_rvv_vamominei64_v_i64m8:
  ID = Intrinsic::riscv_vamomin;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamominei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamominei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamominei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamominei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamominei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamominei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamominei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamominei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamominei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamominei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamominei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamominei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamominei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamominei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamominei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamominei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamominei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamominei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamominei64_v_i64m8_m:
  ID = Intrinsic::riscv_vamomin_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamominuei8_v_u32m1:
case RISCV::BI__builtin_rvv_vamominuei8_v_u32m2:
case RISCV::BI__builtin_rvv_vamominuei8_v_u32m4:
case RISCV::BI__builtin_rvv_vamominuei8_v_u32m8:
case RISCV::BI__builtin_rvv_vamominuei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32m1:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32m2:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32m4:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32m8:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32m1:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32m2:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32m4:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32m8:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vamominuei64_v_u32m1:
case RISCV::BI__builtin_rvv_vamominuei64_v_u32m2:
case RISCV::BI__builtin_rvv_vamominuei64_v_u32m4:
case RISCV::BI__builtin_rvv_vamominuei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vamominuei8_v_u64m1:
case RISCV::BI__builtin_rvv_vamominuei8_v_u64m2:
case RISCV::BI__builtin_rvv_vamominuei8_v_u64m4:
case RISCV::BI__builtin_rvv_vamominuei8_v_u64m8:
case RISCV::BI__builtin_rvv_vamominuei16_v_u64m1:
case RISCV::BI__builtin_rvv_vamominuei16_v_u64m2:
case RISCV::BI__builtin_rvv_vamominuei16_v_u64m4:
case RISCV::BI__builtin_rvv_vamominuei16_v_u64m8:
case RISCV::BI__builtin_rvv_vamominuei32_v_u64m1:
case RISCV::BI__builtin_rvv_vamominuei32_v_u64m2:
case RISCV::BI__builtin_rvv_vamominuei32_v_u64m4:
case RISCV::BI__builtin_rvv_vamominuei32_v_u64m8:
case RISCV::BI__builtin_rvv_vamominuei64_v_u64m1:
case RISCV::BI__builtin_rvv_vamominuei64_v_u64m2:
case RISCV::BI__builtin_rvv_vamominuei64_v_u64m4:
case RISCV::BI__builtin_rvv_vamominuei64_v_u64m8:
  ID = Intrinsic::riscv_vamominu;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamominuei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamominuei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamominuei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamominuei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamominuei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamominuei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamominuei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamominuei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamominuei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamominuei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamominuei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamominuei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamominuei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamominuei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamominuei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamominuei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamominuei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamominuei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamominuei64_v_u64m8_m:
  ID = Intrinsic::riscv_vamominu_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoorei8_v_i32m1:
case RISCV::BI__builtin_rvv_vamoorei8_v_i32m2:
case RISCV::BI__builtin_rvv_vamoorei8_v_i32m4:
case RISCV::BI__builtin_rvv_vamoorei8_v_i32m8:
case RISCV::BI__builtin_rvv_vamoorei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32m1:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32m2:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32m4:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32m8:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32m1:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32m2:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32m4:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32m8:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32m1:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32m2:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32m4:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32m8:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32m1:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32m2:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32m4:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32m8:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32m1:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32m2:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32m4:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32m8:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoorei64_v_i32m1:
case RISCV::BI__builtin_rvv_vamoorei64_v_i32m2:
case RISCV::BI__builtin_rvv_vamoorei64_v_i32m4:
case RISCV::BI__builtin_rvv_vamoorei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoorei64_v_u32m1:
case RISCV::BI__builtin_rvv_vamoorei64_v_u32m2:
case RISCV::BI__builtin_rvv_vamoorei64_v_u32m4:
case RISCV::BI__builtin_rvv_vamoorei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoorei8_v_i64m1:
case RISCV::BI__builtin_rvv_vamoorei8_v_i64m2:
case RISCV::BI__builtin_rvv_vamoorei8_v_i64m4:
case RISCV::BI__builtin_rvv_vamoorei8_v_i64m8:
case RISCV::BI__builtin_rvv_vamoorei8_v_u64m1:
case RISCV::BI__builtin_rvv_vamoorei8_v_u64m2:
case RISCV::BI__builtin_rvv_vamoorei8_v_u64m4:
case RISCV::BI__builtin_rvv_vamoorei8_v_u64m8:
case RISCV::BI__builtin_rvv_vamoorei16_v_i64m1:
case RISCV::BI__builtin_rvv_vamoorei16_v_i64m2:
case RISCV::BI__builtin_rvv_vamoorei16_v_i64m4:
case RISCV::BI__builtin_rvv_vamoorei16_v_i64m8:
case RISCV::BI__builtin_rvv_vamoorei16_v_u64m1:
case RISCV::BI__builtin_rvv_vamoorei16_v_u64m2:
case RISCV::BI__builtin_rvv_vamoorei16_v_u64m4:
case RISCV::BI__builtin_rvv_vamoorei16_v_u64m8:
case RISCV::BI__builtin_rvv_vamoorei32_v_i64m1:
case RISCV::BI__builtin_rvv_vamoorei32_v_i64m2:
case RISCV::BI__builtin_rvv_vamoorei32_v_i64m4:
case RISCV::BI__builtin_rvv_vamoorei32_v_i64m8:
case RISCV::BI__builtin_rvv_vamoorei32_v_u64m1:
case RISCV::BI__builtin_rvv_vamoorei32_v_u64m2:
case RISCV::BI__builtin_rvv_vamoorei32_v_u64m4:
case RISCV::BI__builtin_rvv_vamoorei32_v_u64m8:
case RISCV::BI__builtin_rvv_vamoorei64_v_i64m1:
case RISCV::BI__builtin_rvv_vamoorei64_v_i64m2:
case RISCV::BI__builtin_rvv_vamoorei64_v_i64m4:
case RISCV::BI__builtin_rvv_vamoorei64_v_i64m8:
case RISCV::BI__builtin_rvv_vamoorei64_v_u64m1:
case RISCV::BI__builtin_rvv_vamoorei64_v_u64m2:
case RISCV::BI__builtin_rvv_vamoorei64_v_u64m4:
case RISCV::BI__builtin_rvv_vamoorei64_v_u64m8:
  ID = Intrinsic::riscv_vamoor;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoorei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoorei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoorei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoorei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoorei64_v_u64m8_m:
  ID = Intrinsic::riscv_vamoor_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32m1:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32m2:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32m4:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32m8:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32m1:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32m2:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32m4:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32m8:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32m1:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32m2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32m4:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32m8:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32m1:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32m2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32m4:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32m8:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i32m1:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i32m2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i32m4:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u32m1:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u32m2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u32m4:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i64m1:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i64m2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i64m4:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i64m8:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u64m1:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u64m2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u64m4:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u64m8:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i64m1:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i64m2:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i64m4:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i64m8:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u64m1:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u64m2:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u64m4:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u64m8:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i64m1:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i64m2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i64m4:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i64m8:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u64m1:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u64m2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u64m4:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u64m8:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i64m1:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i64m2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i64m4:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i64m8:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u64m1:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u64m2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u64m4:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u64m8:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32m1:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32m2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32m4:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32m8:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32m1:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32m2:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32m4:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32m8:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32m1:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32m2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32m4:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32m8:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f32m1:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f32m2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f32m4:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f64m1:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f64m2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f64m4:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f64m8:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f64m1:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f64m2:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f64m4:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f64m8:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f64m1:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f64m2:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f64m4:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f64m8:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f64m1:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f64m2:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f64m4:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f64m8:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32m1:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32m2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32m4:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32m8:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32m1:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32m2:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32m4:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32m8:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32mf2:
  ID = Intrinsic::riscv_vamoswap;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_f64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei16_v_f64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei32_v_f64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vamoswapei64_v_f64m8_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoswapei8_v_u32mf2_m:
  ID = Intrinsic::riscv_vamoswap_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32m1:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32m2:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32m4:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32m8:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32m1:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32m2:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32m4:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32m8:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32m1:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32m2:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32m4:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32m8:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32m1:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32m2:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32m4:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32m8:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32m1:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32m2:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32m4:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32m8:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32m1:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32m2:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32m4:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32m8:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i32m1:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i32m2:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i32m4:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u32m1:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u32m2:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u32m4:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i64m1:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i64m2:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i64m4:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i64m8:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u64m1:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u64m2:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u64m4:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u64m8:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i64m1:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i64m2:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i64m4:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i64m8:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u64m1:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u64m2:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u64m4:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u64m8:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i64m1:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i64m2:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i64m4:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i64m8:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u64m1:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u64m2:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u64m4:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u64m8:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i64m1:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i64m2:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i64m4:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i64m8:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u64m1:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u64m2:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u64m4:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u64m8:
  ID = Intrinsic::riscv_vamoxor;

            // base, bindex, value, vl
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoxorei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoxorei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoxorei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vamoxorei64_v_u64m8_m:
  ID = Intrinsic::riscv_vamoxor_mask;

            std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
            IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
            Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
          break;
case RISCV::BI__builtin_rvv_vand_vv_i8m1:
case RISCV::BI__builtin_rvv_vand_vv_i8m2:
case RISCV::BI__builtin_rvv_vand_vv_i8m4:
case RISCV::BI__builtin_rvv_vand_vv_i8m8:
case RISCV::BI__builtin_rvv_vand_vv_i8mf2:
case RISCV::BI__builtin_rvv_vand_vv_i8mf4:
case RISCV::BI__builtin_rvv_vand_vv_i8mf8:
case RISCV::BI__builtin_rvv_vand_vv_i16m1:
case RISCV::BI__builtin_rvv_vand_vv_i16m2:
case RISCV::BI__builtin_rvv_vand_vv_i16m4:
case RISCV::BI__builtin_rvv_vand_vv_i16m8:
case RISCV::BI__builtin_rvv_vand_vv_i16mf2:
case RISCV::BI__builtin_rvv_vand_vv_i16mf4:
case RISCV::BI__builtin_rvv_vand_vv_i32m1:
case RISCV::BI__builtin_rvv_vand_vv_i32m2:
case RISCV::BI__builtin_rvv_vand_vv_i32m4:
case RISCV::BI__builtin_rvv_vand_vv_i32m8:
case RISCV::BI__builtin_rvv_vand_vv_i32mf2:
case RISCV::BI__builtin_rvv_vand_vv_i64m1:
case RISCV::BI__builtin_rvv_vand_vv_i64m2:
case RISCV::BI__builtin_rvv_vand_vv_i64m4:
case RISCV::BI__builtin_rvv_vand_vv_i64m8:
case RISCV::BI__builtin_rvv_vand_vx_i8m1:
case RISCV::BI__builtin_rvv_vand_vx_i8m2:
case RISCV::BI__builtin_rvv_vand_vx_i8m4:
case RISCV::BI__builtin_rvv_vand_vx_i8m8:
case RISCV::BI__builtin_rvv_vand_vx_i8mf2:
case RISCV::BI__builtin_rvv_vand_vx_i8mf4:
case RISCV::BI__builtin_rvv_vand_vx_i8mf8:
case RISCV::BI__builtin_rvv_vand_vx_i16m1:
case RISCV::BI__builtin_rvv_vand_vx_i16m2:
case RISCV::BI__builtin_rvv_vand_vx_i16m4:
case RISCV::BI__builtin_rvv_vand_vx_i16m8:
case RISCV::BI__builtin_rvv_vand_vx_i16mf2:
case RISCV::BI__builtin_rvv_vand_vx_i16mf4:
case RISCV::BI__builtin_rvv_vand_vx_i32m1:
case RISCV::BI__builtin_rvv_vand_vx_i32m2:
case RISCV::BI__builtin_rvv_vand_vx_i32m4:
case RISCV::BI__builtin_rvv_vand_vx_i32m8:
case RISCV::BI__builtin_rvv_vand_vx_i32mf2:
case RISCV::BI__builtin_rvv_vand_vx_i64m1:
case RISCV::BI__builtin_rvv_vand_vx_i64m2:
case RISCV::BI__builtin_rvv_vand_vx_i64m4:
case RISCV::BI__builtin_rvv_vand_vx_i64m8:
case RISCV::BI__builtin_rvv_vand_vv_u8m1:
case RISCV::BI__builtin_rvv_vand_vv_u8m2:
case RISCV::BI__builtin_rvv_vand_vv_u8m4:
case RISCV::BI__builtin_rvv_vand_vv_u8m8:
case RISCV::BI__builtin_rvv_vand_vv_u8mf2:
case RISCV::BI__builtin_rvv_vand_vv_u8mf4:
case RISCV::BI__builtin_rvv_vand_vv_u8mf8:
case RISCV::BI__builtin_rvv_vand_vv_u16m1:
case RISCV::BI__builtin_rvv_vand_vv_u16m2:
case RISCV::BI__builtin_rvv_vand_vv_u16m4:
case RISCV::BI__builtin_rvv_vand_vv_u16m8:
case RISCV::BI__builtin_rvv_vand_vv_u16mf2:
case RISCV::BI__builtin_rvv_vand_vv_u16mf4:
case RISCV::BI__builtin_rvv_vand_vv_u32m1:
case RISCV::BI__builtin_rvv_vand_vv_u32m2:
case RISCV::BI__builtin_rvv_vand_vv_u32m4:
case RISCV::BI__builtin_rvv_vand_vv_u32m8:
case RISCV::BI__builtin_rvv_vand_vv_u32mf2:
case RISCV::BI__builtin_rvv_vand_vv_u64m1:
case RISCV::BI__builtin_rvv_vand_vv_u64m2:
case RISCV::BI__builtin_rvv_vand_vv_u64m4:
case RISCV::BI__builtin_rvv_vand_vv_u64m8:
case RISCV::BI__builtin_rvv_vand_vx_u8m1:
case RISCV::BI__builtin_rvv_vand_vx_u8m2:
case RISCV::BI__builtin_rvv_vand_vx_u8m4:
case RISCV::BI__builtin_rvv_vand_vx_u8m8:
case RISCV::BI__builtin_rvv_vand_vx_u8mf2:
case RISCV::BI__builtin_rvv_vand_vx_u8mf4:
case RISCV::BI__builtin_rvv_vand_vx_u8mf8:
case RISCV::BI__builtin_rvv_vand_vx_u16m1:
case RISCV::BI__builtin_rvv_vand_vx_u16m2:
case RISCV::BI__builtin_rvv_vand_vx_u16m4:
case RISCV::BI__builtin_rvv_vand_vx_u16m8:
case RISCV::BI__builtin_rvv_vand_vx_u16mf2:
case RISCV::BI__builtin_rvv_vand_vx_u16mf4:
case RISCV::BI__builtin_rvv_vand_vx_u32m1:
case RISCV::BI__builtin_rvv_vand_vx_u32m2:
case RISCV::BI__builtin_rvv_vand_vx_u32m4:
case RISCV::BI__builtin_rvv_vand_vx_u32m8:
case RISCV::BI__builtin_rvv_vand_vx_u32mf2:
case RISCV::BI__builtin_rvv_vand_vx_u64m1:
case RISCV::BI__builtin_rvv_vand_vx_u64m2:
case RISCV::BI__builtin_rvv_vand_vx_u64m4:
case RISCV::BI__builtin_rvv_vand_vx_u64m8:
  ID = Intrinsic::riscv_vand;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vand_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vand_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vand_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vand_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vand_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vand_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vand_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vand_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vand_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vand_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vand_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vand_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vand_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vand_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vand_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vand_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vand_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vand_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vand_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vand_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vand_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vand_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vand_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vand_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vand_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vand_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vand_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vand_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vand_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vand_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vand_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vand_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vand_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vand_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vand_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vand_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vand_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vand_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vand_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vand_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vand_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vand_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vand_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vand_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vand_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vand_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vand_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vand_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vand_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vand_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vand_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vand_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vand_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vand_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vand_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vand_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vand_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vand_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vand_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vand_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vand_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vand_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vand_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vand_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vand_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vand_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vand_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vand_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vand_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vand_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vand_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vand_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vand_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vand_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vand_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vand_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vand_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vand_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vand_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vand_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vand_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vand_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vand_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vand_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vand_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vand_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vand_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vand_vx_u64m8_m:
  ID = Intrinsic::riscv_vand_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vasub_vv_i8m1:
case RISCV::BI__builtin_rvv_vasub_vv_i8m2:
case RISCV::BI__builtin_rvv_vasub_vv_i8m4:
case RISCV::BI__builtin_rvv_vasub_vv_i8m8:
case RISCV::BI__builtin_rvv_vasub_vv_i8mf2:
case RISCV::BI__builtin_rvv_vasub_vv_i8mf4:
case RISCV::BI__builtin_rvv_vasub_vv_i8mf8:
case RISCV::BI__builtin_rvv_vasub_vv_i16m1:
case RISCV::BI__builtin_rvv_vasub_vv_i16m2:
case RISCV::BI__builtin_rvv_vasub_vv_i16m4:
case RISCV::BI__builtin_rvv_vasub_vv_i16m8:
case RISCV::BI__builtin_rvv_vasub_vv_i16mf2:
case RISCV::BI__builtin_rvv_vasub_vv_i16mf4:
case RISCV::BI__builtin_rvv_vasub_vv_i32m1:
case RISCV::BI__builtin_rvv_vasub_vv_i32m2:
case RISCV::BI__builtin_rvv_vasub_vv_i32m4:
case RISCV::BI__builtin_rvv_vasub_vv_i32m8:
case RISCV::BI__builtin_rvv_vasub_vv_i32mf2:
case RISCV::BI__builtin_rvv_vasub_vv_i64m1:
case RISCV::BI__builtin_rvv_vasub_vv_i64m2:
case RISCV::BI__builtin_rvv_vasub_vv_i64m4:
case RISCV::BI__builtin_rvv_vasub_vv_i64m8:
case RISCV::BI__builtin_rvv_vasub_vx_i8m1:
case RISCV::BI__builtin_rvv_vasub_vx_i8m2:
case RISCV::BI__builtin_rvv_vasub_vx_i8m4:
case RISCV::BI__builtin_rvv_vasub_vx_i8m8:
case RISCV::BI__builtin_rvv_vasub_vx_i8mf2:
case RISCV::BI__builtin_rvv_vasub_vx_i8mf4:
case RISCV::BI__builtin_rvv_vasub_vx_i8mf8:
case RISCV::BI__builtin_rvv_vasub_vx_i16m1:
case RISCV::BI__builtin_rvv_vasub_vx_i16m2:
case RISCV::BI__builtin_rvv_vasub_vx_i16m4:
case RISCV::BI__builtin_rvv_vasub_vx_i16m8:
case RISCV::BI__builtin_rvv_vasub_vx_i16mf2:
case RISCV::BI__builtin_rvv_vasub_vx_i16mf4:
case RISCV::BI__builtin_rvv_vasub_vx_i32m1:
case RISCV::BI__builtin_rvv_vasub_vx_i32m2:
case RISCV::BI__builtin_rvv_vasub_vx_i32m4:
case RISCV::BI__builtin_rvv_vasub_vx_i32m8:
case RISCV::BI__builtin_rvv_vasub_vx_i32mf2:
case RISCV::BI__builtin_rvv_vasub_vx_i64m1:
case RISCV::BI__builtin_rvv_vasub_vx_i64m2:
case RISCV::BI__builtin_rvv_vasub_vx_i64m4:
case RISCV::BI__builtin_rvv_vasub_vx_i64m8:
  ID = Intrinsic::riscv_vasub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vasub_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vasub_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vasub_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vasub_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vasub_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vasub_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vasub_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vasub_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vasub_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vasub_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vasub_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vasub_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vasub_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vasub_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vasub_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vasub_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vasub_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vasub_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vasub_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vasub_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vasub_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vasub_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vasub_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vasub_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vasub_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vasub_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vasub_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vasub_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vasub_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vasub_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vasub_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vasub_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vasub_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vasub_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vasub_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vasub_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vasub_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vasub_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vasub_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vasub_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vasub_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vasub_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vasub_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vasub_vx_i64m8_m:
  ID = Intrinsic::riscv_vasub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vasubu_vv_u8m1:
case RISCV::BI__builtin_rvv_vasubu_vv_u8m2:
case RISCV::BI__builtin_rvv_vasubu_vv_u8m4:
case RISCV::BI__builtin_rvv_vasubu_vv_u8m8:
case RISCV::BI__builtin_rvv_vasubu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vasubu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vasubu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vasubu_vv_u16m1:
case RISCV::BI__builtin_rvv_vasubu_vv_u16m2:
case RISCV::BI__builtin_rvv_vasubu_vv_u16m4:
case RISCV::BI__builtin_rvv_vasubu_vv_u16m8:
case RISCV::BI__builtin_rvv_vasubu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vasubu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vasubu_vv_u32m1:
case RISCV::BI__builtin_rvv_vasubu_vv_u32m2:
case RISCV::BI__builtin_rvv_vasubu_vv_u32m4:
case RISCV::BI__builtin_rvv_vasubu_vv_u32m8:
case RISCV::BI__builtin_rvv_vasubu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vasubu_vv_u64m1:
case RISCV::BI__builtin_rvv_vasubu_vv_u64m2:
case RISCV::BI__builtin_rvv_vasubu_vv_u64m4:
case RISCV::BI__builtin_rvv_vasubu_vv_u64m8:
case RISCV::BI__builtin_rvv_vasubu_vx_u8m1:
case RISCV::BI__builtin_rvv_vasubu_vx_u8m2:
case RISCV::BI__builtin_rvv_vasubu_vx_u8m4:
case RISCV::BI__builtin_rvv_vasubu_vx_u8m8:
case RISCV::BI__builtin_rvv_vasubu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vasubu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vasubu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vasubu_vx_u16m1:
case RISCV::BI__builtin_rvv_vasubu_vx_u16m2:
case RISCV::BI__builtin_rvv_vasubu_vx_u16m4:
case RISCV::BI__builtin_rvv_vasubu_vx_u16m8:
case RISCV::BI__builtin_rvv_vasubu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vasubu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vasubu_vx_u32m1:
case RISCV::BI__builtin_rvv_vasubu_vx_u32m2:
case RISCV::BI__builtin_rvv_vasubu_vx_u32m4:
case RISCV::BI__builtin_rvv_vasubu_vx_u32m8:
case RISCV::BI__builtin_rvv_vasubu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vasubu_vx_u64m1:
case RISCV::BI__builtin_rvv_vasubu_vx_u64m2:
case RISCV::BI__builtin_rvv_vasubu_vx_u64m4:
case RISCV::BI__builtin_rvv_vasubu_vx_u64m8:
  ID = Intrinsic::riscv_vasubu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vasubu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vasubu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vasubu_vx_u64m8_m:
  ID = Intrinsic::riscv_vasubu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vcompress_vm_i8m1:
case RISCV::BI__builtin_rvv_vcompress_vm_i8m2:
case RISCV::BI__builtin_rvv_vcompress_vm_i8m4:
case RISCV::BI__builtin_rvv_vcompress_vm_i8m8:
case RISCV::BI__builtin_rvv_vcompress_vm_i8mf2:
case RISCV::BI__builtin_rvv_vcompress_vm_i8mf4:
case RISCV::BI__builtin_rvv_vcompress_vm_i8mf8:
case RISCV::BI__builtin_rvv_vcompress_vm_i16m1:
case RISCV::BI__builtin_rvv_vcompress_vm_i16m2:
case RISCV::BI__builtin_rvv_vcompress_vm_i16m4:
case RISCV::BI__builtin_rvv_vcompress_vm_i16m8:
case RISCV::BI__builtin_rvv_vcompress_vm_i16mf2:
case RISCV::BI__builtin_rvv_vcompress_vm_i16mf4:
case RISCV::BI__builtin_rvv_vcompress_vm_i32m1:
case RISCV::BI__builtin_rvv_vcompress_vm_i32m2:
case RISCV::BI__builtin_rvv_vcompress_vm_i32m4:
case RISCV::BI__builtin_rvv_vcompress_vm_i32m8:
case RISCV::BI__builtin_rvv_vcompress_vm_i32mf2:
case RISCV::BI__builtin_rvv_vcompress_vm_i64m1:
case RISCV::BI__builtin_rvv_vcompress_vm_i64m2:
case RISCV::BI__builtin_rvv_vcompress_vm_i64m4:
case RISCV::BI__builtin_rvv_vcompress_vm_i64m8:
case RISCV::BI__builtin_rvv_vcompress_vm_f16m1:
case RISCV::BI__builtin_rvv_vcompress_vm_f16m2:
case RISCV::BI__builtin_rvv_vcompress_vm_f16m4:
case RISCV::BI__builtin_rvv_vcompress_vm_f16m8:
case RISCV::BI__builtin_rvv_vcompress_vm_f16mf2:
case RISCV::BI__builtin_rvv_vcompress_vm_f16mf4:
case RISCV::BI__builtin_rvv_vcompress_vm_f32m1:
case RISCV::BI__builtin_rvv_vcompress_vm_f32m2:
case RISCV::BI__builtin_rvv_vcompress_vm_f32m4:
case RISCV::BI__builtin_rvv_vcompress_vm_f32m8:
case RISCV::BI__builtin_rvv_vcompress_vm_f32mf2:
case RISCV::BI__builtin_rvv_vcompress_vm_f64m1:
case RISCV::BI__builtin_rvv_vcompress_vm_f64m2:
case RISCV::BI__builtin_rvv_vcompress_vm_f64m4:
case RISCV::BI__builtin_rvv_vcompress_vm_f64m8:
case RISCV::BI__builtin_rvv_vcompress_vm_u8m1:
case RISCV::BI__builtin_rvv_vcompress_vm_u8m2:
case RISCV::BI__builtin_rvv_vcompress_vm_u8m4:
case RISCV::BI__builtin_rvv_vcompress_vm_u8m8:
case RISCV::BI__builtin_rvv_vcompress_vm_u8mf2:
case RISCV::BI__builtin_rvv_vcompress_vm_u8mf4:
case RISCV::BI__builtin_rvv_vcompress_vm_u8mf8:
case RISCV::BI__builtin_rvv_vcompress_vm_u16m1:
case RISCV::BI__builtin_rvv_vcompress_vm_u16m2:
case RISCV::BI__builtin_rvv_vcompress_vm_u16m4:
case RISCV::BI__builtin_rvv_vcompress_vm_u16m8:
case RISCV::BI__builtin_rvv_vcompress_vm_u16mf2:
case RISCV::BI__builtin_rvv_vcompress_vm_u16mf4:
case RISCV::BI__builtin_rvv_vcompress_vm_u32m1:
case RISCV::BI__builtin_rvv_vcompress_vm_u32m2:
case RISCV::BI__builtin_rvv_vcompress_vm_u32m4:
case RISCV::BI__builtin_rvv_vcompress_vm_u32m8:
case RISCV::BI__builtin_rvv_vcompress_vm_u32mf2:
case RISCV::BI__builtin_rvv_vcompress_vm_u64m1:
case RISCV::BI__builtin_rvv_vcompress_vm_u64m2:
case RISCV::BI__builtin_rvv_vcompress_vm_u64m4:
case RISCV::BI__builtin_rvv_vcompress_vm_u64m8:
  ID = Intrinsic::riscv_vcompress;

      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.begin() + 3);
      IntrinsicTypes = {ResultType, Ops[3]->getType()};
    break;
case RISCV::BI__builtin_rvv_vdiv_vv_i8m1:
case RISCV::BI__builtin_rvv_vdiv_vv_i8m2:
case RISCV::BI__builtin_rvv_vdiv_vv_i8m4:
case RISCV::BI__builtin_rvv_vdiv_vv_i8m8:
case RISCV::BI__builtin_rvv_vdiv_vv_i8mf2:
case RISCV::BI__builtin_rvv_vdiv_vv_i8mf4:
case RISCV::BI__builtin_rvv_vdiv_vv_i8mf8:
case RISCV::BI__builtin_rvv_vdiv_vv_i16m1:
case RISCV::BI__builtin_rvv_vdiv_vv_i16m2:
case RISCV::BI__builtin_rvv_vdiv_vv_i16m4:
case RISCV::BI__builtin_rvv_vdiv_vv_i16m8:
case RISCV::BI__builtin_rvv_vdiv_vv_i16mf2:
case RISCV::BI__builtin_rvv_vdiv_vv_i16mf4:
case RISCV::BI__builtin_rvv_vdiv_vv_i32m1:
case RISCV::BI__builtin_rvv_vdiv_vv_i32m2:
case RISCV::BI__builtin_rvv_vdiv_vv_i32m4:
case RISCV::BI__builtin_rvv_vdiv_vv_i32m8:
case RISCV::BI__builtin_rvv_vdiv_vv_i32mf2:
case RISCV::BI__builtin_rvv_vdiv_vv_i64m1:
case RISCV::BI__builtin_rvv_vdiv_vv_i64m2:
case RISCV::BI__builtin_rvv_vdiv_vv_i64m4:
case RISCV::BI__builtin_rvv_vdiv_vv_i64m8:
case RISCV::BI__builtin_rvv_vdiv_vx_i8m1:
case RISCV::BI__builtin_rvv_vdiv_vx_i8m2:
case RISCV::BI__builtin_rvv_vdiv_vx_i8m4:
case RISCV::BI__builtin_rvv_vdiv_vx_i8m8:
case RISCV::BI__builtin_rvv_vdiv_vx_i8mf2:
case RISCV::BI__builtin_rvv_vdiv_vx_i8mf4:
case RISCV::BI__builtin_rvv_vdiv_vx_i8mf8:
case RISCV::BI__builtin_rvv_vdiv_vx_i16m1:
case RISCV::BI__builtin_rvv_vdiv_vx_i16m2:
case RISCV::BI__builtin_rvv_vdiv_vx_i16m4:
case RISCV::BI__builtin_rvv_vdiv_vx_i16m8:
case RISCV::BI__builtin_rvv_vdiv_vx_i16mf2:
case RISCV::BI__builtin_rvv_vdiv_vx_i16mf4:
case RISCV::BI__builtin_rvv_vdiv_vx_i32m1:
case RISCV::BI__builtin_rvv_vdiv_vx_i32m2:
case RISCV::BI__builtin_rvv_vdiv_vx_i32m4:
case RISCV::BI__builtin_rvv_vdiv_vx_i32m8:
case RISCV::BI__builtin_rvv_vdiv_vx_i32mf2:
case RISCV::BI__builtin_rvv_vdiv_vx_i64m1:
case RISCV::BI__builtin_rvv_vdiv_vx_i64m2:
case RISCV::BI__builtin_rvv_vdiv_vx_i64m4:
case RISCV::BI__builtin_rvv_vdiv_vx_i64m8:
  ID = Intrinsic::riscv_vdiv;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vdiv_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vdiv_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vdiv_vx_i64m8_m:
  ID = Intrinsic::riscv_vdiv_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vdivu_vv_u8m1:
case RISCV::BI__builtin_rvv_vdivu_vv_u8m2:
case RISCV::BI__builtin_rvv_vdivu_vv_u8m4:
case RISCV::BI__builtin_rvv_vdivu_vv_u8m8:
case RISCV::BI__builtin_rvv_vdivu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vdivu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vdivu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vdivu_vv_u16m1:
case RISCV::BI__builtin_rvv_vdivu_vv_u16m2:
case RISCV::BI__builtin_rvv_vdivu_vv_u16m4:
case RISCV::BI__builtin_rvv_vdivu_vv_u16m8:
case RISCV::BI__builtin_rvv_vdivu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vdivu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vdivu_vv_u32m1:
case RISCV::BI__builtin_rvv_vdivu_vv_u32m2:
case RISCV::BI__builtin_rvv_vdivu_vv_u32m4:
case RISCV::BI__builtin_rvv_vdivu_vv_u32m8:
case RISCV::BI__builtin_rvv_vdivu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vdivu_vv_u64m1:
case RISCV::BI__builtin_rvv_vdivu_vv_u64m2:
case RISCV::BI__builtin_rvv_vdivu_vv_u64m4:
case RISCV::BI__builtin_rvv_vdivu_vv_u64m8:
case RISCV::BI__builtin_rvv_vdivu_vx_u8m1:
case RISCV::BI__builtin_rvv_vdivu_vx_u8m2:
case RISCV::BI__builtin_rvv_vdivu_vx_u8m4:
case RISCV::BI__builtin_rvv_vdivu_vx_u8m8:
case RISCV::BI__builtin_rvv_vdivu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vdivu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vdivu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vdivu_vx_u16m1:
case RISCV::BI__builtin_rvv_vdivu_vx_u16m2:
case RISCV::BI__builtin_rvv_vdivu_vx_u16m4:
case RISCV::BI__builtin_rvv_vdivu_vx_u16m8:
case RISCV::BI__builtin_rvv_vdivu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vdivu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vdivu_vx_u32m1:
case RISCV::BI__builtin_rvv_vdivu_vx_u32m2:
case RISCV::BI__builtin_rvv_vdivu_vx_u32m4:
case RISCV::BI__builtin_rvv_vdivu_vx_u32m8:
case RISCV::BI__builtin_rvv_vdivu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vdivu_vx_u64m1:
case RISCV::BI__builtin_rvv_vdivu_vx_u64m2:
case RISCV::BI__builtin_rvv_vdivu_vx_u64m4:
case RISCV::BI__builtin_rvv_vdivu_vx_u64m8:
  ID = Intrinsic::riscv_vdivu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vdivu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vdivu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vdivu_vx_u64m8_m:
  ID = Intrinsic::riscv_vdivu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfadd_vv_f16m1:
case RISCV::BI__builtin_rvv_vfadd_vv_f16m2:
case RISCV::BI__builtin_rvv_vfadd_vv_f16m4:
case RISCV::BI__builtin_rvv_vfadd_vv_f16m8:
case RISCV::BI__builtin_rvv_vfadd_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfadd_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfadd_vv_f32m1:
case RISCV::BI__builtin_rvv_vfadd_vv_f32m2:
case RISCV::BI__builtin_rvv_vfadd_vv_f32m4:
case RISCV::BI__builtin_rvv_vfadd_vv_f32m8:
case RISCV::BI__builtin_rvv_vfadd_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfadd_vv_f64m1:
case RISCV::BI__builtin_rvv_vfadd_vv_f64m2:
case RISCV::BI__builtin_rvv_vfadd_vv_f64m4:
case RISCV::BI__builtin_rvv_vfadd_vv_f64m8:
case RISCV::BI__builtin_rvv_vfadd_vf_f16m1:
case RISCV::BI__builtin_rvv_vfadd_vf_f16m2:
case RISCV::BI__builtin_rvv_vfadd_vf_f16m4:
case RISCV::BI__builtin_rvv_vfadd_vf_f16m8:
case RISCV::BI__builtin_rvv_vfadd_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfadd_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfadd_vf_f32m1:
case RISCV::BI__builtin_rvv_vfadd_vf_f32m2:
case RISCV::BI__builtin_rvv_vfadd_vf_f32m4:
case RISCV::BI__builtin_rvv_vfadd_vf_f32m8:
case RISCV::BI__builtin_rvv_vfadd_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfadd_vf_f64m1:
case RISCV::BI__builtin_rvv_vfadd_vf_f64m2:
case RISCV::BI__builtin_rvv_vfadd_vf_f64m4:
case RISCV::BI__builtin_rvv_vfadd_vf_f64m8:
  ID = Intrinsic::riscv_vfadd;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfadd_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfadd_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfadd_vf_f64m8_m:
  ID = Intrinsic::riscv_vfadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfclass_v_u16m1:
case RISCV::BI__builtin_rvv_vfclass_v_u16m2:
case RISCV::BI__builtin_rvv_vfclass_v_u16m4:
case RISCV::BI__builtin_rvv_vfclass_v_u16m8:
case RISCV::BI__builtin_rvv_vfclass_v_u16mf2:
case RISCV::BI__builtin_rvv_vfclass_v_u16mf4:
case RISCV::BI__builtin_rvv_vfclass_v_u32m1:
case RISCV::BI__builtin_rvv_vfclass_v_u32m2:
case RISCV::BI__builtin_rvv_vfclass_v_u32m4:
case RISCV::BI__builtin_rvv_vfclass_v_u32m8:
case RISCV::BI__builtin_rvv_vfclass_v_u32mf2:
case RISCV::BI__builtin_rvv_vfclass_v_u64m1:
case RISCV::BI__builtin_rvv_vfclass_v_u64m2:
case RISCV::BI__builtin_rvv_vfclass_v_u64m4:
case RISCV::BI__builtin_rvv_vfclass_v_u64m8:
  ID = Intrinsic::riscv_vfclass;
  IntrinsicTypes = {Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfclass_v_u16m1_m:
case RISCV::BI__builtin_rvv_vfclass_v_u16m2_m:
case RISCV::BI__builtin_rvv_vfclass_v_u16m4_m:
case RISCV::BI__builtin_rvv_vfclass_v_u16m8_m:
case RISCV::BI__builtin_rvv_vfclass_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vfclass_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vfclass_v_u32m1_m:
case RISCV::BI__builtin_rvv_vfclass_v_u32m2_m:
case RISCV::BI__builtin_rvv_vfclass_v_u32m4_m:
case RISCV::BI__builtin_rvv_vfclass_v_u32m8_m:
case RISCV::BI__builtin_rvv_vfclass_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vfclass_v_u64m1_m:
case RISCV::BI__builtin_rvv_vfclass_v_u64m2_m:
case RISCV::BI__builtin_rvv_vfclass_v_u64m4_m:
case RISCV::BI__builtin_rvv_vfclass_v_u64m8_m:
  ID = Intrinsic::riscv_vfclass_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16m1:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16m2:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16m4:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16m8:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16mf2:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16mf4:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32m1:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32m2:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32m4:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32m8:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32mf2:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f64m1:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f64m2:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f64m4:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f64m8:
  ID = Intrinsic::riscv_vfcvt_f_x_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfcvt_f_x_v_f64m8_m:
  ID = Intrinsic::riscv_vfcvt_f_x_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16m1:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16m2:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16m4:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16m8:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16mf2:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16mf4:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32m1:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32m2:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32m4:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32m8:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32mf2:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f64m1:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f64m2:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f64m4:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f64m8:
  ID = Intrinsic::riscv_vfcvt_f_xu_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfcvt_f_xu_v_f64m8_m:
  ID = Intrinsic::riscv_vfcvt_f_xu_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16m1:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16m2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16m4:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16m8:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32m1:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32m2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32m4:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32m8:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i64m1:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i64m2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i64m4:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i64m8:
  ID = Intrinsic::riscv_vfcvt_rtz_x_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16m1_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16m2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16m4_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16m8_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32m1_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32m2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32m4_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32m8_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i64m1_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i64m2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i64m4_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_x_f_v_i64m8_m:
  ID = Intrinsic::riscv_vfcvt_rtz_x_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8:
  ID = Intrinsic::riscv_vfcvt_rtz_xu_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4_m:
case RISCV::BI__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8_m:
  ID = Intrinsic::riscv_vfcvt_rtz_xu_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16m1:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16m2:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16m4:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16m8:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16mf2:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16mf4:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32m1:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32m2:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32m4:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32m8:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32mf2:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i64m1:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i64m2:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i64m4:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i64m8:
  ID = Intrinsic::riscv_vfcvt_x_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16m1_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16m2_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16m4_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16m8_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32m1_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32m2_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32m4_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32m8_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i64m1_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i64m2_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i64m4_m:
case RISCV::BI__builtin_rvv_vfcvt_x_f_v_i64m8_m:
  ID = Intrinsic::riscv_vfcvt_x_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16m1:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16m2:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16m4:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16m8:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16mf2:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16mf4:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32m1:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32m2:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32m4:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32m8:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32mf2:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u64m1:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u64m2:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u64m4:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u64m8:
  ID = Intrinsic::riscv_vfcvt_xu_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16m1_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16m2_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16m4_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16m8_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32m1_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32m2_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32m4_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32m8_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u64m1_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u64m2_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u64m4_m:
case RISCV::BI__builtin_rvv_vfcvt_xu_f_v_u64m8_m:
  ID = Intrinsic::riscv_vfcvt_xu_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfdiv_vv_f16m1:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16m2:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16m4:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16m8:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32m1:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32m2:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32m4:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32m8:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfdiv_vv_f64m1:
case RISCV::BI__builtin_rvv_vfdiv_vv_f64m2:
case RISCV::BI__builtin_rvv_vfdiv_vv_f64m4:
case RISCV::BI__builtin_rvv_vfdiv_vv_f64m8:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16m1:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16m2:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16m4:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16m8:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32m1:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32m2:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32m4:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32m8:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfdiv_vf_f64m1:
case RISCV::BI__builtin_rvv_vfdiv_vf_f64m2:
case RISCV::BI__builtin_rvv_vfdiv_vf_f64m4:
case RISCV::BI__builtin_rvv_vfdiv_vf_f64m8:
  ID = Intrinsic::riscv_vfdiv;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfdiv_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfdiv_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfdiv_vf_f64m8_m:
  ID = Intrinsic::riscv_vfdiv_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfirst_m_b8:
case RISCV::BI__builtin_rvv_vfirst_m_b4:
case RISCV::BI__builtin_rvv_vfirst_m_b2:
case RISCV::BI__builtin_rvv_vfirst_m_b1:
case RISCV::BI__builtin_rvv_vfirst_m_b16:
case RISCV::BI__builtin_rvv_vfirst_m_b32:
case RISCV::BI__builtin_rvv_vfirst_m_b64:
  ID = Intrinsic::riscv_vfirst;
  IntrinsicTypes = {Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfirst_m_b8_m:
case RISCV::BI__builtin_rvv_vfirst_m_b4_m:
case RISCV::BI__builtin_rvv_vfirst_m_b2_m:
case RISCV::BI__builtin_rvv_vfirst_m_b1_m:
case RISCV::BI__builtin_rvv_vfirst_m_b16_m:
case RISCV::BI__builtin_rvv_vfirst_m_b32_m:
case RISCV::BI__builtin_rvv_vfirst_m_b64_m:
  ID = Intrinsic::riscv_vfirst_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmacc_vv_f16m1:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16m2:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16m4:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16m8:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32m1:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32m2:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32m4:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32m8:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfmacc_vv_f64m1:
case RISCV::BI__builtin_rvv_vfmacc_vv_f64m2:
case RISCV::BI__builtin_rvv_vfmacc_vv_f64m4:
case RISCV::BI__builtin_rvv_vfmacc_vv_f64m8:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16m1:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16m2:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16m4:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16m8:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32m1:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32m2:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32m4:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32m8:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfmacc_vf_f64m1:
case RISCV::BI__builtin_rvv_vfmacc_vf_f64m2:
case RISCV::BI__builtin_rvv_vfmacc_vf_f64m4:
case RISCV::BI__builtin_rvv_vfmacc_vf_f64m8:
  ID = Intrinsic::riscv_vfmacc;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmacc_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfmacc_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfmacc_vf_f64m8_m:
  ID = Intrinsic::riscv_vfmacc_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmadd_vv_f16m1:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16m2:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16m4:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16m8:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32m1:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32m2:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32m4:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32m8:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfmadd_vv_f64m1:
case RISCV::BI__builtin_rvv_vfmadd_vv_f64m2:
case RISCV::BI__builtin_rvv_vfmadd_vv_f64m4:
case RISCV::BI__builtin_rvv_vfmadd_vv_f64m8:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16m1:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16m2:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16m4:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16m8:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32m1:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32m2:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32m4:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32m8:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfmadd_vf_f64m1:
case RISCV::BI__builtin_rvv_vfmadd_vf_f64m2:
case RISCV::BI__builtin_rvv_vfmadd_vf_f64m4:
case RISCV::BI__builtin_rvv_vfmadd_vf_f64m8:
  ID = Intrinsic::riscv_vfmadd;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmadd_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfmadd_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfmadd_vf_f64m8_m:
  ID = Intrinsic::riscv_vfmadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmax_vv_f16m1:
case RISCV::BI__builtin_rvv_vfmax_vv_f16m2:
case RISCV::BI__builtin_rvv_vfmax_vv_f16m4:
case RISCV::BI__builtin_rvv_vfmax_vv_f16m8:
case RISCV::BI__builtin_rvv_vfmax_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfmax_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfmax_vv_f32m1:
case RISCV::BI__builtin_rvv_vfmax_vv_f32m2:
case RISCV::BI__builtin_rvv_vfmax_vv_f32m4:
case RISCV::BI__builtin_rvv_vfmax_vv_f32m8:
case RISCV::BI__builtin_rvv_vfmax_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfmax_vv_f64m1:
case RISCV::BI__builtin_rvv_vfmax_vv_f64m2:
case RISCV::BI__builtin_rvv_vfmax_vv_f64m4:
case RISCV::BI__builtin_rvv_vfmax_vv_f64m8:
case RISCV::BI__builtin_rvv_vfmax_vf_f16m1:
case RISCV::BI__builtin_rvv_vfmax_vf_f16m2:
case RISCV::BI__builtin_rvv_vfmax_vf_f16m4:
case RISCV::BI__builtin_rvv_vfmax_vf_f16m8:
case RISCV::BI__builtin_rvv_vfmax_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfmax_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfmax_vf_f32m1:
case RISCV::BI__builtin_rvv_vfmax_vf_f32m2:
case RISCV::BI__builtin_rvv_vfmax_vf_f32m4:
case RISCV::BI__builtin_rvv_vfmax_vf_f32m8:
case RISCV::BI__builtin_rvv_vfmax_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfmax_vf_f64m1:
case RISCV::BI__builtin_rvv_vfmax_vf_f64m2:
case RISCV::BI__builtin_rvv_vfmax_vf_f64m4:
case RISCV::BI__builtin_rvv_vfmax_vf_f64m8:
  ID = Intrinsic::riscv_vfmax;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmax_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfmax_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfmax_vf_f64m8_m:
  ID = Intrinsic::riscv_vfmax_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmerge_vvm_f16m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_f16m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_f16m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_f16m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_f16mf2:
case RISCV::BI__builtin_rvv_vmerge_vvm_f16mf4:
case RISCV::BI__builtin_rvv_vmerge_vvm_f32m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_f32m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_f32m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_f32m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_f32mf2:
case RISCV::BI__builtin_rvv_vmerge_vvm_f64m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_f64m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_f64m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_f64m8:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f16m1:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f16m2:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f16m4:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f16m8:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f16mf2:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f16mf4:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f32m1:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f32m2:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f32m4:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f32m8:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f32mf2:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f64m1:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f64m2:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f64m4:
case RISCV::BI__builtin_rvv_vfmerge_vfm_f64m8:
  ID = Intrinsic::riscv_vfmerge;

      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.begin() + 3);
      IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
    break;
case RISCV::BI__builtin_rvv_vfmin_vv_f16m1:
case RISCV::BI__builtin_rvv_vfmin_vv_f16m2:
case RISCV::BI__builtin_rvv_vfmin_vv_f16m4:
case RISCV::BI__builtin_rvv_vfmin_vv_f16m8:
case RISCV::BI__builtin_rvv_vfmin_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfmin_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfmin_vv_f32m1:
case RISCV::BI__builtin_rvv_vfmin_vv_f32m2:
case RISCV::BI__builtin_rvv_vfmin_vv_f32m4:
case RISCV::BI__builtin_rvv_vfmin_vv_f32m8:
case RISCV::BI__builtin_rvv_vfmin_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfmin_vv_f64m1:
case RISCV::BI__builtin_rvv_vfmin_vv_f64m2:
case RISCV::BI__builtin_rvv_vfmin_vv_f64m4:
case RISCV::BI__builtin_rvv_vfmin_vv_f64m8:
case RISCV::BI__builtin_rvv_vfmin_vf_f16m1:
case RISCV::BI__builtin_rvv_vfmin_vf_f16m2:
case RISCV::BI__builtin_rvv_vfmin_vf_f16m4:
case RISCV::BI__builtin_rvv_vfmin_vf_f16m8:
case RISCV::BI__builtin_rvv_vfmin_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfmin_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfmin_vf_f32m1:
case RISCV::BI__builtin_rvv_vfmin_vf_f32m2:
case RISCV::BI__builtin_rvv_vfmin_vf_f32m4:
case RISCV::BI__builtin_rvv_vfmin_vf_f32m8:
case RISCV::BI__builtin_rvv_vfmin_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfmin_vf_f64m1:
case RISCV::BI__builtin_rvv_vfmin_vf_f64m2:
case RISCV::BI__builtin_rvv_vfmin_vf_f64m4:
case RISCV::BI__builtin_rvv_vfmin_vf_f64m8:
  ID = Intrinsic::riscv_vfmin;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmin_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfmin_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfmin_vf_f64m8_m:
  ID = Intrinsic::riscv_vfmin_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmsac_vv_f16m1:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16m2:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16m4:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16m8:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32m1:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32m2:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32m4:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32m8:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfmsac_vv_f64m1:
case RISCV::BI__builtin_rvv_vfmsac_vv_f64m2:
case RISCV::BI__builtin_rvv_vfmsac_vv_f64m4:
case RISCV::BI__builtin_rvv_vfmsac_vv_f64m8:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16m1:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16m2:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16m4:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16m8:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32m1:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32m2:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32m4:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32m8:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfmsac_vf_f64m1:
case RISCV::BI__builtin_rvv_vfmsac_vf_f64m2:
case RISCV::BI__builtin_rvv_vfmsac_vf_f64m4:
case RISCV::BI__builtin_rvv_vfmsac_vf_f64m8:
  ID = Intrinsic::riscv_vfmsac;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmsac_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfmsac_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfmsac_vf_f64m8_m:
  ID = Intrinsic::riscv_vfmsac_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmsub_vv_f16m1:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16m2:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16m4:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16m8:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32m1:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32m2:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32m4:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32m8:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfmsub_vv_f64m1:
case RISCV::BI__builtin_rvv_vfmsub_vv_f64m2:
case RISCV::BI__builtin_rvv_vfmsub_vv_f64m4:
case RISCV::BI__builtin_rvv_vfmsub_vv_f64m8:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16m1:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16m2:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16m4:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16m8:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32m1:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32m2:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32m4:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32m8:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfmsub_vf_f64m1:
case RISCV::BI__builtin_rvv_vfmsub_vf_f64m2:
case RISCV::BI__builtin_rvv_vfmsub_vf_f64m4:
case RISCV::BI__builtin_rvv_vfmsub_vf_f64m8:
  ID = Intrinsic::riscv_vfmsub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmsub_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfmsub_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfmsub_vf_f64m8_m:
  ID = Intrinsic::riscv_vfmsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmul_vv_f16m1:
case RISCV::BI__builtin_rvv_vfmul_vv_f16m2:
case RISCV::BI__builtin_rvv_vfmul_vv_f16m4:
case RISCV::BI__builtin_rvv_vfmul_vv_f16m8:
case RISCV::BI__builtin_rvv_vfmul_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfmul_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfmul_vv_f32m1:
case RISCV::BI__builtin_rvv_vfmul_vv_f32m2:
case RISCV::BI__builtin_rvv_vfmul_vv_f32m4:
case RISCV::BI__builtin_rvv_vfmul_vv_f32m8:
case RISCV::BI__builtin_rvv_vfmul_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfmul_vv_f64m1:
case RISCV::BI__builtin_rvv_vfmul_vv_f64m2:
case RISCV::BI__builtin_rvv_vfmul_vv_f64m4:
case RISCV::BI__builtin_rvv_vfmul_vv_f64m8:
case RISCV::BI__builtin_rvv_vfmul_vf_f16m1:
case RISCV::BI__builtin_rvv_vfmul_vf_f16m2:
case RISCV::BI__builtin_rvv_vfmul_vf_f16m4:
case RISCV::BI__builtin_rvv_vfmul_vf_f16m8:
case RISCV::BI__builtin_rvv_vfmul_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfmul_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfmul_vf_f32m1:
case RISCV::BI__builtin_rvv_vfmul_vf_f32m2:
case RISCV::BI__builtin_rvv_vfmul_vf_f32m4:
case RISCV::BI__builtin_rvv_vfmul_vf_f32m8:
case RISCV::BI__builtin_rvv_vfmul_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfmul_vf_f64m1:
case RISCV::BI__builtin_rvv_vfmul_vf_f64m2:
case RISCV::BI__builtin_rvv_vfmul_vf_f64m4:
case RISCV::BI__builtin_rvv_vfmul_vf_f64m8:
  ID = Intrinsic::riscv_vfmul;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmul_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfmul_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfmul_vf_f64m8_m:
  ID = Intrinsic::riscv_vfmul_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmv_f_s_f16m1_f16:
case RISCV::BI__builtin_rvv_vfmv_f_s_f16m2_f16:
case RISCV::BI__builtin_rvv_vfmv_f_s_f16m4_f16:
case RISCV::BI__builtin_rvv_vfmv_f_s_f16m8_f16:
case RISCV::BI__builtin_rvv_vfmv_f_s_f16mf2_f16:
case RISCV::BI__builtin_rvv_vfmv_f_s_f16mf4_f16:
case RISCV::BI__builtin_rvv_vfmv_f_s_f32m1_f32:
case RISCV::BI__builtin_rvv_vfmv_f_s_f32m2_f32:
case RISCV::BI__builtin_rvv_vfmv_f_s_f32m4_f32:
case RISCV::BI__builtin_rvv_vfmv_f_s_f32m8_f32:
case RISCV::BI__builtin_rvv_vfmv_f_s_f32mf2_f32:
case RISCV::BI__builtin_rvv_vfmv_f_s_f64m1_f64:
case RISCV::BI__builtin_rvv_vfmv_f_s_f64m2_f64:
case RISCV::BI__builtin_rvv_vfmv_f_s_f64m4_f64:
case RISCV::BI__builtin_rvv_vfmv_f_s_f64m8_f64:
  ID = Intrinsic::riscv_vfmv_f_s;
  IntrinsicTypes = {Ops[0]->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmv_s_f_f16m1:
case RISCV::BI__builtin_rvv_vfmv_s_f_f16m2:
case RISCV::BI__builtin_rvv_vfmv_s_f_f16m4:
case RISCV::BI__builtin_rvv_vfmv_s_f_f16m8:
case RISCV::BI__builtin_rvv_vfmv_s_f_f16mf2:
case RISCV::BI__builtin_rvv_vfmv_s_f_f16mf4:
case RISCV::BI__builtin_rvv_vfmv_s_f_f32m1:
case RISCV::BI__builtin_rvv_vfmv_s_f_f32m2:
case RISCV::BI__builtin_rvv_vfmv_s_f_f32m4:
case RISCV::BI__builtin_rvv_vfmv_s_f_f32m8:
case RISCV::BI__builtin_rvv_vfmv_s_f_f32mf2:
case RISCV::BI__builtin_rvv_vfmv_s_f_f64m1:
case RISCV::BI__builtin_rvv_vfmv_s_f_f64m2:
case RISCV::BI__builtin_rvv_vfmv_s_f_f64m4:
case RISCV::BI__builtin_rvv_vfmv_s_f_f64m8:
case RISCV::BI__builtin_rvv_vfmv_s_x_u16m1:
case RISCV::BI__builtin_rvv_vfmv_s_x_u16m2:
case RISCV::BI__builtin_rvv_vfmv_s_x_u16m4:
case RISCV::BI__builtin_rvv_vfmv_s_x_u16m8:
case RISCV::BI__builtin_rvv_vfmv_s_x_u16mf2:
case RISCV::BI__builtin_rvv_vfmv_s_x_u16mf4:
case RISCV::BI__builtin_rvv_vfmv_s_x_u32m1:
case RISCV::BI__builtin_rvv_vfmv_s_x_u32m2:
case RISCV::BI__builtin_rvv_vfmv_s_x_u32m4:
case RISCV::BI__builtin_rvv_vfmv_s_x_u32m8:
case RISCV::BI__builtin_rvv_vfmv_s_x_u32mf2:
case RISCV::BI__builtin_rvv_vfmv_s_x_u64m1:
case RISCV::BI__builtin_rvv_vfmv_s_x_u64m2:
case RISCV::BI__builtin_rvv_vfmv_s_x_u64m4:
case RISCV::BI__builtin_rvv_vfmv_s_x_u64m8:
  ID = Intrinsic::riscv_vfmv_s_f;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfmv_v_f_f16m1:
case RISCV::BI__builtin_rvv_vfmv_v_f_f16m2:
case RISCV::BI__builtin_rvv_vfmv_v_f_f16m4:
case RISCV::BI__builtin_rvv_vfmv_v_f_f16m8:
case RISCV::BI__builtin_rvv_vfmv_v_f_f16mf2:
case RISCV::BI__builtin_rvv_vfmv_v_f_f16mf4:
case RISCV::BI__builtin_rvv_vfmv_v_f_f32m1:
case RISCV::BI__builtin_rvv_vfmv_v_f_f32m2:
case RISCV::BI__builtin_rvv_vfmv_v_f_f32m4:
case RISCV::BI__builtin_rvv_vfmv_v_f_f32m8:
case RISCV::BI__builtin_rvv_vfmv_v_f_f32mf2:
case RISCV::BI__builtin_rvv_vfmv_v_f_f64m1:
case RISCV::BI__builtin_rvv_vfmv_v_f_f64m2:
case RISCV::BI__builtin_rvv_vfmv_v_f_f64m4:
case RISCV::BI__builtin_rvv_vfmv_v_f_f64m8:
  ID = Intrinsic::riscv_vfmv_v_f;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16mf4:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16mf2:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16m1:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16m2:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16m4:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f32mf2:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f32m1:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f32m2:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f32m4:
  ID = Intrinsic::riscv_vfncvt_f_f_w;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16m1_m:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16m2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f16m4_m:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f32mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f32m1_m:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f32m2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_f_w_f32m4_m:
  ID = Intrinsic::riscv_vfncvt_f_f_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16mf4:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16mf2:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16m1:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16m2:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16m4:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f32mf2:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f32m1:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f32m2:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f32m4:
  ID = Intrinsic::riscv_vfncvt_f_x_w;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16m1_m:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16m2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f16m4_m:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f32mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f32m1_m:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f32m2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_x_w_f32m4_m:
  ID = Intrinsic::riscv_vfncvt_f_x_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16mf4:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16mf2:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16m1:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16m2:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16m4:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f32mf2:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f32m1:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f32m2:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f32m4:
  ID = Intrinsic::riscv_vfncvt_f_xu_w;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16m1_m:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16m2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f16m4_m:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f32mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f32m1_m:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f32m2_m:
case RISCV::BI__builtin_rvv_vfncvt_f_xu_w_f32m4_m:
  ID = Intrinsic::riscv_vfncvt_f_xu_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16mf4:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16mf2:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16m1:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16m2:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16m4:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f32mf2:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f32m1:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f32m2:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f32m4:
  ID = Intrinsic::riscv_vfncvt_rod_f_f_w;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16m1_m:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16m2_m:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f16m4_m:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f32mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f32m1_m:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f32m2_m:
case RISCV::BI__builtin_rvv_vfncvt_rod_f_f_w_f32m4_m:
  ID = Intrinsic::riscv_vfncvt_rod_f_f_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8m1:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8m2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8m4:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16m1:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16m2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16m4:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i32m1:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i32m2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i32m4:
  ID = Intrinsic::riscv_vfncvt_rtz_x_f_w;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8m1_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8m2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i8m4_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16m1_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16m2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i16m4_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i32m1_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i32m2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_x_f_w_i32m4_m:
  ID = Intrinsic::riscv_vfncvt_rtz_x_f_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4:
  ID = Intrinsic::riscv_vfncvt_rtz_xu_f_w;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2_m:
case RISCV::BI__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4_m:
  ID = Intrinsic::riscv_vfncvt_rtz_xu_f_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8mf8:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8mf4:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8mf2:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8m1:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8m2:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8m4:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16mf4:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16mf2:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16m1:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16m2:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16m4:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i32mf2:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i32m1:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i32m2:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i32m4:
  ID = Intrinsic::riscv_vfncvt_x_f_w;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8mf8_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8m1_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8m2_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i8m4_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16m1_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16m2_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i16m4_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i32mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i32m1_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i32m2_m:
case RISCV::BI__builtin_rvv_vfncvt_x_f_w_i32m4_m:
  ID = Intrinsic::riscv_vfncvt_x_f_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8mf8:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8mf4:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8mf2:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8m1:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8m2:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8m4:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16mf4:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16mf2:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16m1:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16m2:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16m4:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u32mf2:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u32m1:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u32m2:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u32m4:
  ID = Intrinsic::riscv_vfncvt_xu_f_w;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8mf8_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8m1_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8m2_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u8m4_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16mf4_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16m1_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16m2_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u16m4_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u32mf2_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u32m1_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u32m2_m:
case RISCV::BI__builtin_rvv_vfncvt_xu_f_w_u32m4_m:
  ID = Intrinsic::riscv_vfncvt_xu_f_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16m1:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16m2:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16m4:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16m8:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32m1:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32m2:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32m4:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32m8:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f64m1:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f64m2:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f64m4:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f64m8:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16m1:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16m2:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16m4:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16m8:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32m1:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32m2:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32m4:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32m8:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f64m1:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f64m2:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f64m4:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f64m8:
  ID = Intrinsic::riscv_vfnmacc;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfnmacc_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfnmacc_vf_f64m8_m:
  ID = Intrinsic::riscv_vfnmacc_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16m1:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16m2:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16m4:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16m8:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32m1:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32m2:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32m4:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32m8:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f64m1:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f64m2:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f64m4:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f64m8:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16m1:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16m2:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16m4:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16m8:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32m1:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32m2:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32m4:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32m8:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f64m1:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f64m2:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f64m4:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f64m8:
  ID = Intrinsic::riscv_vfnmadd;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfnmadd_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfnmadd_vf_f64m8_m:
  ID = Intrinsic::riscv_vfnmadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16m1:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16m2:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16m4:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16m8:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32m1:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32m2:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32m4:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32m8:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f64m1:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f64m2:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f64m4:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f64m8:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16m1:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16m2:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16m4:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16m8:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32m1:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32m2:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32m4:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32m8:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f64m1:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f64m2:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f64m4:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f64m8:
  ID = Intrinsic::riscv_vfnmsac;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfnmsac_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfnmsac_vf_f64m8_m:
  ID = Intrinsic::riscv_vfnmsac_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16m1:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16m2:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16m4:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16m8:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32m1:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32m2:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32m4:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32m8:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f64m1:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f64m2:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f64m4:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f64m8:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16m1:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16m2:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16m4:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16m8:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32m1:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32m2:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32m4:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32m8:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f64m1:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f64m2:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f64m4:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f64m8:
  ID = Intrinsic::riscv_vfnmsub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfnmsub_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfnmsub_vf_f64m8_m:
  ID = Intrinsic::riscv_vfnmsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16m1:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16m2:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16m4:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16m8:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32m1:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32m2:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32m4:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32m8:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f64m1:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f64m2:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f64m4:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f64m8:
  ID = Intrinsic::riscv_vfrdiv;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfrdiv_vf_f64m8_m:
  ID = Intrinsic::riscv_vfrdiv_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfrec7_v_f16m1:
case RISCV::BI__builtin_rvv_vfrec7_v_f16m2:
case RISCV::BI__builtin_rvv_vfrec7_v_f16m4:
case RISCV::BI__builtin_rvv_vfrec7_v_f16m8:
case RISCV::BI__builtin_rvv_vfrec7_v_f16mf2:
case RISCV::BI__builtin_rvv_vfrec7_v_f16mf4:
case RISCV::BI__builtin_rvv_vfrec7_v_f32m1:
case RISCV::BI__builtin_rvv_vfrec7_v_f32m2:
case RISCV::BI__builtin_rvv_vfrec7_v_f32m4:
case RISCV::BI__builtin_rvv_vfrec7_v_f32m8:
case RISCV::BI__builtin_rvv_vfrec7_v_f32mf2:
case RISCV::BI__builtin_rvv_vfrec7_v_f64m1:
case RISCV::BI__builtin_rvv_vfrec7_v_f64m2:
case RISCV::BI__builtin_rvv_vfrec7_v_f64m4:
case RISCV::BI__builtin_rvv_vfrec7_v_f64m8:
  ID = Intrinsic::riscv_vfrec7;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfrec7_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfrec7_v_f64m8_m:
  ID = Intrinsic::riscv_vfrec7_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfredmax_vs_f16m1_f16m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16m2_f16m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16m4_f16m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16m8_f16m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16mf2_f16m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16mf4_f16m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32m1_f32m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32m2_f32m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32m4_f32m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32m8_f32m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32mf2_f32m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f64m1_f64m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f64m2_f64m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f64m4_f64m1:
case RISCV::BI__builtin_rvv_vfredmax_vs_f64m8_f64m1:
  ID = Intrinsic::riscv_vfredmax;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfredmax_vs_f16m1_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16m2_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16m4_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16m8_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16mf2_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f16mf4_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32m1_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32m2_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32m4_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32m8_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f32mf2_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f64m1_f64m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f64m2_f64m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f64m4_f64m1_m:
case RISCV::BI__builtin_rvv_vfredmax_vs_f64m8_f64m1_m:
  ID = Intrinsic::riscv_vfredmax_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfredmin_vs_f16m1_f16m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16m2_f16m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16m4_f16m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16m8_f16m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16mf2_f16m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16mf4_f16m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32m1_f32m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32m2_f32m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32m4_f32m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32m8_f32m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32mf2_f32m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f64m1_f64m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f64m2_f64m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f64m4_f64m1:
case RISCV::BI__builtin_rvv_vfredmin_vs_f64m8_f64m1:
  ID = Intrinsic::riscv_vfredmin;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfredmin_vs_f16m1_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16m2_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16m4_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16m8_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16mf2_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f16mf4_f16m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32m1_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32m2_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32m4_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32m8_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f32mf2_f32m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f64m1_f64m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f64m2_f64m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f64m4_f64m1_m:
case RISCV::BI__builtin_rvv_vfredmin_vs_f64m8_f64m1_m:
  ID = Intrinsic::riscv_vfredmin_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfredosum_vs_f16m1_f16m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16m2_f16m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16m4_f16m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16m8_f16m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16mf2_f16m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16mf4_f16m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32m1_f32m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32m2_f32m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32m4_f32m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32m8_f32m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32mf2_f32m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f64m1_f64m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f64m2_f64m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f64m4_f64m1:
case RISCV::BI__builtin_rvv_vfredosum_vs_f64m8_f64m1:
  ID = Intrinsic::riscv_vfredosum;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfredosum_vs_f16m1_f16m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16m2_f16m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16m4_f16m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16m8_f16m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16mf2_f16m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f16mf4_f16m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32m1_f32m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32m2_f32m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32m4_f32m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32m8_f32m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f32mf2_f32m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f64m1_f64m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f64m2_f64m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f64m4_f64m1_m:
case RISCV::BI__builtin_rvv_vfredosum_vs_f64m8_f64m1_m:
  ID = Intrinsic::riscv_vfredosum_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfredsum_vs_f16m1_f16m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16m2_f16m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16m4_f16m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16m8_f16m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16mf2_f16m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16mf4_f16m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32m1_f32m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32m2_f32m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32m4_f32m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32m8_f32m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32mf2_f32m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f64m1_f64m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f64m2_f64m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f64m4_f64m1:
case RISCV::BI__builtin_rvv_vfredsum_vs_f64m8_f64m1:
  ID = Intrinsic::riscv_vfredsum;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfredsum_vs_f16m1_f16m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16m2_f16m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16m4_f16m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16m8_f16m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16mf2_f16m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f16mf4_f16m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32m1_f32m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32m2_f32m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32m4_f32m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32m8_f32m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f32mf2_f32m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f64m1_f64m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f64m2_f64m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f64m4_f64m1_m:
case RISCV::BI__builtin_rvv_vfredsum_vs_f64m8_f64m1_m:
  ID = Intrinsic::riscv_vfredsum_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16m1:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16m2:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16m4:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16m8:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16mf2:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16mf4:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32m1:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32m2:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32m4:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32m8:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32mf2:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f64m1:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f64m2:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f64m4:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f64m8:
  ID = Intrinsic::riscv_vfrsqrt7;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfrsqrt7_v_f64m8_m:
  ID = Intrinsic::riscv_vfrsqrt7_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfrsub_vf_f16m1:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16m2:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16m4:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16m8:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32m1:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32m2:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32m4:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32m8:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfrsub_vf_f64m1:
case RISCV::BI__builtin_rvv_vfrsub_vf_f64m2:
case RISCV::BI__builtin_rvv_vfrsub_vf_f64m4:
case RISCV::BI__builtin_rvv_vfrsub_vf_f64m8:
  ID = Intrinsic::riscv_vfrsub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfrsub_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfrsub_vf_f64m8_m:
  ID = Intrinsic::riscv_vfrsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16m1:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16m2:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16m4:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16m8:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32m1:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32m2:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32m4:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32m8:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f64m1:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f64m2:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f64m4:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f64m8:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16m1:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16m2:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16m4:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16m8:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32m1:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32m2:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32m4:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32m8:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f64m1:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f64m2:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f64m4:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f64m8:
  ID = Intrinsic::riscv_vfsgnj;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfsgnj_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfsgnj_vf_f64m8_m:
  ID = Intrinsic::riscv_vfsgnj_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16m1:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16m2:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16m4:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16m8:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32m1:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32m2:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32m4:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32m8:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f64m1:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f64m2:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f64m4:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f64m8:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16m1:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16m2:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16m4:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16m8:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32m1:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32m2:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32m4:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32m8:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f64m1:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f64m2:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f64m4:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f64m8:
  ID = Intrinsic::riscv_vfsgnjn;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfneg_v_f16m1:
case RISCV::BI__builtin_rvv_vfneg_v_f16m2:
case RISCV::BI__builtin_rvv_vfneg_v_f16m4:
case RISCV::BI__builtin_rvv_vfneg_v_f16m8:
case RISCV::BI__builtin_rvv_vfneg_v_f16mf2:
case RISCV::BI__builtin_rvv_vfneg_v_f16mf4:
case RISCV::BI__builtin_rvv_vfneg_v_f32m1:
case RISCV::BI__builtin_rvv_vfneg_v_f32m2:
case RISCV::BI__builtin_rvv_vfneg_v_f32m4:
case RISCV::BI__builtin_rvv_vfneg_v_f32m8:
case RISCV::BI__builtin_rvv_vfneg_v_f32mf2:
case RISCV::BI__builtin_rvv_vfneg_v_f64m1:
case RISCV::BI__builtin_rvv_vfneg_v_f64m2:
case RISCV::BI__builtin_rvv_vfneg_v_f64m4:
case RISCV::BI__builtin_rvv_vfneg_v_f64m8:
  ID = Intrinsic::riscv_vfsgnjn;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          Ops[0]->getType(), Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1, Ops[0]);
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfsgnjn_vf_f64m8_m:
  ID = Intrinsic::riscv_vfsgnjn_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfneg_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfneg_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfneg_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfneg_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfneg_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfneg_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfneg_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfneg_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfneg_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfneg_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfneg_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfneg_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfneg_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfneg_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfneg_v_f64m8_m:
  ID = Intrinsic::riscv_vfsgnjn_mask;

      {
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        // maskedoff, op1, mask, vl
        IntrinsicTypes = {ResultType,
                          Ops[1]->getType(),
                          Ops[3]->getType()};
        Ops.insert(Ops.begin() + 2, Ops[1]);
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16m1:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16m2:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16m4:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16m8:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32m1:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32m2:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32m4:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32m8:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f64m1:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f64m2:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f64m4:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f64m8:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16m1:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16m2:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16m4:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16m8:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32m1:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32m2:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32m4:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32m8:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f64m1:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f64m2:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f64m4:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f64m8:
  ID = Intrinsic::riscv_vfsgnjx;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfabs_v_f16m1:
case RISCV::BI__builtin_rvv_vfabs_v_f16m2:
case RISCV::BI__builtin_rvv_vfabs_v_f16m4:
case RISCV::BI__builtin_rvv_vfabs_v_f16m8:
case RISCV::BI__builtin_rvv_vfabs_v_f16mf2:
case RISCV::BI__builtin_rvv_vfabs_v_f16mf4:
case RISCV::BI__builtin_rvv_vfabs_v_f32m1:
case RISCV::BI__builtin_rvv_vfabs_v_f32m2:
case RISCV::BI__builtin_rvv_vfabs_v_f32m4:
case RISCV::BI__builtin_rvv_vfabs_v_f32m8:
case RISCV::BI__builtin_rvv_vfabs_v_f32mf2:
case RISCV::BI__builtin_rvv_vfabs_v_f64m1:
case RISCV::BI__builtin_rvv_vfabs_v_f64m2:
case RISCV::BI__builtin_rvv_vfabs_v_f64m4:
case RISCV::BI__builtin_rvv_vfabs_v_f64m8:
  ID = Intrinsic::riscv_vfsgnjx;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          Ops[0]->getType(), Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1, Ops[0]);
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfsgnjx_vf_f64m8_m:
  ID = Intrinsic::riscv_vfsgnjx_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfabs_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfabs_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfabs_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfabs_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfabs_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfabs_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfabs_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfabs_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfabs_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfabs_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfabs_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfabs_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfabs_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfabs_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfabs_v_f64m8_m:
  ID = Intrinsic::riscv_vfsgnjx_mask;

      {
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        // maskedoff, op1, mask, vl
        IntrinsicTypes = {ResultType,
                          Ops[1]->getType(),
                          Ops[3]->getType()};
        Ops.insert(Ops.begin() + 2, Ops[1]);
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16m1:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16m2:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16m4:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16m8:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32m1:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32m2:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32m4:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32m8:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f64m1:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f64m2:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f64m4:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f64m8:
  ID = Intrinsic::riscv_vfslide1down;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfslide1down_vf_f64m8_m:
  ID = Intrinsic::riscv_vfslide1down_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16m1:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16m2:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16m4:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16m8:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32m1:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32m2:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32m4:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32m8:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f64m1:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f64m2:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f64m4:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f64m8:
  ID = Intrinsic::riscv_vfslide1up;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfslide1up_vf_f64m8_m:
  ID = Intrinsic::riscv_vfslide1up_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfsqrt_v_f16m1:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16m2:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16m4:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16m8:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16mf2:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16mf4:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32m1:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32m2:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32m4:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32m8:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32mf2:
case RISCV::BI__builtin_rvv_vfsqrt_v_f64m1:
case RISCV::BI__builtin_rvv_vfsqrt_v_f64m2:
case RISCV::BI__builtin_rvv_vfsqrt_v_f64m4:
case RISCV::BI__builtin_rvv_vfsqrt_v_f64m8:
  ID = Intrinsic::riscv_vfsqrt;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfsqrt_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfsqrt_v_f64m8_m:
  ID = Intrinsic::riscv_vfsqrt_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfsub_vv_f16m1:
case RISCV::BI__builtin_rvv_vfsub_vv_f16m2:
case RISCV::BI__builtin_rvv_vfsub_vv_f16m4:
case RISCV::BI__builtin_rvv_vfsub_vv_f16m8:
case RISCV::BI__builtin_rvv_vfsub_vv_f16mf2:
case RISCV::BI__builtin_rvv_vfsub_vv_f16mf4:
case RISCV::BI__builtin_rvv_vfsub_vv_f32m1:
case RISCV::BI__builtin_rvv_vfsub_vv_f32m2:
case RISCV::BI__builtin_rvv_vfsub_vv_f32m4:
case RISCV::BI__builtin_rvv_vfsub_vv_f32m8:
case RISCV::BI__builtin_rvv_vfsub_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfsub_vv_f64m1:
case RISCV::BI__builtin_rvv_vfsub_vv_f64m2:
case RISCV::BI__builtin_rvv_vfsub_vv_f64m4:
case RISCV::BI__builtin_rvv_vfsub_vv_f64m8:
case RISCV::BI__builtin_rvv_vfsub_vf_f16m1:
case RISCV::BI__builtin_rvv_vfsub_vf_f16m2:
case RISCV::BI__builtin_rvv_vfsub_vf_f16m4:
case RISCV::BI__builtin_rvv_vfsub_vf_f16m8:
case RISCV::BI__builtin_rvv_vfsub_vf_f16mf2:
case RISCV::BI__builtin_rvv_vfsub_vf_f16mf4:
case RISCV::BI__builtin_rvv_vfsub_vf_f32m1:
case RISCV::BI__builtin_rvv_vfsub_vf_f32m2:
case RISCV::BI__builtin_rvv_vfsub_vf_f32m4:
case RISCV::BI__builtin_rvv_vfsub_vf_f32m8:
case RISCV::BI__builtin_rvv_vfsub_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfsub_vf_f64m1:
case RISCV::BI__builtin_rvv_vfsub_vf_f64m2:
case RISCV::BI__builtin_rvv_vfsub_vf_f64m4:
case RISCV::BI__builtin_rvv_vfsub_vf_f64m8:
  ID = Intrinsic::riscv_vfsub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfsub_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfsub_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f16m1_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f16m2_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f16m4_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f16m8_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f16mf2_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f16mf4_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfsub_vf_f64m8_m:
  ID = Intrinsic::riscv_vfsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwadd_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfwadd_vv_f32m1:
case RISCV::BI__builtin_rvv_vfwadd_vv_f32m2:
case RISCV::BI__builtin_rvv_vfwadd_vv_f32m4:
case RISCV::BI__builtin_rvv_vfwadd_vv_f32m8:
case RISCV::BI__builtin_rvv_vfwadd_vv_f64m1:
case RISCV::BI__builtin_rvv_vfwadd_vv_f64m2:
case RISCV::BI__builtin_rvv_vfwadd_vv_f64m4:
case RISCV::BI__builtin_rvv_vfwadd_vv_f64m8:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32m1:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32m2:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32m4:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32m8:
case RISCV::BI__builtin_rvv_vfwadd_vf_f64m1:
case RISCV::BI__builtin_rvv_vfwadd_vf_f64m2:
case RISCV::BI__builtin_rvv_vfwadd_vf_f64m4:
case RISCV::BI__builtin_rvv_vfwadd_vf_f64m8:
  ID = Intrinsic::riscv_vfwadd;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwadd_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwadd_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwadd_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwadd_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwadd_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwadd_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwadd_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwadd_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwadd_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwadd_vf_f64m8_m:
  ID = Intrinsic::riscv_vfwadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwadd_wv_f32mf2:
case RISCV::BI__builtin_rvv_vfwadd_wv_f32m1:
case RISCV::BI__builtin_rvv_vfwadd_wv_f32m2:
case RISCV::BI__builtin_rvv_vfwadd_wv_f32m4:
case RISCV::BI__builtin_rvv_vfwadd_wv_f32m8:
case RISCV::BI__builtin_rvv_vfwadd_wv_f64m1:
case RISCV::BI__builtin_rvv_vfwadd_wv_f64m2:
case RISCV::BI__builtin_rvv_vfwadd_wv_f64m4:
case RISCV::BI__builtin_rvv_vfwadd_wv_f64m8:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32mf2:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32m1:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32m2:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32m4:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32m8:
case RISCV::BI__builtin_rvv_vfwadd_wf_f64m1:
case RISCV::BI__builtin_rvv_vfwadd_wf_f64m2:
case RISCV::BI__builtin_rvv_vfwadd_wf_f64m4:
case RISCV::BI__builtin_rvv_vfwadd_wf_f64m8:
  ID = Intrinsic::riscv_vfwadd_w;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwadd_wv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwadd_wv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwadd_wv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwadd_wv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwadd_wv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwadd_wv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwadd_wv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwadd_wv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwadd_wv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwadd_wf_f64m8_m:
  ID = Intrinsic::riscv_vfwadd_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32mf2:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32m1:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32m2:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32m4:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32m8:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f64m1:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f64m2:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f64m4:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f64m8:
  ID = Intrinsic::riscv_vfwcvt_f_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_f_v_f64m8_m:
  ID = Intrinsic::riscv_vfwcvt_f_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16mf4:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16mf2:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16m1:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16m2:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16m4:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16m8:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32mf2:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32m1:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32m2:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32m4:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32m8:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f64m1:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f64m2:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f64m4:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f64m8:
  ID = Intrinsic::riscv_vfwcvt_f_x_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_x_v_f64m8_m:
  ID = Intrinsic::riscv_vfwcvt_f_x_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16mf4:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16mf2:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16m1:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16m2:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16m4:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16m8:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32mf2:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32m1:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32m2:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32m4:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32m8:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f64m1:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f64m2:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f64m4:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f64m8:
  ID = Intrinsic::riscv_vfwcvt_f_xu_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f16m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f32m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f64m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f64m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f64m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_f_xu_v_f64m8_m:
  ID = Intrinsic::riscv_vfwcvt_f_xu_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8:
  ID = Intrinsic::riscv_vfwcvt_rtz_x_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8_m:
  ID = Intrinsic::riscv_vfwcvt_rtz_x_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8:
  ID = Intrinsic::riscv_vfwcvt_rtz_xu_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8_m:
  ID = Intrinsic::riscv_vfwcvt_rtz_xu_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32mf2:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32m1:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32m2:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32m4:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32m8:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i64m1:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i64m2:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i64m4:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i64m8:
  ID = Intrinsic::riscv_vfwcvt_x_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i32m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i64m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i64m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i64m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_x_f_v_i64m8_m:
  ID = Intrinsic::riscv_vfwcvt_x_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32mf2:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32m1:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32m2:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32m4:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32m8:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u64m1:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u64m2:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u64m4:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u64m8:
  ID = Intrinsic::riscv_vfwcvt_xu_f_v;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u32m8_m:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u64m1_m:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u64m2_m:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u64m4_m:
case RISCV::BI__builtin_rvv_vfwcvt_xu_f_v_u64m8_m:
  ID = Intrinsic::riscv_vfwcvt_xu_f_v_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32m1:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32m2:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32m4:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32m8:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f64m1:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f64m2:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f64m4:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f64m8:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32m1:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32m2:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32m4:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32m8:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f64m1:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f64m2:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f64m4:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f64m8:
  ID = Intrinsic::riscv_vfwmacc;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwmacc_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwmacc_vf_f64m8_m:
  ID = Intrinsic::riscv_vfwmacc_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32m1:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32m2:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32m4:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32m8:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f64m1:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f64m2:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f64m4:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f64m8:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32m1:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32m2:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32m4:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32m8:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f64m1:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f64m2:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f64m4:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f64m8:
  ID = Intrinsic::riscv_vfwmsac;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwmsac_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwmsac_vf_f64m8_m:
  ID = Intrinsic::riscv_vfwmsac_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwmul_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfwmul_vv_f32m1:
case RISCV::BI__builtin_rvv_vfwmul_vv_f32m2:
case RISCV::BI__builtin_rvv_vfwmul_vv_f32m4:
case RISCV::BI__builtin_rvv_vfwmul_vv_f32m8:
case RISCV::BI__builtin_rvv_vfwmul_vv_f64m1:
case RISCV::BI__builtin_rvv_vfwmul_vv_f64m2:
case RISCV::BI__builtin_rvv_vfwmul_vv_f64m4:
case RISCV::BI__builtin_rvv_vfwmul_vv_f64m8:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32m1:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32m2:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32m4:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32m8:
case RISCV::BI__builtin_rvv_vfwmul_vf_f64m1:
case RISCV::BI__builtin_rvv_vfwmul_vf_f64m2:
case RISCV::BI__builtin_rvv_vfwmul_vf_f64m4:
case RISCV::BI__builtin_rvv_vfwmul_vf_f64m8:
  ID = Intrinsic::riscv_vfwmul;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwmul_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwmul_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwmul_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwmul_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwmul_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwmul_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwmul_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwmul_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwmul_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwmul_vf_f64m8_m:
  ID = Intrinsic::riscv_vfwmul_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32m1:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32m2:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32m4:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32m8:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f64m1:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f64m2:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f64m4:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f64m8:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32m1:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32m2:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32m4:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32m8:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f64m1:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f64m2:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f64m4:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f64m8:
  ID = Intrinsic::riscv_vfwnmacc;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwnmacc_vf_f64m8_m:
  ID = Intrinsic::riscv_vfwnmacc_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32m1:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32m2:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32m4:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32m8:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f64m1:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f64m2:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f64m4:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f64m8:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32m1:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32m2:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32m4:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32m8:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f64m1:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f64m2:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f64m4:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f64m8:
  ID = Intrinsic::riscv_vfwnmsac;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwnmsac_vf_f64m8_m:
  ID = Intrinsic::riscv_vfwnmsac_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16m1_f32m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16m2_f32m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16m4_f32m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16m8_f32m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16mf2_f32m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16mf4_f32m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32m1_f64m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32m2_f64m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32m4_f64m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32m8_f64m1:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32mf2_f64m1:
  ID = Intrinsic::riscv_vfwredosum;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16m1_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16m2_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16m4_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16m8_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16mf2_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f16mf4_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32m1_f64m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32m2_f64m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32m4_f64m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32m8_f64m1_m:
case RISCV::BI__builtin_rvv_vfwredosum_vs_f32mf2_f64m1_m:
  ID = Intrinsic::riscv_vfwredosum_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16m1_f32m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16m2_f32m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16m4_f32m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16m8_f32m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16mf2_f32m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16mf4_f32m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32m1_f64m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32m2_f64m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32m4_f64m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32m8_f64m1:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32mf2_f64m1:
  ID = Intrinsic::riscv_vfwredsum;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16m1_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16m2_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16m4_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16m8_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16mf2_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f16mf4_f32m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32m1_f64m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32m2_f64m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32m4_f64m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32m8_f64m1_m:
case RISCV::BI__builtin_rvv_vfwredsum_vs_f32mf2_f64m1_m:
  ID = Intrinsic::riscv_vfwredsum_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwsub_vv_f32mf2:
case RISCV::BI__builtin_rvv_vfwsub_vv_f32m1:
case RISCV::BI__builtin_rvv_vfwsub_vv_f32m2:
case RISCV::BI__builtin_rvv_vfwsub_vv_f32m4:
case RISCV::BI__builtin_rvv_vfwsub_vv_f32m8:
case RISCV::BI__builtin_rvv_vfwsub_vv_f64m1:
case RISCV::BI__builtin_rvv_vfwsub_vv_f64m2:
case RISCV::BI__builtin_rvv_vfwsub_vv_f64m4:
case RISCV::BI__builtin_rvv_vfwsub_vv_f64m8:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32mf2:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32m1:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32m2:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32m4:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32m8:
case RISCV::BI__builtin_rvv_vfwsub_vf_f64m1:
case RISCV::BI__builtin_rvv_vfwsub_vf_f64m2:
case RISCV::BI__builtin_rvv_vfwsub_vf_f64m4:
case RISCV::BI__builtin_rvv_vfwsub_vf_f64m8:
  ID = Intrinsic::riscv_vfwsub;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwsub_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwsub_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwsub_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwsub_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwsub_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwsub_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwsub_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwsub_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwsub_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwsub_vf_f64m8_m:
  ID = Intrinsic::riscv_vfwsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwsub_wv_f32mf2:
case RISCV::BI__builtin_rvv_vfwsub_wv_f32m1:
case RISCV::BI__builtin_rvv_vfwsub_wv_f32m2:
case RISCV::BI__builtin_rvv_vfwsub_wv_f32m4:
case RISCV::BI__builtin_rvv_vfwsub_wv_f32m8:
case RISCV::BI__builtin_rvv_vfwsub_wv_f64m1:
case RISCV::BI__builtin_rvv_vfwsub_wv_f64m2:
case RISCV::BI__builtin_rvv_vfwsub_wv_f64m4:
case RISCV::BI__builtin_rvv_vfwsub_wv_f64m8:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32mf2:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32m1:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32m2:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32m4:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32m8:
case RISCV::BI__builtin_rvv_vfwsub_wf_f64m1:
case RISCV::BI__builtin_rvv_vfwsub_wf_f64m2:
case RISCV::BI__builtin_rvv_vfwsub_wf_f64m4:
case RISCV::BI__builtin_rvv_vfwsub_wf_f64m8:
  ID = Intrinsic::riscv_vfwsub_w;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vfwsub_wv_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwsub_wv_f32m1_m:
case RISCV::BI__builtin_rvv_vfwsub_wv_f32m2_m:
case RISCV::BI__builtin_rvv_vfwsub_wv_f32m4_m:
case RISCV::BI__builtin_rvv_vfwsub_wv_f32m8_m:
case RISCV::BI__builtin_rvv_vfwsub_wv_f64m1_m:
case RISCV::BI__builtin_rvv_vfwsub_wv_f64m2_m:
case RISCV::BI__builtin_rvv_vfwsub_wv_f64m4_m:
case RISCV::BI__builtin_rvv_vfwsub_wv_f64m8_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32mf2_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32m1_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32m2_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32m4_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f32m8_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f64m1_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f64m2_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f64m4_m:
case RISCV::BI__builtin_rvv_vfwsub_wf_f64m8_m:
  ID = Intrinsic::riscv_vfwsub_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vid_v_i8m1:
case RISCV::BI__builtin_rvv_vid_v_i8m2:
case RISCV::BI__builtin_rvv_vid_v_i8m4:
case RISCV::BI__builtin_rvv_vid_v_i8m8:
case RISCV::BI__builtin_rvv_vid_v_i8mf2:
case RISCV::BI__builtin_rvv_vid_v_i8mf4:
case RISCV::BI__builtin_rvv_vid_v_i8mf8:
case RISCV::BI__builtin_rvv_vid_v_i16m1:
case RISCV::BI__builtin_rvv_vid_v_i16m2:
case RISCV::BI__builtin_rvv_vid_v_i16m4:
case RISCV::BI__builtin_rvv_vid_v_i16m8:
case RISCV::BI__builtin_rvv_vid_v_i16mf2:
case RISCV::BI__builtin_rvv_vid_v_i16mf4:
case RISCV::BI__builtin_rvv_vid_v_i32m1:
case RISCV::BI__builtin_rvv_vid_v_i32m2:
case RISCV::BI__builtin_rvv_vid_v_i32m4:
case RISCV::BI__builtin_rvv_vid_v_i32m8:
case RISCV::BI__builtin_rvv_vid_v_i32mf2:
case RISCV::BI__builtin_rvv_vid_v_i64m1:
case RISCV::BI__builtin_rvv_vid_v_i64m2:
case RISCV::BI__builtin_rvv_vid_v_i64m4:
case RISCV::BI__builtin_rvv_vid_v_i64m8:
case RISCV::BI__builtin_rvv_vid_v_u8m1:
case RISCV::BI__builtin_rvv_vid_v_u8m2:
case RISCV::BI__builtin_rvv_vid_v_u8m4:
case RISCV::BI__builtin_rvv_vid_v_u8m8:
case RISCV::BI__builtin_rvv_vid_v_u8mf2:
case RISCV::BI__builtin_rvv_vid_v_u8mf4:
case RISCV::BI__builtin_rvv_vid_v_u8mf8:
case RISCV::BI__builtin_rvv_vid_v_u16m1:
case RISCV::BI__builtin_rvv_vid_v_u16m2:
case RISCV::BI__builtin_rvv_vid_v_u16m4:
case RISCV::BI__builtin_rvv_vid_v_u16m8:
case RISCV::BI__builtin_rvv_vid_v_u16mf2:
case RISCV::BI__builtin_rvv_vid_v_u16mf4:
case RISCV::BI__builtin_rvv_vid_v_u32m1:
case RISCV::BI__builtin_rvv_vid_v_u32m2:
case RISCV::BI__builtin_rvv_vid_v_u32m4:
case RISCV::BI__builtin_rvv_vid_v_u32m8:
case RISCV::BI__builtin_rvv_vid_v_u32mf2:
case RISCV::BI__builtin_rvv_vid_v_u64m1:
case RISCV::BI__builtin_rvv_vid_v_u64m2:
case RISCV::BI__builtin_rvv_vid_v_u64m4:
case RISCV::BI__builtin_rvv_vid_v_u64m8:
  ID = Intrinsic::riscv_vid;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vid_v_i8m1_m:
case RISCV::BI__builtin_rvv_vid_v_i8m2_m:
case RISCV::BI__builtin_rvv_vid_v_i8m4_m:
case RISCV::BI__builtin_rvv_vid_v_i8m8_m:
case RISCV::BI__builtin_rvv_vid_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vid_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vid_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vid_v_i16m1_m:
case RISCV::BI__builtin_rvv_vid_v_i16m2_m:
case RISCV::BI__builtin_rvv_vid_v_i16m4_m:
case RISCV::BI__builtin_rvv_vid_v_i16m8_m:
case RISCV::BI__builtin_rvv_vid_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vid_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vid_v_i32m1_m:
case RISCV::BI__builtin_rvv_vid_v_i32m2_m:
case RISCV::BI__builtin_rvv_vid_v_i32m4_m:
case RISCV::BI__builtin_rvv_vid_v_i32m8_m:
case RISCV::BI__builtin_rvv_vid_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vid_v_i64m1_m:
case RISCV::BI__builtin_rvv_vid_v_i64m2_m:
case RISCV::BI__builtin_rvv_vid_v_i64m4_m:
case RISCV::BI__builtin_rvv_vid_v_i64m8_m:
case RISCV::BI__builtin_rvv_vid_v_u8m1_m:
case RISCV::BI__builtin_rvv_vid_v_u8m2_m:
case RISCV::BI__builtin_rvv_vid_v_u8m4_m:
case RISCV::BI__builtin_rvv_vid_v_u8m8_m:
case RISCV::BI__builtin_rvv_vid_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vid_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vid_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vid_v_u16m1_m:
case RISCV::BI__builtin_rvv_vid_v_u16m2_m:
case RISCV::BI__builtin_rvv_vid_v_u16m4_m:
case RISCV::BI__builtin_rvv_vid_v_u16m8_m:
case RISCV::BI__builtin_rvv_vid_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vid_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vid_v_u32m1_m:
case RISCV::BI__builtin_rvv_vid_v_u32m2_m:
case RISCV::BI__builtin_rvv_vid_v_u32m4_m:
case RISCV::BI__builtin_rvv_vid_v_u32m8_m:
case RISCV::BI__builtin_rvv_vid_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vid_v_u64m1_m:
case RISCV::BI__builtin_rvv_vid_v_u64m2_m:
case RISCV::BI__builtin_rvv_vid_v_u64m4_m:
case RISCV::BI__builtin_rvv_vid_v_u64m8_m:
  ID = Intrinsic::riscv_vid_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_viota_m_u8m1:
case RISCV::BI__builtin_rvv_viota_m_u8m2:
case RISCV::BI__builtin_rvv_viota_m_u8m4:
case RISCV::BI__builtin_rvv_viota_m_u8m8:
case RISCV::BI__builtin_rvv_viota_m_u8mf2:
case RISCV::BI__builtin_rvv_viota_m_u8mf4:
case RISCV::BI__builtin_rvv_viota_m_u8mf8:
case RISCV::BI__builtin_rvv_viota_m_u16m1:
case RISCV::BI__builtin_rvv_viota_m_u16m2:
case RISCV::BI__builtin_rvv_viota_m_u16m4:
case RISCV::BI__builtin_rvv_viota_m_u16m8:
case RISCV::BI__builtin_rvv_viota_m_u16mf2:
case RISCV::BI__builtin_rvv_viota_m_u16mf4:
case RISCV::BI__builtin_rvv_viota_m_u32m1:
case RISCV::BI__builtin_rvv_viota_m_u32m2:
case RISCV::BI__builtin_rvv_viota_m_u32m4:
case RISCV::BI__builtin_rvv_viota_m_u32m8:
case RISCV::BI__builtin_rvv_viota_m_u32mf2:
case RISCV::BI__builtin_rvv_viota_m_u64m1:
case RISCV::BI__builtin_rvv_viota_m_u64m2:
case RISCV::BI__builtin_rvv_viota_m_u64m4:
case RISCV::BI__builtin_rvv_viota_m_u64m8:
  ID = Intrinsic::riscv_viota;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_viota_m_u8m1_m:
case RISCV::BI__builtin_rvv_viota_m_u8m2_m:
case RISCV::BI__builtin_rvv_viota_m_u8m4_m:
case RISCV::BI__builtin_rvv_viota_m_u8m8_m:
case RISCV::BI__builtin_rvv_viota_m_u8mf2_m:
case RISCV::BI__builtin_rvv_viota_m_u8mf4_m:
case RISCV::BI__builtin_rvv_viota_m_u8mf8_m:
case RISCV::BI__builtin_rvv_viota_m_u16m1_m:
case RISCV::BI__builtin_rvv_viota_m_u16m2_m:
case RISCV::BI__builtin_rvv_viota_m_u16m4_m:
case RISCV::BI__builtin_rvv_viota_m_u16m8_m:
case RISCV::BI__builtin_rvv_viota_m_u16mf2_m:
case RISCV::BI__builtin_rvv_viota_m_u16mf4_m:
case RISCV::BI__builtin_rvv_viota_m_u32m1_m:
case RISCV::BI__builtin_rvv_viota_m_u32m2_m:
case RISCV::BI__builtin_rvv_viota_m_u32m4_m:
case RISCV::BI__builtin_rvv_viota_m_u32m8_m:
case RISCV::BI__builtin_rvv_viota_m_u32mf2_m:
case RISCV::BI__builtin_rvv_viota_m_u64m1_m:
case RISCV::BI__builtin_rvv_viota_m_u64m2_m:
case RISCV::BI__builtin_rvv_viota_m_u64m4_m:
case RISCV::BI__builtin_rvv_viota_m_u64m8_m:
  ID = Intrinsic::riscv_viota_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vle8_v_i8m1:
case RISCV::BI__builtin_rvv_vle8_v_i8m2:
case RISCV::BI__builtin_rvv_vle8_v_i8m4:
case RISCV::BI__builtin_rvv_vle8_v_i8m8:
case RISCV::BI__builtin_rvv_vle8_v_i8mf2:
case RISCV::BI__builtin_rvv_vle8_v_i8mf4:
case RISCV::BI__builtin_rvv_vle8_v_i8mf8:
case RISCV::BI__builtin_rvv_vle8_v_u8m1:
case RISCV::BI__builtin_rvv_vle8_v_u8m2:
case RISCV::BI__builtin_rvv_vle8_v_u8m4:
case RISCV::BI__builtin_rvv_vle8_v_u8m8:
case RISCV::BI__builtin_rvv_vle8_v_u8mf2:
case RISCV::BI__builtin_rvv_vle8_v_u8mf4:
case RISCV::BI__builtin_rvv_vle8_v_u8mf8:
case RISCV::BI__builtin_rvv_vle16_v_i16m1:
case RISCV::BI__builtin_rvv_vle16_v_i16m2:
case RISCV::BI__builtin_rvv_vle16_v_i16m4:
case RISCV::BI__builtin_rvv_vle16_v_i16m8:
case RISCV::BI__builtin_rvv_vle16_v_i16mf2:
case RISCV::BI__builtin_rvv_vle16_v_i16mf4:
case RISCV::BI__builtin_rvv_vle16_v_u16m1:
case RISCV::BI__builtin_rvv_vle16_v_u16m2:
case RISCV::BI__builtin_rvv_vle16_v_u16m4:
case RISCV::BI__builtin_rvv_vle16_v_u16m8:
case RISCV::BI__builtin_rvv_vle16_v_u16mf2:
case RISCV::BI__builtin_rvv_vle16_v_u16mf4:
case RISCV::BI__builtin_rvv_vle16_v_f16m1:
case RISCV::BI__builtin_rvv_vle16_v_f16m2:
case RISCV::BI__builtin_rvv_vle16_v_f16m4:
case RISCV::BI__builtin_rvv_vle16_v_f16m8:
case RISCV::BI__builtin_rvv_vle16_v_f16mf2:
case RISCV::BI__builtin_rvv_vle16_v_f16mf4:
case RISCV::BI__builtin_rvv_vle32_v_i32m1:
case RISCV::BI__builtin_rvv_vle32_v_i32m2:
case RISCV::BI__builtin_rvv_vle32_v_i32m4:
case RISCV::BI__builtin_rvv_vle32_v_i32m8:
case RISCV::BI__builtin_rvv_vle32_v_i32mf2:
case RISCV::BI__builtin_rvv_vle32_v_u32m1:
case RISCV::BI__builtin_rvv_vle32_v_u32m2:
case RISCV::BI__builtin_rvv_vle32_v_u32m4:
case RISCV::BI__builtin_rvv_vle32_v_u32m8:
case RISCV::BI__builtin_rvv_vle32_v_u32mf2:
case RISCV::BI__builtin_rvv_vle32_v_f32m1:
case RISCV::BI__builtin_rvv_vle32_v_f32m2:
case RISCV::BI__builtin_rvv_vle32_v_f32m4:
case RISCV::BI__builtin_rvv_vle32_v_f32m8:
case RISCV::BI__builtin_rvv_vle32_v_f32mf2:
case RISCV::BI__builtin_rvv_vle64_v_i64m1:
case RISCV::BI__builtin_rvv_vle64_v_i64m2:
case RISCV::BI__builtin_rvv_vle64_v_i64m4:
case RISCV::BI__builtin_rvv_vle64_v_i64m8:
case RISCV::BI__builtin_rvv_vle64_v_u64m1:
case RISCV::BI__builtin_rvv_vle64_v_u64m2:
case RISCV::BI__builtin_rvv_vle64_v_u64m4:
case RISCV::BI__builtin_rvv_vle64_v_u64m8:
case RISCV::BI__builtin_rvv_vle64_v_f64m1:
case RISCV::BI__builtin_rvv_vle64_v_f64m2:
case RISCV::BI__builtin_rvv_vle64_v_f64m4:
case RISCV::BI__builtin_rvv_vle64_v_f64m8:
  ID = Intrinsic::riscv_vle;

      IntrinsicTypes = {ResultType, Ops[1]->getType()};
      Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
    break;
case RISCV::BI__builtin_rvv_vle1_v_b8:
case RISCV::BI__builtin_rvv_vle1_v_b4:
case RISCV::BI__builtin_rvv_vle1_v_b2:
case RISCV::BI__builtin_rvv_vle1_v_b1:
case RISCV::BI__builtin_rvv_vle1_v_b16:
case RISCV::BI__builtin_rvv_vle1_v_b32:
case RISCV::BI__builtin_rvv_vle1_v_b64:
  ID = Intrinsic::riscv_vle1;

      IntrinsicTypes = {ResultType, Ops[1]->getType()};
      Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
    break;
case RISCV::BI__builtin_rvv_vle8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vle8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vle8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vle8_v_i8m8_m:
case RISCV::BI__builtin_rvv_vle8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vle8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vle8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vle8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vle8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vle8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vle8_v_u8m8_m:
case RISCV::BI__builtin_rvv_vle8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vle8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vle8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vle16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vle16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vle16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vle16_v_i16m8_m:
case RISCV::BI__builtin_rvv_vle16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vle16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vle16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vle16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vle16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vle16_v_u16m8_m:
case RISCV::BI__builtin_rvv_vle16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vle16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vle16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vle16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vle16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vle16_v_f16m8_m:
case RISCV::BI__builtin_rvv_vle16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vle16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vle32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vle32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vle32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vle32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vle32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vle32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vle32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vle32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vle32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vle32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vle32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vle32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vle32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vle32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vle32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vle64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vle64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vle64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vle64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vle64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vle64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vle64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vle64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vle64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vle64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vle64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vle64_v_f64m8_m:
  ID = Intrinsic::riscv_vle_mask;

      // Move mask to right before vl.
      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
      IntrinsicTypes = {ResultType, Ops[3]->getType()};
      Ops[1] = Builder.CreateBitCast(Ops[1], ResultType->getPointerTo());
    break;
case RISCV::BI__builtin_rvv_vle16ff_v_i16m1:
case RISCV::BI__builtin_rvv_vle16ff_v_i16m2:
case RISCV::BI__builtin_rvv_vle16ff_v_i16m4:
case RISCV::BI__builtin_rvv_vle16ff_v_i16m8:
case RISCV::BI__builtin_rvv_vle16ff_v_i16mf2:
case RISCV::BI__builtin_rvv_vle16ff_v_i16mf4:
case RISCV::BI__builtin_rvv_vle16ff_v_u16m1:
case RISCV::BI__builtin_rvv_vle16ff_v_u16m2:
case RISCV::BI__builtin_rvv_vle16ff_v_u16m4:
case RISCV::BI__builtin_rvv_vle16ff_v_u16m8:
case RISCV::BI__builtin_rvv_vle16ff_v_u16mf2:
case RISCV::BI__builtin_rvv_vle16ff_v_u16mf4:
case RISCV::BI__builtin_rvv_vle16ff_v_f16m1:
case RISCV::BI__builtin_rvv_vle16ff_v_f16m2:
case RISCV::BI__builtin_rvv_vle16ff_v_f16m4:
case RISCV::BI__builtin_rvv_vle16ff_v_f16m8:
case RISCV::BI__builtin_rvv_vle16ff_v_f16mf2:
case RISCV::BI__builtin_rvv_vle16ff_v_f16mf4:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m2:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m4:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m8:
case RISCV::BI__builtin_rvv_vle32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m2:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m4:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m8:
case RISCV::BI__builtin_rvv_vle32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m2:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m4:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m8:
case RISCV::BI__builtin_rvv_vle32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m2:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m4:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m8:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m2:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m4:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m8:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m1:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m2:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m4:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m8:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m2:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m4:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m8:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m2:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m4:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m8:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf8:
  ID = Intrinsic::riscv_vleff;

      {
        IntrinsicTypes = {ResultType, Ops[2]->getType()};
        Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
        Value *NewVL = Ops[1];
        Ops.erase(Ops.begin() + 1);
        llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
        llvm::Value *LoadValue = Builder.CreateCall(F, Ops, "");
        llvm::Value *V = Builder.CreateExtractValue(LoadValue, {0});
        // Store new_vl.
        clang::CharUnits Align =
            CGM.getNaturalTypeAlignment(getContext().getSizeType());
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {1}),
                            Address(NewVL, Align));
        return V;
      }
      break;
case RISCV::BI__builtin_rvv_vle16ff_v_i16m1_m:
case RISCV::BI__builtin_rvv_vle16ff_v_i16m2_m:
case RISCV::BI__builtin_rvv_vle16ff_v_i16m4_m:
case RISCV::BI__builtin_rvv_vle16ff_v_i16m8_m:
case RISCV::BI__builtin_rvv_vle16ff_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vle16ff_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vle16ff_v_u16m1_m:
case RISCV::BI__builtin_rvv_vle16ff_v_u16m2_m:
case RISCV::BI__builtin_rvv_vle16ff_v_u16m4_m:
case RISCV::BI__builtin_rvv_vle16ff_v_u16m8_m:
case RISCV::BI__builtin_rvv_vle16ff_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vle16ff_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vle16ff_v_f16m1_m:
case RISCV::BI__builtin_rvv_vle16ff_v_f16m2_m:
case RISCV::BI__builtin_rvv_vle16ff_v_f16m4_m:
case RISCV::BI__builtin_rvv_vle16ff_v_f16m8_m:
case RISCV::BI__builtin_rvv_vle16ff_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vle16ff_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m1_m:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m2_m:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m4_m:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m8_m:
case RISCV::BI__builtin_rvv_vle32ff_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m1_m:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m2_m:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m4_m:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m8_m:
case RISCV::BI__builtin_rvv_vle32ff_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m1_m:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m2_m:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m4_m:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m8_m:
case RISCV::BI__builtin_rvv_vle32ff_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m1_m:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m2_m:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m4_m:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m8_m:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m1_m:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m2_m:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m4_m:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m8_m:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m1_m:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m2_m:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m4_m:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m8_m:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m1_m:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m2_m:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m4_m:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m8_m:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m1_m:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m2_m:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m4_m:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m8_m:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf8_m:
  ID = Intrinsic::riscv_vleff_mask;

      {
        // Move mask to right before vl.
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        IntrinsicTypes = {ResultType, Ops[4]->getType()};
        Ops[1] = Builder.CreateBitCast(Ops[1], ResultType->getPointerTo());
        Value *NewVL = Ops[2];
        Ops.erase(Ops.begin() + 2);
        llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
        llvm::Value *LoadValue = Builder.CreateCall(F, Ops, "");
        llvm::Value *V = Builder.CreateExtractValue(LoadValue, {0});
        // Store new_vl.
        clang::CharUnits Align =
            CGM.getNaturalTypeAlignment(getContext().getSizeType());
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {1}),
                            Address(NewVL, Align));
        return V;
      }
      break;
case RISCV::BI__builtin_rvv_vloxei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m2:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m4:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m8:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m2:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m4:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m8:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m2:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m4:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m2:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m4:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxei32_v_i8m2:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxei32_v_u8m2:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m2:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m4:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m8:
case RISCV::BI__builtin_rvv_vloxei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m2:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m4:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m8:
case RISCV::BI__builtin_rvv_vloxei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m2:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m4:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m8:
case RISCV::BI__builtin_rvv_vloxei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m2:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m4:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m8:
case RISCV::BI__builtin_rvv_vloxei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m2:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m4:
case RISCV::BI__builtin_rvv_vloxei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m2:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m4:
case RISCV::BI__builtin_rvv_vloxei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxei64_v_i16m2:
case RISCV::BI__builtin_rvv_vloxei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxei64_v_u16m2:
case RISCV::BI__builtin_rvv_vloxei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m2:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m4:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m8:
case RISCV::BI__builtin_rvv_vloxei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m2:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m4:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m8:
case RISCV::BI__builtin_rvv_vloxei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m2:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m4:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m8:
case RISCV::BI__builtin_rvv_vloxei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m2:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m4:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m8:
case RISCV::BI__builtin_rvv_vloxei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m2:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m4:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m8:
case RISCV::BI__builtin_rvv_vloxei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m2:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m4:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m8:
case RISCV::BI__builtin_rvv_vloxei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m2:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m4:
case RISCV::BI__builtin_rvv_vloxei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m2:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m4:
case RISCV::BI__builtin_rvv_vloxei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m2:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m4:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m8:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m2:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m4:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m8:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m2:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m4:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m8:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m2:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m4:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m8:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m2:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m4:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m8:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m2:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m4:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m8:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m2:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m4:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m8:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m2:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m4:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m8:
case RISCV::BI__builtin_rvv_vloxei8_v_f16m1:
case RISCV::BI__builtin_rvv_vloxei8_v_f16m2:
case RISCV::BI__builtin_rvv_vloxei8_v_f16m4:
case RISCV::BI__builtin_rvv_vloxei8_v_f16m8:
case RISCV::BI__builtin_rvv_vloxei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_f16m1:
case RISCV::BI__builtin_rvv_vloxei16_v_f16m2:
case RISCV::BI__builtin_rvv_vloxei16_v_f16m4:
case RISCV::BI__builtin_rvv_vloxei16_v_f16m8:
case RISCV::BI__builtin_rvv_vloxei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_f16m1:
case RISCV::BI__builtin_rvv_vloxei32_v_f16m2:
case RISCV::BI__builtin_rvv_vloxei32_v_f16m4:
case RISCV::BI__builtin_rvv_vloxei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_f16m1:
case RISCV::BI__builtin_rvv_vloxei64_v_f16m2:
case RISCV::BI__builtin_rvv_vloxei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_f32m1:
case RISCV::BI__builtin_rvv_vloxei8_v_f32m2:
case RISCV::BI__builtin_rvv_vloxei8_v_f32m4:
case RISCV::BI__builtin_rvv_vloxei8_v_f32m8:
case RISCV::BI__builtin_rvv_vloxei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_f32m1:
case RISCV::BI__builtin_rvv_vloxei16_v_f32m2:
case RISCV::BI__builtin_rvv_vloxei16_v_f32m4:
case RISCV::BI__builtin_rvv_vloxei16_v_f32m8:
case RISCV::BI__builtin_rvv_vloxei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_f32m1:
case RISCV::BI__builtin_rvv_vloxei32_v_f32m2:
case RISCV::BI__builtin_rvv_vloxei32_v_f32m4:
case RISCV::BI__builtin_rvv_vloxei32_v_f32m8:
case RISCV::BI__builtin_rvv_vloxei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_f32m1:
case RISCV::BI__builtin_rvv_vloxei64_v_f32m2:
case RISCV::BI__builtin_rvv_vloxei64_v_f32m4:
case RISCV::BI__builtin_rvv_vloxei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_f64m1:
case RISCV::BI__builtin_rvv_vloxei8_v_f64m2:
case RISCV::BI__builtin_rvv_vloxei8_v_f64m4:
case RISCV::BI__builtin_rvv_vloxei8_v_f64m8:
case RISCV::BI__builtin_rvv_vloxei16_v_f64m1:
case RISCV::BI__builtin_rvv_vloxei16_v_f64m2:
case RISCV::BI__builtin_rvv_vloxei16_v_f64m4:
case RISCV::BI__builtin_rvv_vloxei16_v_f64m8:
case RISCV::BI__builtin_rvv_vloxei32_v_f64m1:
case RISCV::BI__builtin_rvv_vloxei32_v_f64m2:
case RISCV::BI__builtin_rvv_vloxei32_v_f64m4:
case RISCV::BI__builtin_rvv_vloxei32_v_f64m8:
case RISCV::BI__builtin_rvv_vloxei64_v_f64m1:
case RISCV::BI__builtin_rvv_vloxei64_v_f64m2:
case RISCV::BI__builtin_rvv_vloxei64_v_f64m4:
case RISCV::BI__builtin_rvv_vloxei64_v_f64m8:
  ID = Intrinsic::riscv_vloxei;

        IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType()};
        Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
      break;
case RISCV::BI__builtin_rvv_vloxei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f16m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f16m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f16m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f16m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f32m8_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f32m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vloxei8_v_f64m8_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vloxei16_v_f64m8_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vloxei32_v_f64m8_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vloxei64_v_f64m8_m:
  ID = Intrinsic::riscv_vloxei_mask;

        // Move mask to right before vl.
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops[4]->getType()};
        Ops[1] = Builder.CreateBitCast(Ops[1], ResultType->getPointerTo());
      break;
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f64m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u32m4:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u32mf2:
  ID = Intrinsic::riscv_vloxseg2;
  NF = 2;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vloxseg2ei64_v_u32mf2_m:
  ID = Intrinsic::riscv_vloxseg2_mask;
  NF = 2;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u32mf2:
  ID = Intrinsic::riscv_vloxseg3;
  NF = 3;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg3ei64_v_u32mf2_m:
  ID = Intrinsic::riscv_vloxseg3_mask;
  NF = 3;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f64m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u32mf2:
  ID = Intrinsic::riscv_vloxseg4;
  NF = 4;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vloxseg4ei64_v_u32mf2_m:
  ID = Intrinsic::riscv_vloxseg4_mask;
  NF = 4;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u32mf2:
  ID = Intrinsic::riscv_vloxseg5;
  NF = 5;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg5ei64_v_u32mf2_m:
  ID = Intrinsic::riscv_vloxseg5_mask;
  NF = 5;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u32mf2:
  ID = Intrinsic::riscv_vloxseg6;
  NF = 6;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg6ei64_v_u32mf2_m:
  ID = Intrinsic::riscv_vloxseg6_mask;
  NF = 6;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u32mf2:
  ID = Intrinsic::riscv_vloxseg7;
  NF = 7;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg7ei64_v_u32mf2_m:
  ID = Intrinsic::riscv_vloxseg7_mask;
  NF = 7;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u32mf2:
  ID = Intrinsic::riscv_vloxseg8;
  NF = 8;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vloxseg8ei64_v_u32mf2_m:
  ID = Intrinsic::riscv_vloxseg8_mask;
  NF = 8;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlse64_v_u64m1:
case RISCV::BI__builtin_rvv_vlse64_v_u64m2:
case RISCV::BI__builtin_rvv_vlse64_v_u64m4:
case RISCV::BI__builtin_rvv_vlse64_v_u64m8:
case RISCV::BI__builtin_rvv_vlse64_v_f64m1:
case RISCV::BI__builtin_rvv_vlse64_v_f64m2:
case RISCV::BI__builtin_rvv_vlse64_v_f64m4:
case RISCV::BI__builtin_rvv_vlse64_v_f64m8:
case RISCV::BI__builtin_rvv_vlse8_v_i8m1:
case RISCV::BI__builtin_rvv_vlse8_v_i8m2:
case RISCV::BI__builtin_rvv_vlse8_v_i8m4:
case RISCV::BI__builtin_rvv_vlse8_v_i8m8:
case RISCV::BI__builtin_rvv_vlse8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlse8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlse8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlse8_v_u8m1:
case RISCV::BI__builtin_rvv_vlse8_v_u8m2:
case RISCV::BI__builtin_rvv_vlse8_v_u8m4:
case RISCV::BI__builtin_rvv_vlse8_v_u8m8:
case RISCV::BI__builtin_rvv_vlse8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlse8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlse8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlse16_v_i16m1:
case RISCV::BI__builtin_rvv_vlse16_v_i16m2:
case RISCV::BI__builtin_rvv_vlse16_v_i16m4:
case RISCV::BI__builtin_rvv_vlse16_v_i16m8:
case RISCV::BI__builtin_rvv_vlse16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlse16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlse16_v_u16m1:
case RISCV::BI__builtin_rvv_vlse16_v_u16m2:
case RISCV::BI__builtin_rvv_vlse16_v_u16m4:
case RISCV::BI__builtin_rvv_vlse16_v_u16m8:
case RISCV::BI__builtin_rvv_vlse16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlse16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlse16_v_f16m1:
case RISCV::BI__builtin_rvv_vlse16_v_f16m2:
case RISCV::BI__builtin_rvv_vlse16_v_f16m4:
case RISCV::BI__builtin_rvv_vlse16_v_f16m8:
case RISCV::BI__builtin_rvv_vlse16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlse16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlse32_v_i32m1:
case RISCV::BI__builtin_rvv_vlse32_v_i32m2:
case RISCV::BI__builtin_rvv_vlse32_v_i32m4:
case RISCV::BI__builtin_rvv_vlse32_v_i32m8:
case RISCV::BI__builtin_rvv_vlse32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlse32_v_u32m1:
case RISCV::BI__builtin_rvv_vlse32_v_u32m2:
case RISCV::BI__builtin_rvv_vlse32_v_u32m4:
case RISCV::BI__builtin_rvv_vlse32_v_u32m8:
case RISCV::BI__builtin_rvv_vlse32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlse32_v_f32m1:
case RISCV::BI__builtin_rvv_vlse32_v_f32m2:
case RISCV::BI__builtin_rvv_vlse32_v_f32m4:
case RISCV::BI__builtin_rvv_vlse32_v_f32m8:
case RISCV::BI__builtin_rvv_vlse32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlse64_v_i64m1:
case RISCV::BI__builtin_rvv_vlse64_v_i64m2:
case RISCV::BI__builtin_rvv_vlse64_v_i64m4:
case RISCV::BI__builtin_rvv_vlse64_v_i64m8:
  ID = Intrinsic::riscv_vlse;

        IntrinsicTypes = {ResultType, Ops[2]->getType()};
        Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
      break;
case RISCV::BI__builtin_rvv_vlse64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlse64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlse64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vlse64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vlse64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlse64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vlse64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vlse64_v_f64m8_m:
case RISCV::BI__builtin_rvv_vlse8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlse8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlse8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vlse8_v_i8m8_m:
case RISCV::BI__builtin_rvv_vlse8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlse8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlse8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlse8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlse8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlse8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vlse8_v_u8m8_m:
case RISCV::BI__builtin_rvv_vlse8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlse8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlse8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlse16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlse16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlse16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vlse16_v_i16m8_m:
case RISCV::BI__builtin_rvv_vlse16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlse16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlse16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlse16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlse16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vlse16_v_u16m8_m:
case RISCV::BI__builtin_rvv_vlse16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlse16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlse16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlse16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlse16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vlse16_v_f16m8_m:
case RISCV::BI__builtin_rvv_vlse16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlse16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlse32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlse32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlse32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vlse32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vlse32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlse32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlse32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlse32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vlse32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vlse32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlse32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlse32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlse32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vlse32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vlse32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlse64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlse64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlse64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vlse64_v_i64m8_m:
  ID = Intrinsic::riscv_vlse_mask;

        // Move mask to right before vl.
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        IntrinsicTypes = {ResultType, Ops[4]->getType()};
        Ops[1] = Builder.CreateBitCast(Ops[1], ResultType->getPointerTo());
      break;
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8m2:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8m4:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8m2:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8m4:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16m2:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16m4:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16m2:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16m4:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg2e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg2e32_v_i32m2:
case RISCV::BI__builtin_rvv_vlseg2e32_v_i32m4:
case RISCV::BI__builtin_rvv_vlseg2e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg2e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg2e32_v_u32m2:
case RISCV::BI__builtin_rvv_vlseg2e32_v_u32m4:
case RISCV::BI__builtin_rvv_vlseg2e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg2e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg2e64_v_i64m2:
case RISCV::BI__builtin_rvv_vlseg2e64_v_i64m4:
case RISCV::BI__builtin_rvv_vlseg2e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg2e64_v_u64m2:
case RISCV::BI__builtin_rvv_vlseg2e64_v_u64m4:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16m2:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16m4:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg2e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg2e32_v_f32m2:
case RISCV::BI__builtin_rvv_vlseg2e32_v_f32m4:
case RISCV::BI__builtin_rvv_vlseg2e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg2e64_v_f64m1:
case RISCV::BI__builtin_rvv_vlseg2e64_v_f64m2:
case RISCV::BI__builtin_rvv_vlseg2e64_v_f64m4:
  ID = Intrinsic::riscv_vlseg2;
  NF = 2;

    {
      // builtin: (val0 address, val1 address, ..., ptr, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vlseg2e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vlseg2e64_v_f64m4_m:
  ID = Intrinsic::riscv_vlseg2_mask;
  NF = 2;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 2]);
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16m2:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16m4:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16m2:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16m4:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_i32m2:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_i32m4:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8m2:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8m4:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_u32m2:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_u32m4:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8m2:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8m4:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_i64m2:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_i64m4:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_u64m2:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_u64m4:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16m2:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16m4:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_f32m2:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_f32m4:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_f64m1:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_f64m2:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_f64m4:
  ID = Intrinsic::riscv_vlseg2ff;
  NF = 2;

    {
      // builtin: (val0 address, val1 address, ..., ptr, new_vl, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 2]};
      Value *NewVL = Ops[NF + 1];
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16m4_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16m4_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_i32m4_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8m4_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_u32m4_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8m4_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e8ff_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_i64m4_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_u64m4_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16m4_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e16ff_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_f32m4_m:
case RISCV::BI__builtin_rvv_vlseg2e32ff_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_f64m2_m:
case RISCV::BI__builtin_rvv_vlseg2e64ff_v_f64m4_m:
  ID = Intrinsic::riscv_vlseg2ff_mask;
  NF = 2;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, new_vl, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      Value *NewVL = Ops[2 * NF + 2];
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8m2:
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8m2:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg3e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg3e16_v_i16m2:
case RISCV::BI__builtin_rvv_vlseg3e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg3e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg3e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg3e16_v_u16m2:
case RISCV::BI__builtin_rvv_vlseg3e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg3e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg3e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg3e32_v_i32m2:
case RISCV::BI__builtin_rvv_vlseg3e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg3e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg3e32_v_u32m2:
case RISCV::BI__builtin_rvv_vlseg3e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg3e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg3e64_v_i64m2:
case RISCV::BI__builtin_rvv_vlseg3e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg3e64_v_u64m2:
case RISCV::BI__builtin_rvv_vlseg3e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg3e16_v_f16m2:
case RISCV::BI__builtin_rvv_vlseg3e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg3e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg3e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg3e32_v_f32m2:
case RISCV::BI__builtin_rvv_vlseg3e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg3e64_v_f64m1:
case RISCV::BI__builtin_rvv_vlseg3e64_v_f64m2:
  ID = Intrinsic::riscv_vlseg3;
  NF = 3;

    {
      // builtin: (val0 address, val1 address, ..., ptr, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg3e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlseg3e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg3e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlseg3e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlseg3e64_v_f64m2_m:
  ID = Intrinsic::riscv_vlseg3_mask;
  NF = 3;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 2]);
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8m2:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8m2:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_i16m2:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_u16m2:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_i32m2:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_u32m2:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_i64m2:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_u64m2:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_f16m2:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_f32m2:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_f64m1:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_f64m2:
  ID = Intrinsic::riscv_vlseg3ff;
  NF = 3;

    {
      // builtin: (val0 address, val1 address, ..., ptr, new_vl, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 2]};
      Value *NewVL = Ops[NF + 1];
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e8ff_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e16ff_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlseg3e32ff_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlseg3e64ff_v_f64m2_m:
  ID = Intrinsic::riscv_vlseg3ff_mask;
  NF = 3;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, new_vl, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      Value *NewVL = Ops[2 * NF + 2];
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8m2:
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8m2:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg4e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg4e16_v_i16m2:
case RISCV::BI__builtin_rvv_vlseg4e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg4e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg4e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg4e16_v_u16m2:
case RISCV::BI__builtin_rvv_vlseg4e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg4e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg4e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg4e32_v_i32m2:
case RISCV::BI__builtin_rvv_vlseg4e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg4e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg4e32_v_u32m2:
case RISCV::BI__builtin_rvv_vlseg4e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg4e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg4e64_v_i64m2:
case RISCV::BI__builtin_rvv_vlseg4e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg4e64_v_u64m2:
case RISCV::BI__builtin_rvv_vlseg4e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg4e16_v_f16m2:
case RISCV::BI__builtin_rvv_vlseg4e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg4e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg4e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg4e32_v_f32m2:
case RISCV::BI__builtin_rvv_vlseg4e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg4e64_v_f64m1:
case RISCV::BI__builtin_rvv_vlseg4e64_v_f64m2:
  ID = Intrinsic::riscv_vlseg4;
  NF = 4;

    {
      // builtin: (val0 address, val1 address, ..., ptr, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg4e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlseg4e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg4e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlseg4e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlseg4e64_v_f64m2_m:
  ID = Intrinsic::riscv_vlseg4_mask;
  NF = 4;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 2]);
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8m2:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8m2:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_i16m2:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_u16m2:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_i32m2:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_u32m2:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_i64m2:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_u64m2:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_f16m2:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_f32m2:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_f64m1:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_f64m2:
  ID = Intrinsic::riscv_vlseg4ff;
  NF = 4;

    {
      // builtin: (val0 address, val1 address, ..., ptr, new_vl, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 2]};
      Value *NewVL = Ops[NF + 1];
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e8ff_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e16ff_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlseg4e32ff_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlseg4e64ff_v_f64m2_m:
  ID = Intrinsic::riscv_vlseg4ff_mask;
  NF = 4;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, new_vl, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      Value *NewVL = Ops[2 * NF + 2];
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg5e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg5e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg5e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg5e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg5e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg5e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg5e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg5e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg5e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg5e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg5e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg5e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg5e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg5e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg5e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg5e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg5e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg5e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg5e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg5e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg5e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg5e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg5e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg5e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg5e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg5e64_v_f64m1:
  ID = Intrinsic::riscv_vlseg5;
  NF = 5;

    {
      // builtin: (val0 address, val1 address, ..., ptr, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg5e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg5e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg5e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg5e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg5e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg5e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg5e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg5e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e64_v_f64m1_m:
  ID = Intrinsic::riscv_vlseg5_mask;
  NF = 5;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 2]);
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg5e64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg5e64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg5e64ff_v_f64m1:
  ID = Intrinsic::riscv_vlseg5ff;
  NF = 5;

    {
      // builtin: (val0 address, val1 address, ..., ptr, new_vl, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 2]};
      Value *NewVL = Ops[NF + 1];
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e8ff_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e64ff_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg5e64ff_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e16ff_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg5e32ff_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg5e64ff_v_f64m1_m:
  ID = Intrinsic::riscv_vlseg5ff_mask;
  NF = 5;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, new_vl, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      Value *NewVL = Ops[2 * NF + 2];
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg6e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg6e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg6e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg6e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg6e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg6e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg6e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg6e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg6e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg6e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg6e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg6e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg6e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg6e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg6e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg6e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg6e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg6e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg6e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg6e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg6e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg6e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg6e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg6e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg6e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg6e64_v_f64m1:
  ID = Intrinsic::riscv_vlseg6;
  NF = 6;

    {
      // builtin: (val0 address, val1 address, ..., ptr, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg6e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg6e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg6e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg6e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg6e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg6e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg6e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg6e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e64_v_f64m1_m:
  ID = Intrinsic::riscv_vlseg6_mask;
  NF = 6;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 2]);
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg6e64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg6e64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg6e64ff_v_f64m1:
  ID = Intrinsic::riscv_vlseg6ff;
  NF = 6;

    {
      // builtin: (val0 address, val1 address, ..., ptr, new_vl, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 2]};
      Value *NewVL = Ops[NF + 1];
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e8ff_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e64ff_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg6e64ff_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e16ff_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg6e32ff_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg6e64ff_v_f64m1_m:
  ID = Intrinsic::riscv_vlseg6ff_mask;
  NF = 6;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, new_vl, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      Value *NewVL = Ops[2 * NF + 2];
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg7e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg7e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg7e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg7e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg7e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg7e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg7e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg7e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg7e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg7e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg7e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg7e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg7e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg7e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg7e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg7e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg7e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg7e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg7e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg7e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg7e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg7e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg7e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg7e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg7e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg7e64_v_f64m1:
  ID = Intrinsic::riscv_vlseg7;
  NF = 7;

    {
      // builtin: (val0 address, val1 address, ..., ptr, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg7e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg7e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg7e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg7e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg7e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg7e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg7e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg7e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e64_v_f64m1_m:
  ID = Intrinsic::riscv_vlseg7_mask;
  NF = 7;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 2]);
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg7e64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg7e64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg7e64ff_v_f64m1:
  ID = Intrinsic::riscv_vlseg7ff;
  NF = 7;

    {
      // builtin: (val0 address, val1 address, ..., ptr, new_vl, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 2]};
      Value *NewVL = Ops[NF + 1];
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e8ff_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e64ff_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg7e64ff_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e16ff_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg7e32ff_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg7e64ff_v_f64m1_m:
  ID = Intrinsic::riscv_vlseg7ff_mask;
  NF = 7;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, new_vl, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      Value *NewVL = Ops[2 * NF + 2];
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg8e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg8e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg8e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg8e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg8e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg8e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg8e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg8e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg8e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg8e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg8e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg8e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg8e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg8e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg8e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg8e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg8e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg8e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg8e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg8e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg8e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg8e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg8e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg8e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg8e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg8e64_v_f64m1:
  ID = Intrinsic::riscv_vlseg8;
  NF = 8;

    {
      // builtin: (val0 address, val1 address, ..., ptr, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg8e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg8e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg8e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg8e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg8e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg8e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg8e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg8e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e64_v_f64m1_m:
  ID = Intrinsic::riscv_vlseg8_mask;
  NF = 8;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 2]);
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_u8mf8:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_i16m1:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_i16mf2:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_i16mf4:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_u16m1:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_u16mf2:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_u16mf4:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vlseg8e64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vlseg8e64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_f16m1:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_f16mf2:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_f16mf4:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vlseg8e64ff_v_f64m1:
  ID = Intrinsic::riscv_vlseg8ff;
  NF = 8;

    {
      // builtin: (val0 address, val1 address, ..., ptr, new_vl, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 2]};
      Value *NewVL = Ops[NF + 1];
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e8ff_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e64ff_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlseg8e64ff_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e16ff_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlseg8e32ff_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlseg8e64ff_v_f64m1_m:
  ID = Intrinsic::riscv_vlseg8ff_mask;
  NF = 8;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, new_vl, vl)
      // intrinsic: (maskedoff0, ..., ptr, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      Value *NewVL = Ops[2 * NF + 2];
      assert(Operands.size() == NF + 3);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      for (unsigned I = 0; I < NF; ++I) {
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                            Address(Ops[I], Align));
      }
      // Store new_vl.
      return Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {NF}),
                                 Address(NewVL, Align));
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8m2:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8m4:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8m2:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8m4:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16m2:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16m4:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16m2:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16m4:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_i32m2:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_i32m4:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_u32m2:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_u32m4:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_i64m2:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_i64m4:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_u64m2:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_u64m4:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16m2:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16m4:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_f32m2:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_f32m4:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_f64m1:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_f64m2:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_f64m4:
  ID = Intrinsic::riscv_vlsseg2;
  NF = 2;

    {
      // builtin: (val0 address, val1 address, ..., ptr, stride, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, stride, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg2e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg2e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vlsseg2e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vlsseg2e64_v_f64m4_m:
  ID = Intrinsic::riscv_vlsseg2_mask;
  NF = 2;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, stride, vl)
      // intrinsic: (maskedoff0, ..., ptr, stride, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8m2:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8m2:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_i16m2:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_u16m2:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_i32m2:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_u32m2:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_i64m2:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_u64m2:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_f16m2:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_f32m2:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_f64m1:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_f64m2:
  ID = Intrinsic::riscv_vlsseg3;
  NF = 3;

    {
      // builtin: (val0 address, val1 address, ..., ptr, stride, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, stride, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg3e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg3e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlsseg3e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlsseg3e64_v_f64m2_m:
  ID = Intrinsic::riscv_vlsseg3_mask;
  NF = 3;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, stride, vl)
      // intrinsic: (maskedoff0, ..., ptr, stride, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8m2:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8m2:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_i16m2:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_u16m2:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_i32m2:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_u32m2:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_i64m2:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_u64m2:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_f16m2:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_f32m2:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_f64m1:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_f64m2:
  ID = Intrinsic::riscv_vlsseg4;
  NF = 4;

    {
      // builtin: (val0 address, val1 address, ..., ptr, stride, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, stride, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg4e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg4e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vlsseg4e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vlsseg4e64_v_f64m2_m:
  ID = Intrinsic::riscv_vlsseg4_mask;
  NF = 4;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, stride, vl)
      // intrinsic: (maskedoff0, ..., ptr, stride, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg5e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlsseg5e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlsseg5e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlsseg5e64_v_f64m1:
  ID = Intrinsic::riscv_vlsseg5;
  NF = 5;

    {
      // builtin: (val0 address, val1 address, ..., ptr, stride, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, stride, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg5e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg5e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg5e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg5e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlsseg5e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg5e64_v_f64m1_m:
  ID = Intrinsic::riscv_vlsseg5_mask;
  NF = 5;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, stride, vl)
      // intrinsic: (maskedoff0, ..., ptr, stride, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg6e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlsseg6e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlsseg6e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlsseg6e64_v_f64m1:
  ID = Intrinsic::riscv_vlsseg6;
  NF = 6;

    {
      // builtin: (val0 address, val1 address, ..., ptr, stride, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, stride, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg6e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg6e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg6e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg6e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlsseg6e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg6e64_v_f64m1_m:
  ID = Intrinsic::riscv_vlsseg6_mask;
  NF = 6;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, stride, vl)
      // intrinsic: (maskedoff0, ..., ptr, stride, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg7e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlsseg7e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlsseg7e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlsseg7e64_v_f64m1:
  ID = Intrinsic::riscv_vlsseg7;
  NF = 7;

    {
      // builtin: (val0 address, val1 address, ..., ptr, stride, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, stride, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg7e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg7e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg7e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg7e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlsseg7e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg7e64_v_f64m1_m:
  ID = Intrinsic::riscv_vlsseg7_mask;
  NF = 7;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, stride, vl)
      // intrinsic: (maskedoff0, ..., ptr, stride, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg8e8_v_i8m1:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_u8m1:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_i16m1:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_u16m1:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_i32m1:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_u32m1:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vlsseg8e64_v_i64m1:
case RISCV::BI__builtin_rvv_vlsseg8e64_v_u64m1:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_f16m1:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_f32m1:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vlsseg8e64_v_f64m1:
  ID = Intrinsic::riscv_vlsseg8;
  NF = 8;

    {
      // builtin: (val0 address, val1 address, ..., ptr, stride, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 2]->getType()};
      // intrinsic: (ptr, stride, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vlsseg8e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vlsseg8e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg8e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vlsseg8e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vlsseg8e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vlsseg8e64_v_f64m1_m:
  ID = Intrinsic::riscv_vlsseg8_mask;
  NF = 8;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, stride, vl)
      // intrinsic: (maskedoff0, ..., ptr, stride, mask, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 3]->getType()};
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxei8_v_u8m1:
case RISCV::BI__builtin_rvv_vluxei8_v_u8m2:
case RISCV::BI__builtin_rvv_vluxei8_v_u8m4:
case RISCV::BI__builtin_rvv_vluxei8_v_u8m8:
case RISCV::BI__builtin_rvv_vluxei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxei16_v_i8m1:
case RISCV::BI__builtin_rvv_vluxei16_v_i8m2:
case RISCV::BI__builtin_rvv_vluxei16_v_i8m4:
case RISCV::BI__builtin_rvv_vluxei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxei16_v_u8m1:
case RISCV::BI__builtin_rvv_vluxei16_v_u8m2:
case RISCV::BI__builtin_rvv_vluxei16_v_u8m4:
case RISCV::BI__builtin_rvv_vluxei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxei32_v_i8m1:
case RISCV::BI__builtin_rvv_vluxei32_v_i8m2:
case RISCV::BI__builtin_rvv_vluxei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxei32_v_u8m1:
case RISCV::BI__builtin_rvv_vluxei32_v_u8m2:
case RISCV::BI__builtin_rvv_vluxei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxei64_v_i8m1:
case RISCV::BI__builtin_rvv_vluxei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxei64_v_u8m1:
case RISCV::BI__builtin_rvv_vluxei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxei8_v_i16m1:
case RISCV::BI__builtin_rvv_vluxei8_v_i16m2:
case RISCV::BI__builtin_rvv_vluxei8_v_i16m4:
case RISCV::BI__builtin_rvv_vluxei8_v_i16m8:
case RISCV::BI__builtin_rvv_vluxei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxei8_v_u16m1:
case RISCV::BI__builtin_rvv_vluxei8_v_u16m2:
case RISCV::BI__builtin_rvv_vluxei8_v_u16m4:
case RISCV::BI__builtin_rvv_vluxei8_v_u16m8:
case RISCV::BI__builtin_rvv_vluxei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxei16_v_i16m1:
case RISCV::BI__builtin_rvv_vluxei16_v_i16m2:
case RISCV::BI__builtin_rvv_vluxei16_v_i16m4:
case RISCV::BI__builtin_rvv_vluxei16_v_i16m8:
case RISCV::BI__builtin_rvv_vluxei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxei16_v_u16m1:
case RISCV::BI__builtin_rvv_vluxei16_v_u16m2:
case RISCV::BI__builtin_rvv_vluxei16_v_u16m4:
case RISCV::BI__builtin_rvv_vluxei16_v_u16m8:
case RISCV::BI__builtin_rvv_vluxei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxei32_v_i16m1:
case RISCV::BI__builtin_rvv_vluxei32_v_i16m2:
case RISCV::BI__builtin_rvv_vluxei32_v_i16m4:
case RISCV::BI__builtin_rvv_vluxei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxei32_v_u16m1:
case RISCV::BI__builtin_rvv_vluxei32_v_u16m2:
case RISCV::BI__builtin_rvv_vluxei32_v_u16m4:
case RISCV::BI__builtin_rvv_vluxei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxei64_v_i16m1:
case RISCV::BI__builtin_rvv_vluxei64_v_i16m2:
case RISCV::BI__builtin_rvv_vluxei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxei64_v_u16m1:
case RISCV::BI__builtin_rvv_vluxei64_v_u16m2:
case RISCV::BI__builtin_rvv_vluxei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxei8_v_i32m1:
case RISCV::BI__builtin_rvv_vluxei8_v_i32m2:
case RISCV::BI__builtin_rvv_vluxei8_v_i32m4:
case RISCV::BI__builtin_rvv_vluxei8_v_i32m8:
case RISCV::BI__builtin_rvv_vluxei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxei8_v_u32m1:
case RISCV::BI__builtin_rvv_vluxei8_v_u32m2:
case RISCV::BI__builtin_rvv_vluxei8_v_u32m4:
case RISCV::BI__builtin_rvv_vluxei8_v_u32m8:
case RISCV::BI__builtin_rvv_vluxei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxei16_v_i32m1:
case RISCV::BI__builtin_rvv_vluxei16_v_i32m2:
case RISCV::BI__builtin_rvv_vluxei16_v_i32m4:
case RISCV::BI__builtin_rvv_vluxei16_v_i32m8:
case RISCV::BI__builtin_rvv_vluxei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxei16_v_u32m1:
case RISCV::BI__builtin_rvv_vluxei16_v_u32m2:
case RISCV::BI__builtin_rvv_vluxei16_v_u32m4:
case RISCV::BI__builtin_rvv_vluxei16_v_u32m8:
case RISCV::BI__builtin_rvv_vluxei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxei32_v_i32m1:
case RISCV::BI__builtin_rvv_vluxei32_v_i32m2:
case RISCV::BI__builtin_rvv_vluxei32_v_i32m4:
case RISCV::BI__builtin_rvv_vluxei32_v_i32m8:
case RISCV::BI__builtin_rvv_vluxei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxei32_v_u32m1:
case RISCV::BI__builtin_rvv_vluxei32_v_u32m2:
case RISCV::BI__builtin_rvv_vluxei32_v_u32m4:
case RISCV::BI__builtin_rvv_vluxei32_v_u32m8:
case RISCV::BI__builtin_rvv_vluxei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxei64_v_i32m1:
case RISCV::BI__builtin_rvv_vluxei64_v_i32m2:
case RISCV::BI__builtin_rvv_vluxei64_v_i32m4:
case RISCV::BI__builtin_rvv_vluxei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxei64_v_u32m1:
case RISCV::BI__builtin_rvv_vluxei64_v_u32m2:
case RISCV::BI__builtin_rvv_vluxei64_v_u32m4:
case RISCV::BI__builtin_rvv_vluxei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxei8_v_i64m1:
case RISCV::BI__builtin_rvv_vluxei8_v_i64m2:
case RISCV::BI__builtin_rvv_vluxei8_v_i64m4:
case RISCV::BI__builtin_rvv_vluxei8_v_i64m8:
case RISCV::BI__builtin_rvv_vluxei8_v_u64m1:
case RISCV::BI__builtin_rvv_vluxei8_v_u64m2:
case RISCV::BI__builtin_rvv_vluxei8_v_u64m4:
case RISCV::BI__builtin_rvv_vluxei8_v_u64m8:
case RISCV::BI__builtin_rvv_vluxei16_v_i64m1:
case RISCV::BI__builtin_rvv_vluxei16_v_i64m2:
case RISCV::BI__builtin_rvv_vluxei16_v_i64m4:
case RISCV::BI__builtin_rvv_vluxei16_v_i64m8:
case RISCV::BI__builtin_rvv_vluxei16_v_u64m1:
case RISCV::BI__builtin_rvv_vluxei16_v_u64m2:
case RISCV::BI__builtin_rvv_vluxei16_v_u64m4:
case RISCV::BI__builtin_rvv_vluxei16_v_u64m8:
case RISCV::BI__builtin_rvv_vluxei32_v_i64m1:
case RISCV::BI__builtin_rvv_vluxei32_v_i64m2:
case RISCV::BI__builtin_rvv_vluxei32_v_i64m4:
case RISCV::BI__builtin_rvv_vluxei32_v_i64m8:
case RISCV::BI__builtin_rvv_vluxei32_v_u64m1:
case RISCV::BI__builtin_rvv_vluxei32_v_u64m2:
case RISCV::BI__builtin_rvv_vluxei32_v_u64m4:
case RISCV::BI__builtin_rvv_vluxei32_v_u64m8:
case RISCV::BI__builtin_rvv_vluxei64_v_i64m1:
case RISCV::BI__builtin_rvv_vluxei64_v_i64m2:
case RISCV::BI__builtin_rvv_vluxei64_v_i64m4:
case RISCV::BI__builtin_rvv_vluxei64_v_i64m8:
case RISCV::BI__builtin_rvv_vluxei64_v_u64m1:
case RISCV::BI__builtin_rvv_vluxei64_v_u64m2:
case RISCV::BI__builtin_rvv_vluxei64_v_u64m4:
case RISCV::BI__builtin_rvv_vluxei64_v_u64m8:
case RISCV::BI__builtin_rvv_vluxei8_v_f16m1:
case RISCV::BI__builtin_rvv_vluxei8_v_f16m2:
case RISCV::BI__builtin_rvv_vluxei8_v_f16m4:
case RISCV::BI__builtin_rvv_vluxei8_v_f16m8:
case RISCV::BI__builtin_rvv_vluxei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxei16_v_f16m1:
case RISCV::BI__builtin_rvv_vluxei16_v_f16m2:
case RISCV::BI__builtin_rvv_vluxei16_v_f16m4:
case RISCV::BI__builtin_rvv_vluxei16_v_f16m8:
case RISCV::BI__builtin_rvv_vluxei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxei32_v_f16m1:
case RISCV::BI__builtin_rvv_vluxei32_v_f16m2:
case RISCV::BI__builtin_rvv_vluxei32_v_f16m4:
case RISCV::BI__builtin_rvv_vluxei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxei64_v_f16m1:
case RISCV::BI__builtin_rvv_vluxei64_v_f16m2:
case RISCV::BI__builtin_rvv_vluxei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxei8_v_f32m1:
case RISCV::BI__builtin_rvv_vluxei8_v_f32m2:
case RISCV::BI__builtin_rvv_vluxei8_v_f32m4:
case RISCV::BI__builtin_rvv_vluxei8_v_f32m8:
case RISCV::BI__builtin_rvv_vluxei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxei16_v_f32m1:
case RISCV::BI__builtin_rvv_vluxei16_v_f32m2:
case RISCV::BI__builtin_rvv_vluxei16_v_f32m4:
case RISCV::BI__builtin_rvv_vluxei16_v_f32m8:
case RISCV::BI__builtin_rvv_vluxei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxei32_v_f32m1:
case RISCV::BI__builtin_rvv_vluxei32_v_f32m2:
case RISCV::BI__builtin_rvv_vluxei32_v_f32m4:
case RISCV::BI__builtin_rvv_vluxei32_v_f32m8:
case RISCV::BI__builtin_rvv_vluxei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxei64_v_f32m1:
case RISCV::BI__builtin_rvv_vluxei64_v_f32m2:
case RISCV::BI__builtin_rvv_vluxei64_v_f32m4:
case RISCV::BI__builtin_rvv_vluxei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxei8_v_f64m1:
case RISCV::BI__builtin_rvv_vluxei8_v_f64m2:
case RISCV::BI__builtin_rvv_vluxei8_v_f64m4:
case RISCV::BI__builtin_rvv_vluxei8_v_f64m8:
case RISCV::BI__builtin_rvv_vluxei16_v_f64m1:
case RISCV::BI__builtin_rvv_vluxei16_v_f64m2:
case RISCV::BI__builtin_rvv_vluxei16_v_f64m4:
case RISCV::BI__builtin_rvv_vluxei16_v_f64m8:
case RISCV::BI__builtin_rvv_vluxei32_v_f64m1:
case RISCV::BI__builtin_rvv_vluxei32_v_f64m2:
case RISCV::BI__builtin_rvv_vluxei32_v_f64m4:
case RISCV::BI__builtin_rvv_vluxei32_v_f64m8:
case RISCV::BI__builtin_rvv_vluxei64_v_f64m1:
case RISCV::BI__builtin_rvv_vluxei64_v_f64m2:
case RISCV::BI__builtin_rvv_vluxei64_v_f64m4:
case RISCV::BI__builtin_rvv_vluxei64_v_f64m8:
case RISCV::BI__builtin_rvv_vluxei8_v_i8m1:
case RISCV::BI__builtin_rvv_vluxei8_v_i8m2:
case RISCV::BI__builtin_rvv_vluxei8_v_i8m4:
case RISCV::BI__builtin_rvv_vluxei8_v_i8m8:
case RISCV::BI__builtin_rvv_vluxei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxei8_v_i8mf8:
  ID = Intrinsic::riscv_vluxei;

        IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType()};
        Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
      break;
case RISCV::BI__builtin_rvv_vluxei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u8m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i8m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u8m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i16m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i16m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u16m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u16m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i16m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u16m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i16m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u16m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f16m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f16m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f16m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f16m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f32m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f32m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_f64m8_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vluxei16_v_f64m8_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vluxei32_v_f64m8_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vluxei64_v_f64m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i8m8_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxei8_v_i8mf8_m:
  ID = Intrinsic::riscv_vluxei_mask;

        // Move mask to right before vl.
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops[4]->getType()};
        Ops[1] = Builder.CreateBitCast(Ops[1], ResultType->getPointerTo());
      break;
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f32m4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f64m4:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f64m4:
  ID = Intrinsic::riscv_vluxseg2;
  NF = 2;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg2ei64_v_f64m4_m:
  ID = Intrinsic::riscv_vluxseg2_mask;
  NF = 2;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f64m2:
  ID = Intrinsic::riscv_vluxseg3;
  NF = 3;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg3ei64_v_f64m2_m:
  ID = Intrinsic::riscv_vluxseg3_mask;
  NF = 3;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f64m2:
  ID = Intrinsic::riscv_vluxseg4;
  NF = 4;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg4ei64_v_f64m2_m:
  ID = Intrinsic::riscv_vluxseg4_mask;
  NF = 4;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f64m1:
  ID = Intrinsic::riscv_vluxseg5;
  NF = 5;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg5ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg5ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vluxseg5_mask;
  NF = 5;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f64m1:
  ID = Intrinsic::riscv_vluxseg6;
  NF = 6;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg6ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg6ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vluxseg6_mask;
  NF = 6;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f64m1:
  ID = Intrinsic::riscv_vluxseg7;
  NF = 7;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg7ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg7ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vluxseg7_mask;
  NF = 7;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f64m1:
  ID = Intrinsic::riscv_vluxseg8;
  NF = 8;

    {
      // builtin: (val0 address, val1 address, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      // intrinsic: (ptr, index, vl)
      llvm::Value *Operands[] = {Ops[NF], Ops[NF + 1], Ops[NF + 2]};
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vluxseg8ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vluxseg8ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vluxseg8_mask;
  NF = 8;

    {
      // builtin: (val0 address, ..., mask, maskedoff0, ..., ptr, index, vl)
      IntrinsicTypes = {Ops[0]->getType()->getPointerElementType(),
                        Ops[2 * NF + 2]->getType(), Ops[2 * NF + 3]->getType()};
      // intrinsic: (maskedoff0, ..., ptr, index, mask, vl)
      SmallVector<llvm::Value*, 12> Operands;
      for (unsigned I = 0; I < NF; ++I)
        Operands.push_back(Ops[NF + I + 1]);
      Operands.push_back(Ops[2 * NF + 1]);
      Operands.push_back(Ops[2 * NF + 2]);
      Operands.push_back(Ops[NF]);
      Operands.push_back(Ops[2 * NF + 3]);
      assert(Operands.size() == NF + 4);
      llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
      llvm::Value *LoadValue = Builder.CreateCall(F, Operands, "");
      clang::CharUnits Align = CharUnits::fromQuantity(
                                 IntrinsicTypes[0]->getScalarSizeInBits() / 8);
      llvm::Value *V;
      for (unsigned I = 0; I < NF; ++I) {
        V = Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {I}),
                                Address(Ops[I], Align));
      }
      return V;
    }
            break;
case RISCV::BI__builtin_rvv_vmacc_vv_i8m1:
case RISCV::BI__builtin_rvv_vmacc_vv_i8m2:
case RISCV::BI__builtin_rvv_vmacc_vv_i8m4:
case RISCV::BI__builtin_rvv_vmacc_vv_i8m8:
case RISCV::BI__builtin_rvv_vmacc_vv_i8mf2:
case RISCV::BI__builtin_rvv_vmacc_vv_i8mf4:
case RISCV::BI__builtin_rvv_vmacc_vv_i8mf8:
case RISCV::BI__builtin_rvv_vmacc_vv_i16m1:
case RISCV::BI__builtin_rvv_vmacc_vv_i16m2:
case RISCV::BI__builtin_rvv_vmacc_vv_i16m4:
case RISCV::BI__builtin_rvv_vmacc_vv_i16m8:
case RISCV::BI__builtin_rvv_vmacc_vv_i16mf2:
case RISCV::BI__builtin_rvv_vmacc_vv_i16mf4:
case RISCV::BI__builtin_rvv_vmacc_vv_i32m1:
case RISCV::BI__builtin_rvv_vmacc_vv_i32m2:
case RISCV::BI__builtin_rvv_vmacc_vv_i32m4:
case RISCV::BI__builtin_rvv_vmacc_vv_i32m8:
case RISCV::BI__builtin_rvv_vmacc_vv_i32mf2:
case RISCV::BI__builtin_rvv_vmacc_vv_i64m1:
case RISCV::BI__builtin_rvv_vmacc_vv_i64m2:
case RISCV::BI__builtin_rvv_vmacc_vv_i64m4:
case RISCV::BI__builtin_rvv_vmacc_vv_i64m8:
case RISCV::BI__builtin_rvv_vmacc_vx_i8m1:
case RISCV::BI__builtin_rvv_vmacc_vx_i8m2:
case RISCV::BI__builtin_rvv_vmacc_vx_i8m4:
case RISCV::BI__builtin_rvv_vmacc_vx_i8m8:
case RISCV::BI__builtin_rvv_vmacc_vx_i8mf2:
case RISCV::BI__builtin_rvv_vmacc_vx_i8mf4:
case RISCV::BI__builtin_rvv_vmacc_vx_i8mf8:
case RISCV::BI__builtin_rvv_vmacc_vx_i16m1:
case RISCV::BI__builtin_rvv_vmacc_vx_i16m2:
case RISCV::BI__builtin_rvv_vmacc_vx_i16m4:
case RISCV::BI__builtin_rvv_vmacc_vx_i16m8:
case RISCV::BI__builtin_rvv_vmacc_vx_i16mf2:
case RISCV::BI__builtin_rvv_vmacc_vx_i16mf4:
case RISCV::BI__builtin_rvv_vmacc_vx_i32m1:
case RISCV::BI__builtin_rvv_vmacc_vx_i32m2:
case RISCV::BI__builtin_rvv_vmacc_vx_i32m4:
case RISCV::BI__builtin_rvv_vmacc_vx_i32m8:
case RISCV::BI__builtin_rvv_vmacc_vx_i32mf2:
case RISCV::BI__builtin_rvv_vmacc_vx_i64m1:
case RISCV::BI__builtin_rvv_vmacc_vx_i64m2:
case RISCV::BI__builtin_rvv_vmacc_vx_i64m4:
case RISCV::BI__builtin_rvv_vmacc_vx_i64m8:
case RISCV::BI__builtin_rvv_vmacc_vv_u8m1:
case RISCV::BI__builtin_rvv_vmacc_vv_u8m2:
case RISCV::BI__builtin_rvv_vmacc_vv_u8m4:
case RISCV::BI__builtin_rvv_vmacc_vv_u8m8:
case RISCV::BI__builtin_rvv_vmacc_vv_u8mf2:
case RISCV::BI__builtin_rvv_vmacc_vv_u8mf4:
case RISCV::BI__builtin_rvv_vmacc_vv_u8mf8:
case RISCV::BI__builtin_rvv_vmacc_vv_u16m1:
case RISCV::BI__builtin_rvv_vmacc_vv_u16m2:
case RISCV::BI__builtin_rvv_vmacc_vv_u16m4:
case RISCV::BI__builtin_rvv_vmacc_vv_u16m8:
case RISCV::BI__builtin_rvv_vmacc_vv_u16mf2:
case RISCV::BI__builtin_rvv_vmacc_vv_u16mf4:
case RISCV::BI__builtin_rvv_vmacc_vv_u32m1:
case RISCV::BI__builtin_rvv_vmacc_vv_u32m2:
case RISCV::BI__builtin_rvv_vmacc_vv_u32m4:
case RISCV::BI__builtin_rvv_vmacc_vv_u32m8:
case RISCV::BI__builtin_rvv_vmacc_vv_u32mf2:
case RISCV::BI__builtin_rvv_vmacc_vv_u64m1:
case RISCV::BI__builtin_rvv_vmacc_vv_u64m2:
case RISCV::BI__builtin_rvv_vmacc_vv_u64m4:
case RISCV::BI__builtin_rvv_vmacc_vv_u64m8:
case RISCV::BI__builtin_rvv_vmacc_vx_u8m1:
case RISCV::BI__builtin_rvv_vmacc_vx_u8m2:
case RISCV::BI__builtin_rvv_vmacc_vx_u8m4:
case RISCV::BI__builtin_rvv_vmacc_vx_u8m8:
case RISCV::BI__builtin_rvv_vmacc_vx_u8mf2:
case RISCV::BI__builtin_rvv_vmacc_vx_u8mf4:
case RISCV::BI__builtin_rvv_vmacc_vx_u8mf8:
case RISCV::BI__builtin_rvv_vmacc_vx_u16m1:
case RISCV::BI__builtin_rvv_vmacc_vx_u16m2:
case RISCV::BI__builtin_rvv_vmacc_vx_u16m4:
case RISCV::BI__builtin_rvv_vmacc_vx_u16m8:
case RISCV::BI__builtin_rvv_vmacc_vx_u16mf2:
case RISCV::BI__builtin_rvv_vmacc_vx_u16mf4:
case RISCV::BI__builtin_rvv_vmacc_vx_u32m1:
case RISCV::BI__builtin_rvv_vmacc_vx_u32m2:
case RISCV::BI__builtin_rvv_vmacc_vx_u32m4:
case RISCV::BI__builtin_rvv_vmacc_vx_u32m8:
case RISCV::BI__builtin_rvv_vmacc_vx_u32mf2:
case RISCV::BI__builtin_rvv_vmacc_vx_u64m1:
case RISCV::BI__builtin_rvv_vmacc_vx_u64m2:
case RISCV::BI__builtin_rvv_vmacc_vx_u64m4:
case RISCV::BI__builtin_rvv_vmacc_vx_u64m8:
  ID = Intrinsic::riscv_vmacc;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmacc_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vmacc_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vmacc_vx_u64m8_m:
  ID = Intrinsic::riscv_vmacc_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmadc_vv_i8m1_b8:
case RISCV::BI__builtin_rvv_vmadc_vv_i8m2_b4:
case RISCV::BI__builtin_rvv_vmadc_vv_i8m4_b2:
case RISCV::BI__builtin_rvv_vmadc_vv_i8m8_b1:
case RISCV::BI__builtin_rvv_vmadc_vv_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmadc_vv_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmadc_vv_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmadc_vv_i16m1_b16:
case RISCV::BI__builtin_rvv_vmadc_vv_i16m2_b8:
case RISCV::BI__builtin_rvv_vmadc_vv_i16m4_b4:
case RISCV::BI__builtin_rvv_vmadc_vv_i16m8_b2:
case RISCV::BI__builtin_rvv_vmadc_vv_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmadc_vv_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmadc_vv_i32m1_b32:
case RISCV::BI__builtin_rvv_vmadc_vv_i32m2_b16:
case RISCV::BI__builtin_rvv_vmadc_vv_i32m4_b8:
case RISCV::BI__builtin_rvv_vmadc_vv_i32m8_b4:
case RISCV::BI__builtin_rvv_vmadc_vv_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmadc_vv_i64m1_b64:
case RISCV::BI__builtin_rvv_vmadc_vv_i64m2_b32:
case RISCV::BI__builtin_rvv_vmadc_vv_i64m4_b16:
case RISCV::BI__builtin_rvv_vmadc_vv_i64m8_b8:
case RISCV::BI__builtin_rvv_vmadc_vx_i8m1_b8:
case RISCV::BI__builtin_rvv_vmadc_vx_i8m2_b4:
case RISCV::BI__builtin_rvv_vmadc_vx_i8m4_b2:
case RISCV::BI__builtin_rvv_vmadc_vx_i8m8_b1:
case RISCV::BI__builtin_rvv_vmadc_vx_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmadc_vx_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmadc_vx_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmadc_vx_i16m1_b16:
case RISCV::BI__builtin_rvv_vmadc_vx_i16m2_b8:
case RISCV::BI__builtin_rvv_vmadc_vx_i16m4_b4:
case RISCV::BI__builtin_rvv_vmadc_vx_i16m8_b2:
case RISCV::BI__builtin_rvv_vmadc_vx_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmadc_vx_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmadc_vx_i32m1_b32:
case RISCV::BI__builtin_rvv_vmadc_vx_i32m2_b16:
case RISCV::BI__builtin_rvv_vmadc_vx_i32m4_b8:
case RISCV::BI__builtin_rvv_vmadc_vx_i32m8_b4:
case RISCV::BI__builtin_rvv_vmadc_vx_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmadc_vx_i64m1_b64:
case RISCV::BI__builtin_rvv_vmadc_vx_i64m2_b32:
case RISCV::BI__builtin_rvv_vmadc_vx_i64m4_b16:
case RISCV::BI__builtin_rvv_vmadc_vx_i64m8_b8:
case RISCV::BI__builtin_rvv_vmadc_vv_u8m1_b8:
case RISCV::BI__builtin_rvv_vmadc_vv_u8m2_b4:
case RISCV::BI__builtin_rvv_vmadc_vv_u8m4_b2:
case RISCV::BI__builtin_rvv_vmadc_vv_u8m8_b1:
case RISCV::BI__builtin_rvv_vmadc_vv_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmadc_vv_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmadc_vv_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmadc_vv_u16m1_b16:
case RISCV::BI__builtin_rvv_vmadc_vv_u16m2_b8:
case RISCV::BI__builtin_rvv_vmadc_vv_u16m4_b4:
case RISCV::BI__builtin_rvv_vmadc_vv_u16m8_b2:
case RISCV::BI__builtin_rvv_vmadc_vv_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmadc_vv_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmadc_vv_u32m1_b32:
case RISCV::BI__builtin_rvv_vmadc_vv_u32m2_b16:
case RISCV::BI__builtin_rvv_vmadc_vv_u32m4_b8:
case RISCV::BI__builtin_rvv_vmadc_vv_u32m8_b4:
case RISCV::BI__builtin_rvv_vmadc_vv_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmadc_vv_u64m1_b64:
case RISCV::BI__builtin_rvv_vmadc_vv_u64m2_b32:
case RISCV::BI__builtin_rvv_vmadc_vv_u64m4_b16:
case RISCV::BI__builtin_rvv_vmadc_vv_u64m8_b8:
case RISCV::BI__builtin_rvv_vmadc_vx_u8m1_b8:
case RISCV::BI__builtin_rvv_vmadc_vx_u8m2_b4:
case RISCV::BI__builtin_rvv_vmadc_vx_u8m4_b2:
case RISCV::BI__builtin_rvv_vmadc_vx_u8m8_b1:
case RISCV::BI__builtin_rvv_vmadc_vx_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmadc_vx_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmadc_vx_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmadc_vx_u16m1_b16:
case RISCV::BI__builtin_rvv_vmadc_vx_u16m2_b8:
case RISCV::BI__builtin_rvv_vmadc_vx_u16m4_b4:
case RISCV::BI__builtin_rvv_vmadc_vx_u16m8_b2:
case RISCV::BI__builtin_rvv_vmadc_vx_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmadc_vx_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmadc_vx_u32m1_b32:
case RISCV::BI__builtin_rvv_vmadc_vx_u32m2_b16:
case RISCV::BI__builtin_rvv_vmadc_vx_u32m4_b8:
case RISCV::BI__builtin_rvv_vmadc_vx_u32m8_b4:
case RISCV::BI__builtin_rvv_vmadc_vx_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmadc_vx_u64m1_b64:
case RISCV::BI__builtin_rvv_vmadc_vx_u64m2_b32:
case RISCV::BI__builtin_rvv_vmadc_vx_u64m4_b16:
case RISCV::BI__builtin_rvv_vmadc_vx_u64m8_b8:
  ID = Intrinsic::riscv_vmadc;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmadc_vvm_i8m1_b8:
case RISCV::BI__builtin_rvv_vmadc_vvm_i8m2_b4:
case RISCV::BI__builtin_rvv_vmadc_vvm_i8m4_b2:
case RISCV::BI__builtin_rvv_vmadc_vvm_i8m8_b1:
case RISCV::BI__builtin_rvv_vmadc_vvm_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmadc_vvm_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmadc_vvm_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmadc_vvm_i16m1_b16:
case RISCV::BI__builtin_rvv_vmadc_vvm_i16m2_b8:
case RISCV::BI__builtin_rvv_vmadc_vvm_i16m4_b4:
case RISCV::BI__builtin_rvv_vmadc_vvm_i16m8_b2:
case RISCV::BI__builtin_rvv_vmadc_vvm_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmadc_vvm_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmadc_vvm_i32m1_b32:
case RISCV::BI__builtin_rvv_vmadc_vvm_i32m2_b16:
case RISCV::BI__builtin_rvv_vmadc_vvm_i32m4_b8:
case RISCV::BI__builtin_rvv_vmadc_vvm_i32m8_b4:
case RISCV::BI__builtin_rvv_vmadc_vvm_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmadc_vvm_i64m1_b64:
case RISCV::BI__builtin_rvv_vmadc_vvm_i64m2_b32:
case RISCV::BI__builtin_rvv_vmadc_vvm_i64m4_b16:
case RISCV::BI__builtin_rvv_vmadc_vvm_i64m8_b8:
case RISCV::BI__builtin_rvv_vmadc_vxm_i8m1_b8:
case RISCV::BI__builtin_rvv_vmadc_vxm_i8m2_b4:
case RISCV::BI__builtin_rvv_vmadc_vxm_i8m4_b2:
case RISCV::BI__builtin_rvv_vmadc_vxm_i8m8_b1:
case RISCV::BI__builtin_rvv_vmadc_vxm_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmadc_vxm_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmadc_vxm_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmadc_vxm_i16m1_b16:
case RISCV::BI__builtin_rvv_vmadc_vxm_i16m2_b8:
case RISCV::BI__builtin_rvv_vmadc_vxm_i16m4_b4:
case RISCV::BI__builtin_rvv_vmadc_vxm_i16m8_b2:
case RISCV::BI__builtin_rvv_vmadc_vxm_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmadc_vxm_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmadc_vxm_i32m1_b32:
case RISCV::BI__builtin_rvv_vmadc_vxm_i32m2_b16:
case RISCV::BI__builtin_rvv_vmadc_vxm_i32m4_b8:
case RISCV::BI__builtin_rvv_vmadc_vxm_i32m8_b4:
case RISCV::BI__builtin_rvv_vmadc_vxm_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmadc_vxm_i64m1_b64:
case RISCV::BI__builtin_rvv_vmadc_vxm_i64m2_b32:
case RISCV::BI__builtin_rvv_vmadc_vxm_i64m4_b16:
case RISCV::BI__builtin_rvv_vmadc_vxm_i64m8_b8:
case RISCV::BI__builtin_rvv_vmadc_vvm_u8m1_b8:
case RISCV::BI__builtin_rvv_vmadc_vvm_u8m2_b4:
case RISCV::BI__builtin_rvv_vmadc_vvm_u8m4_b2:
case RISCV::BI__builtin_rvv_vmadc_vvm_u8m8_b1:
case RISCV::BI__builtin_rvv_vmadc_vvm_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmadc_vvm_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmadc_vvm_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmadc_vvm_u16m1_b16:
case RISCV::BI__builtin_rvv_vmadc_vvm_u16m2_b8:
case RISCV::BI__builtin_rvv_vmadc_vvm_u16m4_b4:
case RISCV::BI__builtin_rvv_vmadc_vvm_u16m8_b2:
case RISCV::BI__builtin_rvv_vmadc_vvm_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmadc_vvm_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmadc_vvm_u32m1_b32:
case RISCV::BI__builtin_rvv_vmadc_vvm_u32m2_b16:
case RISCV::BI__builtin_rvv_vmadc_vvm_u32m4_b8:
case RISCV::BI__builtin_rvv_vmadc_vvm_u32m8_b4:
case RISCV::BI__builtin_rvv_vmadc_vvm_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmadc_vvm_u64m1_b64:
case RISCV::BI__builtin_rvv_vmadc_vvm_u64m2_b32:
case RISCV::BI__builtin_rvv_vmadc_vvm_u64m4_b16:
case RISCV::BI__builtin_rvv_vmadc_vvm_u64m8_b8:
case RISCV::BI__builtin_rvv_vmadc_vxm_u8m1_b8:
case RISCV::BI__builtin_rvv_vmadc_vxm_u8m2_b4:
case RISCV::BI__builtin_rvv_vmadc_vxm_u8m4_b2:
case RISCV::BI__builtin_rvv_vmadc_vxm_u8m8_b1:
case RISCV::BI__builtin_rvv_vmadc_vxm_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmadc_vxm_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmadc_vxm_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmadc_vxm_u16m1_b16:
case RISCV::BI__builtin_rvv_vmadc_vxm_u16m2_b8:
case RISCV::BI__builtin_rvv_vmadc_vxm_u16m4_b4:
case RISCV::BI__builtin_rvv_vmadc_vxm_u16m8_b2:
case RISCV::BI__builtin_rvv_vmadc_vxm_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmadc_vxm_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmadc_vxm_u32m1_b32:
case RISCV::BI__builtin_rvv_vmadc_vxm_u32m2_b16:
case RISCV::BI__builtin_rvv_vmadc_vxm_u32m4_b8:
case RISCV::BI__builtin_rvv_vmadc_vxm_u32m8_b4:
case RISCV::BI__builtin_rvv_vmadc_vxm_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmadc_vxm_u64m1_b64:
case RISCV::BI__builtin_rvv_vmadc_vxm_u64m2_b32:
case RISCV::BI__builtin_rvv_vmadc_vxm_u64m4_b16:
case RISCV::BI__builtin_rvv_vmadc_vxm_u64m8_b8:
  ID = Intrinsic::riscv_vmadc_carry_in;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmadd_vv_i8m1:
case RISCV::BI__builtin_rvv_vmadd_vv_i8m2:
case RISCV::BI__builtin_rvv_vmadd_vv_i8m4:
case RISCV::BI__builtin_rvv_vmadd_vv_i8m8:
case RISCV::BI__builtin_rvv_vmadd_vv_i8mf2:
case RISCV::BI__builtin_rvv_vmadd_vv_i8mf4:
case RISCV::BI__builtin_rvv_vmadd_vv_i8mf8:
case RISCV::BI__builtin_rvv_vmadd_vv_i16m1:
case RISCV::BI__builtin_rvv_vmadd_vv_i16m2:
case RISCV::BI__builtin_rvv_vmadd_vv_i16m4:
case RISCV::BI__builtin_rvv_vmadd_vv_i16m8:
case RISCV::BI__builtin_rvv_vmadd_vv_i16mf2:
case RISCV::BI__builtin_rvv_vmadd_vv_i16mf4:
case RISCV::BI__builtin_rvv_vmadd_vv_i32m1:
case RISCV::BI__builtin_rvv_vmadd_vv_i32m2:
case RISCV::BI__builtin_rvv_vmadd_vv_i32m4:
case RISCV::BI__builtin_rvv_vmadd_vv_i32m8:
case RISCV::BI__builtin_rvv_vmadd_vv_i32mf2:
case RISCV::BI__builtin_rvv_vmadd_vv_i64m1:
case RISCV::BI__builtin_rvv_vmadd_vv_i64m2:
case RISCV::BI__builtin_rvv_vmadd_vv_i64m4:
case RISCV::BI__builtin_rvv_vmadd_vv_i64m8:
case RISCV::BI__builtin_rvv_vmadd_vx_i8m1:
case RISCV::BI__builtin_rvv_vmadd_vx_i8m2:
case RISCV::BI__builtin_rvv_vmadd_vx_i8m4:
case RISCV::BI__builtin_rvv_vmadd_vx_i8m8:
case RISCV::BI__builtin_rvv_vmadd_vx_i8mf2:
case RISCV::BI__builtin_rvv_vmadd_vx_i8mf4:
case RISCV::BI__builtin_rvv_vmadd_vx_i8mf8:
case RISCV::BI__builtin_rvv_vmadd_vx_i16m1:
case RISCV::BI__builtin_rvv_vmadd_vx_i16m2:
case RISCV::BI__builtin_rvv_vmadd_vx_i16m4:
case RISCV::BI__builtin_rvv_vmadd_vx_i16m8:
case RISCV::BI__builtin_rvv_vmadd_vx_i16mf2:
case RISCV::BI__builtin_rvv_vmadd_vx_i16mf4:
case RISCV::BI__builtin_rvv_vmadd_vx_i32m1:
case RISCV::BI__builtin_rvv_vmadd_vx_i32m2:
case RISCV::BI__builtin_rvv_vmadd_vx_i32m4:
case RISCV::BI__builtin_rvv_vmadd_vx_i32m8:
case RISCV::BI__builtin_rvv_vmadd_vx_i32mf2:
case RISCV::BI__builtin_rvv_vmadd_vx_i64m1:
case RISCV::BI__builtin_rvv_vmadd_vx_i64m2:
case RISCV::BI__builtin_rvv_vmadd_vx_i64m4:
case RISCV::BI__builtin_rvv_vmadd_vx_i64m8:
case RISCV::BI__builtin_rvv_vmadd_vv_u8m1:
case RISCV::BI__builtin_rvv_vmadd_vv_u8m2:
case RISCV::BI__builtin_rvv_vmadd_vv_u8m4:
case RISCV::BI__builtin_rvv_vmadd_vv_u8m8:
case RISCV::BI__builtin_rvv_vmadd_vv_u8mf2:
case RISCV::BI__builtin_rvv_vmadd_vv_u8mf4:
case RISCV::BI__builtin_rvv_vmadd_vv_u8mf8:
case RISCV::BI__builtin_rvv_vmadd_vv_u16m1:
case RISCV::BI__builtin_rvv_vmadd_vv_u16m2:
case RISCV::BI__builtin_rvv_vmadd_vv_u16m4:
case RISCV::BI__builtin_rvv_vmadd_vv_u16m8:
case RISCV::BI__builtin_rvv_vmadd_vv_u16mf2:
case RISCV::BI__builtin_rvv_vmadd_vv_u16mf4:
case RISCV::BI__builtin_rvv_vmadd_vv_u32m1:
case RISCV::BI__builtin_rvv_vmadd_vv_u32m2:
case RISCV::BI__builtin_rvv_vmadd_vv_u32m4:
case RISCV::BI__builtin_rvv_vmadd_vv_u32m8:
case RISCV::BI__builtin_rvv_vmadd_vv_u32mf2:
case RISCV::BI__builtin_rvv_vmadd_vv_u64m1:
case RISCV::BI__builtin_rvv_vmadd_vv_u64m2:
case RISCV::BI__builtin_rvv_vmadd_vv_u64m4:
case RISCV::BI__builtin_rvv_vmadd_vv_u64m8:
case RISCV::BI__builtin_rvv_vmadd_vx_u8m1:
case RISCV::BI__builtin_rvv_vmadd_vx_u8m2:
case RISCV::BI__builtin_rvv_vmadd_vx_u8m4:
case RISCV::BI__builtin_rvv_vmadd_vx_u8m8:
case RISCV::BI__builtin_rvv_vmadd_vx_u8mf2:
case RISCV::BI__builtin_rvv_vmadd_vx_u8mf4:
case RISCV::BI__builtin_rvv_vmadd_vx_u8mf8:
case RISCV::BI__builtin_rvv_vmadd_vx_u16m1:
case RISCV::BI__builtin_rvv_vmadd_vx_u16m2:
case RISCV::BI__builtin_rvv_vmadd_vx_u16m4:
case RISCV::BI__builtin_rvv_vmadd_vx_u16m8:
case RISCV::BI__builtin_rvv_vmadd_vx_u16mf2:
case RISCV::BI__builtin_rvv_vmadd_vx_u16mf4:
case RISCV::BI__builtin_rvv_vmadd_vx_u32m1:
case RISCV::BI__builtin_rvv_vmadd_vx_u32m2:
case RISCV::BI__builtin_rvv_vmadd_vx_u32m4:
case RISCV::BI__builtin_rvv_vmadd_vx_u32m8:
case RISCV::BI__builtin_rvv_vmadd_vx_u32mf2:
case RISCV::BI__builtin_rvv_vmadd_vx_u64m1:
case RISCV::BI__builtin_rvv_vmadd_vx_u64m2:
case RISCV::BI__builtin_rvv_vmadd_vx_u64m4:
case RISCV::BI__builtin_rvv_vmadd_vx_u64m8:
  ID = Intrinsic::riscv_vmadd;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmadd_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vmadd_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vmadd_vx_u64m8_m:
  ID = Intrinsic::riscv_vmadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmmv_m_b8:
case RISCV::BI__builtin_rvv_vmmv_m_b4:
case RISCV::BI__builtin_rvv_vmmv_m_b2:
case RISCV::BI__builtin_rvv_vmmv_m_b1:
case RISCV::BI__builtin_rvv_vmmv_m_b16:
case RISCV::BI__builtin_rvv_vmmv_m_b32:
case RISCV::BI__builtin_rvv_vmmv_m_b64:
  ID = Intrinsic::riscv_vmand;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1, Ops[0]);
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vmand_mm_b8:
case RISCV::BI__builtin_rvv_vmand_mm_b4:
case RISCV::BI__builtin_rvv_vmand_mm_b2:
case RISCV::BI__builtin_rvv_vmand_mm_b1:
case RISCV::BI__builtin_rvv_vmand_mm_b16:
case RISCV::BI__builtin_rvv_vmand_mm_b32:
case RISCV::BI__builtin_rvv_vmand_mm_b64:
  ID = Intrinsic::riscv_vmand;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmandnot_mm_b8:
case RISCV::BI__builtin_rvv_vmandnot_mm_b4:
case RISCV::BI__builtin_rvv_vmandnot_mm_b2:
case RISCV::BI__builtin_rvv_vmandnot_mm_b1:
case RISCV::BI__builtin_rvv_vmandnot_mm_b16:
case RISCV::BI__builtin_rvv_vmandnot_mm_b32:
case RISCV::BI__builtin_rvv_vmandnot_mm_b64:
  ID = Intrinsic::riscv_vmandnot;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmax_vv_i8m1:
case RISCV::BI__builtin_rvv_vmax_vv_i8m2:
case RISCV::BI__builtin_rvv_vmax_vv_i8m4:
case RISCV::BI__builtin_rvv_vmax_vv_i8m8:
case RISCV::BI__builtin_rvv_vmax_vv_i8mf2:
case RISCV::BI__builtin_rvv_vmax_vv_i8mf4:
case RISCV::BI__builtin_rvv_vmax_vv_i8mf8:
case RISCV::BI__builtin_rvv_vmax_vv_i16m1:
case RISCV::BI__builtin_rvv_vmax_vv_i16m2:
case RISCV::BI__builtin_rvv_vmax_vv_i16m4:
case RISCV::BI__builtin_rvv_vmax_vv_i16m8:
case RISCV::BI__builtin_rvv_vmax_vv_i16mf2:
case RISCV::BI__builtin_rvv_vmax_vv_i16mf4:
case RISCV::BI__builtin_rvv_vmax_vv_i32m1:
case RISCV::BI__builtin_rvv_vmax_vv_i32m2:
case RISCV::BI__builtin_rvv_vmax_vv_i32m4:
case RISCV::BI__builtin_rvv_vmax_vv_i32m8:
case RISCV::BI__builtin_rvv_vmax_vv_i32mf2:
case RISCV::BI__builtin_rvv_vmax_vv_i64m1:
case RISCV::BI__builtin_rvv_vmax_vv_i64m2:
case RISCV::BI__builtin_rvv_vmax_vv_i64m4:
case RISCV::BI__builtin_rvv_vmax_vv_i64m8:
case RISCV::BI__builtin_rvv_vmax_vx_i8m1:
case RISCV::BI__builtin_rvv_vmax_vx_i8m2:
case RISCV::BI__builtin_rvv_vmax_vx_i8m4:
case RISCV::BI__builtin_rvv_vmax_vx_i8m8:
case RISCV::BI__builtin_rvv_vmax_vx_i8mf2:
case RISCV::BI__builtin_rvv_vmax_vx_i8mf4:
case RISCV::BI__builtin_rvv_vmax_vx_i8mf8:
case RISCV::BI__builtin_rvv_vmax_vx_i16m1:
case RISCV::BI__builtin_rvv_vmax_vx_i16m2:
case RISCV::BI__builtin_rvv_vmax_vx_i16m4:
case RISCV::BI__builtin_rvv_vmax_vx_i16m8:
case RISCV::BI__builtin_rvv_vmax_vx_i16mf2:
case RISCV::BI__builtin_rvv_vmax_vx_i16mf4:
case RISCV::BI__builtin_rvv_vmax_vx_i32m1:
case RISCV::BI__builtin_rvv_vmax_vx_i32m2:
case RISCV::BI__builtin_rvv_vmax_vx_i32m4:
case RISCV::BI__builtin_rvv_vmax_vx_i32m8:
case RISCV::BI__builtin_rvv_vmax_vx_i32mf2:
case RISCV::BI__builtin_rvv_vmax_vx_i64m1:
case RISCV::BI__builtin_rvv_vmax_vx_i64m2:
case RISCV::BI__builtin_rvv_vmax_vx_i64m4:
case RISCV::BI__builtin_rvv_vmax_vx_i64m8:
  ID = Intrinsic::riscv_vmax;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmax_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vmax_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vmax_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vmax_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vmax_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vmax_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vmax_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vmax_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vmax_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vmax_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vmax_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vmax_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vmax_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vmax_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vmax_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vmax_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vmax_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vmax_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vmax_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vmax_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vmax_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vmax_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vmax_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vmax_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vmax_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vmax_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vmax_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vmax_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vmax_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vmax_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vmax_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vmax_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vmax_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vmax_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vmax_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vmax_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vmax_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vmax_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vmax_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vmax_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vmax_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vmax_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vmax_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vmax_vx_i64m8_m:
  ID = Intrinsic::riscv_vmax_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmaxu_vv_u8m1:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8m2:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8m4:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8m8:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16m1:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16m2:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16m4:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16m8:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32m1:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32m2:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32m4:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32m8:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vmaxu_vv_u64m1:
case RISCV::BI__builtin_rvv_vmaxu_vv_u64m2:
case RISCV::BI__builtin_rvv_vmaxu_vv_u64m4:
case RISCV::BI__builtin_rvv_vmaxu_vv_u64m8:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8m1:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8m2:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8m4:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8m8:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16m1:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16m2:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16m4:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16m8:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32m1:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32m2:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32m4:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32m8:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vmaxu_vx_u64m1:
case RISCV::BI__builtin_rvv_vmaxu_vx_u64m2:
case RISCV::BI__builtin_rvv_vmaxu_vx_u64m4:
case RISCV::BI__builtin_rvv_vmaxu_vx_u64m8:
  ID = Intrinsic::riscv_vmaxu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmaxu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vmaxu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vmaxu_vx_u64m8_m:
  ID = Intrinsic::riscv_vmaxu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmclr_m_b8:
case RISCV::BI__builtin_rvv_vmclr_m_b4:
case RISCV::BI__builtin_rvv_vmclr_m_b2:
case RISCV::BI__builtin_rvv_vmclr_m_b1:
case RISCV::BI__builtin_rvv_vmclr_m_b16:
case RISCV::BI__builtin_rvv_vmclr_m_b32:
case RISCV::BI__builtin_rvv_vmclr_m_b64:
  ID = Intrinsic::riscv_vmclr;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmerge_vvm_i8m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_i8m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_i8m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_i8m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_i8mf2:
case RISCV::BI__builtin_rvv_vmerge_vvm_i8mf4:
case RISCV::BI__builtin_rvv_vmerge_vvm_i8mf8:
case RISCV::BI__builtin_rvv_vmerge_vvm_i16m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_i16m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_i16m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_i16m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_i16mf2:
case RISCV::BI__builtin_rvv_vmerge_vvm_i16mf4:
case RISCV::BI__builtin_rvv_vmerge_vvm_i32m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_i32m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_i32m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_i32m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_i32mf2:
case RISCV::BI__builtin_rvv_vmerge_vvm_i64m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_i64m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_i64m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_i64m8:
case RISCV::BI__builtin_rvv_vmerge_vxm_i8m1:
case RISCV::BI__builtin_rvv_vmerge_vxm_i8m2:
case RISCV::BI__builtin_rvv_vmerge_vxm_i8m4:
case RISCV::BI__builtin_rvv_vmerge_vxm_i8m8:
case RISCV::BI__builtin_rvv_vmerge_vxm_i8mf2:
case RISCV::BI__builtin_rvv_vmerge_vxm_i8mf4:
case RISCV::BI__builtin_rvv_vmerge_vxm_i8mf8:
case RISCV::BI__builtin_rvv_vmerge_vxm_i16m1:
case RISCV::BI__builtin_rvv_vmerge_vxm_i16m2:
case RISCV::BI__builtin_rvv_vmerge_vxm_i16m4:
case RISCV::BI__builtin_rvv_vmerge_vxm_i16m8:
case RISCV::BI__builtin_rvv_vmerge_vxm_i16mf2:
case RISCV::BI__builtin_rvv_vmerge_vxm_i16mf4:
case RISCV::BI__builtin_rvv_vmerge_vxm_i32m1:
case RISCV::BI__builtin_rvv_vmerge_vxm_i32m2:
case RISCV::BI__builtin_rvv_vmerge_vxm_i32m4:
case RISCV::BI__builtin_rvv_vmerge_vxm_i32m8:
case RISCV::BI__builtin_rvv_vmerge_vxm_i32mf2:
case RISCV::BI__builtin_rvv_vmerge_vxm_i64m1:
case RISCV::BI__builtin_rvv_vmerge_vxm_i64m2:
case RISCV::BI__builtin_rvv_vmerge_vxm_i64m4:
case RISCV::BI__builtin_rvv_vmerge_vxm_i64m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_u8m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_u8m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_u8m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_u8m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_u8mf2:
case RISCV::BI__builtin_rvv_vmerge_vvm_u8mf4:
case RISCV::BI__builtin_rvv_vmerge_vvm_u8mf8:
case RISCV::BI__builtin_rvv_vmerge_vvm_u16m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_u16m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_u16m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_u16m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_u16mf2:
case RISCV::BI__builtin_rvv_vmerge_vvm_u16mf4:
case RISCV::BI__builtin_rvv_vmerge_vvm_u32m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_u32m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_u32m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_u32m8:
case RISCV::BI__builtin_rvv_vmerge_vvm_u32mf2:
case RISCV::BI__builtin_rvv_vmerge_vvm_u64m1:
case RISCV::BI__builtin_rvv_vmerge_vvm_u64m2:
case RISCV::BI__builtin_rvv_vmerge_vvm_u64m4:
case RISCV::BI__builtin_rvv_vmerge_vvm_u64m8:
case RISCV::BI__builtin_rvv_vmerge_vxm_u8m1:
case RISCV::BI__builtin_rvv_vmerge_vxm_u8m2:
case RISCV::BI__builtin_rvv_vmerge_vxm_u8m4:
case RISCV::BI__builtin_rvv_vmerge_vxm_u8m8:
case RISCV::BI__builtin_rvv_vmerge_vxm_u8mf2:
case RISCV::BI__builtin_rvv_vmerge_vxm_u8mf4:
case RISCV::BI__builtin_rvv_vmerge_vxm_u8mf8:
case RISCV::BI__builtin_rvv_vmerge_vxm_u16m1:
case RISCV::BI__builtin_rvv_vmerge_vxm_u16m2:
case RISCV::BI__builtin_rvv_vmerge_vxm_u16m4:
case RISCV::BI__builtin_rvv_vmerge_vxm_u16m8:
case RISCV::BI__builtin_rvv_vmerge_vxm_u16mf2:
case RISCV::BI__builtin_rvv_vmerge_vxm_u16mf4:
case RISCV::BI__builtin_rvv_vmerge_vxm_u32m1:
case RISCV::BI__builtin_rvv_vmerge_vxm_u32m2:
case RISCV::BI__builtin_rvv_vmerge_vxm_u32m4:
case RISCV::BI__builtin_rvv_vmerge_vxm_u32m8:
case RISCV::BI__builtin_rvv_vmerge_vxm_u32mf2:
case RISCV::BI__builtin_rvv_vmerge_vxm_u64m1:
case RISCV::BI__builtin_rvv_vmerge_vxm_u64m2:
case RISCV::BI__builtin_rvv_vmerge_vxm_u64m4:
case RISCV::BI__builtin_rvv_vmerge_vxm_u64m8:
  ID = Intrinsic::riscv_vmerge;

      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.begin() + 3);
      IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
    break;
case RISCV::BI__builtin_rvv_vmfeq_vv_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfeq_vv_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfeq_vv_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfeq_vv_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfeq_vv_f64m8_b8:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfeq_vf_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfeq_vf_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfeq_vf_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfeq_vf_f64m8_b8:
  ID = Intrinsic::riscv_vmfeq;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfeq_vv_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfeq_vv_f64m8_b8_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfeq_vf_f64m8_b8_m:
  ID = Intrinsic::riscv_vmfeq_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfge_vv_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfge_vv_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfge_vv_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfge_vv_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfge_vv_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfge_vv_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfge_vv_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfge_vv_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfge_vv_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfge_vv_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfge_vv_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfge_vv_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfge_vv_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfge_vv_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfge_vv_f64m8_b8:
case RISCV::BI__builtin_rvv_vmfge_vf_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfge_vf_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfge_vf_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfge_vf_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfge_vf_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfge_vf_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfge_vf_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfge_vf_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfge_vf_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfge_vf_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfge_vf_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfge_vf_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfge_vf_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfge_vf_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfge_vf_f64m8_b8:
  ID = Intrinsic::riscv_vmfge;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfge_vv_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfge_vv_f64m8_b8_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfge_vf_f64m8_b8_m:
  ID = Intrinsic::riscv_vmfge_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfgt_vv_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfgt_vv_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfgt_vv_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfgt_vv_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfgt_vv_f64m8_b8:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfgt_vf_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfgt_vf_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfgt_vf_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfgt_vf_f64m8_b8:
  ID = Intrinsic::riscv_vmfgt;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfgt_vv_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfgt_vv_f64m8_b8_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfgt_vf_f64m8_b8_m:
  ID = Intrinsic::riscv_vmfgt_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfle_vv_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfle_vv_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfle_vv_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfle_vv_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfle_vv_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfle_vv_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfle_vv_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfle_vv_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfle_vv_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfle_vv_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfle_vv_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfle_vv_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfle_vv_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfle_vv_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfle_vv_f64m8_b8:
case RISCV::BI__builtin_rvv_vmfle_vf_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfle_vf_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfle_vf_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfle_vf_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfle_vf_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfle_vf_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfle_vf_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfle_vf_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfle_vf_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfle_vf_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfle_vf_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfle_vf_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfle_vf_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfle_vf_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfle_vf_f64m8_b8:
  ID = Intrinsic::riscv_vmfle;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfle_vv_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfle_vv_f64m8_b8_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfle_vf_f64m8_b8_m:
  ID = Intrinsic::riscv_vmfle_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmflt_vv_f16m1_b16:
case RISCV::BI__builtin_rvv_vmflt_vv_f16m2_b8:
case RISCV::BI__builtin_rvv_vmflt_vv_f16m4_b4:
case RISCV::BI__builtin_rvv_vmflt_vv_f16m8_b2:
case RISCV::BI__builtin_rvv_vmflt_vv_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmflt_vv_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmflt_vv_f32m1_b32:
case RISCV::BI__builtin_rvv_vmflt_vv_f32m2_b16:
case RISCV::BI__builtin_rvv_vmflt_vv_f32m4_b8:
case RISCV::BI__builtin_rvv_vmflt_vv_f32m8_b4:
case RISCV::BI__builtin_rvv_vmflt_vv_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmflt_vv_f64m1_b64:
case RISCV::BI__builtin_rvv_vmflt_vv_f64m2_b32:
case RISCV::BI__builtin_rvv_vmflt_vv_f64m4_b16:
case RISCV::BI__builtin_rvv_vmflt_vv_f64m8_b8:
case RISCV::BI__builtin_rvv_vmflt_vf_f16m1_b16:
case RISCV::BI__builtin_rvv_vmflt_vf_f16m2_b8:
case RISCV::BI__builtin_rvv_vmflt_vf_f16m4_b4:
case RISCV::BI__builtin_rvv_vmflt_vf_f16m8_b2:
case RISCV::BI__builtin_rvv_vmflt_vf_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmflt_vf_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmflt_vf_f32m1_b32:
case RISCV::BI__builtin_rvv_vmflt_vf_f32m2_b16:
case RISCV::BI__builtin_rvv_vmflt_vf_f32m4_b8:
case RISCV::BI__builtin_rvv_vmflt_vf_f32m8_b4:
case RISCV::BI__builtin_rvv_vmflt_vf_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmflt_vf_f64m1_b64:
case RISCV::BI__builtin_rvv_vmflt_vf_f64m2_b32:
case RISCV::BI__builtin_rvv_vmflt_vf_f64m4_b16:
case RISCV::BI__builtin_rvv_vmflt_vf_f64m8_b8:
  ID = Intrinsic::riscv_vmflt;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmflt_vv_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmflt_vv_f64m8_b8_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmflt_vf_f64m8_b8_m:
  ID = Intrinsic::riscv_vmflt_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfne_vv_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfne_vv_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfne_vv_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfne_vv_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfne_vv_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfne_vv_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfne_vv_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfne_vv_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfne_vv_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfne_vv_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfne_vv_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfne_vv_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfne_vv_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfne_vv_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfne_vv_f64m8_b8:
case RISCV::BI__builtin_rvv_vmfne_vf_f16m1_b16:
case RISCV::BI__builtin_rvv_vmfne_vf_f16m2_b8:
case RISCV::BI__builtin_rvv_vmfne_vf_f16m4_b4:
case RISCV::BI__builtin_rvv_vmfne_vf_f16m8_b2:
case RISCV::BI__builtin_rvv_vmfne_vf_f16mf2_b32:
case RISCV::BI__builtin_rvv_vmfne_vf_f16mf4_b64:
case RISCV::BI__builtin_rvv_vmfne_vf_f32m1_b32:
case RISCV::BI__builtin_rvv_vmfne_vf_f32m2_b16:
case RISCV::BI__builtin_rvv_vmfne_vf_f32m4_b8:
case RISCV::BI__builtin_rvv_vmfne_vf_f32m8_b4:
case RISCV::BI__builtin_rvv_vmfne_vf_f32mf2_b64:
case RISCV::BI__builtin_rvv_vmfne_vf_f64m1_b64:
case RISCV::BI__builtin_rvv_vmfne_vf_f64m2_b32:
case RISCV::BI__builtin_rvv_vmfne_vf_f64m4_b16:
case RISCV::BI__builtin_rvv_vmfne_vf_f64m8_b8:
  ID = Intrinsic::riscv_vmfne;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmfne_vv_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfne_vv_f64m8_b8_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f16m1_b16_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f16m2_b8_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f16m4_b4_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f16m8_b2_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f32m1_b32_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f32m2_b16_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f32m4_b8_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f32m8_b4_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f64m1_b64_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f64m2_b32_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f64m4_b16_m:
case RISCV::BI__builtin_rvv_vmfne_vf_f64m8_b8_m:
  ID = Intrinsic::riscv_vmfne_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmin_vv_i8m1:
case RISCV::BI__builtin_rvv_vmin_vv_i8m2:
case RISCV::BI__builtin_rvv_vmin_vv_i8m4:
case RISCV::BI__builtin_rvv_vmin_vv_i8m8:
case RISCV::BI__builtin_rvv_vmin_vv_i8mf2:
case RISCV::BI__builtin_rvv_vmin_vv_i8mf4:
case RISCV::BI__builtin_rvv_vmin_vv_i8mf8:
case RISCV::BI__builtin_rvv_vmin_vv_i16m1:
case RISCV::BI__builtin_rvv_vmin_vv_i16m2:
case RISCV::BI__builtin_rvv_vmin_vv_i16m4:
case RISCV::BI__builtin_rvv_vmin_vv_i16m8:
case RISCV::BI__builtin_rvv_vmin_vv_i16mf2:
case RISCV::BI__builtin_rvv_vmin_vv_i16mf4:
case RISCV::BI__builtin_rvv_vmin_vv_i32m1:
case RISCV::BI__builtin_rvv_vmin_vv_i32m2:
case RISCV::BI__builtin_rvv_vmin_vv_i32m4:
case RISCV::BI__builtin_rvv_vmin_vv_i32m8:
case RISCV::BI__builtin_rvv_vmin_vv_i32mf2:
case RISCV::BI__builtin_rvv_vmin_vv_i64m1:
case RISCV::BI__builtin_rvv_vmin_vv_i64m2:
case RISCV::BI__builtin_rvv_vmin_vv_i64m4:
case RISCV::BI__builtin_rvv_vmin_vv_i64m8:
case RISCV::BI__builtin_rvv_vmin_vx_i8m1:
case RISCV::BI__builtin_rvv_vmin_vx_i8m2:
case RISCV::BI__builtin_rvv_vmin_vx_i8m4:
case RISCV::BI__builtin_rvv_vmin_vx_i8m8:
case RISCV::BI__builtin_rvv_vmin_vx_i8mf2:
case RISCV::BI__builtin_rvv_vmin_vx_i8mf4:
case RISCV::BI__builtin_rvv_vmin_vx_i8mf8:
case RISCV::BI__builtin_rvv_vmin_vx_i16m1:
case RISCV::BI__builtin_rvv_vmin_vx_i16m2:
case RISCV::BI__builtin_rvv_vmin_vx_i16m4:
case RISCV::BI__builtin_rvv_vmin_vx_i16m8:
case RISCV::BI__builtin_rvv_vmin_vx_i16mf2:
case RISCV::BI__builtin_rvv_vmin_vx_i16mf4:
case RISCV::BI__builtin_rvv_vmin_vx_i32m1:
case RISCV::BI__builtin_rvv_vmin_vx_i32m2:
case RISCV::BI__builtin_rvv_vmin_vx_i32m4:
case RISCV::BI__builtin_rvv_vmin_vx_i32m8:
case RISCV::BI__builtin_rvv_vmin_vx_i32mf2:
case RISCV::BI__builtin_rvv_vmin_vx_i64m1:
case RISCV::BI__builtin_rvv_vmin_vx_i64m2:
case RISCV::BI__builtin_rvv_vmin_vx_i64m4:
case RISCV::BI__builtin_rvv_vmin_vx_i64m8:
  ID = Intrinsic::riscv_vmin;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmin_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vmin_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vmin_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vmin_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vmin_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vmin_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vmin_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vmin_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vmin_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vmin_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vmin_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vmin_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vmin_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vmin_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vmin_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vmin_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vmin_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vmin_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vmin_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vmin_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vmin_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vmin_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vmin_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vmin_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vmin_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vmin_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vmin_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vmin_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vmin_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vmin_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vmin_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vmin_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vmin_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vmin_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vmin_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vmin_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vmin_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vmin_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vmin_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vmin_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vmin_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vmin_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vmin_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vmin_vx_i64m8_m:
  ID = Intrinsic::riscv_vmin_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vminu_vv_u8m1:
case RISCV::BI__builtin_rvv_vminu_vv_u8m2:
case RISCV::BI__builtin_rvv_vminu_vv_u8m4:
case RISCV::BI__builtin_rvv_vminu_vv_u8m8:
case RISCV::BI__builtin_rvv_vminu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vminu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vminu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vminu_vv_u16m1:
case RISCV::BI__builtin_rvv_vminu_vv_u16m2:
case RISCV::BI__builtin_rvv_vminu_vv_u16m4:
case RISCV::BI__builtin_rvv_vminu_vv_u16m8:
case RISCV::BI__builtin_rvv_vminu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vminu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vminu_vv_u32m1:
case RISCV::BI__builtin_rvv_vminu_vv_u32m2:
case RISCV::BI__builtin_rvv_vminu_vv_u32m4:
case RISCV::BI__builtin_rvv_vminu_vv_u32m8:
case RISCV::BI__builtin_rvv_vminu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vminu_vv_u64m1:
case RISCV::BI__builtin_rvv_vminu_vv_u64m2:
case RISCV::BI__builtin_rvv_vminu_vv_u64m4:
case RISCV::BI__builtin_rvv_vminu_vv_u64m8:
case RISCV::BI__builtin_rvv_vminu_vx_u8m1:
case RISCV::BI__builtin_rvv_vminu_vx_u8m2:
case RISCV::BI__builtin_rvv_vminu_vx_u8m4:
case RISCV::BI__builtin_rvv_vminu_vx_u8m8:
case RISCV::BI__builtin_rvv_vminu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vminu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vminu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vminu_vx_u16m1:
case RISCV::BI__builtin_rvv_vminu_vx_u16m2:
case RISCV::BI__builtin_rvv_vminu_vx_u16m4:
case RISCV::BI__builtin_rvv_vminu_vx_u16m8:
case RISCV::BI__builtin_rvv_vminu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vminu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vminu_vx_u32m1:
case RISCV::BI__builtin_rvv_vminu_vx_u32m2:
case RISCV::BI__builtin_rvv_vminu_vx_u32m4:
case RISCV::BI__builtin_rvv_vminu_vx_u32m8:
case RISCV::BI__builtin_rvv_vminu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vminu_vx_u64m1:
case RISCV::BI__builtin_rvv_vminu_vx_u64m2:
case RISCV::BI__builtin_rvv_vminu_vx_u64m4:
case RISCV::BI__builtin_rvv_vminu_vx_u64m8:
  ID = Intrinsic::riscv_vminu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vminu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vminu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vminu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vminu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vminu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vminu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vminu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vminu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vminu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vminu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vminu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vminu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vminu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vminu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vminu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vminu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vminu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vminu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vminu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vminu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vminu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vminu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vminu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vminu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vminu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vminu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vminu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vminu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vminu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vminu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vminu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vminu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vminu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vminu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vminu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vminu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vminu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vminu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vminu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vminu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vminu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vminu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vminu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vminu_vx_u64m8_m:
  ID = Intrinsic::riscv_vminu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmnot_m_b8:
case RISCV::BI__builtin_rvv_vmnot_m_b4:
case RISCV::BI__builtin_rvv_vmnot_m_b2:
case RISCV::BI__builtin_rvv_vmnot_m_b1:
case RISCV::BI__builtin_rvv_vmnot_m_b16:
case RISCV::BI__builtin_rvv_vmnot_m_b32:
case RISCV::BI__builtin_rvv_vmnot_m_b64:
  ID = Intrinsic::riscv_vmnand;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1, Ops[0]);
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vmnand_mm_b8:
case RISCV::BI__builtin_rvv_vmnand_mm_b4:
case RISCV::BI__builtin_rvv_vmnand_mm_b2:
case RISCV::BI__builtin_rvv_vmnand_mm_b1:
case RISCV::BI__builtin_rvv_vmnand_mm_b16:
case RISCV::BI__builtin_rvv_vmnand_mm_b32:
case RISCV::BI__builtin_rvv_vmnand_mm_b64:
  ID = Intrinsic::riscv_vmnand;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmnor_mm_b8:
case RISCV::BI__builtin_rvv_vmnor_mm_b4:
case RISCV::BI__builtin_rvv_vmnor_mm_b2:
case RISCV::BI__builtin_rvv_vmnor_mm_b1:
case RISCV::BI__builtin_rvv_vmnor_mm_b16:
case RISCV::BI__builtin_rvv_vmnor_mm_b32:
case RISCV::BI__builtin_rvv_vmnor_mm_b64:
  ID = Intrinsic::riscv_vmnor;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmor_mm_b8:
case RISCV::BI__builtin_rvv_vmor_mm_b4:
case RISCV::BI__builtin_rvv_vmor_mm_b2:
case RISCV::BI__builtin_rvv_vmor_mm_b1:
case RISCV::BI__builtin_rvv_vmor_mm_b16:
case RISCV::BI__builtin_rvv_vmor_mm_b32:
case RISCV::BI__builtin_rvv_vmor_mm_b64:
  ID = Intrinsic::riscv_vmor;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmornot_mm_b8:
case RISCV::BI__builtin_rvv_vmornot_mm_b4:
case RISCV::BI__builtin_rvv_vmornot_mm_b2:
case RISCV::BI__builtin_rvv_vmornot_mm_b1:
case RISCV::BI__builtin_rvv_vmornot_mm_b16:
case RISCV::BI__builtin_rvv_vmornot_mm_b32:
case RISCV::BI__builtin_rvv_vmornot_mm_b64:
  ID = Intrinsic::riscv_vmornot;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsbc_vv_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsbc_vv_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsbc_vv_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsbc_vv_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsbc_vv_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vv_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsbc_vv_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsbc_vv_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsbc_vv_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsbc_vv_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsbc_vv_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsbc_vv_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vv_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsbc_vv_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsbc_vv_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vv_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsbc_vv_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsbc_vv_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsbc_vv_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsbc_vv_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vv_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsbc_vv_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsbc_vx_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsbc_vx_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsbc_vx_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsbc_vx_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsbc_vx_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vx_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsbc_vx_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsbc_vx_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsbc_vx_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsbc_vx_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsbc_vx_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsbc_vx_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vx_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsbc_vx_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsbc_vx_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vx_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsbc_vx_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsbc_vx_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsbc_vx_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsbc_vx_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vx_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsbc_vx_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsbc_vv_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsbc_vv_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsbc_vv_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsbc_vv_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsbc_vv_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vv_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsbc_vv_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsbc_vv_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsbc_vv_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsbc_vv_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsbc_vv_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsbc_vv_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vv_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsbc_vv_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsbc_vv_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vv_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsbc_vv_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsbc_vv_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsbc_vv_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsbc_vv_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vv_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsbc_vv_u64m8_b8:
case RISCV::BI__builtin_rvv_vmsbc_vx_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsbc_vx_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsbc_vx_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsbc_vx_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsbc_vx_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vx_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsbc_vx_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsbc_vx_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsbc_vx_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsbc_vx_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsbc_vx_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsbc_vx_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vx_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsbc_vx_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsbc_vx_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vx_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsbc_vx_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsbc_vx_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsbc_vx_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsbc_vx_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vx_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsbc_vx_u64m8_b8:
  ID = Intrinsic::riscv_vmsbc;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsbc_vvm_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsbc_vvm_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsbc_vxm_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsbc_vvm_u64m8_b8:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsbc_vxm_u64m8_b8:
  ID = Intrinsic::riscv_vmsbc_borrow_in;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsbf_m_b8:
case RISCV::BI__builtin_rvv_vmsbf_m_b4:
case RISCV::BI__builtin_rvv_vmsbf_m_b2:
case RISCV::BI__builtin_rvv_vmsbf_m_b1:
case RISCV::BI__builtin_rvv_vmsbf_m_b16:
case RISCV::BI__builtin_rvv_vmsbf_m_b32:
case RISCV::BI__builtin_rvv_vmsbf_m_b64:
  ID = Intrinsic::riscv_vmsbf;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsbf_m_b8_m:
case RISCV::BI__builtin_rvv_vmsbf_m_b4_m:
case RISCV::BI__builtin_rvv_vmsbf_m_b2_m:
case RISCV::BI__builtin_rvv_vmsbf_m_b1_m:
case RISCV::BI__builtin_rvv_vmsbf_m_b16_m:
case RISCV::BI__builtin_rvv_vmsbf_m_b32_m:
case RISCV::BI__builtin_rvv_vmsbf_m_b64_m:
  ID = Intrinsic::riscv_vmsbf_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmseq_vv_i8m1_b8:
case RISCV::BI__builtin_rvv_vmseq_vv_i8m2_b4:
case RISCV::BI__builtin_rvv_vmseq_vv_i8m4_b2:
case RISCV::BI__builtin_rvv_vmseq_vv_i8m8_b1:
case RISCV::BI__builtin_rvv_vmseq_vv_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmseq_vv_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmseq_vv_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmseq_vv_i16m1_b16:
case RISCV::BI__builtin_rvv_vmseq_vv_i16m2_b8:
case RISCV::BI__builtin_rvv_vmseq_vv_i16m4_b4:
case RISCV::BI__builtin_rvv_vmseq_vv_i16m8_b2:
case RISCV::BI__builtin_rvv_vmseq_vv_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmseq_vv_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmseq_vv_i32m1_b32:
case RISCV::BI__builtin_rvv_vmseq_vv_i32m2_b16:
case RISCV::BI__builtin_rvv_vmseq_vv_i32m4_b8:
case RISCV::BI__builtin_rvv_vmseq_vv_i32m8_b4:
case RISCV::BI__builtin_rvv_vmseq_vv_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmseq_vv_i64m1_b64:
case RISCV::BI__builtin_rvv_vmseq_vv_i64m2_b32:
case RISCV::BI__builtin_rvv_vmseq_vv_i64m4_b16:
case RISCV::BI__builtin_rvv_vmseq_vv_i64m8_b8:
case RISCV::BI__builtin_rvv_vmseq_vx_i8m1_b8:
case RISCV::BI__builtin_rvv_vmseq_vx_i8m2_b4:
case RISCV::BI__builtin_rvv_vmseq_vx_i8m4_b2:
case RISCV::BI__builtin_rvv_vmseq_vx_i8m8_b1:
case RISCV::BI__builtin_rvv_vmseq_vx_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmseq_vx_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmseq_vx_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmseq_vx_i16m1_b16:
case RISCV::BI__builtin_rvv_vmseq_vx_i16m2_b8:
case RISCV::BI__builtin_rvv_vmseq_vx_i16m4_b4:
case RISCV::BI__builtin_rvv_vmseq_vx_i16m8_b2:
case RISCV::BI__builtin_rvv_vmseq_vx_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmseq_vx_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmseq_vx_i32m1_b32:
case RISCV::BI__builtin_rvv_vmseq_vx_i32m2_b16:
case RISCV::BI__builtin_rvv_vmseq_vx_i32m4_b8:
case RISCV::BI__builtin_rvv_vmseq_vx_i32m8_b4:
case RISCV::BI__builtin_rvv_vmseq_vx_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmseq_vx_i64m1_b64:
case RISCV::BI__builtin_rvv_vmseq_vx_i64m2_b32:
case RISCV::BI__builtin_rvv_vmseq_vx_i64m4_b16:
case RISCV::BI__builtin_rvv_vmseq_vx_i64m8_b8:
case RISCV::BI__builtin_rvv_vmseq_vv_u8m1_b8:
case RISCV::BI__builtin_rvv_vmseq_vv_u8m2_b4:
case RISCV::BI__builtin_rvv_vmseq_vv_u8m4_b2:
case RISCV::BI__builtin_rvv_vmseq_vv_u8m8_b1:
case RISCV::BI__builtin_rvv_vmseq_vv_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmseq_vv_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmseq_vv_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmseq_vv_u16m1_b16:
case RISCV::BI__builtin_rvv_vmseq_vv_u16m2_b8:
case RISCV::BI__builtin_rvv_vmseq_vv_u16m4_b4:
case RISCV::BI__builtin_rvv_vmseq_vv_u16m8_b2:
case RISCV::BI__builtin_rvv_vmseq_vv_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmseq_vv_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmseq_vv_u32m1_b32:
case RISCV::BI__builtin_rvv_vmseq_vv_u32m2_b16:
case RISCV::BI__builtin_rvv_vmseq_vv_u32m4_b8:
case RISCV::BI__builtin_rvv_vmseq_vv_u32m8_b4:
case RISCV::BI__builtin_rvv_vmseq_vv_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmseq_vv_u64m1_b64:
case RISCV::BI__builtin_rvv_vmseq_vv_u64m2_b32:
case RISCV::BI__builtin_rvv_vmseq_vv_u64m4_b16:
case RISCV::BI__builtin_rvv_vmseq_vv_u64m8_b8:
case RISCV::BI__builtin_rvv_vmseq_vx_u8m1_b8:
case RISCV::BI__builtin_rvv_vmseq_vx_u8m2_b4:
case RISCV::BI__builtin_rvv_vmseq_vx_u8m4_b2:
case RISCV::BI__builtin_rvv_vmseq_vx_u8m8_b1:
case RISCV::BI__builtin_rvv_vmseq_vx_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmseq_vx_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmseq_vx_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmseq_vx_u16m1_b16:
case RISCV::BI__builtin_rvv_vmseq_vx_u16m2_b8:
case RISCV::BI__builtin_rvv_vmseq_vx_u16m4_b4:
case RISCV::BI__builtin_rvv_vmseq_vx_u16m8_b2:
case RISCV::BI__builtin_rvv_vmseq_vx_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmseq_vx_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmseq_vx_u32m1_b32:
case RISCV::BI__builtin_rvv_vmseq_vx_u32m2_b16:
case RISCV::BI__builtin_rvv_vmseq_vx_u32m4_b8:
case RISCV::BI__builtin_rvv_vmseq_vx_u32m8_b4:
case RISCV::BI__builtin_rvv_vmseq_vx_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmseq_vx_u64m1_b64:
case RISCV::BI__builtin_rvv_vmseq_vx_u64m2_b32:
case RISCV::BI__builtin_rvv_vmseq_vx_u64m4_b16:
case RISCV::BI__builtin_rvv_vmseq_vx_u64m8_b8:
  ID = Intrinsic::riscv_vmseq;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmseq_vv_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vv_i64m8_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vx_i64m8_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vv_u64m8_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmseq_vx_u64m8_b8_m:
  ID = Intrinsic::riscv_vmseq_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmset_m_b8:
case RISCV::BI__builtin_rvv_vmset_m_b4:
case RISCV::BI__builtin_rvv_vmset_m_b2:
case RISCV::BI__builtin_rvv_vmset_m_b1:
case RISCV::BI__builtin_rvv_vmset_m_b16:
case RISCV::BI__builtin_rvv_vmset_m_b32:
case RISCV::BI__builtin_rvv_vmset_m_b64:
  ID = Intrinsic::riscv_vmset;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsge_vv_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsge_vv_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsge_vv_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsge_vv_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsge_vv_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsge_vv_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsge_vv_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsge_vv_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsge_vv_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsge_vv_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsge_vv_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsge_vv_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsge_vv_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsge_vv_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsge_vv_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsge_vv_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsge_vv_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsge_vv_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsge_vv_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsge_vv_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsge_vv_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsge_vv_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsge_vx_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsge_vx_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsge_vx_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsge_vx_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsge_vx_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsge_vx_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsge_vx_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsge_vx_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsge_vx_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsge_vx_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsge_vx_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsge_vx_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsge_vx_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsge_vx_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsge_vx_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsge_vx_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsge_vx_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsge_vx_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsge_vx_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsge_vx_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsge_vx_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsge_vx_i64m8_b8:
  ID = Intrinsic::riscv_vmsge;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsge_vv_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsge_vv_i64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsge_vx_i64m8_b8_m:
  ID = Intrinsic::riscv_vmsge_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u64m8_b8:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u64m8_b8:
  ID = Intrinsic::riscv_vmsgeu;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsgeu_vv_u64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsgeu_vx_u64m8_b8_m:
  ID = Intrinsic::riscv_vmsgeu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsgt_vv_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsgt_vv_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsgt_vv_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsgt_vv_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsgt_vv_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsgt_vx_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsgt_vx_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsgt_vx_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsgt_vx_i64m8_b8:
  ID = Intrinsic::riscv_vmsgt;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsgt_vv_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsgt_vv_i64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsgt_vx_i64m8_b8_m:
  ID = Intrinsic::riscv_vmsgt_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u64m8_b8:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u64m8_b8:
  ID = Intrinsic::riscv_vmsgtu;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsgtu_vv_u64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsgtu_vx_u64m8_b8_m:
  ID = Intrinsic::riscv_vmsgtu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsif_m_b8:
case RISCV::BI__builtin_rvv_vmsif_m_b4:
case RISCV::BI__builtin_rvv_vmsif_m_b2:
case RISCV::BI__builtin_rvv_vmsif_m_b1:
case RISCV::BI__builtin_rvv_vmsif_m_b16:
case RISCV::BI__builtin_rvv_vmsif_m_b32:
case RISCV::BI__builtin_rvv_vmsif_m_b64:
  ID = Intrinsic::riscv_vmsif;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsif_m_b8_m:
case RISCV::BI__builtin_rvv_vmsif_m_b4_m:
case RISCV::BI__builtin_rvv_vmsif_m_b2_m:
case RISCV::BI__builtin_rvv_vmsif_m_b1_m:
case RISCV::BI__builtin_rvv_vmsif_m_b16_m:
case RISCV::BI__builtin_rvv_vmsif_m_b32_m:
case RISCV::BI__builtin_rvv_vmsif_m_b64_m:
  ID = Intrinsic::riscv_vmsif_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsle_vv_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsle_vv_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsle_vv_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsle_vv_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsle_vv_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsle_vv_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsle_vv_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsle_vv_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsle_vv_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsle_vv_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsle_vv_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsle_vv_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsle_vv_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsle_vv_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsle_vv_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsle_vv_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsle_vv_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsle_vv_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsle_vv_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsle_vv_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsle_vv_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsle_vv_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsle_vx_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsle_vx_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsle_vx_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsle_vx_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsle_vx_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsle_vx_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsle_vx_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsle_vx_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsle_vx_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsle_vx_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsle_vx_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsle_vx_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsle_vx_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsle_vx_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsle_vx_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsle_vx_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsle_vx_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsle_vx_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsle_vx_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsle_vx_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsle_vx_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsle_vx_i64m8_b8:
  ID = Intrinsic::riscv_vmsle;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsle_vv_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsle_vv_i64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsle_vx_i64m8_b8_m:
  ID = Intrinsic::riscv_vmsle_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsleu_vv_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsleu_vv_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsleu_vv_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsleu_vv_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsleu_vv_u64m8_b8:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsleu_vx_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsleu_vx_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsleu_vx_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsleu_vx_u64m8_b8:
  ID = Intrinsic::riscv_vmsleu;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsleu_vv_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsleu_vv_u64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsleu_vx_u64m8_b8_m:
  ID = Intrinsic::riscv_vmsleu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmslt_vv_i8m1_b8:
case RISCV::BI__builtin_rvv_vmslt_vv_i8m2_b4:
case RISCV::BI__builtin_rvv_vmslt_vv_i8m4_b2:
case RISCV::BI__builtin_rvv_vmslt_vv_i8m8_b1:
case RISCV::BI__builtin_rvv_vmslt_vv_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmslt_vv_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmslt_vv_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmslt_vv_i16m1_b16:
case RISCV::BI__builtin_rvv_vmslt_vv_i16m2_b8:
case RISCV::BI__builtin_rvv_vmslt_vv_i16m4_b4:
case RISCV::BI__builtin_rvv_vmslt_vv_i16m8_b2:
case RISCV::BI__builtin_rvv_vmslt_vv_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmslt_vv_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmslt_vv_i32m1_b32:
case RISCV::BI__builtin_rvv_vmslt_vv_i32m2_b16:
case RISCV::BI__builtin_rvv_vmslt_vv_i32m4_b8:
case RISCV::BI__builtin_rvv_vmslt_vv_i32m8_b4:
case RISCV::BI__builtin_rvv_vmslt_vv_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmslt_vv_i64m1_b64:
case RISCV::BI__builtin_rvv_vmslt_vv_i64m2_b32:
case RISCV::BI__builtin_rvv_vmslt_vv_i64m4_b16:
case RISCV::BI__builtin_rvv_vmslt_vv_i64m8_b8:
case RISCV::BI__builtin_rvv_vmslt_vx_i8m1_b8:
case RISCV::BI__builtin_rvv_vmslt_vx_i8m2_b4:
case RISCV::BI__builtin_rvv_vmslt_vx_i8m4_b2:
case RISCV::BI__builtin_rvv_vmslt_vx_i8m8_b1:
case RISCV::BI__builtin_rvv_vmslt_vx_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmslt_vx_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmslt_vx_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmslt_vx_i16m1_b16:
case RISCV::BI__builtin_rvv_vmslt_vx_i16m2_b8:
case RISCV::BI__builtin_rvv_vmslt_vx_i16m4_b4:
case RISCV::BI__builtin_rvv_vmslt_vx_i16m8_b2:
case RISCV::BI__builtin_rvv_vmslt_vx_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmslt_vx_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmslt_vx_i32m1_b32:
case RISCV::BI__builtin_rvv_vmslt_vx_i32m2_b16:
case RISCV::BI__builtin_rvv_vmslt_vx_i32m4_b8:
case RISCV::BI__builtin_rvv_vmslt_vx_i32m8_b4:
case RISCV::BI__builtin_rvv_vmslt_vx_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmslt_vx_i64m1_b64:
case RISCV::BI__builtin_rvv_vmslt_vx_i64m2_b32:
case RISCV::BI__builtin_rvv_vmslt_vx_i64m4_b16:
case RISCV::BI__builtin_rvv_vmslt_vx_i64m8_b8:
  ID = Intrinsic::riscv_vmslt;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmslt_vv_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmslt_vv_i64m8_b8_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmslt_vx_i64m8_b8_m:
  ID = Intrinsic::riscv_vmslt_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsltu_vv_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsltu_vv_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsltu_vv_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsltu_vv_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsltu_vv_u64m8_b8:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsltu_vx_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsltu_vx_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsltu_vx_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsltu_vx_u64m8_b8:
  ID = Intrinsic::riscv_vmsltu;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsltu_vv_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsltu_vv_u64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsltu_vx_u64m8_b8_m:
  ID = Intrinsic::riscv_vmsltu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsne_vv_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsne_vv_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsne_vv_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsne_vv_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsne_vv_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsne_vv_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsne_vv_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsne_vv_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsne_vv_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsne_vv_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsne_vv_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsne_vv_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsne_vv_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsne_vv_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsne_vv_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsne_vv_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsne_vv_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsne_vv_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsne_vv_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsne_vv_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsne_vv_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsne_vv_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsne_vx_i8m1_b8:
case RISCV::BI__builtin_rvv_vmsne_vx_i8m2_b4:
case RISCV::BI__builtin_rvv_vmsne_vx_i8m4_b2:
case RISCV::BI__builtin_rvv_vmsne_vx_i8m8_b1:
case RISCV::BI__builtin_rvv_vmsne_vx_i8mf2_b16:
case RISCV::BI__builtin_rvv_vmsne_vx_i8mf4_b32:
case RISCV::BI__builtin_rvv_vmsne_vx_i8mf8_b64:
case RISCV::BI__builtin_rvv_vmsne_vx_i16m1_b16:
case RISCV::BI__builtin_rvv_vmsne_vx_i16m2_b8:
case RISCV::BI__builtin_rvv_vmsne_vx_i16m4_b4:
case RISCV::BI__builtin_rvv_vmsne_vx_i16m8_b2:
case RISCV::BI__builtin_rvv_vmsne_vx_i16mf2_b32:
case RISCV::BI__builtin_rvv_vmsne_vx_i16mf4_b64:
case RISCV::BI__builtin_rvv_vmsne_vx_i32m1_b32:
case RISCV::BI__builtin_rvv_vmsne_vx_i32m2_b16:
case RISCV::BI__builtin_rvv_vmsne_vx_i32m4_b8:
case RISCV::BI__builtin_rvv_vmsne_vx_i32m8_b4:
case RISCV::BI__builtin_rvv_vmsne_vx_i32mf2_b64:
case RISCV::BI__builtin_rvv_vmsne_vx_i64m1_b64:
case RISCV::BI__builtin_rvv_vmsne_vx_i64m2_b32:
case RISCV::BI__builtin_rvv_vmsne_vx_i64m4_b16:
case RISCV::BI__builtin_rvv_vmsne_vx_i64m8_b8:
case RISCV::BI__builtin_rvv_vmsne_vv_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsne_vv_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsne_vv_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsne_vv_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsne_vv_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsne_vv_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsne_vv_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsne_vv_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsne_vv_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsne_vv_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsne_vv_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsne_vv_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsne_vv_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsne_vv_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsne_vv_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsne_vv_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsne_vv_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsne_vv_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsne_vv_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsne_vv_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsne_vv_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsne_vv_u64m8_b8:
case RISCV::BI__builtin_rvv_vmsne_vx_u8m1_b8:
case RISCV::BI__builtin_rvv_vmsne_vx_u8m2_b4:
case RISCV::BI__builtin_rvv_vmsne_vx_u8m4_b2:
case RISCV::BI__builtin_rvv_vmsne_vx_u8m8_b1:
case RISCV::BI__builtin_rvv_vmsne_vx_u8mf2_b16:
case RISCV::BI__builtin_rvv_vmsne_vx_u8mf4_b32:
case RISCV::BI__builtin_rvv_vmsne_vx_u8mf8_b64:
case RISCV::BI__builtin_rvv_vmsne_vx_u16m1_b16:
case RISCV::BI__builtin_rvv_vmsne_vx_u16m2_b8:
case RISCV::BI__builtin_rvv_vmsne_vx_u16m4_b4:
case RISCV::BI__builtin_rvv_vmsne_vx_u16m8_b2:
case RISCV::BI__builtin_rvv_vmsne_vx_u16mf2_b32:
case RISCV::BI__builtin_rvv_vmsne_vx_u16mf4_b64:
case RISCV::BI__builtin_rvv_vmsne_vx_u32m1_b32:
case RISCV::BI__builtin_rvv_vmsne_vx_u32m2_b16:
case RISCV::BI__builtin_rvv_vmsne_vx_u32m4_b8:
case RISCV::BI__builtin_rvv_vmsne_vx_u32m8_b4:
case RISCV::BI__builtin_rvv_vmsne_vx_u32mf2_b64:
case RISCV::BI__builtin_rvv_vmsne_vx_u64m1_b64:
case RISCV::BI__builtin_rvv_vmsne_vx_u64m2_b32:
case RISCV::BI__builtin_rvv_vmsne_vx_u64m4_b16:
case RISCV::BI__builtin_rvv_vmsne_vx_u64m8_b8:
  ID = Intrinsic::riscv_vmsne;
  IntrinsicTypes = {Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsne_vv_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vv_i64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vx_i64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vv_u64m8_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u8m1_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u8m2_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u8m4_b2_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u8m8_b1_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u8mf2_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u8mf4_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u8mf8_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u16m1_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u16m2_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u16m4_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u16m8_b2_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u16mf2_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u16mf4_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u32m1_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u32m2_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u32m4_b8_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u32m8_b4_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u32mf2_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u64m1_b64_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u64m2_b32_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u64m4_b16_m:
case RISCV::BI__builtin_rvv_vmsne_vx_u64m8_b8_m:
  ID = Intrinsic::riscv_vmsne_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsof_m_b8:
case RISCV::BI__builtin_rvv_vmsof_m_b4:
case RISCV::BI__builtin_rvv_vmsof_m_b2:
case RISCV::BI__builtin_rvv_vmsof_m_b1:
case RISCV::BI__builtin_rvv_vmsof_m_b16:
case RISCV::BI__builtin_rvv_vmsof_m_b32:
case RISCV::BI__builtin_rvv_vmsof_m_b64:
  ID = Intrinsic::riscv_vmsof;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmsof_m_b8_m:
case RISCV::BI__builtin_rvv_vmsof_m_b4_m:
case RISCV::BI__builtin_rvv_vmsof_m_b2_m:
case RISCV::BI__builtin_rvv_vmsof_m_b1_m:
case RISCV::BI__builtin_rvv_vmsof_m_b16_m:
case RISCV::BI__builtin_rvv_vmsof_m_b32_m:
case RISCV::BI__builtin_rvv_vmsof_m_b64_m:
  ID = Intrinsic::riscv_vmsof_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmul_vv_i8m1:
case RISCV::BI__builtin_rvv_vmul_vv_i8m2:
case RISCV::BI__builtin_rvv_vmul_vv_i8m4:
case RISCV::BI__builtin_rvv_vmul_vv_i8m8:
case RISCV::BI__builtin_rvv_vmul_vv_i8mf2:
case RISCV::BI__builtin_rvv_vmul_vv_i8mf4:
case RISCV::BI__builtin_rvv_vmul_vv_i8mf8:
case RISCV::BI__builtin_rvv_vmul_vv_i16m1:
case RISCV::BI__builtin_rvv_vmul_vv_i16m2:
case RISCV::BI__builtin_rvv_vmul_vv_i16m4:
case RISCV::BI__builtin_rvv_vmul_vv_i16m8:
case RISCV::BI__builtin_rvv_vmul_vv_i16mf2:
case RISCV::BI__builtin_rvv_vmul_vv_i16mf4:
case RISCV::BI__builtin_rvv_vmul_vv_i32m1:
case RISCV::BI__builtin_rvv_vmul_vv_i32m2:
case RISCV::BI__builtin_rvv_vmul_vv_i32m4:
case RISCV::BI__builtin_rvv_vmul_vv_i32m8:
case RISCV::BI__builtin_rvv_vmul_vv_i32mf2:
case RISCV::BI__builtin_rvv_vmul_vv_i64m1:
case RISCV::BI__builtin_rvv_vmul_vv_i64m2:
case RISCV::BI__builtin_rvv_vmul_vv_i64m4:
case RISCV::BI__builtin_rvv_vmul_vv_i64m8:
case RISCV::BI__builtin_rvv_vmul_vx_i8m1:
case RISCV::BI__builtin_rvv_vmul_vx_i8m2:
case RISCV::BI__builtin_rvv_vmul_vx_i8m4:
case RISCV::BI__builtin_rvv_vmul_vx_i8m8:
case RISCV::BI__builtin_rvv_vmul_vx_i8mf2:
case RISCV::BI__builtin_rvv_vmul_vx_i8mf4:
case RISCV::BI__builtin_rvv_vmul_vx_i8mf8:
case RISCV::BI__builtin_rvv_vmul_vx_i16m1:
case RISCV::BI__builtin_rvv_vmul_vx_i16m2:
case RISCV::BI__builtin_rvv_vmul_vx_i16m4:
case RISCV::BI__builtin_rvv_vmul_vx_i16m8:
case RISCV::BI__builtin_rvv_vmul_vx_i16mf2:
case RISCV::BI__builtin_rvv_vmul_vx_i16mf4:
case RISCV::BI__builtin_rvv_vmul_vx_i32m1:
case RISCV::BI__builtin_rvv_vmul_vx_i32m2:
case RISCV::BI__builtin_rvv_vmul_vx_i32m4:
case RISCV::BI__builtin_rvv_vmul_vx_i32m8:
case RISCV::BI__builtin_rvv_vmul_vx_i32mf2:
case RISCV::BI__builtin_rvv_vmul_vx_i64m1:
case RISCV::BI__builtin_rvv_vmul_vx_i64m2:
case RISCV::BI__builtin_rvv_vmul_vx_i64m4:
case RISCV::BI__builtin_rvv_vmul_vx_i64m8:
case RISCV::BI__builtin_rvv_vmul_vv_u8m1:
case RISCV::BI__builtin_rvv_vmul_vv_u8m2:
case RISCV::BI__builtin_rvv_vmul_vv_u8m4:
case RISCV::BI__builtin_rvv_vmul_vv_u8m8:
case RISCV::BI__builtin_rvv_vmul_vv_u8mf2:
case RISCV::BI__builtin_rvv_vmul_vv_u8mf4:
case RISCV::BI__builtin_rvv_vmul_vv_u8mf8:
case RISCV::BI__builtin_rvv_vmul_vv_u16m1:
case RISCV::BI__builtin_rvv_vmul_vv_u16m2:
case RISCV::BI__builtin_rvv_vmul_vv_u16m4:
case RISCV::BI__builtin_rvv_vmul_vv_u16m8:
case RISCV::BI__builtin_rvv_vmul_vv_u16mf2:
case RISCV::BI__builtin_rvv_vmul_vv_u16mf4:
case RISCV::BI__builtin_rvv_vmul_vv_u32m1:
case RISCV::BI__builtin_rvv_vmul_vv_u32m2:
case RISCV::BI__builtin_rvv_vmul_vv_u32m4:
case RISCV::BI__builtin_rvv_vmul_vv_u32m8:
case RISCV::BI__builtin_rvv_vmul_vv_u32mf2:
case RISCV::BI__builtin_rvv_vmul_vv_u64m1:
case RISCV::BI__builtin_rvv_vmul_vv_u64m2:
case RISCV::BI__builtin_rvv_vmul_vv_u64m4:
case RISCV::BI__builtin_rvv_vmul_vv_u64m8:
case RISCV::BI__builtin_rvv_vmul_vx_u8m1:
case RISCV::BI__builtin_rvv_vmul_vx_u8m2:
case RISCV::BI__builtin_rvv_vmul_vx_u8m4:
case RISCV::BI__builtin_rvv_vmul_vx_u8m8:
case RISCV::BI__builtin_rvv_vmul_vx_u8mf2:
case RISCV::BI__builtin_rvv_vmul_vx_u8mf4:
case RISCV::BI__builtin_rvv_vmul_vx_u8mf8:
case RISCV::BI__builtin_rvv_vmul_vx_u16m1:
case RISCV::BI__builtin_rvv_vmul_vx_u16m2:
case RISCV::BI__builtin_rvv_vmul_vx_u16m4:
case RISCV::BI__builtin_rvv_vmul_vx_u16m8:
case RISCV::BI__builtin_rvv_vmul_vx_u16mf2:
case RISCV::BI__builtin_rvv_vmul_vx_u16mf4:
case RISCV::BI__builtin_rvv_vmul_vx_u32m1:
case RISCV::BI__builtin_rvv_vmul_vx_u32m2:
case RISCV::BI__builtin_rvv_vmul_vx_u32m4:
case RISCV::BI__builtin_rvv_vmul_vx_u32m8:
case RISCV::BI__builtin_rvv_vmul_vx_u32mf2:
case RISCV::BI__builtin_rvv_vmul_vx_u64m1:
case RISCV::BI__builtin_rvv_vmul_vx_u64m2:
case RISCV::BI__builtin_rvv_vmul_vx_u64m4:
case RISCV::BI__builtin_rvv_vmul_vx_u64m8:
  ID = Intrinsic::riscv_vmul;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmul_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vmul_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vmul_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vmul_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vmul_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vmul_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vmul_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vmul_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vmul_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vmul_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vmul_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vmul_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vmul_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vmul_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vmul_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vmul_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vmul_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vmul_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vmul_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vmul_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vmul_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vmul_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vmul_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vmul_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vmul_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vmul_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vmul_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vmul_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vmul_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vmul_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vmul_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vmul_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vmul_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vmul_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vmul_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vmul_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vmul_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vmul_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vmul_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vmul_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vmul_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vmul_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vmul_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vmul_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vmul_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vmul_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vmul_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vmul_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vmul_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vmul_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vmul_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vmul_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vmul_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vmul_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vmul_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vmul_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vmul_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vmul_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vmul_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vmul_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vmul_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vmul_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vmul_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vmul_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vmul_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vmul_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vmul_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vmul_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vmul_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vmul_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vmul_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vmul_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vmul_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vmul_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vmul_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vmul_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vmul_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vmul_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vmul_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vmul_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vmul_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vmul_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vmul_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vmul_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vmul_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vmul_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vmul_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vmul_vx_u64m8_m:
  ID = Intrinsic::riscv_vmul_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmulh_vv_i8m1:
case RISCV::BI__builtin_rvv_vmulh_vv_i8m2:
case RISCV::BI__builtin_rvv_vmulh_vv_i8m4:
case RISCV::BI__builtin_rvv_vmulh_vv_i8m8:
case RISCV::BI__builtin_rvv_vmulh_vv_i8mf2:
case RISCV::BI__builtin_rvv_vmulh_vv_i8mf4:
case RISCV::BI__builtin_rvv_vmulh_vv_i8mf8:
case RISCV::BI__builtin_rvv_vmulh_vv_i16m1:
case RISCV::BI__builtin_rvv_vmulh_vv_i16m2:
case RISCV::BI__builtin_rvv_vmulh_vv_i16m4:
case RISCV::BI__builtin_rvv_vmulh_vv_i16m8:
case RISCV::BI__builtin_rvv_vmulh_vv_i16mf2:
case RISCV::BI__builtin_rvv_vmulh_vv_i16mf4:
case RISCV::BI__builtin_rvv_vmulh_vv_i32m1:
case RISCV::BI__builtin_rvv_vmulh_vv_i32m2:
case RISCV::BI__builtin_rvv_vmulh_vv_i32m4:
case RISCV::BI__builtin_rvv_vmulh_vv_i32m8:
case RISCV::BI__builtin_rvv_vmulh_vv_i32mf2:
case RISCV::BI__builtin_rvv_vmulh_vv_i64m1:
case RISCV::BI__builtin_rvv_vmulh_vv_i64m2:
case RISCV::BI__builtin_rvv_vmulh_vv_i64m4:
case RISCV::BI__builtin_rvv_vmulh_vv_i64m8:
case RISCV::BI__builtin_rvv_vmulh_vx_i8m1:
case RISCV::BI__builtin_rvv_vmulh_vx_i8m2:
case RISCV::BI__builtin_rvv_vmulh_vx_i8m4:
case RISCV::BI__builtin_rvv_vmulh_vx_i8m8:
case RISCV::BI__builtin_rvv_vmulh_vx_i8mf2:
case RISCV::BI__builtin_rvv_vmulh_vx_i8mf4:
case RISCV::BI__builtin_rvv_vmulh_vx_i8mf8:
case RISCV::BI__builtin_rvv_vmulh_vx_i16m1:
case RISCV::BI__builtin_rvv_vmulh_vx_i16m2:
case RISCV::BI__builtin_rvv_vmulh_vx_i16m4:
case RISCV::BI__builtin_rvv_vmulh_vx_i16m8:
case RISCV::BI__builtin_rvv_vmulh_vx_i16mf2:
case RISCV::BI__builtin_rvv_vmulh_vx_i16mf4:
case RISCV::BI__builtin_rvv_vmulh_vx_i32m1:
case RISCV::BI__builtin_rvv_vmulh_vx_i32m2:
case RISCV::BI__builtin_rvv_vmulh_vx_i32m4:
case RISCV::BI__builtin_rvv_vmulh_vx_i32m8:
case RISCV::BI__builtin_rvv_vmulh_vx_i32mf2:
case RISCV::BI__builtin_rvv_vmulh_vx_i64m1:
case RISCV::BI__builtin_rvv_vmulh_vx_i64m2:
case RISCV::BI__builtin_rvv_vmulh_vx_i64m4:
case RISCV::BI__builtin_rvv_vmulh_vx_i64m8:
  ID = Intrinsic::riscv_vmulh;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmulh_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vmulh_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vmulh_vx_i64m8_m:
  ID = Intrinsic::riscv_vmulh_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8m1:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8m2:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8m4:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8m8:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8mf2:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8mf4:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8mf8:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16m1:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16m2:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16m4:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16m8:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16mf2:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16mf4:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32m1:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32m2:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32m4:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32m8:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32mf2:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i64m1:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i64m2:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i64m4:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i64m8:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8m1:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8m2:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8m4:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8m8:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8mf2:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8mf4:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8mf8:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16m1:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16m2:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16m4:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16m8:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16mf2:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16mf4:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32m1:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32m2:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32m4:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32m8:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32mf2:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i64m1:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i64m2:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i64m4:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i64m8:
  ID = Intrinsic::riscv_vmulhsu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vmulhsu_vx_i64m8_m:
  ID = Intrinsic::riscv_vmulhsu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmulhu_vv_u8m1:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8m2:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8m4:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8m8:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16m1:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16m2:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16m4:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16m8:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32m1:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32m2:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32m4:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32m8:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vmulhu_vv_u64m1:
case RISCV::BI__builtin_rvv_vmulhu_vv_u64m2:
case RISCV::BI__builtin_rvv_vmulhu_vv_u64m4:
case RISCV::BI__builtin_rvv_vmulhu_vv_u64m8:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8m1:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8m2:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8m4:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8m8:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16m1:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16m2:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16m4:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16m8:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32m1:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32m2:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32m4:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32m8:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vmulhu_vx_u64m1:
case RISCV::BI__builtin_rvv_vmulhu_vx_u64m2:
case RISCV::BI__builtin_rvv_vmulhu_vx_u64m4:
case RISCV::BI__builtin_rvv_vmulhu_vx_u64m8:
  ID = Intrinsic::riscv_vmulhu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmulhu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vmulhu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vmulhu_vx_u64m8_m:
  ID = Intrinsic::riscv_vmulhu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmv_s_x_i8m1:
case RISCV::BI__builtin_rvv_vmv_s_x_i8m2:
case RISCV::BI__builtin_rvv_vmv_s_x_i8m4:
case RISCV::BI__builtin_rvv_vmv_s_x_i8m8:
case RISCV::BI__builtin_rvv_vmv_s_x_i8mf2:
case RISCV::BI__builtin_rvv_vmv_s_x_i8mf4:
case RISCV::BI__builtin_rvv_vmv_s_x_i8mf8:
case RISCV::BI__builtin_rvv_vmv_s_x_i16m1:
case RISCV::BI__builtin_rvv_vmv_s_x_i16m2:
case RISCV::BI__builtin_rvv_vmv_s_x_i16m4:
case RISCV::BI__builtin_rvv_vmv_s_x_i16m8:
case RISCV::BI__builtin_rvv_vmv_s_x_i16mf2:
case RISCV::BI__builtin_rvv_vmv_s_x_i16mf4:
case RISCV::BI__builtin_rvv_vmv_s_x_i32m1:
case RISCV::BI__builtin_rvv_vmv_s_x_i32m2:
case RISCV::BI__builtin_rvv_vmv_s_x_i32m4:
case RISCV::BI__builtin_rvv_vmv_s_x_i32m8:
case RISCV::BI__builtin_rvv_vmv_s_x_i32mf2:
case RISCV::BI__builtin_rvv_vmv_s_x_i64m1:
case RISCV::BI__builtin_rvv_vmv_s_x_i64m2:
case RISCV::BI__builtin_rvv_vmv_s_x_i64m4:
case RISCV::BI__builtin_rvv_vmv_s_x_i64m8:
case RISCV::BI__builtin_rvv_vmv_s_x_u8m1:
case RISCV::BI__builtin_rvv_vmv_s_x_u8m2:
case RISCV::BI__builtin_rvv_vmv_s_x_u8m4:
case RISCV::BI__builtin_rvv_vmv_s_x_u8m8:
case RISCV::BI__builtin_rvv_vmv_s_x_u8mf2:
case RISCV::BI__builtin_rvv_vmv_s_x_u8mf4:
case RISCV::BI__builtin_rvv_vmv_s_x_u8mf8:
case RISCV::BI__builtin_rvv_vmv_s_x_u16m1:
case RISCV::BI__builtin_rvv_vmv_s_x_u16m2:
case RISCV::BI__builtin_rvv_vmv_s_x_u16m4:
case RISCV::BI__builtin_rvv_vmv_s_x_u16m8:
case RISCV::BI__builtin_rvv_vmv_s_x_u16mf2:
case RISCV::BI__builtin_rvv_vmv_s_x_u16mf4:
case RISCV::BI__builtin_rvv_vmv_s_x_u32m1:
case RISCV::BI__builtin_rvv_vmv_s_x_u32m2:
case RISCV::BI__builtin_rvv_vmv_s_x_u32m4:
case RISCV::BI__builtin_rvv_vmv_s_x_u32m8:
case RISCV::BI__builtin_rvv_vmv_s_x_u32mf2:
case RISCV::BI__builtin_rvv_vmv_s_x_u64m1:
case RISCV::BI__builtin_rvv_vmv_s_x_u64m2:
case RISCV::BI__builtin_rvv_vmv_s_x_u64m4:
case RISCV::BI__builtin_rvv_vmv_s_x_u64m8:
  ID = Intrinsic::riscv_vmv_s_x;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmv_v_v_u8m1:
case RISCV::BI__builtin_rvv_vmv_v_v_u8m2:
case RISCV::BI__builtin_rvv_vmv_v_v_u8m4:
case RISCV::BI__builtin_rvv_vmv_v_v_u8m8:
case RISCV::BI__builtin_rvv_vmv_v_v_u8mf2:
case RISCV::BI__builtin_rvv_vmv_v_v_u8mf4:
case RISCV::BI__builtin_rvv_vmv_v_v_u8mf8:
case RISCV::BI__builtin_rvv_vmv_v_v_u16m1:
case RISCV::BI__builtin_rvv_vmv_v_v_u16m2:
case RISCV::BI__builtin_rvv_vmv_v_v_u16m4:
case RISCV::BI__builtin_rvv_vmv_v_v_u16m8:
case RISCV::BI__builtin_rvv_vmv_v_v_u16mf2:
case RISCV::BI__builtin_rvv_vmv_v_v_u16mf4:
case RISCV::BI__builtin_rvv_vmv_v_v_u32m1:
case RISCV::BI__builtin_rvv_vmv_v_v_u32m2:
case RISCV::BI__builtin_rvv_vmv_v_v_u32m4:
case RISCV::BI__builtin_rvv_vmv_v_v_u32m8:
case RISCV::BI__builtin_rvv_vmv_v_v_u32mf2:
case RISCV::BI__builtin_rvv_vmv_v_v_u64m1:
case RISCV::BI__builtin_rvv_vmv_v_v_u64m2:
case RISCV::BI__builtin_rvv_vmv_v_v_u64m4:
case RISCV::BI__builtin_rvv_vmv_v_v_u64m8:
case RISCV::BI__builtin_rvv_vmv_v_v_i8m1:
case RISCV::BI__builtin_rvv_vmv_v_v_i8m2:
case RISCV::BI__builtin_rvv_vmv_v_v_i8m4:
case RISCV::BI__builtin_rvv_vmv_v_v_i8m8:
case RISCV::BI__builtin_rvv_vmv_v_v_i8mf2:
case RISCV::BI__builtin_rvv_vmv_v_v_i8mf4:
case RISCV::BI__builtin_rvv_vmv_v_v_i8mf8:
case RISCV::BI__builtin_rvv_vmv_v_v_i16m1:
case RISCV::BI__builtin_rvv_vmv_v_v_i16m2:
case RISCV::BI__builtin_rvv_vmv_v_v_i16m4:
case RISCV::BI__builtin_rvv_vmv_v_v_i16m8:
case RISCV::BI__builtin_rvv_vmv_v_v_i16mf2:
case RISCV::BI__builtin_rvv_vmv_v_v_i16mf4:
case RISCV::BI__builtin_rvv_vmv_v_v_i32m1:
case RISCV::BI__builtin_rvv_vmv_v_v_i32m2:
case RISCV::BI__builtin_rvv_vmv_v_v_i32m4:
case RISCV::BI__builtin_rvv_vmv_v_v_i32m8:
case RISCV::BI__builtin_rvv_vmv_v_v_i32mf2:
case RISCV::BI__builtin_rvv_vmv_v_v_i64m1:
case RISCV::BI__builtin_rvv_vmv_v_v_i64m2:
case RISCV::BI__builtin_rvv_vmv_v_v_i64m4:
case RISCV::BI__builtin_rvv_vmv_v_v_i64m8:
case RISCV::BI__builtin_rvv_vmv_v_v_f16m1:
case RISCV::BI__builtin_rvv_vmv_v_v_f16m2:
case RISCV::BI__builtin_rvv_vmv_v_v_f16m4:
case RISCV::BI__builtin_rvv_vmv_v_v_f16m8:
case RISCV::BI__builtin_rvv_vmv_v_v_f16mf2:
case RISCV::BI__builtin_rvv_vmv_v_v_f16mf4:
case RISCV::BI__builtin_rvv_vmv_v_v_f32m1:
case RISCV::BI__builtin_rvv_vmv_v_v_f32m2:
case RISCV::BI__builtin_rvv_vmv_v_v_f32m4:
case RISCV::BI__builtin_rvv_vmv_v_v_f32m8:
case RISCV::BI__builtin_rvv_vmv_v_v_f32mf2:
case RISCV::BI__builtin_rvv_vmv_v_v_f64m1:
case RISCV::BI__builtin_rvv_vmv_v_v_f64m2:
case RISCV::BI__builtin_rvv_vmv_v_v_f64m4:
case RISCV::BI__builtin_rvv_vmv_v_v_f64m8:
  ID = Intrinsic::riscv_vmv_v_v;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmv_v_x_i8m1:
case RISCV::BI__builtin_rvv_vmv_v_x_i8m2:
case RISCV::BI__builtin_rvv_vmv_v_x_i8m4:
case RISCV::BI__builtin_rvv_vmv_v_x_i8m8:
case RISCV::BI__builtin_rvv_vmv_v_x_i8mf2:
case RISCV::BI__builtin_rvv_vmv_v_x_i8mf4:
case RISCV::BI__builtin_rvv_vmv_v_x_i8mf8:
case RISCV::BI__builtin_rvv_vmv_v_x_i16m1:
case RISCV::BI__builtin_rvv_vmv_v_x_i16m2:
case RISCV::BI__builtin_rvv_vmv_v_x_i16m4:
case RISCV::BI__builtin_rvv_vmv_v_x_i16m8:
case RISCV::BI__builtin_rvv_vmv_v_x_i16mf2:
case RISCV::BI__builtin_rvv_vmv_v_x_i16mf4:
case RISCV::BI__builtin_rvv_vmv_v_x_i32m1:
case RISCV::BI__builtin_rvv_vmv_v_x_i32m2:
case RISCV::BI__builtin_rvv_vmv_v_x_i32m4:
case RISCV::BI__builtin_rvv_vmv_v_x_i32m8:
case RISCV::BI__builtin_rvv_vmv_v_x_i32mf2:
case RISCV::BI__builtin_rvv_vmv_v_x_i64m1:
case RISCV::BI__builtin_rvv_vmv_v_x_i64m2:
case RISCV::BI__builtin_rvv_vmv_v_x_i64m4:
case RISCV::BI__builtin_rvv_vmv_v_x_i64m8:
case RISCV::BI__builtin_rvv_vmv_v_x_u8m1:
case RISCV::BI__builtin_rvv_vmv_v_x_u8m2:
case RISCV::BI__builtin_rvv_vmv_v_x_u8m4:
case RISCV::BI__builtin_rvv_vmv_v_x_u8m8:
case RISCV::BI__builtin_rvv_vmv_v_x_u8mf2:
case RISCV::BI__builtin_rvv_vmv_v_x_u8mf4:
case RISCV::BI__builtin_rvv_vmv_v_x_u8mf8:
case RISCV::BI__builtin_rvv_vmv_v_x_u16m1:
case RISCV::BI__builtin_rvv_vmv_v_x_u16m2:
case RISCV::BI__builtin_rvv_vmv_v_x_u16m4:
case RISCV::BI__builtin_rvv_vmv_v_x_u16m8:
case RISCV::BI__builtin_rvv_vmv_v_x_u16mf2:
case RISCV::BI__builtin_rvv_vmv_v_x_u16mf4:
case RISCV::BI__builtin_rvv_vmv_v_x_u32m1:
case RISCV::BI__builtin_rvv_vmv_v_x_u32m2:
case RISCV::BI__builtin_rvv_vmv_v_x_u32m4:
case RISCV::BI__builtin_rvv_vmv_v_x_u32m8:
case RISCV::BI__builtin_rvv_vmv_v_x_u32mf2:
case RISCV::BI__builtin_rvv_vmv_v_x_u64m1:
case RISCV::BI__builtin_rvv_vmv_v_x_u64m2:
case RISCV::BI__builtin_rvv_vmv_v_x_u64m4:
case RISCV::BI__builtin_rvv_vmv_v_x_u64m8:
  ID = Intrinsic::riscv_vmv_v_x;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmv_x_s_i8m1_i8:
case RISCV::BI__builtin_rvv_vmv_x_s_i8m2_i8:
case RISCV::BI__builtin_rvv_vmv_x_s_i8m4_i8:
case RISCV::BI__builtin_rvv_vmv_x_s_i8m8_i8:
case RISCV::BI__builtin_rvv_vmv_x_s_i8mf2_i8:
case RISCV::BI__builtin_rvv_vmv_x_s_i8mf4_i8:
case RISCV::BI__builtin_rvv_vmv_x_s_i8mf8_i8:
case RISCV::BI__builtin_rvv_vmv_x_s_i16m1_i16:
case RISCV::BI__builtin_rvv_vmv_x_s_i16m2_i16:
case RISCV::BI__builtin_rvv_vmv_x_s_i16m4_i16:
case RISCV::BI__builtin_rvv_vmv_x_s_i16m8_i16:
case RISCV::BI__builtin_rvv_vmv_x_s_i16mf2_i16:
case RISCV::BI__builtin_rvv_vmv_x_s_i16mf4_i16:
case RISCV::BI__builtin_rvv_vmv_x_s_i32m1_i32:
case RISCV::BI__builtin_rvv_vmv_x_s_i32m2_i32:
case RISCV::BI__builtin_rvv_vmv_x_s_i32m4_i32:
case RISCV::BI__builtin_rvv_vmv_x_s_i32m8_i32:
case RISCV::BI__builtin_rvv_vmv_x_s_i32mf2_i32:
case RISCV::BI__builtin_rvv_vmv_x_s_i64m1_i64:
case RISCV::BI__builtin_rvv_vmv_x_s_i64m2_i64:
case RISCV::BI__builtin_rvv_vmv_x_s_i64m4_i64:
case RISCV::BI__builtin_rvv_vmv_x_s_i64m8_i64:
case RISCV::BI__builtin_rvv_vmv_x_s_u8m1_u8:
case RISCV::BI__builtin_rvv_vmv_x_s_u8m2_u8:
case RISCV::BI__builtin_rvv_vmv_x_s_u8m4_u8:
case RISCV::BI__builtin_rvv_vmv_x_s_u8m8_u8:
case RISCV::BI__builtin_rvv_vmv_x_s_u8mf2_u8:
case RISCV::BI__builtin_rvv_vmv_x_s_u8mf4_u8:
case RISCV::BI__builtin_rvv_vmv_x_s_u8mf8_u8:
case RISCV::BI__builtin_rvv_vmv_x_s_u16m1_u16:
case RISCV::BI__builtin_rvv_vmv_x_s_u16m2_u16:
case RISCV::BI__builtin_rvv_vmv_x_s_u16m4_u16:
case RISCV::BI__builtin_rvv_vmv_x_s_u16m8_u16:
case RISCV::BI__builtin_rvv_vmv_x_s_u16mf2_u16:
case RISCV::BI__builtin_rvv_vmv_x_s_u16mf4_u16:
case RISCV::BI__builtin_rvv_vmv_x_s_u32m1_u32:
case RISCV::BI__builtin_rvv_vmv_x_s_u32m2_u32:
case RISCV::BI__builtin_rvv_vmv_x_s_u32m4_u32:
case RISCV::BI__builtin_rvv_vmv_x_s_u32m8_u32:
case RISCV::BI__builtin_rvv_vmv_x_s_u32mf2_u32:
case RISCV::BI__builtin_rvv_vmv_x_s_u64m1_u64:
case RISCV::BI__builtin_rvv_vmv_x_s_u64m2_u64:
case RISCV::BI__builtin_rvv_vmv_x_s_u64m4_u64:
case RISCV::BI__builtin_rvv_vmv_x_s_u64m8_u64:
  ID = Intrinsic::riscv_vmv_x_s;
  IntrinsicTypes = {Ops[0]->getType()};
  break;
case RISCV::BI__builtin_rvv_vmxnor_mm_b8:
case RISCV::BI__builtin_rvv_vmxnor_mm_b4:
case RISCV::BI__builtin_rvv_vmxnor_mm_b2:
case RISCV::BI__builtin_rvv_vmxnor_mm_b1:
case RISCV::BI__builtin_rvv_vmxnor_mm_b16:
case RISCV::BI__builtin_rvv_vmxnor_mm_b32:
case RISCV::BI__builtin_rvv_vmxnor_mm_b64:
  ID = Intrinsic::riscv_vmxnor;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vmxor_mm_b8:
case RISCV::BI__builtin_rvv_vmxor_mm_b4:
case RISCV::BI__builtin_rvv_vmxor_mm_b2:
case RISCV::BI__builtin_rvv_vmxor_mm_b1:
case RISCV::BI__builtin_rvv_vmxor_mm_b16:
case RISCV::BI__builtin_rvv_vmxor_mm_b32:
case RISCV::BI__builtin_rvv_vmxor_mm_b64:
  ID = Intrinsic::riscv_vmxor;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnclip_wv_i8m1:
case RISCV::BI__builtin_rvv_vnclip_wv_i8m2:
case RISCV::BI__builtin_rvv_vnclip_wv_i8m4:
case RISCV::BI__builtin_rvv_vnclip_wv_i8mf2:
case RISCV::BI__builtin_rvv_vnclip_wv_i8mf4:
case RISCV::BI__builtin_rvv_vnclip_wv_i8mf8:
case RISCV::BI__builtin_rvv_vnclip_wv_i16m1:
case RISCV::BI__builtin_rvv_vnclip_wv_i16m2:
case RISCV::BI__builtin_rvv_vnclip_wv_i16m4:
case RISCV::BI__builtin_rvv_vnclip_wv_i16mf2:
case RISCV::BI__builtin_rvv_vnclip_wv_i16mf4:
case RISCV::BI__builtin_rvv_vnclip_wv_i32m1:
case RISCV::BI__builtin_rvv_vnclip_wv_i32m2:
case RISCV::BI__builtin_rvv_vnclip_wv_i32m4:
case RISCV::BI__builtin_rvv_vnclip_wv_i32mf2:
case RISCV::BI__builtin_rvv_vnclip_wx_i8m1:
case RISCV::BI__builtin_rvv_vnclip_wx_i8m2:
case RISCV::BI__builtin_rvv_vnclip_wx_i8m4:
case RISCV::BI__builtin_rvv_vnclip_wx_i8mf2:
case RISCV::BI__builtin_rvv_vnclip_wx_i8mf4:
case RISCV::BI__builtin_rvv_vnclip_wx_i8mf8:
case RISCV::BI__builtin_rvv_vnclip_wx_i16m1:
case RISCV::BI__builtin_rvv_vnclip_wx_i16m2:
case RISCV::BI__builtin_rvv_vnclip_wx_i16m4:
case RISCV::BI__builtin_rvv_vnclip_wx_i16mf2:
case RISCV::BI__builtin_rvv_vnclip_wx_i16mf4:
case RISCV::BI__builtin_rvv_vnclip_wx_i32m1:
case RISCV::BI__builtin_rvv_vnclip_wx_i32m2:
case RISCV::BI__builtin_rvv_vnclip_wx_i32m4:
case RISCV::BI__builtin_rvv_vnclip_wx_i32mf2:
  ID = Intrinsic::riscv_vnclip;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnclip_wv_i8m1_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i8m2_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i8m4_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i8mf2_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i8mf4_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i8mf8_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i16m1_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i16m2_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i16m4_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i16mf2_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i16mf4_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i32m1_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i32m2_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i32m4_m:
case RISCV::BI__builtin_rvv_vnclip_wv_i32mf2_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i8m1_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i8m2_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i8m4_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i8mf2_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i8mf4_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i8mf8_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i16m1_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i16m2_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i16m4_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i16mf2_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i16mf4_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i32m1_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i32m2_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i32m4_m:
case RISCV::BI__builtin_rvv_vnclip_wx_i32mf2_m:
  ID = Intrinsic::riscv_vnclip_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnclipu_wv_u8m1:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8m2:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8m4:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8mf2:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8mf4:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8mf8:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16m1:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16m2:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16m4:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16mf2:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16mf4:
case RISCV::BI__builtin_rvv_vnclipu_wv_u32m1:
case RISCV::BI__builtin_rvv_vnclipu_wv_u32m2:
case RISCV::BI__builtin_rvv_vnclipu_wv_u32m4:
case RISCV::BI__builtin_rvv_vnclipu_wv_u32mf2:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8m1:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8m2:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8m4:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8mf2:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8mf4:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8mf8:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16m1:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16m2:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16m4:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16mf2:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16mf4:
case RISCV::BI__builtin_rvv_vnclipu_wx_u32m1:
case RISCV::BI__builtin_rvv_vnclipu_wx_u32m2:
case RISCV::BI__builtin_rvv_vnclipu_wx_u32m4:
case RISCV::BI__builtin_rvv_vnclipu_wx_u32mf2:
  ID = Intrinsic::riscv_vnclipu;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnclipu_wv_u8m1_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8m2_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8m4_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8mf2_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8mf4_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u8mf8_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16m1_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16m2_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16m4_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16mf2_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u16mf4_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u32m1_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u32m2_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u32m4_m:
case RISCV::BI__builtin_rvv_vnclipu_wv_u32mf2_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8m1_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8m2_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8m4_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8mf2_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8mf4_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u8mf8_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16m1_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16m2_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16m4_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16mf2_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u16mf4_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u32m1_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u32m2_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u32m4_m:
case RISCV::BI__builtin_rvv_vnclipu_wx_u32mf2_m:
  ID = Intrinsic::riscv_vnclipu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnmsac_vv_i8m1:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8m2:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8m4:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8m8:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8mf2:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8mf4:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8mf8:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16m1:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16m2:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16m4:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16m8:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16mf2:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16mf4:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32m1:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32m2:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32m4:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32m8:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32mf2:
case RISCV::BI__builtin_rvv_vnmsac_vv_i64m1:
case RISCV::BI__builtin_rvv_vnmsac_vv_i64m2:
case RISCV::BI__builtin_rvv_vnmsac_vv_i64m4:
case RISCV::BI__builtin_rvv_vnmsac_vv_i64m8:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8m1:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8m2:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8m4:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8m8:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8mf2:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8mf4:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8mf8:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16m1:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16m2:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16m4:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16m8:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16mf2:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16mf4:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32m1:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32m2:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32m4:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32m8:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32mf2:
case RISCV::BI__builtin_rvv_vnmsac_vx_i64m1:
case RISCV::BI__builtin_rvv_vnmsac_vx_i64m2:
case RISCV::BI__builtin_rvv_vnmsac_vx_i64m4:
case RISCV::BI__builtin_rvv_vnmsac_vx_i64m8:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8m1:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8m2:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8m4:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8m8:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8mf2:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8mf4:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8mf8:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16m1:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16m2:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16m4:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16m8:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16mf2:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16mf4:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32m1:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32m2:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32m4:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32m8:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32mf2:
case RISCV::BI__builtin_rvv_vnmsac_vv_u64m1:
case RISCV::BI__builtin_rvv_vnmsac_vv_u64m2:
case RISCV::BI__builtin_rvv_vnmsac_vv_u64m4:
case RISCV::BI__builtin_rvv_vnmsac_vv_u64m8:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8m1:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8m2:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8m4:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8m8:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8mf2:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8mf4:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8mf8:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16m1:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16m2:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16m4:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16m8:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16mf2:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16mf4:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32m1:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32m2:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32m4:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32m8:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32mf2:
case RISCV::BI__builtin_rvv_vnmsac_vx_u64m1:
case RISCV::BI__builtin_rvv_vnmsac_vx_u64m2:
case RISCV::BI__builtin_rvv_vnmsac_vx_u64m4:
case RISCV::BI__builtin_rvv_vnmsac_vx_u64m8:
  ID = Intrinsic::riscv_vnmsac;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnmsac_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vnmsac_vx_u64m8_m:
  ID = Intrinsic::riscv_vnmsac_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnmsub_vv_i8m1:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8m2:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8m4:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8m8:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8mf2:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8mf4:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8mf8:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16m1:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16m2:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16m4:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16m8:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16mf2:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16mf4:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32m1:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32m2:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32m4:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32m8:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32mf2:
case RISCV::BI__builtin_rvv_vnmsub_vv_i64m1:
case RISCV::BI__builtin_rvv_vnmsub_vv_i64m2:
case RISCV::BI__builtin_rvv_vnmsub_vv_i64m4:
case RISCV::BI__builtin_rvv_vnmsub_vv_i64m8:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8m1:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8m2:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8m4:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8m8:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8mf2:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8mf4:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8mf8:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16m1:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16m2:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16m4:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16m8:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16mf2:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16mf4:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32m1:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32m2:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32m4:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32m8:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32mf2:
case RISCV::BI__builtin_rvv_vnmsub_vx_i64m1:
case RISCV::BI__builtin_rvv_vnmsub_vx_i64m2:
case RISCV::BI__builtin_rvv_vnmsub_vx_i64m4:
case RISCV::BI__builtin_rvv_vnmsub_vx_i64m8:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8m1:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8m2:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8m4:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8m8:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8mf2:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8mf4:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8mf8:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16m1:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16m2:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16m4:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16m8:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16mf2:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16mf4:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32m1:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32m2:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32m4:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32m8:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32mf2:
case RISCV::BI__builtin_rvv_vnmsub_vv_u64m1:
case RISCV::BI__builtin_rvv_vnmsub_vv_u64m2:
case RISCV::BI__builtin_rvv_vnmsub_vv_u64m4:
case RISCV::BI__builtin_rvv_vnmsub_vv_u64m8:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8m1:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8m2:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8m4:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8m8:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8mf2:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8mf4:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8mf8:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16m1:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16m2:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16m4:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16m8:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16mf2:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16mf4:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32m1:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32m2:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32m4:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32m8:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32mf2:
case RISCV::BI__builtin_rvv_vnmsub_vx_u64m1:
case RISCV::BI__builtin_rvv_vnmsub_vx_u64m2:
case RISCV::BI__builtin_rvv_vnmsub_vx_u64m4:
case RISCV::BI__builtin_rvv_vnmsub_vx_u64m8:
  ID = Intrinsic::riscv_vnmsub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnmsub_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vnmsub_vx_u64m8_m:
  ID = Intrinsic::riscv_vnmsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnsra_wv_i8m1:
case RISCV::BI__builtin_rvv_vnsra_wv_i8m2:
case RISCV::BI__builtin_rvv_vnsra_wv_i8m4:
case RISCV::BI__builtin_rvv_vnsra_wv_i8mf2:
case RISCV::BI__builtin_rvv_vnsra_wv_i8mf4:
case RISCV::BI__builtin_rvv_vnsra_wv_i8mf8:
case RISCV::BI__builtin_rvv_vnsra_wv_i16m1:
case RISCV::BI__builtin_rvv_vnsra_wv_i16m2:
case RISCV::BI__builtin_rvv_vnsra_wv_i16m4:
case RISCV::BI__builtin_rvv_vnsra_wv_i16mf2:
case RISCV::BI__builtin_rvv_vnsra_wv_i16mf4:
case RISCV::BI__builtin_rvv_vnsra_wv_i32m1:
case RISCV::BI__builtin_rvv_vnsra_wv_i32m2:
case RISCV::BI__builtin_rvv_vnsra_wv_i32m4:
case RISCV::BI__builtin_rvv_vnsra_wv_i32mf2:
case RISCV::BI__builtin_rvv_vnsra_wx_i8m1:
case RISCV::BI__builtin_rvv_vnsra_wx_i8m2:
case RISCV::BI__builtin_rvv_vnsra_wx_i8m4:
case RISCV::BI__builtin_rvv_vnsra_wx_i8mf2:
case RISCV::BI__builtin_rvv_vnsra_wx_i8mf4:
case RISCV::BI__builtin_rvv_vnsra_wx_i8mf8:
case RISCV::BI__builtin_rvv_vnsra_wx_i16m1:
case RISCV::BI__builtin_rvv_vnsra_wx_i16m2:
case RISCV::BI__builtin_rvv_vnsra_wx_i16m4:
case RISCV::BI__builtin_rvv_vnsra_wx_i16mf2:
case RISCV::BI__builtin_rvv_vnsra_wx_i16mf4:
case RISCV::BI__builtin_rvv_vnsra_wx_i32m1:
case RISCV::BI__builtin_rvv_vnsra_wx_i32m2:
case RISCV::BI__builtin_rvv_vnsra_wx_i32m4:
case RISCV::BI__builtin_rvv_vnsra_wx_i32mf2:
  ID = Intrinsic::riscv_vnsra;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnsra_wv_i8m1_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i8m2_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i8m4_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i8mf2_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i8mf4_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i8mf8_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i16m1_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i16m2_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i16m4_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i16mf2_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i16mf4_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i32m1_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i32m2_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i32m4_m:
case RISCV::BI__builtin_rvv_vnsra_wv_i32mf2_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i8m1_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i8m2_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i8m4_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i8mf2_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i8mf4_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i8mf8_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i16m1_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i16m2_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i16m4_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i16mf2_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i16mf4_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i32m1_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i32m2_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i32m4_m:
case RISCV::BI__builtin_rvv_vnsra_wx_i32mf2_m:
  ID = Intrinsic::riscv_vnsra_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnsrl_wv_u8m1:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8m2:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8m4:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8mf2:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8mf4:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8mf8:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16m1:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16m2:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16m4:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16mf2:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16mf4:
case RISCV::BI__builtin_rvv_vnsrl_wv_u32m1:
case RISCV::BI__builtin_rvv_vnsrl_wv_u32m2:
case RISCV::BI__builtin_rvv_vnsrl_wv_u32m4:
case RISCV::BI__builtin_rvv_vnsrl_wv_u32mf2:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8m1:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8m2:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8m4:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8mf2:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8mf4:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8mf8:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16m1:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16m2:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16m4:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16mf2:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16mf4:
case RISCV::BI__builtin_rvv_vnsrl_wx_u32m1:
case RISCV::BI__builtin_rvv_vnsrl_wx_u32m2:
case RISCV::BI__builtin_rvv_vnsrl_wx_u32m4:
case RISCV::BI__builtin_rvv_vnsrl_wx_u32mf2:
  ID = Intrinsic::riscv_vnsrl;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8m1:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8m2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8m4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8mf2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8mf4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8mf8:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16m1:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16m2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16m4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16mf2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16mf4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u32m1:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u32m2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u32m4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u32mf2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8m1:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8m2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8m4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8mf2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8mf4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8mf8:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16m1:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16m2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16m4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16mf2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16mf4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i32m1:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i32m2:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i32m4:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i32mf2:
  ID = Intrinsic::riscv_vnsrl;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          Ops[0]->getType(),
                          Ops[1]->getType(),
                          Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1, llvm::Constant::getNullValue(IntrinsicTypes[2]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vnsrl_wv_u8m1_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8m2_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8m4_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8mf2_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8mf4_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u8mf8_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16m1_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16m2_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16m4_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16mf2_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u16mf4_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u32m1_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u32m2_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u32m4_m:
case RISCV::BI__builtin_rvv_vnsrl_wv_u32mf2_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8m1_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8m2_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8m4_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8mf2_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8mf4_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u8mf8_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16m1_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16m2_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16m4_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16mf2_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u16mf4_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u32m1_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u32m2_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u32m4_m:
case RISCV::BI__builtin_rvv_vnsrl_wx_u32mf2_m:
  ID = Intrinsic::riscv_vnsrl_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8m1_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8m2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8m4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8mf2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8mf4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u8mf8_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16m1_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16m2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16m4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16mf2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u16mf4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u32m1_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u32m2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u32m4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_u32mf2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8m1_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8m2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8m4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8mf2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8mf4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i8mf8_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16m1_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16m2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16m4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16mf2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i16mf4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i32m1_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i32m2_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i32m4_m:
case RISCV::BI__builtin_rvv_vncvt_x_x_w_i32mf2_m:
  ID = Intrinsic::riscv_vnsrl_mask;

      {
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        // maskedoff, op1, mask, vl
        IntrinsicTypes = {ResultType,
                          Ops[1]->getType(),
                          Ops[3]->getType(),
                          Ops[3]->getType()};
        Ops.insert(Ops.begin() + 2, llvm::Constant::getNullValue(IntrinsicTypes[2]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vor_vv_i8m1:
case RISCV::BI__builtin_rvv_vor_vv_i8m2:
case RISCV::BI__builtin_rvv_vor_vv_i8m4:
case RISCV::BI__builtin_rvv_vor_vv_i8m8:
case RISCV::BI__builtin_rvv_vor_vv_i8mf2:
case RISCV::BI__builtin_rvv_vor_vv_i8mf4:
case RISCV::BI__builtin_rvv_vor_vv_i8mf8:
case RISCV::BI__builtin_rvv_vor_vv_i16m1:
case RISCV::BI__builtin_rvv_vor_vv_i16m2:
case RISCV::BI__builtin_rvv_vor_vv_i16m4:
case RISCV::BI__builtin_rvv_vor_vv_i16m8:
case RISCV::BI__builtin_rvv_vor_vv_i16mf2:
case RISCV::BI__builtin_rvv_vor_vv_i16mf4:
case RISCV::BI__builtin_rvv_vor_vv_i32m1:
case RISCV::BI__builtin_rvv_vor_vv_i32m2:
case RISCV::BI__builtin_rvv_vor_vv_i32m4:
case RISCV::BI__builtin_rvv_vor_vv_i32m8:
case RISCV::BI__builtin_rvv_vor_vv_i32mf2:
case RISCV::BI__builtin_rvv_vor_vv_i64m1:
case RISCV::BI__builtin_rvv_vor_vv_i64m2:
case RISCV::BI__builtin_rvv_vor_vv_i64m4:
case RISCV::BI__builtin_rvv_vor_vv_i64m8:
case RISCV::BI__builtin_rvv_vor_vx_i8m1:
case RISCV::BI__builtin_rvv_vor_vx_i8m2:
case RISCV::BI__builtin_rvv_vor_vx_i8m4:
case RISCV::BI__builtin_rvv_vor_vx_i8m8:
case RISCV::BI__builtin_rvv_vor_vx_i8mf2:
case RISCV::BI__builtin_rvv_vor_vx_i8mf4:
case RISCV::BI__builtin_rvv_vor_vx_i8mf8:
case RISCV::BI__builtin_rvv_vor_vx_i16m1:
case RISCV::BI__builtin_rvv_vor_vx_i16m2:
case RISCV::BI__builtin_rvv_vor_vx_i16m4:
case RISCV::BI__builtin_rvv_vor_vx_i16m8:
case RISCV::BI__builtin_rvv_vor_vx_i16mf2:
case RISCV::BI__builtin_rvv_vor_vx_i16mf4:
case RISCV::BI__builtin_rvv_vor_vx_i32m1:
case RISCV::BI__builtin_rvv_vor_vx_i32m2:
case RISCV::BI__builtin_rvv_vor_vx_i32m4:
case RISCV::BI__builtin_rvv_vor_vx_i32m8:
case RISCV::BI__builtin_rvv_vor_vx_i32mf2:
case RISCV::BI__builtin_rvv_vor_vx_i64m1:
case RISCV::BI__builtin_rvv_vor_vx_i64m2:
case RISCV::BI__builtin_rvv_vor_vx_i64m4:
case RISCV::BI__builtin_rvv_vor_vx_i64m8:
case RISCV::BI__builtin_rvv_vor_vv_u8m1:
case RISCV::BI__builtin_rvv_vor_vv_u8m2:
case RISCV::BI__builtin_rvv_vor_vv_u8m4:
case RISCV::BI__builtin_rvv_vor_vv_u8m8:
case RISCV::BI__builtin_rvv_vor_vv_u8mf2:
case RISCV::BI__builtin_rvv_vor_vv_u8mf4:
case RISCV::BI__builtin_rvv_vor_vv_u8mf8:
case RISCV::BI__builtin_rvv_vor_vv_u16m1:
case RISCV::BI__builtin_rvv_vor_vv_u16m2:
case RISCV::BI__builtin_rvv_vor_vv_u16m4:
case RISCV::BI__builtin_rvv_vor_vv_u16m8:
case RISCV::BI__builtin_rvv_vor_vv_u16mf2:
case RISCV::BI__builtin_rvv_vor_vv_u16mf4:
case RISCV::BI__builtin_rvv_vor_vv_u32m1:
case RISCV::BI__builtin_rvv_vor_vv_u32m2:
case RISCV::BI__builtin_rvv_vor_vv_u32m4:
case RISCV::BI__builtin_rvv_vor_vv_u32m8:
case RISCV::BI__builtin_rvv_vor_vv_u32mf2:
case RISCV::BI__builtin_rvv_vor_vv_u64m1:
case RISCV::BI__builtin_rvv_vor_vv_u64m2:
case RISCV::BI__builtin_rvv_vor_vv_u64m4:
case RISCV::BI__builtin_rvv_vor_vv_u64m8:
case RISCV::BI__builtin_rvv_vor_vx_u8m1:
case RISCV::BI__builtin_rvv_vor_vx_u8m2:
case RISCV::BI__builtin_rvv_vor_vx_u8m4:
case RISCV::BI__builtin_rvv_vor_vx_u8m8:
case RISCV::BI__builtin_rvv_vor_vx_u8mf2:
case RISCV::BI__builtin_rvv_vor_vx_u8mf4:
case RISCV::BI__builtin_rvv_vor_vx_u8mf8:
case RISCV::BI__builtin_rvv_vor_vx_u16m1:
case RISCV::BI__builtin_rvv_vor_vx_u16m2:
case RISCV::BI__builtin_rvv_vor_vx_u16m4:
case RISCV::BI__builtin_rvv_vor_vx_u16m8:
case RISCV::BI__builtin_rvv_vor_vx_u16mf2:
case RISCV::BI__builtin_rvv_vor_vx_u16mf4:
case RISCV::BI__builtin_rvv_vor_vx_u32m1:
case RISCV::BI__builtin_rvv_vor_vx_u32m2:
case RISCV::BI__builtin_rvv_vor_vx_u32m4:
case RISCV::BI__builtin_rvv_vor_vx_u32m8:
case RISCV::BI__builtin_rvv_vor_vx_u32mf2:
case RISCV::BI__builtin_rvv_vor_vx_u64m1:
case RISCV::BI__builtin_rvv_vor_vx_u64m2:
case RISCV::BI__builtin_rvv_vor_vx_u64m4:
case RISCV::BI__builtin_rvv_vor_vx_u64m8:
  ID = Intrinsic::riscv_vor;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vor_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vor_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vor_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vor_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vor_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vor_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vor_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vor_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vor_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vor_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vor_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vor_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vor_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vor_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vor_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vor_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vor_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vor_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vor_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vor_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vor_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vor_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vor_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vor_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vor_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vor_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vor_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vor_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vor_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vor_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vor_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vor_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vor_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vor_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vor_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vor_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vor_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vor_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vor_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vor_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vor_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vor_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vor_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vor_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vor_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vor_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vor_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vor_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vor_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vor_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vor_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vor_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vor_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vor_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vor_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vor_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vor_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vor_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vor_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vor_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vor_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vor_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vor_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vor_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vor_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vor_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vor_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vor_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vor_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vor_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vor_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vor_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vor_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vor_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vor_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vor_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vor_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vor_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vor_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vor_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vor_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vor_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vor_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vor_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vor_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vor_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vor_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vor_vx_u64m8_m:
  ID = Intrinsic::riscv_vor_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vpopc_m_b8:
case RISCV::BI__builtin_rvv_vpopc_m_b4:
case RISCV::BI__builtin_rvv_vpopc_m_b2:
case RISCV::BI__builtin_rvv_vpopc_m_b1:
case RISCV::BI__builtin_rvv_vpopc_m_b16:
case RISCV::BI__builtin_rvv_vpopc_m_b32:
case RISCV::BI__builtin_rvv_vpopc_m_b64:
  ID = Intrinsic::riscv_vpopc;
  IntrinsicTypes = {Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vpopc_m_b8_m:
case RISCV::BI__builtin_rvv_vpopc_m_b4_m:
case RISCV::BI__builtin_rvv_vpopc_m_b2_m:
case RISCV::BI__builtin_rvv_vpopc_m_b1_m:
case RISCV::BI__builtin_rvv_vpopc_m_b16_m:
case RISCV::BI__builtin_rvv_vpopc_m_b32_m:
case RISCV::BI__builtin_rvv_vpopc_m_b64_m:
  ID = Intrinsic::riscv_vpopc_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredand_vs_i8m1_i8m1:
case RISCV::BI__builtin_rvv_vredand_vs_i8m2_i8m1:
case RISCV::BI__builtin_rvv_vredand_vs_i8m4_i8m1:
case RISCV::BI__builtin_rvv_vredand_vs_i8m8_i8m1:
case RISCV::BI__builtin_rvv_vredand_vs_i8mf2_i8m1:
case RISCV::BI__builtin_rvv_vredand_vs_i8mf4_i8m1:
case RISCV::BI__builtin_rvv_vredand_vs_i8mf8_i8m1:
case RISCV::BI__builtin_rvv_vredand_vs_i16m1_i16m1:
case RISCV::BI__builtin_rvv_vredand_vs_i16m2_i16m1:
case RISCV::BI__builtin_rvv_vredand_vs_i16m4_i16m1:
case RISCV::BI__builtin_rvv_vredand_vs_i16m8_i16m1:
case RISCV::BI__builtin_rvv_vredand_vs_i16mf2_i16m1:
case RISCV::BI__builtin_rvv_vredand_vs_i16mf4_i16m1:
case RISCV::BI__builtin_rvv_vredand_vs_i32m1_i32m1:
case RISCV::BI__builtin_rvv_vredand_vs_i32m2_i32m1:
case RISCV::BI__builtin_rvv_vredand_vs_i32m4_i32m1:
case RISCV::BI__builtin_rvv_vredand_vs_i32m8_i32m1:
case RISCV::BI__builtin_rvv_vredand_vs_i32mf2_i32m1:
case RISCV::BI__builtin_rvv_vredand_vs_i64m1_i64m1:
case RISCV::BI__builtin_rvv_vredand_vs_i64m2_i64m1:
case RISCV::BI__builtin_rvv_vredand_vs_i64m4_i64m1:
case RISCV::BI__builtin_rvv_vredand_vs_i64m8_i64m1:
case RISCV::BI__builtin_rvv_vredand_vs_u8m1_u8m1:
case RISCV::BI__builtin_rvv_vredand_vs_u8m2_u8m1:
case RISCV::BI__builtin_rvv_vredand_vs_u8m4_u8m1:
case RISCV::BI__builtin_rvv_vredand_vs_u8m8_u8m1:
case RISCV::BI__builtin_rvv_vredand_vs_u8mf2_u8m1:
case RISCV::BI__builtin_rvv_vredand_vs_u8mf4_u8m1:
case RISCV::BI__builtin_rvv_vredand_vs_u8mf8_u8m1:
case RISCV::BI__builtin_rvv_vredand_vs_u16m1_u16m1:
case RISCV::BI__builtin_rvv_vredand_vs_u16m2_u16m1:
case RISCV::BI__builtin_rvv_vredand_vs_u16m4_u16m1:
case RISCV::BI__builtin_rvv_vredand_vs_u16m8_u16m1:
case RISCV::BI__builtin_rvv_vredand_vs_u16mf2_u16m1:
case RISCV::BI__builtin_rvv_vredand_vs_u16mf4_u16m1:
case RISCV::BI__builtin_rvv_vredand_vs_u32m1_u32m1:
case RISCV::BI__builtin_rvv_vredand_vs_u32m2_u32m1:
case RISCV::BI__builtin_rvv_vredand_vs_u32m4_u32m1:
case RISCV::BI__builtin_rvv_vredand_vs_u32m8_u32m1:
case RISCV::BI__builtin_rvv_vredand_vs_u32mf2_u32m1:
case RISCV::BI__builtin_rvv_vredand_vs_u64m1_u64m1:
case RISCV::BI__builtin_rvv_vredand_vs_u64m2_u64m1:
case RISCV::BI__builtin_rvv_vredand_vs_u64m4_u64m1:
case RISCV::BI__builtin_rvv_vredand_vs_u64m8_u64m1:
  ID = Intrinsic::riscv_vredand;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredand_vs_i8m1_i8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i8m2_i8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i8m4_i8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i8m8_i8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i8mf2_i8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i8mf4_i8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i8mf8_i8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i16m1_i16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i16m2_i16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i16m4_i16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i16m8_i16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i16mf2_i16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i16mf4_i16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i32m1_i32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i32m2_i32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i32m4_i32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i32m8_i32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i32mf2_i32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i64m1_i64m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i64m2_i64m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i64m4_i64m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_i64m8_i64m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u8m1_u8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u8m2_u8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u8m4_u8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u8m8_u8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u8mf2_u8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u8mf4_u8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u8mf8_u8m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u16m1_u16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u16m2_u16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u16m4_u16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u16m8_u16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u16mf2_u16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u16mf4_u16m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u32m1_u32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u32m2_u32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u32m4_u32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u32m8_u32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u32mf2_u32m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u64m1_u64m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u64m2_u64m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u64m4_u64m1_m:
case RISCV::BI__builtin_rvv_vredand_vs_u64m8_u64m1_m:
  ID = Intrinsic::riscv_vredand_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredmax_vs_i8m1_i8m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i8m2_i8m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i8m4_i8m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i8m8_i8m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i8mf2_i8m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i8mf4_i8m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i8mf8_i8m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i16m1_i16m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i16m2_i16m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i16m4_i16m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i16m8_i16m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i16mf2_i16m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i16mf4_i16m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i32m1_i32m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i32m2_i32m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i32m4_i32m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i32m8_i32m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i32mf2_i32m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i64m1_i64m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i64m2_i64m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i64m4_i64m1:
case RISCV::BI__builtin_rvv_vredmax_vs_i64m8_i64m1:
  ID = Intrinsic::riscv_vredmax;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredmax_vs_i8m1_i8m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i8m2_i8m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i8m4_i8m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i8m8_i8m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i8mf2_i8m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i8mf4_i8m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i8mf8_i8m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i16m1_i16m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i16m2_i16m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i16m4_i16m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i16m8_i16m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i16mf2_i16m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i16mf4_i16m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i32m1_i32m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i32m2_i32m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i32m4_i32m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i32m8_i32m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i32mf2_i32m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i64m1_i64m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i64m2_i64m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i64m4_i64m1_m:
case RISCV::BI__builtin_rvv_vredmax_vs_i64m8_i64m1_m:
  ID = Intrinsic::riscv_vredmax_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8m1_u8m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8m2_u8m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8m4_u8m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8m8_u8m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8mf2_u8m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8mf4_u8m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8mf8_u8m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16m1_u16m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16m2_u16m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16m4_u16m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16m8_u16m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16mf2_u16m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16mf4_u16m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32m1_u32m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32m2_u32m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32m4_u32m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32m8_u32m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32mf2_u32m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u64m1_u64m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u64m2_u64m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u64m4_u64m1:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u64m8_u64m1:
  ID = Intrinsic::riscv_vredmaxu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8m1_u8m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8m2_u8m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8m4_u8m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8m8_u8m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8mf2_u8m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8mf4_u8m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u8mf8_u8m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16m1_u16m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16m2_u16m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16m4_u16m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16m8_u16m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16mf2_u16m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u16mf4_u16m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32m1_u32m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32m2_u32m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32m4_u32m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32m8_u32m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u32mf2_u32m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u64m1_u64m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u64m2_u64m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u64m4_u64m1_m:
case RISCV::BI__builtin_rvv_vredmaxu_vs_u64m8_u64m1_m:
  ID = Intrinsic::riscv_vredmaxu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredmin_vs_i8m1_i8m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i8m2_i8m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i8m4_i8m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i8m8_i8m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i8mf2_i8m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i8mf4_i8m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i8mf8_i8m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i16m1_i16m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i16m2_i16m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i16m4_i16m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i16m8_i16m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i16mf2_i16m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i16mf4_i16m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i32m1_i32m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i32m2_i32m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i32m4_i32m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i32m8_i32m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i32mf2_i32m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i64m1_i64m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i64m2_i64m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i64m4_i64m1:
case RISCV::BI__builtin_rvv_vredmin_vs_i64m8_i64m1:
  ID = Intrinsic::riscv_vredmin;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredmin_vs_i8m1_i8m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i8m2_i8m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i8m4_i8m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i8m8_i8m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i8mf2_i8m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i8mf4_i8m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i8mf8_i8m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i16m1_i16m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i16m2_i16m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i16m4_i16m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i16m8_i16m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i16mf2_i16m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i16mf4_i16m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i32m1_i32m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i32m2_i32m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i32m4_i32m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i32m8_i32m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i32mf2_i32m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i64m1_i64m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i64m2_i64m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i64m4_i64m1_m:
case RISCV::BI__builtin_rvv_vredmin_vs_i64m8_i64m1_m:
  ID = Intrinsic::riscv_vredmin_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredminu_vs_u8m1_u8m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u8m2_u8m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u8m4_u8m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u8m8_u8m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u8mf2_u8m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u8mf4_u8m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u8mf8_u8m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u16m1_u16m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u16m2_u16m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u16m4_u16m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u16m8_u16m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u16mf2_u16m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u16mf4_u16m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u32m1_u32m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u32m2_u32m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u32m4_u32m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u32m8_u32m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u32mf2_u32m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u64m1_u64m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u64m2_u64m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u64m4_u64m1:
case RISCV::BI__builtin_rvv_vredminu_vs_u64m8_u64m1:
  ID = Intrinsic::riscv_vredminu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredminu_vs_u8m1_u8m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u8m2_u8m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u8m4_u8m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u8m8_u8m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u8mf2_u8m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u8mf4_u8m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u8mf8_u8m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u16m1_u16m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u16m2_u16m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u16m4_u16m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u16m8_u16m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u16mf2_u16m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u16mf4_u16m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u32m1_u32m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u32m2_u32m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u32m4_u32m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u32m8_u32m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u32mf2_u32m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u64m1_u64m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u64m2_u64m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u64m4_u64m1_m:
case RISCV::BI__builtin_rvv_vredminu_vs_u64m8_u64m1_m:
  ID = Intrinsic::riscv_vredminu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredor_vs_i8m1_i8m1:
case RISCV::BI__builtin_rvv_vredor_vs_i8m2_i8m1:
case RISCV::BI__builtin_rvv_vredor_vs_i8m4_i8m1:
case RISCV::BI__builtin_rvv_vredor_vs_i8m8_i8m1:
case RISCV::BI__builtin_rvv_vredor_vs_i8mf2_i8m1:
case RISCV::BI__builtin_rvv_vredor_vs_i8mf4_i8m1:
case RISCV::BI__builtin_rvv_vredor_vs_i8mf8_i8m1:
case RISCV::BI__builtin_rvv_vredor_vs_i16m1_i16m1:
case RISCV::BI__builtin_rvv_vredor_vs_i16m2_i16m1:
case RISCV::BI__builtin_rvv_vredor_vs_i16m4_i16m1:
case RISCV::BI__builtin_rvv_vredor_vs_i16m8_i16m1:
case RISCV::BI__builtin_rvv_vredor_vs_i16mf2_i16m1:
case RISCV::BI__builtin_rvv_vredor_vs_i16mf4_i16m1:
case RISCV::BI__builtin_rvv_vredor_vs_i32m1_i32m1:
case RISCV::BI__builtin_rvv_vredor_vs_i32m2_i32m1:
case RISCV::BI__builtin_rvv_vredor_vs_i32m4_i32m1:
case RISCV::BI__builtin_rvv_vredor_vs_i32m8_i32m1:
case RISCV::BI__builtin_rvv_vredor_vs_i32mf2_i32m1:
case RISCV::BI__builtin_rvv_vredor_vs_i64m1_i64m1:
case RISCV::BI__builtin_rvv_vredor_vs_i64m2_i64m1:
case RISCV::BI__builtin_rvv_vredor_vs_i64m4_i64m1:
case RISCV::BI__builtin_rvv_vredor_vs_i64m8_i64m1:
case RISCV::BI__builtin_rvv_vredor_vs_u8m1_u8m1:
case RISCV::BI__builtin_rvv_vredor_vs_u8m2_u8m1:
case RISCV::BI__builtin_rvv_vredor_vs_u8m4_u8m1:
case RISCV::BI__builtin_rvv_vredor_vs_u8m8_u8m1:
case RISCV::BI__builtin_rvv_vredor_vs_u8mf2_u8m1:
case RISCV::BI__builtin_rvv_vredor_vs_u8mf4_u8m1:
case RISCV::BI__builtin_rvv_vredor_vs_u8mf8_u8m1:
case RISCV::BI__builtin_rvv_vredor_vs_u16m1_u16m1:
case RISCV::BI__builtin_rvv_vredor_vs_u16m2_u16m1:
case RISCV::BI__builtin_rvv_vredor_vs_u16m4_u16m1:
case RISCV::BI__builtin_rvv_vredor_vs_u16m8_u16m1:
case RISCV::BI__builtin_rvv_vredor_vs_u16mf2_u16m1:
case RISCV::BI__builtin_rvv_vredor_vs_u16mf4_u16m1:
case RISCV::BI__builtin_rvv_vredor_vs_u32m1_u32m1:
case RISCV::BI__builtin_rvv_vredor_vs_u32m2_u32m1:
case RISCV::BI__builtin_rvv_vredor_vs_u32m4_u32m1:
case RISCV::BI__builtin_rvv_vredor_vs_u32m8_u32m1:
case RISCV::BI__builtin_rvv_vredor_vs_u32mf2_u32m1:
case RISCV::BI__builtin_rvv_vredor_vs_u64m1_u64m1:
case RISCV::BI__builtin_rvv_vredor_vs_u64m2_u64m1:
case RISCV::BI__builtin_rvv_vredor_vs_u64m4_u64m1:
case RISCV::BI__builtin_rvv_vredor_vs_u64m8_u64m1:
  ID = Intrinsic::riscv_vredor;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredor_vs_i8m1_i8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i8m2_i8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i8m4_i8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i8m8_i8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i8mf2_i8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i8mf4_i8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i8mf8_i8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i16m1_i16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i16m2_i16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i16m4_i16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i16m8_i16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i16mf2_i16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i16mf4_i16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i32m1_i32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i32m2_i32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i32m4_i32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i32m8_i32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i32mf2_i32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i64m1_i64m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i64m2_i64m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i64m4_i64m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_i64m8_i64m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u8m1_u8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u8m2_u8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u8m4_u8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u8m8_u8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u8mf2_u8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u8mf4_u8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u8mf8_u8m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u16m1_u16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u16m2_u16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u16m4_u16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u16m8_u16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u16mf2_u16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u16mf4_u16m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u32m1_u32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u32m2_u32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u32m4_u32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u32m8_u32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u32mf2_u32m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u64m1_u64m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u64m2_u64m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u64m4_u64m1_m:
case RISCV::BI__builtin_rvv_vredor_vs_u64m8_u64m1_m:
  ID = Intrinsic::riscv_vredor_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredsum_vs_i8m1_i8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i8m2_i8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i8m4_i8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i8m8_i8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i8mf2_i8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i8mf4_i8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i8mf8_i8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i16m1_i16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i16m2_i16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i16m4_i16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i16m8_i16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i16mf2_i16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i16mf4_i16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i32m1_i32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i32m2_i32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i32m4_i32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i32m8_i32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i32mf2_i32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i64m1_i64m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i64m2_i64m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i64m4_i64m1:
case RISCV::BI__builtin_rvv_vredsum_vs_i64m8_i64m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u8m1_u8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u8m2_u8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u8m4_u8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u8m8_u8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u8mf2_u8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u8mf4_u8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u8mf8_u8m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u16m1_u16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u16m2_u16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u16m4_u16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u16m8_u16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u16mf2_u16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u16mf4_u16m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u32m1_u32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u32m2_u32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u32m4_u32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u32m8_u32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u32mf2_u32m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u64m1_u64m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u64m2_u64m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u64m4_u64m1:
case RISCV::BI__builtin_rvv_vredsum_vs_u64m8_u64m1:
  ID = Intrinsic::riscv_vredsum;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredsum_vs_i8m1_i8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i8m2_i8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i8m4_i8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i8m8_i8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i8mf2_i8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i8mf4_i8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i8mf8_i8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i16m1_i16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i16m2_i16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i16m4_i16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i16m8_i16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i16mf2_i16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i16mf4_i16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i32m1_i32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i32m2_i32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i32m4_i32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i32m8_i32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i32mf2_i32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i64m1_i64m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i64m2_i64m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i64m4_i64m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_i64m8_i64m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u8m1_u8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u8m2_u8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u8m4_u8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u8m8_u8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u8mf2_u8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u8mf4_u8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u8mf8_u8m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u16m1_u16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u16m2_u16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u16m4_u16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u16m8_u16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u16mf2_u16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u16mf4_u16m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u32m1_u32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u32m2_u32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u32m4_u32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u32m8_u32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u32mf2_u32m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u64m1_u64m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u64m2_u64m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u64m4_u64m1_m:
case RISCV::BI__builtin_rvv_vredsum_vs_u64m8_u64m1_m:
  ID = Intrinsic::riscv_vredsum_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredxor_vs_i8m1_i8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i8m2_i8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i8m4_i8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i8m8_i8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i8mf2_i8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i8mf4_i8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i8mf8_i8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i16m1_i16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i16m2_i16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i16m4_i16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i16m8_i16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i16mf2_i16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i16mf4_i16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i32m1_i32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i32m2_i32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i32m4_i32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i32m8_i32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i32mf2_i32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i64m1_i64m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i64m2_i64m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i64m4_i64m1:
case RISCV::BI__builtin_rvv_vredxor_vs_i64m8_i64m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u8m1_u8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u8m2_u8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u8m4_u8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u8m8_u8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u8mf2_u8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u8mf4_u8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u8mf8_u8m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u16m1_u16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u16m2_u16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u16m4_u16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u16m8_u16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u16mf2_u16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u16mf4_u16m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u32m1_u32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u32m2_u32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u32m4_u32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u32m8_u32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u32mf2_u32m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u64m1_u64m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u64m2_u64m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u64m4_u64m1:
case RISCV::BI__builtin_rvv_vredxor_vs_u64m8_u64m1:
  ID = Intrinsic::riscv_vredxor;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vredxor_vs_i8m1_i8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i8m2_i8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i8m4_i8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i8m8_i8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i8mf2_i8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i8mf4_i8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i8mf8_i8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i16m1_i16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i16m2_i16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i16m4_i16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i16m8_i16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i16mf2_i16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i16mf4_i16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i32m1_i32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i32m2_i32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i32m4_i32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i32m8_i32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i32mf2_i32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i64m1_i64m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i64m2_i64m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i64m4_i64m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_i64m8_i64m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u8m1_u8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u8m2_u8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u8m4_u8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u8m8_u8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u8mf2_u8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u8mf4_u8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u8mf8_u8m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u16m1_u16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u16m2_u16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u16m4_u16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u16m8_u16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u16mf2_u16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u16mf4_u16m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u32m1_u32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u32m2_u32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u32m4_u32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u32m8_u32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u32mf2_u32m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u64m1_u64m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u64m2_u64m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u64m4_u64m1_m:
case RISCV::BI__builtin_rvv_vredxor_vs_u64m8_u64m1_m:
  ID = Intrinsic::riscv_vredxor_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrem_vv_i8m1:
case RISCV::BI__builtin_rvv_vrem_vv_i8m2:
case RISCV::BI__builtin_rvv_vrem_vv_i8m4:
case RISCV::BI__builtin_rvv_vrem_vv_i8m8:
case RISCV::BI__builtin_rvv_vrem_vv_i8mf2:
case RISCV::BI__builtin_rvv_vrem_vv_i8mf4:
case RISCV::BI__builtin_rvv_vrem_vv_i8mf8:
case RISCV::BI__builtin_rvv_vrem_vv_i16m1:
case RISCV::BI__builtin_rvv_vrem_vv_i16m2:
case RISCV::BI__builtin_rvv_vrem_vv_i16m4:
case RISCV::BI__builtin_rvv_vrem_vv_i16m8:
case RISCV::BI__builtin_rvv_vrem_vv_i16mf2:
case RISCV::BI__builtin_rvv_vrem_vv_i16mf4:
case RISCV::BI__builtin_rvv_vrem_vv_i32m1:
case RISCV::BI__builtin_rvv_vrem_vv_i32m2:
case RISCV::BI__builtin_rvv_vrem_vv_i32m4:
case RISCV::BI__builtin_rvv_vrem_vv_i32m8:
case RISCV::BI__builtin_rvv_vrem_vv_i32mf2:
case RISCV::BI__builtin_rvv_vrem_vv_i64m1:
case RISCV::BI__builtin_rvv_vrem_vv_i64m2:
case RISCV::BI__builtin_rvv_vrem_vv_i64m4:
case RISCV::BI__builtin_rvv_vrem_vv_i64m8:
case RISCV::BI__builtin_rvv_vrem_vx_i8m1:
case RISCV::BI__builtin_rvv_vrem_vx_i8m2:
case RISCV::BI__builtin_rvv_vrem_vx_i8m4:
case RISCV::BI__builtin_rvv_vrem_vx_i8m8:
case RISCV::BI__builtin_rvv_vrem_vx_i8mf2:
case RISCV::BI__builtin_rvv_vrem_vx_i8mf4:
case RISCV::BI__builtin_rvv_vrem_vx_i8mf8:
case RISCV::BI__builtin_rvv_vrem_vx_i16m1:
case RISCV::BI__builtin_rvv_vrem_vx_i16m2:
case RISCV::BI__builtin_rvv_vrem_vx_i16m4:
case RISCV::BI__builtin_rvv_vrem_vx_i16m8:
case RISCV::BI__builtin_rvv_vrem_vx_i16mf2:
case RISCV::BI__builtin_rvv_vrem_vx_i16mf4:
case RISCV::BI__builtin_rvv_vrem_vx_i32m1:
case RISCV::BI__builtin_rvv_vrem_vx_i32m2:
case RISCV::BI__builtin_rvv_vrem_vx_i32m4:
case RISCV::BI__builtin_rvv_vrem_vx_i32m8:
case RISCV::BI__builtin_rvv_vrem_vx_i32mf2:
case RISCV::BI__builtin_rvv_vrem_vx_i64m1:
case RISCV::BI__builtin_rvv_vrem_vx_i64m2:
case RISCV::BI__builtin_rvv_vrem_vx_i64m4:
case RISCV::BI__builtin_rvv_vrem_vx_i64m8:
  ID = Intrinsic::riscv_vrem;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrem_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vrem_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vrem_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vrem_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vrem_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vrem_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vrem_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vrem_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vrem_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vrem_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vrem_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vrem_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vrem_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vrem_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vrem_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vrem_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vrem_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vrem_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vrem_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vrem_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vrem_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vrem_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vrem_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vrem_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vrem_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vrem_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vrem_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vrem_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vrem_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vrem_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vrem_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vrem_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vrem_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vrem_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vrem_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vrem_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vrem_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vrem_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vrem_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vrem_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vrem_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vrem_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vrem_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vrem_vx_i64m8_m:
  ID = Intrinsic::riscv_vrem_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vremu_vv_u8m1:
case RISCV::BI__builtin_rvv_vremu_vv_u8m2:
case RISCV::BI__builtin_rvv_vremu_vv_u8m4:
case RISCV::BI__builtin_rvv_vremu_vv_u8m8:
case RISCV::BI__builtin_rvv_vremu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vremu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vremu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vremu_vv_u16m1:
case RISCV::BI__builtin_rvv_vremu_vv_u16m2:
case RISCV::BI__builtin_rvv_vremu_vv_u16m4:
case RISCV::BI__builtin_rvv_vremu_vv_u16m8:
case RISCV::BI__builtin_rvv_vremu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vremu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vremu_vv_u32m1:
case RISCV::BI__builtin_rvv_vremu_vv_u32m2:
case RISCV::BI__builtin_rvv_vremu_vv_u32m4:
case RISCV::BI__builtin_rvv_vremu_vv_u32m8:
case RISCV::BI__builtin_rvv_vremu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vremu_vv_u64m1:
case RISCV::BI__builtin_rvv_vremu_vv_u64m2:
case RISCV::BI__builtin_rvv_vremu_vv_u64m4:
case RISCV::BI__builtin_rvv_vremu_vv_u64m8:
case RISCV::BI__builtin_rvv_vremu_vx_u8m1:
case RISCV::BI__builtin_rvv_vremu_vx_u8m2:
case RISCV::BI__builtin_rvv_vremu_vx_u8m4:
case RISCV::BI__builtin_rvv_vremu_vx_u8m8:
case RISCV::BI__builtin_rvv_vremu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vremu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vremu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vremu_vx_u16m1:
case RISCV::BI__builtin_rvv_vremu_vx_u16m2:
case RISCV::BI__builtin_rvv_vremu_vx_u16m4:
case RISCV::BI__builtin_rvv_vremu_vx_u16m8:
case RISCV::BI__builtin_rvv_vremu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vremu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vremu_vx_u32m1:
case RISCV::BI__builtin_rvv_vremu_vx_u32m2:
case RISCV::BI__builtin_rvv_vremu_vx_u32m4:
case RISCV::BI__builtin_rvv_vremu_vx_u32m8:
case RISCV::BI__builtin_rvv_vremu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vremu_vx_u64m1:
case RISCV::BI__builtin_rvv_vremu_vx_u64m2:
case RISCV::BI__builtin_rvv_vremu_vx_u64m4:
case RISCV::BI__builtin_rvv_vremu_vx_u64m8:
  ID = Intrinsic::riscv_vremu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vremu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vremu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vremu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vremu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vremu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vremu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vremu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vremu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vremu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vremu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vremu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vremu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vremu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vremu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vremu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vremu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vremu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vremu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vremu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vremu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vremu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vremu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vremu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vremu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vremu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vremu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vremu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vremu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vremu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vremu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vremu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vremu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vremu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vremu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vremu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vremu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vremu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vremu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vremu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vremu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vremu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vremu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vremu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vremu_vx_u64m8_m:
  ID = Intrinsic::riscv_vremu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrgather_vv_i8m1:
case RISCV::BI__builtin_rvv_vrgather_vv_i8m2:
case RISCV::BI__builtin_rvv_vrgather_vv_i8m4:
case RISCV::BI__builtin_rvv_vrgather_vv_i8m8:
case RISCV::BI__builtin_rvv_vrgather_vv_i8mf2:
case RISCV::BI__builtin_rvv_vrgather_vv_i8mf4:
case RISCV::BI__builtin_rvv_vrgather_vv_i8mf8:
case RISCV::BI__builtin_rvv_vrgather_vv_i16m1:
case RISCV::BI__builtin_rvv_vrgather_vv_i16m2:
case RISCV::BI__builtin_rvv_vrgather_vv_i16m4:
case RISCV::BI__builtin_rvv_vrgather_vv_i16m8:
case RISCV::BI__builtin_rvv_vrgather_vv_i16mf2:
case RISCV::BI__builtin_rvv_vrgather_vv_i16mf4:
case RISCV::BI__builtin_rvv_vrgather_vv_i32m1:
case RISCV::BI__builtin_rvv_vrgather_vv_i32m2:
case RISCV::BI__builtin_rvv_vrgather_vv_i32m4:
case RISCV::BI__builtin_rvv_vrgather_vv_i32m8:
case RISCV::BI__builtin_rvv_vrgather_vv_i32mf2:
case RISCV::BI__builtin_rvv_vrgather_vv_i64m1:
case RISCV::BI__builtin_rvv_vrgather_vv_i64m2:
case RISCV::BI__builtin_rvv_vrgather_vv_i64m4:
case RISCV::BI__builtin_rvv_vrgather_vv_i64m8:
case RISCV::BI__builtin_rvv_vrgather_vv_f16m1:
case RISCV::BI__builtin_rvv_vrgather_vv_f16m2:
case RISCV::BI__builtin_rvv_vrgather_vv_f16m4:
case RISCV::BI__builtin_rvv_vrgather_vv_f16m8:
case RISCV::BI__builtin_rvv_vrgather_vv_f16mf2:
case RISCV::BI__builtin_rvv_vrgather_vv_f16mf4:
case RISCV::BI__builtin_rvv_vrgather_vv_f32m1:
case RISCV::BI__builtin_rvv_vrgather_vv_f32m2:
case RISCV::BI__builtin_rvv_vrgather_vv_f32m4:
case RISCV::BI__builtin_rvv_vrgather_vv_f32m8:
case RISCV::BI__builtin_rvv_vrgather_vv_f32mf2:
case RISCV::BI__builtin_rvv_vrgather_vv_f64m1:
case RISCV::BI__builtin_rvv_vrgather_vv_f64m2:
case RISCV::BI__builtin_rvv_vrgather_vv_f64m4:
case RISCV::BI__builtin_rvv_vrgather_vv_f64m8:
case RISCV::BI__builtin_rvv_vrgather_vv_u8m1:
case RISCV::BI__builtin_rvv_vrgather_vv_u8m2:
case RISCV::BI__builtin_rvv_vrgather_vv_u8m4:
case RISCV::BI__builtin_rvv_vrgather_vv_u8m8:
case RISCV::BI__builtin_rvv_vrgather_vv_u8mf2:
case RISCV::BI__builtin_rvv_vrgather_vv_u8mf4:
case RISCV::BI__builtin_rvv_vrgather_vv_u8mf8:
case RISCV::BI__builtin_rvv_vrgather_vv_u16m1:
case RISCV::BI__builtin_rvv_vrgather_vv_u16m2:
case RISCV::BI__builtin_rvv_vrgather_vv_u16m4:
case RISCV::BI__builtin_rvv_vrgather_vv_u16m8:
case RISCV::BI__builtin_rvv_vrgather_vv_u16mf2:
case RISCV::BI__builtin_rvv_vrgather_vv_u16mf4:
case RISCV::BI__builtin_rvv_vrgather_vv_u32m1:
case RISCV::BI__builtin_rvv_vrgather_vv_u32m2:
case RISCV::BI__builtin_rvv_vrgather_vv_u32m4:
case RISCV::BI__builtin_rvv_vrgather_vv_u32m8:
case RISCV::BI__builtin_rvv_vrgather_vv_u32mf2:
case RISCV::BI__builtin_rvv_vrgather_vv_u64m1:
case RISCV::BI__builtin_rvv_vrgather_vv_u64m2:
case RISCV::BI__builtin_rvv_vrgather_vv_u64m4:
case RISCV::BI__builtin_rvv_vrgather_vv_u64m8:
  ID = Intrinsic::riscv_vrgather_vv;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrgather_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vrgather_vv_u64m8_m:
  ID = Intrinsic::riscv_vrgather_vv_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrgather_vx_i8m1:
case RISCV::BI__builtin_rvv_vrgather_vx_i8m2:
case RISCV::BI__builtin_rvv_vrgather_vx_i8m4:
case RISCV::BI__builtin_rvv_vrgather_vx_i8m8:
case RISCV::BI__builtin_rvv_vrgather_vx_i8mf2:
case RISCV::BI__builtin_rvv_vrgather_vx_i8mf4:
case RISCV::BI__builtin_rvv_vrgather_vx_i8mf8:
case RISCV::BI__builtin_rvv_vrgather_vx_i16m1:
case RISCV::BI__builtin_rvv_vrgather_vx_i16m2:
case RISCV::BI__builtin_rvv_vrgather_vx_i16m4:
case RISCV::BI__builtin_rvv_vrgather_vx_i16m8:
case RISCV::BI__builtin_rvv_vrgather_vx_i16mf2:
case RISCV::BI__builtin_rvv_vrgather_vx_i16mf4:
case RISCV::BI__builtin_rvv_vrgather_vx_i32m1:
case RISCV::BI__builtin_rvv_vrgather_vx_i32m2:
case RISCV::BI__builtin_rvv_vrgather_vx_i32m4:
case RISCV::BI__builtin_rvv_vrgather_vx_i32m8:
case RISCV::BI__builtin_rvv_vrgather_vx_i32mf2:
case RISCV::BI__builtin_rvv_vrgather_vx_i64m1:
case RISCV::BI__builtin_rvv_vrgather_vx_i64m2:
case RISCV::BI__builtin_rvv_vrgather_vx_i64m4:
case RISCV::BI__builtin_rvv_vrgather_vx_i64m8:
case RISCV::BI__builtin_rvv_vrgather_vx_f16m1:
case RISCV::BI__builtin_rvv_vrgather_vx_f16m2:
case RISCV::BI__builtin_rvv_vrgather_vx_f16m4:
case RISCV::BI__builtin_rvv_vrgather_vx_f16m8:
case RISCV::BI__builtin_rvv_vrgather_vx_f16mf2:
case RISCV::BI__builtin_rvv_vrgather_vx_f16mf4:
case RISCV::BI__builtin_rvv_vrgather_vx_f32m1:
case RISCV::BI__builtin_rvv_vrgather_vx_f32m2:
case RISCV::BI__builtin_rvv_vrgather_vx_f32m4:
case RISCV::BI__builtin_rvv_vrgather_vx_f32m8:
case RISCV::BI__builtin_rvv_vrgather_vx_f32mf2:
case RISCV::BI__builtin_rvv_vrgather_vx_f64m1:
case RISCV::BI__builtin_rvv_vrgather_vx_f64m2:
case RISCV::BI__builtin_rvv_vrgather_vx_f64m4:
case RISCV::BI__builtin_rvv_vrgather_vx_f64m8:
case RISCV::BI__builtin_rvv_vrgather_vx_u8m1:
case RISCV::BI__builtin_rvv_vrgather_vx_u8m2:
case RISCV::BI__builtin_rvv_vrgather_vx_u8m4:
case RISCV::BI__builtin_rvv_vrgather_vx_u8m8:
case RISCV::BI__builtin_rvv_vrgather_vx_u8mf2:
case RISCV::BI__builtin_rvv_vrgather_vx_u8mf4:
case RISCV::BI__builtin_rvv_vrgather_vx_u8mf8:
case RISCV::BI__builtin_rvv_vrgather_vx_u16m1:
case RISCV::BI__builtin_rvv_vrgather_vx_u16m2:
case RISCV::BI__builtin_rvv_vrgather_vx_u16m4:
case RISCV::BI__builtin_rvv_vrgather_vx_u16m8:
case RISCV::BI__builtin_rvv_vrgather_vx_u16mf2:
case RISCV::BI__builtin_rvv_vrgather_vx_u16mf4:
case RISCV::BI__builtin_rvv_vrgather_vx_u32m1:
case RISCV::BI__builtin_rvv_vrgather_vx_u32m2:
case RISCV::BI__builtin_rvv_vrgather_vx_u32m4:
case RISCV::BI__builtin_rvv_vrgather_vx_u32m8:
case RISCV::BI__builtin_rvv_vrgather_vx_u32mf2:
case RISCV::BI__builtin_rvv_vrgather_vx_u64m1:
case RISCV::BI__builtin_rvv_vrgather_vx_u64m2:
case RISCV::BI__builtin_rvv_vrgather_vx_u64m4:
case RISCV::BI__builtin_rvv_vrgather_vx_u64m8:
  ID = Intrinsic::riscv_vrgather_vx;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrgather_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f16m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f16m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f16m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f16m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f16mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f16mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f32m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f32m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f32m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f32m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f32mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f64m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f64m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f64m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_f64m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vrgather_vx_u64m8_m:
  ID = Intrinsic::riscv_vrgather_vx_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8mf2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8mf4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8mf8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16m8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16mf2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16mf4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32m8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32mf2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i64m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i64m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i64m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i64m8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16m8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16mf2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16mf4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32m8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32mf2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f64m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f64m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f64m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f64m8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8mf2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8mf4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8mf8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16m8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16mf2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16mf4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32m8:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32mf2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u64m1:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u64m2:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u64m4:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u64m8:
  ID = Intrinsic::riscv_vrgatherei16_vv;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16m8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16mf2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f16mf4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32m8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f32mf2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f64m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f64m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f64m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_f64m8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vrgatherei16_vv_u64m8_m:
  ID = Intrinsic::riscv_vrgatherei16_vv_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vrsub_vx_i8m1:
case RISCV::BI__builtin_rvv_vrsub_vx_i8m2:
case RISCV::BI__builtin_rvv_vrsub_vx_i8m4:
case RISCV::BI__builtin_rvv_vrsub_vx_i8m8:
case RISCV::BI__builtin_rvv_vrsub_vx_i8mf2:
case RISCV::BI__builtin_rvv_vrsub_vx_i8mf4:
case RISCV::BI__builtin_rvv_vrsub_vx_i8mf8:
case RISCV::BI__builtin_rvv_vrsub_vx_i16m1:
case RISCV::BI__builtin_rvv_vrsub_vx_i16m2:
case RISCV::BI__builtin_rvv_vrsub_vx_i16m4:
case RISCV::BI__builtin_rvv_vrsub_vx_i16m8:
case RISCV::BI__builtin_rvv_vrsub_vx_i16mf2:
case RISCV::BI__builtin_rvv_vrsub_vx_i16mf4:
case RISCV::BI__builtin_rvv_vrsub_vx_i32m1:
case RISCV::BI__builtin_rvv_vrsub_vx_i32m2:
case RISCV::BI__builtin_rvv_vrsub_vx_i32m4:
case RISCV::BI__builtin_rvv_vrsub_vx_i32m8:
case RISCV::BI__builtin_rvv_vrsub_vx_i32mf2:
case RISCV::BI__builtin_rvv_vrsub_vx_i64m1:
case RISCV::BI__builtin_rvv_vrsub_vx_i64m2:
case RISCV::BI__builtin_rvv_vrsub_vx_i64m4:
case RISCV::BI__builtin_rvv_vrsub_vx_i64m8:
case RISCV::BI__builtin_rvv_vrsub_vx_u8m1:
case RISCV::BI__builtin_rvv_vrsub_vx_u8m2:
case RISCV::BI__builtin_rvv_vrsub_vx_u8m4:
case RISCV::BI__builtin_rvv_vrsub_vx_u8m8:
case RISCV::BI__builtin_rvv_vrsub_vx_u8mf2:
case RISCV::BI__builtin_rvv_vrsub_vx_u8mf4:
case RISCV::BI__builtin_rvv_vrsub_vx_u8mf8:
case RISCV::BI__builtin_rvv_vrsub_vx_u16m1:
case RISCV::BI__builtin_rvv_vrsub_vx_u16m2:
case RISCV::BI__builtin_rvv_vrsub_vx_u16m4:
case RISCV::BI__builtin_rvv_vrsub_vx_u16m8:
case RISCV::BI__builtin_rvv_vrsub_vx_u16mf2:
case RISCV::BI__builtin_rvv_vrsub_vx_u16mf4:
case RISCV::BI__builtin_rvv_vrsub_vx_u32m1:
case RISCV::BI__builtin_rvv_vrsub_vx_u32m2:
case RISCV::BI__builtin_rvv_vrsub_vx_u32m4:
case RISCV::BI__builtin_rvv_vrsub_vx_u32m8:
case RISCV::BI__builtin_rvv_vrsub_vx_u32mf2:
case RISCV::BI__builtin_rvv_vrsub_vx_u64m1:
case RISCV::BI__builtin_rvv_vrsub_vx_u64m2:
case RISCV::BI__builtin_rvv_vrsub_vx_u64m4:
case RISCV::BI__builtin_rvv_vrsub_vx_u64m8:
  ID = Intrinsic::riscv_vrsub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vneg_v_i8m1:
case RISCV::BI__builtin_rvv_vneg_v_i8m2:
case RISCV::BI__builtin_rvv_vneg_v_i8m4:
case RISCV::BI__builtin_rvv_vneg_v_i8m8:
case RISCV::BI__builtin_rvv_vneg_v_i8mf2:
case RISCV::BI__builtin_rvv_vneg_v_i8mf4:
case RISCV::BI__builtin_rvv_vneg_v_i8mf8:
case RISCV::BI__builtin_rvv_vneg_v_i16m1:
case RISCV::BI__builtin_rvv_vneg_v_i16m2:
case RISCV::BI__builtin_rvv_vneg_v_i16m4:
case RISCV::BI__builtin_rvv_vneg_v_i16m8:
case RISCV::BI__builtin_rvv_vneg_v_i16mf2:
case RISCV::BI__builtin_rvv_vneg_v_i16mf4:
case RISCV::BI__builtin_rvv_vneg_v_i32m1:
case RISCV::BI__builtin_rvv_vneg_v_i32m2:
case RISCV::BI__builtin_rvv_vneg_v_i32m4:
case RISCV::BI__builtin_rvv_vneg_v_i32m8:
case RISCV::BI__builtin_rvv_vneg_v_i32mf2:
case RISCV::BI__builtin_rvv_vneg_v_i64m1:
case RISCV::BI__builtin_rvv_vneg_v_i64m2:
case RISCV::BI__builtin_rvv_vneg_v_i64m4:
case RISCV::BI__builtin_rvv_vneg_v_i64m8:
  ID = Intrinsic::riscv_vrsub;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          cast<llvm::VectorType>(ResultType)->getElementType(),
                          Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1, llvm::Constant::getNullValue(IntrinsicTypes[1]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vrsub_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vrsub_vx_u64m8_m:
  ID = Intrinsic::riscv_vrsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vneg_v_i8m1_m:
case RISCV::BI__builtin_rvv_vneg_v_i8m2_m:
case RISCV::BI__builtin_rvv_vneg_v_i8m4_m:
case RISCV::BI__builtin_rvv_vneg_v_i8m8_m:
case RISCV::BI__builtin_rvv_vneg_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vneg_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vneg_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vneg_v_i16m1_m:
case RISCV::BI__builtin_rvv_vneg_v_i16m2_m:
case RISCV::BI__builtin_rvv_vneg_v_i16m4_m:
case RISCV::BI__builtin_rvv_vneg_v_i16m8_m:
case RISCV::BI__builtin_rvv_vneg_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vneg_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vneg_v_i32m1_m:
case RISCV::BI__builtin_rvv_vneg_v_i32m2_m:
case RISCV::BI__builtin_rvv_vneg_v_i32m4_m:
case RISCV::BI__builtin_rvv_vneg_v_i32m8_m:
case RISCV::BI__builtin_rvv_vneg_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vneg_v_i64m1_m:
case RISCV::BI__builtin_rvv_vneg_v_i64m2_m:
case RISCV::BI__builtin_rvv_vneg_v_i64m4_m:
case RISCV::BI__builtin_rvv_vneg_v_i64m8_m:
  ID = Intrinsic::riscv_vrsub_mask;

      {
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        // maskedoff, op1, mask, vl
        IntrinsicTypes = {ResultType,
                          cast<llvm::VectorType>(ResultType)->getElementType(),
                          Ops[3]->getType()};
        Ops.insert(Ops.begin() + 2, llvm::Constant::getNullValue(IntrinsicTypes[1]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vsadd_vv_i8m1:
case RISCV::BI__builtin_rvv_vsadd_vv_i8m2:
case RISCV::BI__builtin_rvv_vsadd_vv_i8m4:
case RISCV::BI__builtin_rvv_vsadd_vv_i8m8:
case RISCV::BI__builtin_rvv_vsadd_vv_i8mf2:
case RISCV::BI__builtin_rvv_vsadd_vv_i8mf4:
case RISCV::BI__builtin_rvv_vsadd_vv_i8mf8:
case RISCV::BI__builtin_rvv_vsadd_vv_i16m1:
case RISCV::BI__builtin_rvv_vsadd_vv_i16m2:
case RISCV::BI__builtin_rvv_vsadd_vv_i16m4:
case RISCV::BI__builtin_rvv_vsadd_vv_i16m8:
case RISCV::BI__builtin_rvv_vsadd_vv_i16mf2:
case RISCV::BI__builtin_rvv_vsadd_vv_i16mf4:
case RISCV::BI__builtin_rvv_vsadd_vv_i32m1:
case RISCV::BI__builtin_rvv_vsadd_vv_i32m2:
case RISCV::BI__builtin_rvv_vsadd_vv_i32m4:
case RISCV::BI__builtin_rvv_vsadd_vv_i32m8:
case RISCV::BI__builtin_rvv_vsadd_vv_i32mf2:
case RISCV::BI__builtin_rvv_vsadd_vv_i64m1:
case RISCV::BI__builtin_rvv_vsadd_vv_i64m2:
case RISCV::BI__builtin_rvv_vsadd_vv_i64m4:
case RISCV::BI__builtin_rvv_vsadd_vv_i64m8:
case RISCV::BI__builtin_rvv_vsadd_vx_i8m1:
case RISCV::BI__builtin_rvv_vsadd_vx_i8m2:
case RISCV::BI__builtin_rvv_vsadd_vx_i8m4:
case RISCV::BI__builtin_rvv_vsadd_vx_i8m8:
case RISCV::BI__builtin_rvv_vsadd_vx_i8mf2:
case RISCV::BI__builtin_rvv_vsadd_vx_i8mf4:
case RISCV::BI__builtin_rvv_vsadd_vx_i8mf8:
case RISCV::BI__builtin_rvv_vsadd_vx_i16m1:
case RISCV::BI__builtin_rvv_vsadd_vx_i16m2:
case RISCV::BI__builtin_rvv_vsadd_vx_i16m4:
case RISCV::BI__builtin_rvv_vsadd_vx_i16m8:
case RISCV::BI__builtin_rvv_vsadd_vx_i16mf2:
case RISCV::BI__builtin_rvv_vsadd_vx_i16mf4:
case RISCV::BI__builtin_rvv_vsadd_vx_i32m1:
case RISCV::BI__builtin_rvv_vsadd_vx_i32m2:
case RISCV::BI__builtin_rvv_vsadd_vx_i32m4:
case RISCV::BI__builtin_rvv_vsadd_vx_i32m8:
case RISCV::BI__builtin_rvv_vsadd_vx_i32mf2:
case RISCV::BI__builtin_rvv_vsadd_vx_i64m1:
case RISCV::BI__builtin_rvv_vsadd_vx_i64m2:
case RISCV::BI__builtin_rvv_vsadd_vx_i64m4:
case RISCV::BI__builtin_rvv_vsadd_vx_i64m8:
  ID = Intrinsic::riscv_vsadd;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsadd_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vsadd_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vsadd_vx_i64m8_m:
  ID = Intrinsic::riscv_vsadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsaddu_vv_u8m1:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8m2:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8m4:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8m8:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16m1:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16m2:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16m4:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16m8:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32m1:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32m2:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32m4:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32m8:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vsaddu_vv_u64m1:
case RISCV::BI__builtin_rvv_vsaddu_vv_u64m2:
case RISCV::BI__builtin_rvv_vsaddu_vv_u64m4:
case RISCV::BI__builtin_rvv_vsaddu_vv_u64m8:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8m1:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8m2:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8m4:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8m8:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16m1:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16m2:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16m4:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16m8:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32m1:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32m2:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32m4:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32m8:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vsaddu_vx_u64m1:
case RISCV::BI__builtin_rvv_vsaddu_vx_u64m2:
case RISCV::BI__builtin_rvv_vsaddu_vx_u64m4:
case RISCV::BI__builtin_rvv_vsaddu_vx_u64m8:
  ID = Intrinsic::riscv_vsaddu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsaddu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vsaddu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vsaddu_vx_u64m8_m:
  ID = Intrinsic::riscv_vsaddu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsbc_vvm_i8m1:
case RISCV::BI__builtin_rvv_vsbc_vvm_i8m2:
case RISCV::BI__builtin_rvv_vsbc_vvm_i8m4:
case RISCV::BI__builtin_rvv_vsbc_vvm_i8m8:
case RISCV::BI__builtin_rvv_vsbc_vvm_i8mf2:
case RISCV::BI__builtin_rvv_vsbc_vvm_i8mf4:
case RISCV::BI__builtin_rvv_vsbc_vvm_i8mf8:
case RISCV::BI__builtin_rvv_vsbc_vvm_i16m1:
case RISCV::BI__builtin_rvv_vsbc_vvm_i16m2:
case RISCV::BI__builtin_rvv_vsbc_vvm_i16m4:
case RISCV::BI__builtin_rvv_vsbc_vvm_i16m8:
case RISCV::BI__builtin_rvv_vsbc_vvm_i16mf2:
case RISCV::BI__builtin_rvv_vsbc_vvm_i16mf4:
case RISCV::BI__builtin_rvv_vsbc_vvm_i32m1:
case RISCV::BI__builtin_rvv_vsbc_vvm_i32m2:
case RISCV::BI__builtin_rvv_vsbc_vvm_i32m4:
case RISCV::BI__builtin_rvv_vsbc_vvm_i32m8:
case RISCV::BI__builtin_rvv_vsbc_vvm_i32mf2:
case RISCV::BI__builtin_rvv_vsbc_vvm_i64m1:
case RISCV::BI__builtin_rvv_vsbc_vvm_i64m2:
case RISCV::BI__builtin_rvv_vsbc_vvm_i64m4:
case RISCV::BI__builtin_rvv_vsbc_vvm_i64m8:
case RISCV::BI__builtin_rvv_vsbc_vxm_i8m1:
case RISCV::BI__builtin_rvv_vsbc_vxm_i8m2:
case RISCV::BI__builtin_rvv_vsbc_vxm_i8m4:
case RISCV::BI__builtin_rvv_vsbc_vxm_i8m8:
case RISCV::BI__builtin_rvv_vsbc_vxm_i8mf2:
case RISCV::BI__builtin_rvv_vsbc_vxm_i8mf4:
case RISCV::BI__builtin_rvv_vsbc_vxm_i8mf8:
case RISCV::BI__builtin_rvv_vsbc_vxm_i16m1:
case RISCV::BI__builtin_rvv_vsbc_vxm_i16m2:
case RISCV::BI__builtin_rvv_vsbc_vxm_i16m4:
case RISCV::BI__builtin_rvv_vsbc_vxm_i16m8:
case RISCV::BI__builtin_rvv_vsbc_vxm_i16mf2:
case RISCV::BI__builtin_rvv_vsbc_vxm_i16mf4:
case RISCV::BI__builtin_rvv_vsbc_vxm_i32m1:
case RISCV::BI__builtin_rvv_vsbc_vxm_i32m2:
case RISCV::BI__builtin_rvv_vsbc_vxm_i32m4:
case RISCV::BI__builtin_rvv_vsbc_vxm_i32m8:
case RISCV::BI__builtin_rvv_vsbc_vxm_i32mf2:
case RISCV::BI__builtin_rvv_vsbc_vxm_i64m1:
case RISCV::BI__builtin_rvv_vsbc_vxm_i64m2:
case RISCV::BI__builtin_rvv_vsbc_vxm_i64m4:
case RISCV::BI__builtin_rvv_vsbc_vxm_i64m8:
case RISCV::BI__builtin_rvv_vsbc_vvm_u8m1:
case RISCV::BI__builtin_rvv_vsbc_vvm_u8m2:
case RISCV::BI__builtin_rvv_vsbc_vvm_u8m4:
case RISCV::BI__builtin_rvv_vsbc_vvm_u8m8:
case RISCV::BI__builtin_rvv_vsbc_vvm_u8mf2:
case RISCV::BI__builtin_rvv_vsbc_vvm_u8mf4:
case RISCV::BI__builtin_rvv_vsbc_vvm_u8mf8:
case RISCV::BI__builtin_rvv_vsbc_vvm_u16m1:
case RISCV::BI__builtin_rvv_vsbc_vvm_u16m2:
case RISCV::BI__builtin_rvv_vsbc_vvm_u16m4:
case RISCV::BI__builtin_rvv_vsbc_vvm_u16m8:
case RISCV::BI__builtin_rvv_vsbc_vvm_u16mf2:
case RISCV::BI__builtin_rvv_vsbc_vvm_u16mf4:
case RISCV::BI__builtin_rvv_vsbc_vvm_u32m1:
case RISCV::BI__builtin_rvv_vsbc_vvm_u32m2:
case RISCV::BI__builtin_rvv_vsbc_vvm_u32m4:
case RISCV::BI__builtin_rvv_vsbc_vvm_u32m8:
case RISCV::BI__builtin_rvv_vsbc_vvm_u32mf2:
case RISCV::BI__builtin_rvv_vsbc_vvm_u64m1:
case RISCV::BI__builtin_rvv_vsbc_vvm_u64m2:
case RISCV::BI__builtin_rvv_vsbc_vvm_u64m4:
case RISCV::BI__builtin_rvv_vsbc_vvm_u64m8:
case RISCV::BI__builtin_rvv_vsbc_vxm_u8m1:
case RISCV::BI__builtin_rvv_vsbc_vxm_u8m2:
case RISCV::BI__builtin_rvv_vsbc_vxm_u8m4:
case RISCV::BI__builtin_rvv_vsbc_vxm_u8m8:
case RISCV::BI__builtin_rvv_vsbc_vxm_u8mf2:
case RISCV::BI__builtin_rvv_vsbc_vxm_u8mf4:
case RISCV::BI__builtin_rvv_vsbc_vxm_u8mf8:
case RISCV::BI__builtin_rvv_vsbc_vxm_u16m1:
case RISCV::BI__builtin_rvv_vsbc_vxm_u16m2:
case RISCV::BI__builtin_rvv_vsbc_vxm_u16m4:
case RISCV::BI__builtin_rvv_vsbc_vxm_u16m8:
case RISCV::BI__builtin_rvv_vsbc_vxm_u16mf2:
case RISCV::BI__builtin_rvv_vsbc_vxm_u16mf4:
case RISCV::BI__builtin_rvv_vsbc_vxm_u32m1:
case RISCV::BI__builtin_rvv_vsbc_vxm_u32m2:
case RISCV::BI__builtin_rvv_vsbc_vxm_u32m4:
case RISCV::BI__builtin_rvv_vsbc_vxm_u32m8:
case RISCV::BI__builtin_rvv_vsbc_vxm_u32mf2:
case RISCV::BI__builtin_rvv_vsbc_vxm_u64m1:
case RISCV::BI__builtin_rvv_vsbc_vxm_u64m2:
case RISCV::BI__builtin_rvv_vsbc_vxm_u64m4:
case RISCV::BI__builtin_rvv_vsbc_vxm_u64m8:
  ID = Intrinsic::riscv_vsbc;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vse8_v_i8m1:
case RISCV::BI__builtin_rvv_vse8_v_i8m2:
case RISCV::BI__builtin_rvv_vse8_v_i8m4:
case RISCV::BI__builtin_rvv_vse8_v_i8m8:
case RISCV::BI__builtin_rvv_vse8_v_i8mf2:
case RISCV::BI__builtin_rvv_vse8_v_i8mf4:
case RISCV::BI__builtin_rvv_vse8_v_i8mf8:
case RISCV::BI__builtin_rvv_vse8_v_u8m1:
case RISCV::BI__builtin_rvv_vse8_v_u8m2:
case RISCV::BI__builtin_rvv_vse8_v_u8m4:
case RISCV::BI__builtin_rvv_vse8_v_u8m8:
case RISCV::BI__builtin_rvv_vse8_v_u8mf2:
case RISCV::BI__builtin_rvv_vse8_v_u8mf4:
case RISCV::BI__builtin_rvv_vse8_v_u8mf8:
case RISCV::BI__builtin_rvv_vse16_v_i16m1:
case RISCV::BI__builtin_rvv_vse16_v_i16m2:
case RISCV::BI__builtin_rvv_vse16_v_i16m4:
case RISCV::BI__builtin_rvv_vse16_v_i16m8:
case RISCV::BI__builtin_rvv_vse16_v_i16mf2:
case RISCV::BI__builtin_rvv_vse16_v_i16mf4:
case RISCV::BI__builtin_rvv_vse16_v_u16m1:
case RISCV::BI__builtin_rvv_vse16_v_u16m2:
case RISCV::BI__builtin_rvv_vse16_v_u16m4:
case RISCV::BI__builtin_rvv_vse16_v_u16m8:
case RISCV::BI__builtin_rvv_vse16_v_u16mf2:
case RISCV::BI__builtin_rvv_vse16_v_u16mf4:
case RISCV::BI__builtin_rvv_vse16_v_f16m1:
case RISCV::BI__builtin_rvv_vse16_v_f16m2:
case RISCV::BI__builtin_rvv_vse16_v_f16m4:
case RISCV::BI__builtin_rvv_vse16_v_f16m8:
case RISCV::BI__builtin_rvv_vse16_v_f16mf2:
case RISCV::BI__builtin_rvv_vse16_v_f16mf4:
case RISCV::BI__builtin_rvv_vse32_v_i32m1:
case RISCV::BI__builtin_rvv_vse32_v_i32m2:
case RISCV::BI__builtin_rvv_vse32_v_i32m4:
case RISCV::BI__builtin_rvv_vse32_v_i32m8:
case RISCV::BI__builtin_rvv_vse32_v_i32mf2:
case RISCV::BI__builtin_rvv_vse32_v_u32m1:
case RISCV::BI__builtin_rvv_vse32_v_u32m2:
case RISCV::BI__builtin_rvv_vse32_v_u32m4:
case RISCV::BI__builtin_rvv_vse32_v_u32m8:
case RISCV::BI__builtin_rvv_vse32_v_u32mf2:
case RISCV::BI__builtin_rvv_vse32_v_f32m1:
case RISCV::BI__builtin_rvv_vse32_v_f32m2:
case RISCV::BI__builtin_rvv_vse32_v_f32m4:
case RISCV::BI__builtin_rvv_vse32_v_f32m8:
case RISCV::BI__builtin_rvv_vse32_v_f32mf2:
case RISCV::BI__builtin_rvv_vse64_v_i64m1:
case RISCV::BI__builtin_rvv_vse64_v_i64m2:
case RISCV::BI__builtin_rvv_vse64_v_i64m4:
case RISCV::BI__builtin_rvv_vse64_v_i64m8:
case RISCV::BI__builtin_rvv_vse64_v_u64m1:
case RISCV::BI__builtin_rvv_vse64_v_u64m2:
case RISCV::BI__builtin_rvv_vse64_v_u64m4:
case RISCV::BI__builtin_rvv_vse64_v_u64m8:
case RISCV::BI__builtin_rvv_vse64_v_f64m1:
case RISCV::BI__builtin_rvv_vse64_v_f64m2:
case RISCV::BI__builtin_rvv_vse64_v_f64m4:
case RISCV::BI__builtin_rvv_vse64_v_f64m8:
  ID = Intrinsic::riscv_vse;

      // Builtin: (ptr, value, vl). Intrinsic: (value, ptr, vl)
      std::swap(Ops[0], Ops[1]);
      Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType()->getPointerTo());
      IntrinsicTypes = {Ops[0]->getType(), Ops[2]->getType()};
    break;
case RISCV::BI__builtin_rvv_vse1_v_b8:
case RISCV::BI__builtin_rvv_vse1_v_b4:
case RISCV::BI__builtin_rvv_vse1_v_b2:
case RISCV::BI__builtin_rvv_vse1_v_b1:
case RISCV::BI__builtin_rvv_vse1_v_b16:
case RISCV::BI__builtin_rvv_vse1_v_b32:
case RISCV::BI__builtin_rvv_vse1_v_b64:
  ID = Intrinsic::riscv_vse1;

      // Builtin: (ptr, value, vl). Intrinsic: (value, ptr, vl)
      std::swap(Ops[0], Ops[1]);
      Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType()->getPointerTo());
      IntrinsicTypes = {Ops[0]->getType(), Ops[2]->getType()};
    break;
case RISCV::BI__builtin_rvv_vse8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vse8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vse8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vse8_v_i8m8_m:
case RISCV::BI__builtin_rvv_vse8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vse8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vse8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vse8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vse8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vse8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vse8_v_u8m8_m:
case RISCV::BI__builtin_rvv_vse8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vse8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vse8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vse16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vse16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vse16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vse16_v_i16m8_m:
case RISCV::BI__builtin_rvv_vse16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vse16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vse16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vse16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vse16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vse16_v_u16m8_m:
case RISCV::BI__builtin_rvv_vse16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vse16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vse16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vse16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vse16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vse16_v_f16m8_m:
case RISCV::BI__builtin_rvv_vse16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vse16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vse32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vse32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vse32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vse32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vse32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vse32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vse32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vse32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vse32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vse32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vse32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vse32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vse32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vse32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vse32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vse64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vse64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vse64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vse64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vse64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vse64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vse64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vse64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vse64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vse64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vse64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vse64_v_f64m8_m:
  ID = Intrinsic::riscv_vse_mask;

      // Builtin: (mask, ptr, value, vl). Intrinsic: (value, ptr, mask, vl)
      std::swap(Ops[0], Ops[2]);
      Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType()->getPointerTo());
      IntrinsicTypes = {Ops[0]->getType(), Ops[3]->getType()};
    break;
case RISCV::BI__builtin_rvv_vsetvli:
  ID = Intrinsic::riscv_vsetvli;
IntrinsicTypes = {ResultType};break;
case RISCV::BI__builtin_rvv_vsetvlimax:
  ID = Intrinsic::riscv_vsetvlimax;
IntrinsicTypes = {ResultType};break;
case RISCV::BI__builtin_rvv_vsext_vf2_i16mf4:
case RISCV::BI__builtin_rvv_vsext_vf2_i16mf2:
case RISCV::BI__builtin_rvv_vsext_vf2_i16m1:
case RISCV::BI__builtin_rvv_vsext_vf2_i16m2:
case RISCV::BI__builtin_rvv_vsext_vf2_i16m4:
case RISCV::BI__builtin_rvv_vsext_vf2_i16m8:
case RISCV::BI__builtin_rvv_vsext_vf2_i32mf2:
case RISCV::BI__builtin_rvv_vsext_vf2_i32m1:
case RISCV::BI__builtin_rvv_vsext_vf2_i32m2:
case RISCV::BI__builtin_rvv_vsext_vf2_i32m4:
case RISCV::BI__builtin_rvv_vsext_vf2_i32m8:
case RISCV::BI__builtin_rvv_vsext_vf2_i64m1:
case RISCV::BI__builtin_rvv_vsext_vf2_i64m2:
case RISCV::BI__builtin_rvv_vsext_vf2_i64m4:
case RISCV::BI__builtin_rvv_vsext_vf2_i64m8:
case RISCV::BI__builtin_rvv_vsext_vf4_i32mf2:
case RISCV::BI__builtin_rvv_vsext_vf4_i32m1:
case RISCV::BI__builtin_rvv_vsext_vf4_i32m2:
case RISCV::BI__builtin_rvv_vsext_vf4_i32m4:
case RISCV::BI__builtin_rvv_vsext_vf4_i32m8:
case RISCV::BI__builtin_rvv_vsext_vf4_i64m1:
case RISCV::BI__builtin_rvv_vsext_vf4_i64m2:
case RISCV::BI__builtin_rvv_vsext_vf4_i64m4:
case RISCV::BI__builtin_rvv_vsext_vf4_i64m8:
case RISCV::BI__builtin_rvv_vsext_vf8_i64m1:
case RISCV::BI__builtin_rvv_vsext_vf8_i64m2:
case RISCV::BI__builtin_rvv_vsext_vf8_i64m4:
case RISCV::BI__builtin_rvv_vsext_vf8_i64m8:
  ID = Intrinsic::riscv_vsext;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsext_vf2_i16mf4_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i16mf2_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i16m1_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i16m2_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i16m4_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i16m8_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i32mf2_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i32m1_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i32m2_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i32m4_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i32m8_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i64m1_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i64m2_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i64m4_m:
case RISCV::BI__builtin_rvv_vsext_vf2_i64m8_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i32mf2_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i32m1_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i32m2_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i32m4_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i32m8_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i64m1_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i64m2_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i64m4_m:
case RISCV::BI__builtin_rvv_vsext_vf4_i64m8_m:
case RISCV::BI__builtin_rvv_vsext_vf8_i64m1_m:
case RISCV::BI__builtin_rvv_vsext_vf8_i64m2_m:
case RISCV::BI__builtin_rvv_vsext_vf8_i64m4_m:
case RISCV::BI__builtin_rvv_vsext_vf8_i64m8_m:
  ID = Intrinsic::riscv_vsext_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vslide1down_vx_i8m1:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8m2:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8m4:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8m8:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8mf2:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8mf4:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8mf8:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16m1:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16m2:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16m4:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16m8:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16mf2:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16mf4:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32m1:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32m2:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32m4:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32m8:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32mf2:
case RISCV::BI__builtin_rvv_vslide1down_vx_i64m1:
case RISCV::BI__builtin_rvv_vslide1down_vx_i64m2:
case RISCV::BI__builtin_rvv_vslide1down_vx_i64m4:
case RISCV::BI__builtin_rvv_vslide1down_vx_i64m8:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8m1:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8m2:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8m4:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8m8:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8mf2:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8mf4:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8mf8:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16m1:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16m2:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16m4:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16m8:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16mf2:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16mf4:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32m1:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32m2:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32m4:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32m8:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32mf2:
case RISCV::BI__builtin_rvv_vslide1down_vx_u64m1:
case RISCV::BI__builtin_rvv_vslide1down_vx_u64m2:
case RISCV::BI__builtin_rvv_vslide1down_vx_u64m4:
case RISCV::BI__builtin_rvv_vslide1down_vx_u64m8:
  ID = Intrinsic::riscv_vslide1down;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vslide1down_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vslide1down_vx_u64m8_m:
  ID = Intrinsic::riscv_vslide1down_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vslide1up_vx_i8m1:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8m2:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8m4:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8m8:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8mf2:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8mf4:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8mf8:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16m1:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16m2:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16m4:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16m8:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16mf2:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16mf4:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32m1:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32m2:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32m4:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32m8:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32mf2:
case RISCV::BI__builtin_rvv_vslide1up_vx_i64m1:
case RISCV::BI__builtin_rvv_vslide1up_vx_i64m2:
case RISCV::BI__builtin_rvv_vslide1up_vx_i64m4:
case RISCV::BI__builtin_rvv_vslide1up_vx_i64m8:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8m1:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8m2:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8m4:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8m8:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8mf2:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8mf4:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8mf8:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16m1:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16m2:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16m4:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16m8:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16mf2:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16mf4:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32m1:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32m2:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32m4:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32m8:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32mf2:
case RISCV::BI__builtin_rvv_vslide1up_vx_u64m1:
case RISCV::BI__builtin_rvv_vslide1up_vx_u64m2:
case RISCV::BI__builtin_rvv_vslide1up_vx_u64m4:
case RISCV::BI__builtin_rvv_vslide1up_vx_u64m8:
  ID = Intrinsic::riscv_vslide1up;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vslide1up_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vslide1up_vx_u64m8_m:
  ID = Intrinsic::riscv_vslide1up_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vslidedown_vx_i8m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8mf2:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8mf4:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8mf8:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16mf2:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16mf4:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32mf2:
case RISCV::BI__builtin_rvv_vslidedown_vx_i64m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_i64m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_i64m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_i64m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16mf2:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16mf4:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32mf2:
case RISCV::BI__builtin_rvv_vslidedown_vx_f64m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_f64m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_f64m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_f64m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8mf2:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8mf4:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8mf8:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16mf2:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16mf4:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32m8:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32mf2:
case RISCV::BI__builtin_rvv_vslidedown_vx_u64m1:
case RISCV::BI__builtin_rvv_vslidedown_vx_u64m2:
case RISCV::BI__builtin_rvv_vslidedown_vx_u64m4:
case RISCV::BI__builtin_rvv_vslidedown_vx_u64m8:
  ID = Intrinsic::riscv_vslidedown;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vslidedown_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16mf2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f16mf4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f32mf2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f64m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f64m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f64m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_f64m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vslidedown_vx_u64m8_m:
  ID = Intrinsic::riscv_vslidedown_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vslideup_vx_i8m1:
case RISCV::BI__builtin_rvv_vslideup_vx_i8m2:
case RISCV::BI__builtin_rvv_vslideup_vx_i8m4:
case RISCV::BI__builtin_rvv_vslideup_vx_i8m8:
case RISCV::BI__builtin_rvv_vslideup_vx_i8mf2:
case RISCV::BI__builtin_rvv_vslideup_vx_i8mf4:
case RISCV::BI__builtin_rvv_vslideup_vx_i8mf8:
case RISCV::BI__builtin_rvv_vslideup_vx_i16m1:
case RISCV::BI__builtin_rvv_vslideup_vx_i16m2:
case RISCV::BI__builtin_rvv_vslideup_vx_i16m4:
case RISCV::BI__builtin_rvv_vslideup_vx_i16m8:
case RISCV::BI__builtin_rvv_vslideup_vx_i16mf2:
case RISCV::BI__builtin_rvv_vslideup_vx_i16mf4:
case RISCV::BI__builtin_rvv_vslideup_vx_i32m1:
case RISCV::BI__builtin_rvv_vslideup_vx_i32m2:
case RISCV::BI__builtin_rvv_vslideup_vx_i32m4:
case RISCV::BI__builtin_rvv_vslideup_vx_i32m8:
case RISCV::BI__builtin_rvv_vslideup_vx_i32mf2:
case RISCV::BI__builtin_rvv_vslideup_vx_i64m1:
case RISCV::BI__builtin_rvv_vslideup_vx_i64m2:
case RISCV::BI__builtin_rvv_vslideup_vx_i64m4:
case RISCV::BI__builtin_rvv_vslideup_vx_i64m8:
case RISCV::BI__builtin_rvv_vslideup_vx_f16m1:
case RISCV::BI__builtin_rvv_vslideup_vx_f16m2:
case RISCV::BI__builtin_rvv_vslideup_vx_f16m4:
case RISCV::BI__builtin_rvv_vslideup_vx_f16m8:
case RISCV::BI__builtin_rvv_vslideup_vx_f16mf2:
case RISCV::BI__builtin_rvv_vslideup_vx_f16mf4:
case RISCV::BI__builtin_rvv_vslideup_vx_f32m1:
case RISCV::BI__builtin_rvv_vslideup_vx_f32m2:
case RISCV::BI__builtin_rvv_vslideup_vx_f32m4:
case RISCV::BI__builtin_rvv_vslideup_vx_f32m8:
case RISCV::BI__builtin_rvv_vslideup_vx_f32mf2:
case RISCV::BI__builtin_rvv_vslideup_vx_f64m1:
case RISCV::BI__builtin_rvv_vslideup_vx_f64m2:
case RISCV::BI__builtin_rvv_vslideup_vx_f64m4:
case RISCV::BI__builtin_rvv_vslideup_vx_f64m8:
case RISCV::BI__builtin_rvv_vslideup_vx_u8m1:
case RISCV::BI__builtin_rvv_vslideup_vx_u8m2:
case RISCV::BI__builtin_rvv_vslideup_vx_u8m4:
case RISCV::BI__builtin_rvv_vslideup_vx_u8m8:
case RISCV::BI__builtin_rvv_vslideup_vx_u8mf2:
case RISCV::BI__builtin_rvv_vslideup_vx_u8mf4:
case RISCV::BI__builtin_rvv_vslideup_vx_u8mf8:
case RISCV::BI__builtin_rvv_vslideup_vx_u16m1:
case RISCV::BI__builtin_rvv_vslideup_vx_u16m2:
case RISCV::BI__builtin_rvv_vslideup_vx_u16m4:
case RISCV::BI__builtin_rvv_vslideup_vx_u16m8:
case RISCV::BI__builtin_rvv_vslideup_vx_u16mf2:
case RISCV::BI__builtin_rvv_vslideup_vx_u16mf4:
case RISCV::BI__builtin_rvv_vslideup_vx_u32m1:
case RISCV::BI__builtin_rvv_vslideup_vx_u32m2:
case RISCV::BI__builtin_rvv_vslideup_vx_u32m4:
case RISCV::BI__builtin_rvv_vslideup_vx_u32m8:
case RISCV::BI__builtin_rvv_vslideup_vx_u32mf2:
case RISCV::BI__builtin_rvv_vslideup_vx_u64m1:
case RISCV::BI__builtin_rvv_vslideup_vx_u64m2:
case RISCV::BI__builtin_rvv_vslideup_vx_u64m4:
case RISCV::BI__builtin_rvv_vslideup_vx_u64m8:
  ID = Intrinsic::riscv_vslideup;
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vslideup_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f16m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f16m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f16m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f16m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f16mf2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f16mf4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f32m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f32m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f32m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f32m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f32mf2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f64m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f64m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f64m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_f64m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vslideup_vx_u64m8_m:
  ID = Intrinsic::riscv_vslideup_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsll_vv_i8m1:
case RISCV::BI__builtin_rvv_vsll_vv_i8m2:
case RISCV::BI__builtin_rvv_vsll_vv_i8m4:
case RISCV::BI__builtin_rvv_vsll_vv_i8m8:
case RISCV::BI__builtin_rvv_vsll_vv_i8mf2:
case RISCV::BI__builtin_rvv_vsll_vv_i8mf4:
case RISCV::BI__builtin_rvv_vsll_vv_i8mf8:
case RISCV::BI__builtin_rvv_vsll_vv_i16m1:
case RISCV::BI__builtin_rvv_vsll_vv_i16m2:
case RISCV::BI__builtin_rvv_vsll_vv_i16m4:
case RISCV::BI__builtin_rvv_vsll_vv_i16m8:
case RISCV::BI__builtin_rvv_vsll_vv_i16mf2:
case RISCV::BI__builtin_rvv_vsll_vv_i16mf4:
case RISCV::BI__builtin_rvv_vsll_vv_i32m1:
case RISCV::BI__builtin_rvv_vsll_vv_i32m2:
case RISCV::BI__builtin_rvv_vsll_vv_i32m4:
case RISCV::BI__builtin_rvv_vsll_vv_i32m8:
case RISCV::BI__builtin_rvv_vsll_vv_i32mf2:
case RISCV::BI__builtin_rvv_vsll_vv_i64m1:
case RISCV::BI__builtin_rvv_vsll_vv_i64m2:
case RISCV::BI__builtin_rvv_vsll_vv_i64m4:
case RISCV::BI__builtin_rvv_vsll_vv_i64m8:
case RISCV::BI__builtin_rvv_vsll_vx_i8m1:
case RISCV::BI__builtin_rvv_vsll_vx_i8m2:
case RISCV::BI__builtin_rvv_vsll_vx_i8m4:
case RISCV::BI__builtin_rvv_vsll_vx_i8m8:
case RISCV::BI__builtin_rvv_vsll_vx_i8mf2:
case RISCV::BI__builtin_rvv_vsll_vx_i8mf4:
case RISCV::BI__builtin_rvv_vsll_vx_i8mf8:
case RISCV::BI__builtin_rvv_vsll_vx_i16m1:
case RISCV::BI__builtin_rvv_vsll_vx_i16m2:
case RISCV::BI__builtin_rvv_vsll_vx_i16m4:
case RISCV::BI__builtin_rvv_vsll_vx_i16m8:
case RISCV::BI__builtin_rvv_vsll_vx_i16mf2:
case RISCV::BI__builtin_rvv_vsll_vx_i16mf4:
case RISCV::BI__builtin_rvv_vsll_vx_i32m1:
case RISCV::BI__builtin_rvv_vsll_vx_i32m2:
case RISCV::BI__builtin_rvv_vsll_vx_i32m4:
case RISCV::BI__builtin_rvv_vsll_vx_i32m8:
case RISCV::BI__builtin_rvv_vsll_vx_i32mf2:
case RISCV::BI__builtin_rvv_vsll_vx_i64m1:
case RISCV::BI__builtin_rvv_vsll_vx_i64m2:
case RISCV::BI__builtin_rvv_vsll_vx_i64m4:
case RISCV::BI__builtin_rvv_vsll_vx_i64m8:
case RISCV::BI__builtin_rvv_vsll_vv_u8m1:
case RISCV::BI__builtin_rvv_vsll_vv_u8m2:
case RISCV::BI__builtin_rvv_vsll_vv_u8m4:
case RISCV::BI__builtin_rvv_vsll_vv_u8m8:
case RISCV::BI__builtin_rvv_vsll_vv_u8mf2:
case RISCV::BI__builtin_rvv_vsll_vv_u8mf4:
case RISCV::BI__builtin_rvv_vsll_vv_u8mf8:
case RISCV::BI__builtin_rvv_vsll_vv_u16m1:
case RISCV::BI__builtin_rvv_vsll_vv_u16m2:
case RISCV::BI__builtin_rvv_vsll_vv_u16m4:
case RISCV::BI__builtin_rvv_vsll_vv_u16m8:
case RISCV::BI__builtin_rvv_vsll_vv_u16mf2:
case RISCV::BI__builtin_rvv_vsll_vv_u16mf4:
case RISCV::BI__builtin_rvv_vsll_vv_u32m1:
case RISCV::BI__builtin_rvv_vsll_vv_u32m2:
case RISCV::BI__builtin_rvv_vsll_vv_u32m4:
case RISCV::BI__builtin_rvv_vsll_vv_u32m8:
case RISCV::BI__builtin_rvv_vsll_vv_u32mf2:
case RISCV::BI__builtin_rvv_vsll_vv_u64m1:
case RISCV::BI__builtin_rvv_vsll_vv_u64m2:
case RISCV::BI__builtin_rvv_vsll_vv_u64m4:
case RISCV::BI__builtin_rvv_vsll_vv_u64m8:
case RISCV::BI__builtin_rvv_vsll_vx_u8m1:
case RISCV::BI__builtin_rvv_vsll_vx_u8m2:
case RISCV::BI__builtin_rvv_vsll_vx_u8m4:
case RISCV::BI__builtin_rvv_vsll_vx_u8m8:
case RISCV::BI__builtin_rvv_vsll_vx_u8mf2:
case RISCV::BI__builtin_rvv_vsll_vx_u8mf4:
case RISCV::BI__builtin_rvv_vsll_vx_u8mf8:
case RISCV::BI__builtin_rvv_vsll_vx_u16m1:
case RISCV::BI__builtin_rvv_vsll_vx_u16m2:
case RISCV::BI__builtin_rvv_vsll_vx_u16m4:
case RISCV::BI__builtin_rvv_vsll_vx_u16m8:
case RISCV::BI__builtin_rvv_vsll_vx_u16mf2:
case RISCV::BI__builtin_rvv_vsll_vx_u16mf4:
case RISCV::BI__builtin_rvv_vsll_vx_u32m1:
case RISCV::BI__builtin_rvv_vsll_vx_u32m2:
case RISCV::BI__builtin_rvv_vsll_vx_u32m4:
case RISCV::BI__builtin_rvv_vsll_vx_u32m8:
case RISCV::BI__builtin_rvv_vsll_vx_u32mf2:
case RISCV::BI__builtin_rvv_vsll_vx_u64m1:
case RISCV::BI__builtin_rvv_vsll_vx_u64m2:
case RISCV::BI__builtin_rvv_vsll_vx_u64m4:
case RISCV::BI__builtin_rvv_vsll_vx_u64m8:
  ID = Intrinsic::riscv_vsll;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsll_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vsll_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vsll_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vsll_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vsll_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vsll_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vsll_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vsll_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vsll_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vsll_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vsll_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vsll_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vsll_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vsll_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vsll_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vsll_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vsll_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vsll_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vsll_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vsll_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vsll_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vsll_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vsll_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vsll_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vsll_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vsll_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vsll_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vsll_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vsll_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vsll_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vsll_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vsll_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vsll_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vsll_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vsll_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vsll_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vsll_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vsll_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vsll_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vsll_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vsll_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vsll_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vsll_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vsll_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vsll_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vsll_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vsll_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vsll_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vsll_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vsll_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vsll_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vsll_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vsll_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vsll_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vsll_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vsll_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vsll_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vsll_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vsll_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vsll_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vsll_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vsll_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vsll_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vsll_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vsll_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vsll_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vsll_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vsll_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vsll_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vsll_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vsll_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vsll_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vsll_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vsll_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vsll_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vsll_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vsll_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vsll_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vsll_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vsll_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vsll_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vsll_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vsll_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vsll_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vsll_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vsll_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vsll_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vsll_vx_u64m8_m:
  ID = Intrinsic::riscv_vsll_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsmul_vv_i8m1:
case RISCV::BI__builtin_rvv_vsmul_vv_i8m2:
case RISCV::BI__builtin_rvv_vsmul_vv_i8m4:
case RISCV::BI__builtin_rvv_vsmul_vv_i8m8:
case RISCV::BI__builtin_rvv_vsmul_vv_i8mf2:
case RISCV::BI__builtin_rvv_vsmul_vv_i8mf4:
case RISCV::BI__builtin_rvv_vsmul_vv_i8mf8:
case RISCV::BI__builtin_rvv_vsmul_vv_i16m1:
case RISCV::BI__builtin_rvv_vsmul_vv_i16m2:
case RISCV::BI__builtin_rvv_vsmul_vv_i16m4:
case RISCV::BI__builtin_rvv_vsmul_vv_i16m8:
case RISCV::BI__builtin_rvv_vsmul_vv_i16mf2:
case RISCV::BI__builtin_rvv_vsmul_vv_i16mf4:
case RISCV::BI__builtin_rvv_vsmul_vv_i32m1:
case RISCV::BI__builtin_rvv_vsmul_vv_i32m2:
case RISCV::BI__builtin_rvv_vsmul_vv_i32m4:
case RISCV::BI__builtin_rvv_vsmul_vv_i32m8:
case RISCV::BI__builtin_rvv_vsmul_vv_i32mf2:
case RISCV::BI__builtin_rvv_vsmul_vv_i64m1:
case RISCV::BI__builtin_rvv_vsmul_vv_i64m2:
case RISCV::BI__builtin_rvv_vsmul_vv_i64m4:
case RISCV::BI__builtin_rvv_vsmul_vv_i64m8:
case RISCV::BI__builtin_rvv_vsmul_vx_i8m1:
case RISCV::BI__builtin_rvv_vsmul_vx_i8m2:
case RISCV::BI__builtin_rvv_vsmul_vx_i8m4:
case RISCV::BI__builtin_rvv_vsmul_vx_i8m8:
case RISCV::BI__builtin_rvv_vsmul_vx_i8mf2:
case RISCV::BI__builtin_rvv_vsmul_vx_i8mf4:
case RISCV::BI__builtin_rvv_vsmul_vx_i8mf8:
case RISCV::BI__builtin_rvv_vsmul_vx_i16m1:
case RISCV::BI__builtin_rvv_vsmul_vx_i16m2:
case RISCV::BI__builtin_rvv_vsmul_vx_i16m4:
case RISCV::BI__builtin_rvv_vsmul_vx_i16m8:
case RISCV::BI__builtin_rvv_vsmul_vx_i16mf2:
case RISCV::BI__builtin_rvv_vsmul_vx_i16mf4:
case RISCV::BI__builtin_rvv_vsmul_vx_i32m1:
case RISCV::BI__builtin_rvv_vsmul_vx_i32m2:
case RISCV::BI__builtin_rvv_vsmul_vx_i32m4:
case RISCV::BI__builtin_rvv_vsmul_vx_i32m8:
case RISCV::BI__builtin_rvv_vsmul_vx_i32mf2:
case RISCV::BI__builtin_rvv_vsmul_vx_i64m1:
case RISCV::BI__builtin_rvv_vsmul_vx_i64m2:
case RISCV::BI__builtin_rvv_vsmul_vx_i64m4:
case RISCV::BI__builtin_rvv_vsmul_vx_i64m8:
  ID = Intrinsic::riscv_vsmul;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsmul_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vsmul_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vsmul_vx_i64m8_m:
  ID = Intrinsic::riscv_vsmul_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsoxei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32m8:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32m8:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_i32m4:
case RISCV::BI__builtin_rvv_vsoxei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_u32m4:
case RISCV::BI__builtin_rvv_vsoxei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_i64m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_i64m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_u64m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_u64m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_i64m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_i64m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_u64m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_u64m8:
case RISCV::BI__builtin_rvv_vsoxei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_i64m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_i64m8:
case RISCV::BI__builtin_rvv_vsoxei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_u64m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_u64m8:
case RISCV::BI__builtin_rvv_vsoxei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_i64m4:
case RISCV::BI__builtin_rvv_vsoxei64_v_i64m8:
case RISCV::BI__builtin_rvv_vsoxei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_u64m4:
case RISCV::BI__builtin_rvv_vsoxei64_v_u64m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32m8:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32m8:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_f32m4:
case RISCV::BI__builtin_rvv_vsoxei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxei8_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxei8_v_f64m4:
case RISCV::BI__builtin_rvv_vsoxei8_v_f64m8:
case RISCV::BI__builtin_rvv_vsoxei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxei16_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxei16_v_f64m4:
case RISCV::BI__builtin_rvv_vsoxei16_v_f64m8:
case RISCV::BI__builtin_rvv_vsoxei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxei32_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxei32_v_f64m4:
case RISCV::BI__builtin_rvv_vsoxei32_v_f64m8:
case RISCV::BI__builtin_rvv_vsoxei64_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxei64_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxei64_v_f64m4:
case RISCV::BI__builtin_rvv_vsoxei64_v_f64m8:
  ID = Intrinsic::riscv_vsoxei;

        // Builtin: (ptr, index, value, vl). Intrinsic: (value, ptr, index, vl)
        std::rotate(Ops.begin(), Ops.begin() + 2, Ops.begin() + 3);
        Ops[1] = Builder.CreateBitCast(Ops[1],Ops[0]->getType()->getPointerTo());
        IntrinsicTypes = {Ops[0]->getType(), Ops[2]->getType(), Ops[3]->getType()};
      break;
case RISCV::BI__builtin_rvv_vsoxei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32m8_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsoxei8_v_f64m8_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsoxei16_v_f64m8_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsoxei32_v_f64m8_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsoxei64_v_f64m8_m:
  ID = Intrinsic::riscv_vsoxei_mask;

        // Builtin: (mask, ptr, index, value, vl). Intrinsic: (value, ptr, index, mask, vl)
        std::swap(Ops[0], Ops[3]);
        Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType()->getPointerTo());
        IntrinsicTypes = {Ops[0]->getType(), Ops[2]->getType(), Ops[4]->getType()};
      break;
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f32m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f64m4:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f64m4:
  ID = Intrinsic::riscv_vsoxseg2;
  NF = 2;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg2ei64_v_f64m4_m:
  ID = Intrinsic::riscv_vsoxseg2_mask;
  NF = 2;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f64m2:
  ID = Intrinsic::riscv_vsoxseg3;
  NF = 3;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg3ei64_v_f64m2_m:
  ID = Intrinsic::riscv_vsoxseg3_mask;
  NF = 3;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f64m2:
  ID = Intrinsic::riscv_vsoxseg4;
  NF = 4;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg4ei64_v_f64m2_m:
  ID = Intrinsic::riscv_vsoxseg4_mask;
  NF = 4;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f64m1:
  ID = Intrinsic::riscv_vsoxseg5;
  NF = 5;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg5ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vsoxseg5_mask;
  NF = 5;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f64m1:
  ID = Intrinsic::riscv_vsoxseg6;
  NF = 6;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg6ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vsoxseg6_mask;
  NF = 6;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f64m1:
  ID = Intrinsic::riscv_vsoxseg7;
  NF = 7;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg7ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vsoxseg7_mask;
  NF = 7;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f64m1:
  ID = Intrinsic::riscv_vsoxseg8;
  NF = 8;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsoxseg8ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vsoxseg8_mask;
  NF = 8;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsra_vv_i8m1:
case RISCV::BI__builtin_rvv_vsra_vv_i8m2:
case RISCV::BI__builtin_rvv_vsra_vv_i8m4:
case RISCV::BI__builtin_rvv_vsra_vv_i8m8:
case RISCV::BI__builtin_rvv_vsra_vv_i8mf2:
case RISCV::BI__builtin_rvv_vsra_vv_i8mf4:
case RISCV::BI__builtin_rvv_vsra_vv_i8mf8:
case RISCV::BI__builtin_rvv_vsra_vv_i16m1:
case RISCV::BI__builtin_rvv_vsra_vv_i16m2:
case RISCV::BI__builtin_rvv_vsra_vv_i16m4:
case RISCV::BI__builtin_rvv_vsra_vv_i16m8:
case RISCV::BI__builtin_rvv_vsra_vv_i16mf2:
case RISCV::BI__builtin_rvv_vsra_vv_i16mf4:
case RISCV::BI__builtin_rvv_vsra_vv_i32m1:
case RISCV::BI__builtin_rvv_vsra_vv_i32m2:
case RISCV::BI__builtin_rvv_vsra_vv_i32m4:
case RISCV::BI__builtin_rvv_vsra_vv_i32m8:
case RISCV::BI__builtin_rvv_vsra_vv_i32mf2:
case RISCV::BI__builtin_rvv_vsra_vv_i64m1:
case RISCV::BI__builtin_rvv_vsra_vv_i64m2:
case RISCV::BI__builtin_rvv_vsra_vv_i64m4:
case RISCV::BI__builtin_rvv_vsra_vv_i64m8:
case RISCV::BI__builtin_rvv_vsra_vx_i8m1:
case RISCV::BI__builtin_rvv_vsra_vx_i8m2:
case RISCV::BI__builtin_rvv_vsra_vx_i8m4:
case RISCV::BI__builtin_rvv_vsra_vx_i8m8:
case RISCV::BI__builtin_rvv_vsra_vx_i8mf2:
case RISCV::BI__builtin_rvv_vsra_vx_i8mf4:
case RISCV::BI__builtin_rvv_vsra_vx_i8mf8:
case RISCV::BI__builtin_rvv_vsra_vx_i16m1:
case RISCV::BI__builtin_rvv_vsra_vx_i16m2:
case RISCV::BI__builtin_rvv_vsra_vx_i16m4:
case RISCV::BI__builtin_rvv_vsra_vx_i16m8:
case RISCV::BI__builtin_rvv_vsra_vx_i16mf2:
case RISCV::BI__builtin_rvv_vsra_vx_i16mf4:
case RISCV::BI__builtin_rvv_vsra_vx_i32m1:
case RISCV::BI__builtin_rvv_vsra_vx_i32m2:
case RISCV::BI__builtin_rvv_vsra_vx_i32m4:
case RISCV::BI__builtin_rvv_vsra_vx_i32m8:
case RISCV::BI__builtin_rvv_vsra_vx_i32mf2:
case RISCV::BI__builtin_rvv_vsra_vx_i64m1:
case RISCV::BI__builtin_rvv_vsra_vx_i64m2:
case RISCV::BI__builtin_rvv_vsra_vx_i64m4:
case RISCV::BI__builtin_rvv_vsra_vx_i64m8:
  ID = Intrinsic::riscv_vsra;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsra_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vsra_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vsra_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vsra_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vsra_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vsra_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vsra_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vsra_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vsra_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vsra_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vsra_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vsra_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vsra_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vsra_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vsra_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vsra_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vsra_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vsra_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vsra_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vsra_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vsra_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vsra_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vsra_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vsra_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vsra_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vsra_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vsra_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vsra_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vsra_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vsra_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vsra_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vsra_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vsra_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vsra_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vsra_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vsra_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vsra_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vsra_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vsra_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vsra_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vsra_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vsra_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vsra_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vsra_vx_i64m8_m:
  ID = Intrinsic::riscv_vsra_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsrl_vv_u8m1:
case RISCV::BI__builtin_rvv_vsrl_vv_u8m2:
case RISCV::BI__builtin_rvv_vsrl_vv_u8m4:
case RISCV::BI__builtin_rvv_vsrl_vv_u8m8:
case RISCV::BI__builtin_rvv_vsrl_vv_u8mf2:
case RISCV::BI__builtin_rvv_vsrl_vv_u8mf4:
case RISCV::BI__builtin_rvv_vsrl_vv_u8mf8:
case RISCV::BI__builtin_rvv_vsrl_vv_u16m1:
case RISCV::BI__builtin_rvv_vsrl_vv_u16m2:
case RISCV::BI__builtin_rvv_vsrl_vv_u16m4:
case RISCV::BI__builtin_rvv_vsrl_vv_u16m8:
case RISCV::BI__builtin_rvv_vsrl_vv_u16mf2:
case RISCV::BI__builtin_rvv_vsrl_vv_u16mf4:
case RISCV::BI__builtin_rvv_vsrl_vv_u32m1:
case RISCV::BI__builtin_rvv_vsrl_vv_u32m2:
case RISCV::BI__builtin_rvv_vsrl_vv_u32m4:
case RISCV::BI__builtin_rvv_vsrl_vv_u32m8:
case RISCV::BI__builtin_rvv_vsrl_vv_u32mf2:
case RISCV::BI__builtin_rvv_vsrl_vv_u64m1:
case RISCV::BI__builtin_rvv_vsrl_vv_u64m2:
case RISCV::BI__builtin_rvv_vsrl_vv_u64m4:
case RISCV::BI__builtin_rvv_vsrl_vv_u64m8:
case RISCV::BI__builtin_rvv_vsrl_vx_u8m1:
case RISCV::BI__builtin_rvv_vsrl_vx_u8m2:
case RISCV::BI__builtin_rvv_vsrl_vx_u8m4:
case RISCV::BI__builtin_rvv_vsrl_vx_u8m8:
case RISCV::BI__builtin_rvv_vsrl_vx_u8mf2:
case RISCV::BI__builtin_rvv_vsrl_vx_u8mf4:
case RISCV::BI__builtin_rvv_vsrl_vx_u8mf8:
case RISCV::BI__builtin_rvv_vsrl_vx_u16m1:
case RISCV::BI__builtin_rvv_vsrl_vx_u16m2:
case RISCV::BI__builtin_rvv_vsrl_vx_u16m4:
case RISCV::BI__builtin_rvv_vsrl_vx_u16m8:
case RISCV::BI__builtin_rvv_vsrl_vx_u16mf2:
case RISCV::BI__builtin_rvv_vsrl_vx_u16mf4:
case RISCV::BI__builtin_rvv_vsrl_vx_u32m1:
case RISCV::BI__builtin_rvv_vsrl_vx_u32m2:
case RISCV::BI__builtin_rvv_vsrl_vx_u32m4:
case RISCV::BI__builtin_rvv_vsrl_vx_u32m8:
case RISCV::BI__builtin_rvv_vsrl_vx_u32mf2:
case RISCV::BI__builtin_rvv_vsrl_vx_u64m1:
case RISCV::BI__builtin_rvv_vsrl_vx_u64m2:
case RISCV::BI__builtin_rvv_vsrl_vx_u64m4:
case RISCV::BI__builtin_rvv_vsrl_vx_u64m8:
  ID = Intrinsic::riscv_vsrl;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsrl_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vsrl_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vsrl_vx_u64m8_m:
  ID = Intrinsic::riscv_vsrl_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsse16_v_i16m1:
case RISCV::BI__builtin_rvv_vsse16_v_i16m2:
case RISCV::BI__builtin_rvv_vsse16_v_i16m4:
case RISCV::BI__builtin_rvv_vsse16_v_i16m8:
case RISCV::BI__builtin_rvv_vsse16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsse16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsse16_v_u16m1:
case RISCV::BI__builtin_rvv_vsse16_v_u16m2:
case RISCV::BI__builtin_rvv_vsse16_v_u16m4:
case RISCV::BI__builtin_rvv_vsse16_v_u16m8:
case RISCV::BI__builtin_rvv_vsse16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsse16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsse16_v_f16m1:
case RISCV::BI__builtin_rvv_vsse16_v_f16m2:
case RISCV::BI__builtin_rvv_vsse16_v_f16m4:
case RISCV::BI__builtin_rvv_vsse16_v_f16m8:
case RISCV::BI__builtin_rvv_vsse16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsse16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsse32_v_i32m1:
case RISCV::BI__builtin_rvv_vsse32_v_i32m2:
case RISCV::BI__builtin_rvv_vsse32_v_i32m4:
case RISCV::BI__builtin_rvv_vsse32_v_i32m8:
case RISCV::BI__builtin_rvv_vsse32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsse32_v_u32m1:
case RISCV::BI__builtin_rvv_vsse32_v_u32m2:
case RISCV::BI__builtin_rvv_vsse32_v_u32m4:
case RISCV::BI__builtin_rvv_vsse32_v_u32m8:
case RISCV::BI__builtin_rvv_vsse32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsse32_v_f32m1:
case RISCV::BI__builtin_rvv_vsse32_v_f32m2:
case RISCV::BI__builtin_rvv_vsse32_v_f32m4:
case RISCV::BI__builtin_rvv_vsse32_v_f32m8:
case RISCV::BI__builtin_rvv_vsse32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsse64_v_i64m1:
case RISCV::BI__builtin_rvv_vsse64_v_i64m2:
case RISCV::BI__builtin_rvv_vsse64_v_i64m4:
case RISCV::BI__builtin_rvv_vsse64_v_i64m8:
case RISCV::BI__builtin_rvv_vsse64_v_u64m1:
case RISCV::BI__builtin_rvv_vsse64_v_u64m2:
case RISCV::BI__builtin_rvv_vsse64_v_u64m4:
case RISCV::BI__builtin_rvv_vsse64_v_u64m8:
case RISCV::BI__builtin_rvv_vsse64_v_f64m1:
case RISCV::BI__builtin_rvv_vsse64_v_f64m2:
case RISCV::BI__builtin_rvv_vsse64_v_f64m4:
case RISCV::BI__builtin_rvv_vsse64_v_f64m8:
case RISCV::BI__builtin_rvv_vsse8_v_i8m1:
case RISCV::BI__builtin_rvv_vsse8_v_i8m2:
case RISCV::BI__builtin_rvv_vsse8_v_i8m4:
case RISCV::BI__builtin_rvv_vsse8_v_i8m8:
case RISCV::BI__builtin_rvv_vsse8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsse8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsse8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsse8_v_u8m1:
case RISCV::BI__builtin_rvv_vsse8_v_u8m2:
case RISCV::BI__builtin_rvv_vsse8_v_u8m4:
case RISCV::BI__builtin_rvv_vsse8_v_u8m8:
case RISCV::BI__builtin_rvv_vsse8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsse8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsse8_v_u8mf8:
  ID = Intrinsic::riscv_vsse;

        // Builtin: (ptr, stride, value, vl). Intrinsic: (value, ptr, stride, vl)
        std::rotate(Ops.begin(), Ops.begin() + 2, Ops.begin() + 3);
        Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType()->getPointerTo());
        IntrinsicTypes = {Ops[0]->getType(), Ops[3]->getType()};
      break;
case RISCV::BI__builtin_rvv_vsse16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsse16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsse16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsse16_v_i16m8_m:
case RISCV::BI__builtin_rvv_vsse16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsse16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsse16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsse16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsse16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsse16_v_u16m8_m:
case RISCV::BI__builtin_rvv_vsse16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsse16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsse16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsse16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsse16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsse16_v_f16m8_m:
case RISCV::BI__builtin_rvv_vsse16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsse16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsse32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsse32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsse32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsse32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vsse32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsse32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsse32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsse32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsse32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vsse32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsse32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsse32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsse32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsse32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vsse32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsse64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsse64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsse64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsse64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsse64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsse64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsse64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsse64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsse64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsse64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsse64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsse64_v_f64m8_m:
case RISCV::BI__builtin_rvv_vsse8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsse8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsse8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsse8_v_i8m8_m:
case RISCV::BI__builtin_rvv_vsse8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsse8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsse8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsse8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsse8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsse8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsse8_v_u8m8_m:
case RISCV::BI__builtin_rvv_vsse8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsse8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsse8_v_u8mf8_m:
  ID = Intrinsic::riscv_vsse_mask;

        // Builtin: (mask, ptr, stride, value, vl). Intrinsic: (value, ptr, stride, mask, vl)
        std::swap(Ops[0], Ops[3]);
        Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType()->getPointerTo());
        IntrinsicTypes = {Ops[0]->getType(), Ops[4]->getType()};
      break;
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16m1:
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16m2:
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16m4:
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16m1:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16m2:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16m4:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsseg2e32_v_i32m1:
case RISCV::BI__builtin_rvv_vsseg2e32_v_i32m2:
case RISCV::BI__builtin_rvv_vsseg2e32_v_i32m4:
case RISCV::BI__builtin_rvv_vsseg2e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsseg2e32_v_u32m1:
case RISCV::BI__builtin_rvv_vsseg2e32_v_u32m2:
case RISCV::BI__builtin_rvv_vsseg2e32_v_u32m4:
case RISCV::BI__builtin_rvv_vsseg2e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsseg2e64_v_i64m1:
case RISCV::BI__builtin_rvv_vsseg2e64_v_i64m2:
case RISCV::BI__builtin_rvv_vsseg2e64_v_i64m4:
case RISCV::BI__builtin_rvv_vsseg2e64_v_u64m1:
case RISCV::BI__builtin_rvv_vsseg2e64_v_u64m2:
case RISCV::BI__builtin_rvv_vsseg2e64_v_u64m4:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16m1:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16m2:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16m4:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsseg2e32_v_f32m1:
case RISCV::BI__builtin_rvv_vsseg2e32_v_f32m2:
case RISCV::BI__builtin_rvv_vsseg2e32_v_f32m4:
case RISCV::BI__builtin_rvv_vsseg2e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsseg2e64_v_f64m1:
case RISCV::BI__builtin_rvv_vsseg2e64_v_f64m2:
case RISCV::BI__builtin_rvv_vsseg2e64_v_f64m4:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8m1:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8m2:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8m4:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8m1:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8m2:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8m4:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8mf8:
  ID = Intrinsic::riscv_vsseg2;
  NF = 2;

    {
      // Builtin: (ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, vl)
      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 2);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsseg2e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsseg2e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsseg2e64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsseg2e8_v_u8mf8_m:
  ID = Intrinsic::riscv_vsseg2_mask;
  NF = 2;

    {
      // Builtin: (mask, ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      std::swap(Ops[NF], Ops[NF + 1]);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8m1:
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8m2:
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8m1:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8m2:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsseg3e16_v_i16m1:
case RISCV::BI__builtin_rvv_vsseg3e16_v_i16m2:
case RISCV::BI__builtin_rvv_vsseg3e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsseg3e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsseg3e16_v_u16m1:
case RISCV::BI__builtin_rvv_vsseg3e16_v_u16m2:
case RISCV::BI__builtin_rvv_vsseg3e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsseg3e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsseg3e32_v_i32m1:
case RISCV::BI__builtin_rvv_vsseg3e32_v_i32m2:
case RISCV::BI__builtin_rvv_vsseg3e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsseg3e32_v_u32m1:
case RISCV::BI__builtin_rvv_vsseg3e32_v_u32m2:
case RISCV::BI__builtin_rvv_vsseg3e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsseg3e64_v_i64m1:
case RISCV::BI__builtin_rvv_vsseg3e64_v_i64m2:
case RISCV::BI__builtin_rvv_vsseg3e64_v_u64m1:
case RISCV::BI__builtin_rvv_vsseg3e64_v_u64m2:
case RISCV::BI__builtin_rvv_vsseg3e16_v_f16m1:
case RISCV::BI__builtin_rvv_vsseg3e16_v_f16m2:
case RISCV::BI__builtin_rvv_vsseg3e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsseg3e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsseg3e32_v_f32m1:
case RISCV::BI__builtin_rvv_vsseg3e32_v_f32m2:
case RISCV::BI__builtin_rvv_vsseg3e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsseg3e64_v_f64m1:
case RISCV::BI__builtin_rvv_vsseg3e64_v_f64m2:
  ID = Intrinsic::riscv_vsseg3;
  NF = 3;

    {
      // Builtin: (ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, vl)
      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 2);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsseg3e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsseg3e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsseg3e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsseg3e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsseg3e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsseg3e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsseg3e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsseg3e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsseg3e64_v_f64m2_m:
  ID = Intrinsic::riscv_vsseg3_mask;
  NF = 3;

    {
      // Builtin: (mask, ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      std::swap(Ops[NF], Ops[NF + 1]);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8m1:
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8m2:
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8m1:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8m2:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsseg4e16_v_i16m1:
case RISCV::BI__builtin_rvv_vsseg4e16_v_i16m2:
case RISCV::BI__builtin_rvv_vsseg4e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsseg4e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsseg4e16_v_u16m1:
case RISCV::BI__builtin_rvv_vsseg4e16_v_u16m2:
case RISCV::BI__builtin_rvv_vsseg4e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsseg4e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsseg4e32_v_i32m1:
case RISCV::BI__builtin_rvv_vsseg4e32_v_i32m2:
case RISCV::BI__builtin_rvv_vsseg4e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsseg4e32_v_u32m1:
case RISCV::BI__builtin_rvv_vsseg4e32_v_u32m2:
case RISCV::BI__builtin_rvv_vsseg4e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsseg4e64_v_i64m1:
case RISCV::BI__builtin_rvv_vsseg4e64_v_i64m2:
case RISCV::BI__builtin_rvv_vsseg4e64_v_u64m1:
case RISCV::BI__builtin_rvv_vsseg4e64_v_u64m2:
case RISCV::BI__builtin_rvv_vsseg4e16_v_f16m1:
case RISCV::BI__builtin_rvv_vsseg4e16_v_f16m2:
case RISCV::BI__builtin_rvv_vsseg4e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsseg4e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsseg4e32_v_f32m1:
case RISCV::BI__builtin_rvv_vsseg4e32_v_f32m2:
case RISCV::BI__builtin_rvv_vsseg4e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsseg4e64_v_f64m1:
case RISCV::BI__builtin_rvv_vsseg4e64_v_f64m2:
  ID = Intrinsic::riscv_vsseg4;
  NF = 4;

    {
      // Builtin: (ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, vl)
      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 2);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsseg4e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsseg4e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsseg4e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsseg4e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsseg4e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsseg4e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsseg4e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsseg4e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsseg4e64_v_f64m2_m:
  ID = Intrinsic::riscv_vsseg4_mask;
  NF = 4;

    {
      // Builtin: (mask, ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      std::swap(Ops[NF], Ops[NF + 1]);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg5e8_v_i8m1:
case RISCV::BI__builtin_rvv_vsseg5e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsseg5e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsseg5e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsseg5e8_v_u8m1:
case RISCV::BI__builtin_rvv_vsseg5e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsseg5e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsseg5e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsseg5e16_v_i16m1:
case RISCV::BI__builtin_rvv_vsseg5e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsseg5e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsseg5e16_v_u16m1:
case RISCV::BI__builtin_rvv_vsseg5e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsseg5e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsseg5e32_v_i32m1:
case RISCV::BI__builtin_rvv_vsseg5e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsseg5e32_v_u32m1:
case RISCV::BI__builtin_rvv_vsseg5e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsseg5e64_v_i64m1:
case RISCV::BI__builtin_rvv_vsseg5e64_v_u64m1:
case RISCV::BI__builtin_rvv_vsseg5e16_v_f16m1:
case RISCV::BI__builtin_rvv_vsseg5e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsseg5e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsseg5e32_v_f32m1:
case RISCV::BI__builtin_rvv_vsseg5e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsseg5e64_v_f64m1:
  ID = Intrinsic::riscv_vsseg5;
  NF = 5;

    {
      // Builtin: (ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, vl)
      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 2);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg5e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsseg5e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsseg5e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsseg5e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsseg5e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsseg5e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsseg5e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsseg5e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsseg5e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsseg5e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsseg5e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsseg5e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsseg5e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsseg5e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsseg5e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsseg5e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsseg5e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsseg5e64_v_f64m1_m:
  ID = Intrinsic::riscv_vsseg5_mask;
  NF = 5;

    {
      // Builtin: (mask, ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      std::swap(Ops[NF], Ops[NF + 1]);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg6e8_v_i8m1:
case RISCV::BI__builtin_rvv_vsseg6e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsseg6e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsseg6e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsseg6e8_v_u8m1:
case RISCV::BI__builtin_rvv_vsseg6e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsseg6e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsseg6e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsseg6e16_v_i16m1:
case RISCV::BI__builtin_rvv_vsseg6e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsseg6e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsseg6e16_v_u16m1:
case RISCV::BI__builtin_rvv_vsseg6e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsseg6e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsseg6e32_v_i32m1:
case RISCV::BI__builtin_rvv_vsseg6e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsseg6e32_v_u32m1:
case RISCV::BI__builtin_rvv_vsseg6e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsseg6e64_v_i64m1:
case RISCV::BI__builtin_rvv_vsseg6e64_v_u64m1:
case RISCV::BI__builtin_rvv_vsseg6e16_v_f16m1:
case RISCV::BI__builtin_rvv_vsseg6e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsseg6e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsseg6e32_v_f32m1:
case RISCV::BI__builtin_rvv_vsseg6e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsseg6e64_v_f64m1:
  ID = Intrinsic::riscv_vsseg6;
  NF = 6;

    {
      // Builtin: (ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, vl)
      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 2);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg6e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsseg6e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsseg6e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsseg6e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsseg6e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsseg6e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsseg6e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsseg6e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsseg6e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsseg6e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsseg6e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsseg6e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsseg6e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsseg6e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsseg6e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsseg6e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsseg6e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsseg6e64_v_f64m1_m:
  ID = Intrinsic::riscv_vsseg6_mask;
  NF = 6;

    {
      // Builtin: (mask, ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      std::swap(Ops[NF], Ops[NF + 1]);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg7e8_v_i8m1:
case RISCV::BI__builtin_rvv_vsseg7e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsseg7e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsseg7e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsseg7e8_v_u8m1:
case RISCV::BI__builtin_rvv_vsseg7e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsseg7e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsseg7e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsseg7e16_v_i16m1:
case RISCV::BI__builtin_rvv_vsseg7e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsseg7e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsseg7e16_v_u16m1:
case RISCV::BI__builtin_rvv_vsseg7e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsseg7e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsseg7e32_v_i32m1:
case RISCV::BI__builtin_rvv_vsseg7e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsseg7e32_v_u32m1:
case RISCV::BI__builtin_rvv_vsseg7e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsseg7e64_v_i64m1:
case RISCV::BI__builtin_rvv_vsseg7e64_v_u64m1:
case RISCV::BI__builtin_rvv_vsseg7e16_v_f16m1:
case RISCV::BI__builtin_rvv_vsseg7e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsseg7e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsseg7e32_v_f32m1:
case RISCV::BI__builtin_rvv_vsseg7e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsseg7e64_v_f64m1:
  ID = Intrinsic::riscv_vsseg7;
  NF = 7;

    {
      // Builtin: (ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, vl)
      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 2);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg7e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsseg7e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsseg7e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsseg7e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsseg7e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsseg7e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsseg7e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsseg7e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsseg7e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsseg7e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsseg7e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsseg7e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsseg7e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsseg7e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsseg7e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsseg7e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsseg7e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsseg7e64_v_f64m1_m:
  ID = Intrinsic::riscv_vsseg7_mask;
  NF = 7;

    {
      // Builtin: (mask, ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      std::swap(Ops[NF], Ops[NF + 1]);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg8e8_v_i8m1:
case RISCV::BI__builtin_rvv_vsseg8e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsseg8e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsseg8e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsseg8e8_v_u8m1:
case RISCV::BI__builtin_rvv_vsseg8e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsseg8e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsseg8e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsseg8e16_v_i16m1:
case RISCV::BI__builtin_rvv_vsseg8e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsseg8e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsseg8e16_v_u16m1:
case RISCV::BI__builtin_rvv_vsseg8e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsseg8e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsseg8e32_v_i32m1:
case RISCV::BI__builtin_rvv_vsseg8e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsseg8e32_v_u32m1:
case RISCV::BI__builtin_rvv_vsseg8e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsseg8e64_v_i64m1:
case RISCV::BI__builtin_rvv_vsseg8e64_v_u64m1:
case RISCV::BI__builtin_rvv_vsseg8e16_v_f16m1:
case RISCV::BI__builtin_rvv_vsseg8e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsseg8e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsseg8e32_v_f32m1:
case RISCV::BI__builtin_rvv_vsseg8e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsseg8e64_v_f64m1:
  ID = Intrinsic::riscv_vsseg8;
  NF = 8;

    {
      // Builtin: (ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, vl)
      std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 2);
    }
            break;
case RISCV::BI__builtin_rvv_vsseg8e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsseg8e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsseg8e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsseg8e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsseg8e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsseg8e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsseg8e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsseg8e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsseg8e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsseg8e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsseg8e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsseg8e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsseg8e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsseg8e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsseg8e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsseg8e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsseg8e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsseg8e64_v_f64m1_m:
  ID = Intrinsic::riscv_vsseg8_mask;
  NF = 8;

    {
      // Builtin: (mask, ptr, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      std::swap(Ops[NF], Ops[NF + 1]);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vssra_vv_i8m1:
case RISCV::BI__builtin_rvv_vssra_vv_i8m2:
case RISCV::BI__builtin_rvv_vssra_vv_i8m4:
case RISCV::BI__builtin_rvv_vssra_vv_i8m8:
case RISCV::BI__builtin_rvv_vssra_vv_i8mf2:
case RISCV::BI__builtin_rvv_vssra_vv_i8mf4:
case RISCV::BI__builtin_rvv_vssra_vv_i8mf8:
case RISCV::BI__builtin_rvv_vssra_vv_i16m1:
case RISCV::BI__builtin_rvv_vssra_vv_i16m2:
case RISCV::BI__builtin_rvv_vssra_vv_i16m4:
case RISCV::BI__builtin_rvv_vssra_vv_i16m8:
case RISCV::BI__builtin_rvv_vssra_vv_i16mf2:
case RISCV::BI__builtin_rvv_vssra_vv_i16mf4:
case RISCV::BI__builtin_rvv_vssra_vv_i32m1:
case RISCV::BI__builtin_rvv_vssra_vv_i32m2:
case RISCV::BI__builtin_rvv_vssra_vv_i32m4:
case RISCV::BI__builtin_rvv_vssra_vv_i32m8:
case RISCV::BI__builtin_rvv_vssra_vv_i32mf2:
case RISCV::BI__builtin_rvv_vssra_vv_i64m1:
case RISCV::BI__builtin_rvv_vssra_vv_i64m2:
case RISCV::BI__builtin_rvv_vssra_vv_i64m4:
case RISCV::BI__builtin_rvv_vssra_vv_i64m8:
case RISCV::BI__builtin_rvv_vssra_vx_i8m1:
case RISCV::BI__builtin_rvv_vssra_vx_i8m2:
case RISCV::BI__builtin_rvv_vssra_vx_i8m4:
case RISCV::BI__builtin_rvv_vssra_vx_i8m8:
case RISCV::BI__builtin_rvv_vssra_vx_i8mf2:
case RISCV::BI__builtin_rvv_vssra_vx_i8mf4:
case RISCV::BI__builtin_rvv_vssra_vx_i8mf8:
case RISCV::BI__builtin_rvv_vssra_vx_i16m1:
case RISCV::BI__builtin_rvv_vssra_vx_i16m2:
case RISCV::BI__builtin_rvv_vssra_vx_i16m4:
case RISCV::BI__builtin_rvv_vssra_vx_i16m8:
case RISCV::BI__builtin_rvv_vssra_vx_i16mf2:
case RISCV::BI__builtin_rvv_vssra_vx_i16mf4:
case RISCV::BI__builtin_rvv_vssra_vx_i32m1:
case RISCV::BI__builtin_rvv_vssra_vx_i32m2:
case RISCV::BI__builtin_rvv_vssra_vx_i32m4:
case RISCV::BI__builtin_rvv_vssra_vx_i32m8:
case RISCV::BI__builtin_rvv_vssra_vx_i32mf2:
case RISCV::BI__builtin_rvv_vssra_vx_i64m1:
case RISCV::BI__builtin_rvv_vssra_vx_i64m2:
case RISCV::BI__builtin_rvv_vssra_vx_i64m4:
case RISCV::BI__builtin_rvv_vssra_vx_i64m8:
  ID = Intrinsic::riscv_vssra;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vssra_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vssra_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vssra_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vssra_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vssra_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vssra_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vssra_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vssra_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vssra_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vssra_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vssra_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vssra_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vssra_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vssra_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vssra_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vssra_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vssra_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vssra_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vssra_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vssra_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vssra_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vssra_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vssra_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vssra_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vssra_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vssra_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vssra_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vssra_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vssra_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vssra_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vssra_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vssra_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vssra_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vssra_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vssra_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vssra_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vssra_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vssra_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vssra_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vssra_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vssra_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vssra_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vssra_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vssra_vx_i64m8_m:
  ID = Intrinsic::riscv_vssra_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vssrl_vv_u8m1:
case RISCV::BI__builtin_rvv_vssrl_vv_u8m2:
case RISCV::BI__builtin_rvv_vssrl_vv_u8m4:
case RISCV::BI__builtin_rvv_vssrl_vv_u8m8:
case RISCV::BI__builtin_rvv_vssrl_vv_u8mf2:
case RISCV::BI__builtin_rvv_vssrl_vv_u8mf4:
case RISCV::BI__builtin_rvv_vssrl_vv_u8mf8:
case RISCV::BI__builtin_rvv_vssrl_vv_u16m1:
case RISCV::BI__builtin_rvv_vssrl_vv_u16m2:
case RISCV::BI__builtin_rvv_vssrl_vv_u16m4:
case RISCV::BI__builtin_rvv_vssrl_vv_u16m8:
case RISCV::BI__builtin_rvv_vssrl_vv_u16mf2:
case RISCV::BI__builtin_rvv_vssrl_vv_u16mf4:
case RISCV::BI__builtin_rvv_vssrl_vv_u32m1:
case RISCV::BI__builtin_rvv_vssrl_vv_u32m2:
case RISCV::BI__builtin_rvv_vssrl_vv_u32m4:
case RISCV::BI__builtin_rvv_vssrl_vv_u32m8:
case RISCV::BI__builtin_rvv_vssrl_vv_u32mf2:
case RISCV::BI__builtin_rvv_vssrl_vv_u64m1:
case RISCV::BI__builtin_rvv_vssrl_vv_u64m2:
case RISCV::BI__builtin_rvv_vssrl_vv_u64m4:
case RISCV::BI__builtin_rvv_vssrl_vv_u64m8:
case RISCV::BI__builtin_rvv_vssrl_vx_u8m1:
case RISCV::BI__builtin_rvv_vssrl_vx_u8m2:
case RISCV::BI__builtin_rvv_vssrl_vx_u8m4:
case RISCV::BI__builtin_rvv_vssrl_vx_u8m8:
case RISCV::BI__builtin_rvv_vssrl_vx_u8mf2:
case RISCV::BI__builtin_rvv_vssrl_vx_u8mf4:
case RISCV::BI__builtin_rvv_vssrl_vx_u8mf8:
case RISCV::BI__builtin_rvv_vssrl_vx_u16m1:
case RISCV::BI__builtin_rvv_vssrl_vx_u16m2:
case RISCV::BI__builtin_rvv_vssrl_vx_u16m4:
case RISCV::BI__builtin_rvv_vssrl_vx_u16m8:
case RISCV::BI__builtin_rvv_vssrl_vx_u16mf2:
case RISCV::BI__builtin_rvv_vssrl_vx_u16mf4:
case RISCV::BI__builtin_rvv_vssrl_vx_u32m1:
case RISCV::BI__builtin_rvv_vssrl_vx_u32m2:
case RISCV::BI__builtin_rvv_vssrl_vx_u32m4:
case RISCV::BI__builtin_rvv_vssrl_vx_u32m8:
case RISCV::BI__builtin_rvv_vssrl_vx_u32mf2:
case RISCV::BI__builtin_rvv_vssrl_vx_u64m1:
case RISCV::BI__builtin_rvv_vssrl_vx_u64m2:
case RISCV::BI__builtin_rvv_vssrl_vx_u64m4:
case RISCV::BI__builtin_rvv_vssrl_vx_u64m8:
  ID = Intrinsic::riscv_vssrl;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vssrl_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vssrl_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vssrl_vx_u64m8_m:
  ID = Intrinsic::riscv_vssrl_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16m1:
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16m2:
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16m4:
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16m1:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16m2:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16m4:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vssseg2e32_v_i32m1:
case RISCV::BI__builtin_rvv_vssseg2e32_v_i32m2:
case RISCV::BI__builtin_rvv_vssseg2e32_v_i32m4:
case RISCV::BI__builtin_rvv_vssseg2e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vssseg2e32_v_u32m1:
case RISCV::BI__builtin_rvv_vssseg2e32_v_u32m2:
case RISCV::BI__builtin_rvv_vssseg2e32_v_u32m4:
case RISCV::BI__builtin_rvv_vssseg2e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vssseg2e64_v_i64m1:
case RISCV::BI__builtin_rvv_vssseg2e64_v_i64m2:
case RISCV::BI__builtin_rvv_vssseg2e64_v_i64m4:
case RISCV::BI__builtin_rvv_vssseg2e64_v_u64m1:
case RISCV::BI__builtin_rvv_vssseg2e64_v_u64m2:
case RISCV::BI__builtin_rvv_vssseg2e64_v_u64m4:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16m1:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16m2:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16m4:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vssseg2e32_v_f32m1:
case RISCV::BI__builtin_rvv_vssseg2e32_v_f32m2:
case RISCV::BI__builtin_rvv_vssseg2e32_v_f32m4:
case RISCV::BI__builtin_rvv_vssseg2e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vssseg2e64_v_f64m1:
case RISCV::BI__builtin_rvv_vssseg2e64_v_f64m2:
case RISCV::BI__builtin_rvv_vssseg2e64_v_f64m4:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8m1:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8m2:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8m4:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8m1:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8m2:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8m4:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8mf8:
  ID = Intrinsic::riscv_vssseg2;
  NF = 2;

    {
      // Builtin: (ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vssseg2e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vssseg2e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vssseg2e64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vssseg2e8_v_u8mf8_m:
  ID = Intrinsic::riscv_vssseg2_mask;
  NF = 2;

    {
      // Builtin: (mask, ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8m1:
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8m2:
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8m1:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8m2:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vssseg3e16_v_i16m1:
case RISCV::BI__builtin_rvv_vssseg3e16_v_i16m2:
case RISCV::BI__builtin_rvv_vssseg3e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vssseg3e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vssseg3e16_v_u16m1:
case RISCV::BI__builtin_rvv_vssseg3e16_v_u16m2:
case RISCV::BI__builtin_rvv_vssseg3e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vssseg3e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vssseg3e32_v_i32m1:
case RISCV::BI__builtin_rvv_vssseg3e32_v_i32m2:
case RISCV::BI__builtin_rvv_vssseg3e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vssseg3e32_v_u32m1:
case RISCV::BI__builtin_rvv_vssseg3e32_v_u32m2:
case RISCV::BI__builtin_rvv_vssseg3e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vssseg3e64_v_i64m1:
case RISCV::BI__builtin_rvv_vssseg3e64_v_i64m2:
case RISCV::BI__builtin_rvv_vssseg3e64_v_u64m1:
case RISCV::BI__builtin_rvv_vssseg3e64_v_u64m2:
case RISCV::BI__builtin_rvv_vssseg3e16_v_f16m1:
case RISCV::BI__builtin_rvv_vssseg3e16_v_f16m2:
case RISCV::BI__builtin_rvv_vssseg3e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vssseg3e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vssseg3e32_v_f32m1:
case RISCV::BI__builtin_rvv_vssseg3e32_v_f32m2:
case RISCV::BI__builtin_rvv_vssseg3e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vssseg3e64_v_f64m1:
case RISCV::BI__builtin_rvv_vssseg3e64_v_f64m2:
  ID = Intrinsic::riscv_vssseg3;
  NF = 3;

    {
      // Builtin: (ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vssseg3e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vssseg3e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vssseg3e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vssseg3e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vssseg3e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vssseg3e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vssseg3e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vssseg3e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vssseg3e64_v_f64m2_m:
  ID = Intrinsic::riscv_vssseg3_mask;
  NF = 3;

    {
      // Builtin: (mask, ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8m1:
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8m2:
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8m1:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8m2:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vssseg4e16_v_i16m1:
case RISCV::BI__builtin_rvv_vssseg4e16_v_i16m2:
case RISCV::BI__builtin_rvv_vssseg4e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vssseg4e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vssseg4e16_v_u16m1:
case RISCV::BI__builtin_rvv_vssseg4e16_v_u16m2:
case RISCV::BI__builtin_rvv_vssseg4e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vssseg4e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vssseg4e32_v_i32m1:
case RISCV::BI__builtin_rvv_vssseg4e32_v_i32m2:
case RISCV::BI__builtin_rvv_vssseg4e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vssseg4e32_v_u32m1:
case RISCV::BI__builtin_rvv_vssseg4e32_v_u32m2:
case RISCV::BI__builtin_rvv_vssseg4e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vssseg4e64_v_i64m1:
case RISCV::BI__builtin_rvv_vssseg4e64_v_i64m2:
case RISCV::BI__builtin_rvv_vssseg4e64_v_u64m1:
case RISCV::BI__builtin_rvv_vssseg4e64_v_u64m2:
case RISCV::BI__builtin_rvv_vssseg4e16_v_f16m1:
case RISCV::BI__builtin_rvv_vssseg4e16_v_f16m2:
case RISCV::BI__builtin_rvv_vssseg4e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vssseg4e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vssseg4e32_v_f32m1:
case RISCV::BI__builtin_rvv_vssseg4e32_v_f32m2:
case RISCV::BI__builtin_rvv_vssseg4e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vssseg4e64_v_f64m1:
case RISCV::BI__builtin_rvv_vssseg4e64_v_f64m2:
  ID = Intrinsic::riscv_vssseg4;
  NF = 4;

    {
      // Builtin: (ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vssseg4e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vssseg4e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vssseg4e64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vssseg4e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vssseg4e64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vssseg4e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vssseg4e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vssseg4e64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vssseg4e64_v_f64m2_m:
  ID = Intrinsic::riscv_vssseg4_mask;
  NF = 4;

    {
      // Builtin: (mask, ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg5e8_v_i8m1:
case RISCV::BI__builtin_rvv_vssseg5e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vssseg5e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vssseg5e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vssseg5e8_v_u8m1:
case RISCV::BI__builtin_rvv_vssseg5e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vssseg5e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vssseg5e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vssseg5e16_v_i16m1:
case RISCV::BI__builtin_rvv_vssseg5e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vssseg5e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vssseg5e16_v_u16m1:
case RISCV::BI__builtin_rvv_vssseg5e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vssseg5e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vssseg5e32_v_i32m1:
case RISCV::BI__builtin_rvv_vssseg5e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vssseg5e32_v_u32m1:
case RISCV::BI__builtin_rvv_vssseg5e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vssseg5e64_v_i64m1:
case RISCV::BI__builtin_rvv_vssseg5e64_v_u64m1:
case RISCV::BI__builtin_rvv_vssseg5e16_v_f16m1:
case RISCV::BI__builtin_rvv_vssseg5e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vssseg5e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vssseg5e32_v_f32m1:
case RISCV::BI__builtin_rvv_vssseg5e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vssseg5e64_v_f64m1:
  ID = Intrinsic::riscv_vssseg5;
  NF = 5;

    {
      // Builtin: (ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg5e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vssseg5e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vssseg5e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vssseg5e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vssseg5e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vssseg5e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vssseg5e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vssseg5e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vssseg5e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vssseg5e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vssseg5e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vssseg5e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vssseg5e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vssseg5e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vssseg5e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vssseg5e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vssseg5e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vssseg5e64_v_f64m1_m:
  ID = Intrinsic::riscv_vssseg5_mask;
  NF = 5;

    {
      // Builtin: (mask, ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg6e8_v_i8m1:
case RISCV::BI__builtin_rvv_vssseg6e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vssseg6e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vssseg6e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vssseg6e8_v_u8m1:
case RISCV::BI__builtin_rvv_vssseg6e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vssseg6e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vssseg6e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vssseg6e16_v_i16m1:
case RISCV::BI__builtin_rvv_vssseg6e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vssseg6e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vssseg6e16_v_u16m1:
case RISCV::BI__builtin_rvv_vssseg6e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vssseg6e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vssseg6e32_v_i32m1:
case RISCV::BI__builtin_rvv_vssseg6e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vssseg6e32_v_u32m1:
case RISCV::BI__builtin_rvv_vssseg6e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vssseg6e64_v_i64m1:
case RISCV::BI__builtin_rvv_vssseg6e64_v_u64m1:
case RISCV::BI__builtin_rvv_vssseg6e16_v_f16m1:
case RISCV::BI__builtin_rvv_vssseg6e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vssseg6e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vssseg6e32_v_f32m1:
case RISCV::BI__builtin_rvv_vssseg6e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vssseg6e64_v_f64m1:
  ID = Intrinsic::riscv_vssseg6;
  NF = 6;

    {
      // Builtin: (ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg6e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vssseg6e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vssseg6e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vssseg6e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vssseg6e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vssseg6e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vssseg6e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vssseg6e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vssseg6e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vssseg6e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vssseg6e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vssseg6e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vssseg6e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vssseg6e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vssseg6e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vssseg6e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vssseg6e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vssseg6e64_v_f64m1_m:
  ID = Intrinsic::riscv_vssseg6_mask;
  NF = 6;

    {
      // Builtin: (mask, ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg7e8_v_i8m1:
case RISCV::BI__builtin_rvv_vssseg7e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vssseg7e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vssseg7e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vssseg7e8_v_u8m1:
case RISCV::BI__builtin_rvv_vssseg7e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vssseg7e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vssseg7e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vssseg7e16_v_i16m1:
case RISCV::BI__builtin_rvv_vssseg7e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vssseg7e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vssseg7e16_v_u16m1:
case RISCV::BI__builtin_rvv_vssseg7e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vssseg7e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vssseg7e32_v_i32m1:
case RISCV::BI__builtin_rvv_vssseg7e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vssseg7e32_v_u32m1:
case RISCV::BI__builtin_rvv_vssseg7e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vssseg7e64_v_i64m1:
case RISCV::BI__builtin_rvv_vssseg7e64_v_u64m1:
case RISCV::BI__builtin_rvv_vssseg7e16_v_f16m1:
case RISCV::BI__builtin_rvv_vssseg7e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vssseg7e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vssseg7e32_v_f32m1:
case RISCV::BI__builtin_rvv_vssseg7e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vssseg7e64_v_f64m1:
  ID = Intrinsic::riscv_vssseg7;
  NF = 7;

    {
      // Builtin: (ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg7e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vssseg7e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vssseg7e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vssseg7e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vssseg7e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vssseg7e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vssseg7e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vssseg7e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vssseg7e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vssseg7e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vssseg7e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vssseg7e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vssseg7e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vssseg7e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vssseg7e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vssseg7e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vssseg7e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vssseg7e64_v_f64m1_m:
  ID = Intrinsic::riscv_vssseg7_mask;
  NF = 7;

    {
      // Builtin: (mask, ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg8e8_v_i8m1:
case RISCV::BI__builtin_rvv_vssseg8e8_v_i8mf2:
case RISCV::BI__builtin_rvv_vssseg8e8_v_i8mf4:
case RISCV::BI__builtin_rvv_vssseg8e8_v_i8mf8:
case RISCV::BI__builtin_rvv_vssseg8e8_v_u8m1:
case RISCV::BI__builtin_rvv_vssseg8e8_v_u8mf2:
case RISCV::BI__builtin_rvv_vssseg8e8_v_u8mf4:
case RISCV::BI__builtin_rvv_vssseg8e8_v_u8mf8:
case RISCV::BI__builtin_rvv_vssseg8e16_v_i16m1:
case RISCV::BI__builtin_rvv_vssseg8e16_v_i16mf2:
case RISCV::BI__builtin_rvv_vssseg8e16_v_i16mf4:
case RISCV::BI__builtin_rvv_vssseg8e16_v_u16m1:
case RISCV::BI__builtin_rvv_vssseg8e16_v_u16mf2:
case RISCV::BI__builtin_rvv_vssseg8e16_v_u16mf4:
case RISCV::BI__builtin_rvv_vssseg8e32_v_i32m1:
case RISCV::BI__builtin_rvv_vssseg8e32_v_i32mf2:
case RISCV::BI__builtin_rvv_vssseg8e32_v_u32m1:
case RISCV::BI__builtin_rvv_vssseg8e32_v_u32mf2:
case RISCV::BI__builtin_rvv_vssseg8e64_v_i64m1:
case RISCV::BI__builtin_rvv_vssseg8e64_v_u64m1:
case RISCV::BI__builtin_rvv_vssseg8e16_v_f16m1:
case RISCV::BI__builtin_rvv_vssseg8e16_v_f16mf2:
case RISCV::BI__builtin_rvv_vssseg8e16_v_f16mf4:
case RISCV::BI__builtin_rvv_vssseg8e32_v_f32m1:
case RISCV::BI__builtin_rvv_vssseg8e32_v_f32mf2:
case RISCV::BI__builtin_rvv_vssseg8e64_v_f64m1:
  ID = Intrinsic::riscv_vssseg8;
  NF = 8;

    {
      // Builtin: (ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vssseg8e8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vssseg8e8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vssseg8e8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vssseg8e8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vssseg8e8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vssseg8e8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vssseg8e8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vssseg8e8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vssseg8e32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vssseg8e32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vssseg8e32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vssseg8e32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vssseg8e64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vssseg8e64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vssseg8e16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vssseg8e32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vssseg8e32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vssseg8e64_v_f64m1_m:
  ID = Intrinsic::riscv_vssseg8_mask;
  NF = 8;

    {
      // Builtin: (mask, ptr, stride, val0, val1, ..., vl).
      // Intrinsic: (val0, val1, ..., ptr, stride, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(), Ops[NF + 1]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vssub_vv_i8m1:
case RISCV::BI__builtin_rvv_vssub_vv_i8m2:
case RISCV::BI__builtin_rvv_vssub_vv_i8m4:
case RISCV::BI__builtin_rvv_vssub_vv_i8m8:
case RISCV::BI__builtin_rvv_vssub_vv_i8mf2:
case RISCV::BI__builtin_rvv_vssub_vv_i8mf4:
case RISCV::BI__builtin_rvv_vssub_vv_i8mf8:
case RISCV::BI__builtin_rvv_vssub_vv_i16m1:
case RISCV::BI__builtin_rvv_vssub_vv_i16m2:
case RISCV::BI__builtin_rvv_vssub_vv_i16m4:
case RISCV::BI__builtin_rvv_vssub_vv_i16m8:
case RISCV::BI__builtin_rvv_vssub_vv_i16mf2:
case RISCV::BI__builtin_rvv_vssub_vv_i16mf4:
case RISCV::BI__builtin_rvv_vssub_vv_i32m1:
case RISCV::BI__builtin_rvv_vssub_vv_i32m2:
case RISCV::BI__builtin_rvv_vssub_vv_i32m4:
case RISCV::BI__builtin_rvv_vssub_vv_i32m8:
case RISCV::BI__builtin_rvv_vssub_vv_i32mf2:
case RISCV::BI__builtin_rvv_vssub_vv_i64m1:
case RISCV::BI__builtin_rvv_vssub_vv_i64m2:
case RISCV::BI__builtin_rvv_vssub_vv_i64m4:
case RISCV::BI__builtin_rvv_vssub_vv_i64m8:
case RISCV::BI__builtin_rvv_vssub_vx_i8m1:
case RISCV::BI__builtin_rvv_vssub_vx_i8m2:
case RISCV::BI__builtin_rvv_vssub_vx_i8m4:
case RISCV::BI__builtin_rvv_vssub_vx_i8m8:
case RISCV::BI__builtin_rvv_vssub_vx_i8mf2:
case RISCV::BI__builtin_rvv_vssub_vx_i8mf4:
case RISCV::BI__builtin_rvv_vssub_vx_i8mf8:
case RISCV::BI__builtin_rvv_vssub_vx_i16m1:
case RISCV::BI__builtin_rvv_vssub_vx_i16m2:
case RISCV::BI__builtin_rvv_vssub_vx_i16m4:
case RISCV::BI__builtin_rvv_vssub_vx_i16m8:
case RISCV::BI__builtin_rvv_vssub_vx_i16mf2:
case RISCV::BI__builtin_rvv_vssub_vx_i16mf4:
case RISCV::BI__builtin_rvv_vssub_vx_i32m1:
case RISCV::BI__builtin_rvv_vssub_vx_i32m2:
case RISCV::BI__builtin_rvv_vssub_vx_i32m4:
case RISCV::BI__builtin_rvv_vssub_vx_i32m8:
case RISCV::BI__builtin_rvv_vssub_vx_i32mf2:
case RISCV::BI__builtin_rvv_vssub_vx_i64m1:
case RISCV::BI__builtin_rvv_vssub_vx_i64m2:
case RISCV::BI__builtin_rvv_vssub_vx_i64m4:
case RISCV::BI__builtin_rvv_vssub_vx_i64m8:
  ID = Intrinsic::riscv_vssub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vssub_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vssub_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vssub_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vssub_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vssub_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vssub_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vssub_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vssub_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vssub_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vssub_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vssub_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vssub_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vssub_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vssub_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vssub_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vssub_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vssub_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vssub_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vssub_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vssub_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vssub_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vssub_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vssub_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vssub_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vssub_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vssub_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vssub_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vssub_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vssub_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vssub_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vssub_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vssub_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vssub_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vssub_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vssub_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vssub_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vssub_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vssub_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vssub_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vssub_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vssub_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vssub_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vssub_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vssub_vx_i64m8_m:
  ID = Intrinsic::riscv_vssub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vssubu_vv_u8m1:
case RISCV::BI__builtin_rvv_vssubu_vv_u8m2:
case RISCV::BI__builtin_rvv_vssubu_vv_u8m4:
case RISCV::BI__builtin_rvv_vssubu_vv_u8m8:
case RISCV::BI__builtin_rvv_vssubu_vv_u8mf2:
case RISCV::BI__builtin_rvv_vssubu_vv_u8mf4:
case RISCV::BI__builtin_rvv_vssubu_vv_u8mf8:
case RISCV::BI__builtin_rvv_vssubu_vv_u16m1:
case RISCV::BI__builtin_rvv_vssubu_vv_u16m2:
case RISCV::BI__builtin_rvv_vssubu_vv_u16m4:
case RISCV::BI__builtin_rvv_vssubu_vv_u16m8:
case RISCV::BI__builtin_rvv_vssubu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vssubu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vssubu_vv_u32m1:
case RISCV::BI__builtin_rvv_vssubu_vv_u32m2:
case RISCV::BI__builtin_rvv_vssubu_vv_u32m4:
case RISCV::BI__builtin_rvv_vssubu_vv_u32m8:
case RISCV::BI__builtin_rvv_vssubu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vssubu_vv_u64m1:
case RISCV::BI__builtin_rvv_vssubu_vv_u64m2:
case RISCV::BI__builtin_rvv_vssubu_vv_u64m4:
case RISCV::BI__builtin_rvv_vssubu_vv_u64m8:
case RISCV::BI__builtin_rvv_vssubu_vx_u8m1:
case RISCV::BI__builtin_rvv_vssubu_vx_u8m2:
case RISCV::BI__builtin_rvv_vssubu_vx_u8m4:
case RISCV::BI__builtin_rvv_vssubu_vx_u8m8:
case RISCV::BI__builtin_rvv_vssubu_vx_u8mf2:
case RISCV::BI__builtin_rvv_vssubu_vx_u8mf4:
case RISCV::BI__builtin_rvv_vssubu_vx_u8mf8:
case RISCV::BI__builtin_rvv_vssubu_vx_u16m1:
case RISCV::BI__builtin_rvv_vssubu_vx_u16m2:
case RISCV::BI__builtin_rvv_vssubu_vx_u16m4:
case RISCV::BI__builtin_rvv_vssubu_vx_u16m8:
case RISCV::BI__builtin_rvv_vssubu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vssubu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vssubu_vx_u32m1:
case RISCV::BI__builtin_rvv_vssubu_vx_u32m2:
case RISCV::BI__builtin_rvv_vssubu_vx_u32m4:
case RISCV::BI__builtin_rvv_vssubu_vx_u32m8:
case RISCV::BI__builtin_rvv_vssubu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vssubu_vx_u64m1:
case RISCV::BI__builtin_rvv_vssubu_vx_u64m2:
case RISCV::BI__builtin_rvv_vssubu_vx_u64m4:
case RISCV::BI__builtin_rvv_vssubu_vx_u64m8:
  ID = Intrinsic::riscv_vssubu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vssubu_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vssubu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vssubu_vx_u64m8_m:
  ID = Intrinsic::riscv_vssubu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsub_vv_i8m1:
case RISCV::BI__builtin_rvv_vsub_vv_i8m2:
case RISCV::BI__builtin_rvv_vsub_vv_i8m4:
case RISCV::BI__builtin_rvv_vsub_vv_i8m8:
case RISCV::BI__builtin_rvv_vsub_vv_i8mf2:
case RISCV::BI__builtin_rvv_vsub_vv_i8mf4:
case RISCV::BI__builtin_rvv_vsub_vv_i8mf8:
case RISCV::BI__builtin_rvv_vsub_vv_i16m1:
case RISCV::BI__builtin_rvv_vsub_vv_i16m2:
case RISCV::BI__builtin_rvv_vsub_vv_i16m4:
case RISCV::BI__builtin_rvv_vsub_vv_i16m8:
case RISCV::BI__builtin_rvv_vsub_vv_i16mf2:
case RISCV::BI__builtin_rvv_vsub_vv_i16mf4:
case RISCV::BI__builtin_rvv_vsub_vv_i32m1:
case RISCV::BI__builtin_rvv_vsub_vv_i32m2:
case RISCV::BI__builtin_rvv_vsub_vv_i32m4:
case RISCV::BI__builtin_rvv_vsub_vv_i32m8:
case RISCV::BI__builtin_rvv_vsub_vv_i32mf2:
case RISCV::BI__builtin_rvv_vsub_vv_i64m1:
case RISCV::BI__builtin_rvv_vsub_vv_i64m2:
case RISCV::BI__builtin_rvv_vsub_vv_i64m4:
case RISCV::BI__builtin_rvv_vsub_vv_i64m8:
case RISCV::BI__builtin_rvv_vsub_vx_i8m1:
case RISCV::BI__builtin_rvv_vsub_vx_i8m2:
case RISCV::BI__builtin_rvv_vsub_vx_i8m4:
case RISCV::BI__builtin_rvv_vsub_vx_i8m8:
case RISCV::BI__builtin_rvv_vsub_vx_i8mf2:
case RISCV::BI__builtin_rvv_vsub_vx_i8mf4:
case RISCV::BI__builtin_rvv_vsub_vx_i8mf8:
case RISCV::BI__builtin_rvv_vsub_vx_i16m1:
case RISCV::BI__builtin_rvv_vsub_vx_i16m2:
case RISCV::BI__builtin_rvv_vsub_vx_i16m4:
case RISCV::BI__builtin_rvv_vsub_vx_i16m8:
case RISCV::BI__builtin_rvv_vsub_vx_i16mf2:
case RISCV::BI__builtin_rvv_vsub_vx_i16mf4:
case RISCV::BI__builtin_rvv_vsub_vx_i32m1:
case RISCV::BI__builtin_rvv_vsub_vx_i32m2:
case RISCV::BI__builtin_rvv_vsub_vx_i32m4:
case RISCV::BI__builtin_rvv_vsub_vx_i32m8:
case RISCV::BI__builtin_rvv_vsub_vx_i32mf2:
case RISCV::BI__builtin_rvv_vsub_vx_i64m1:
case RISCV::BI__builtin_rvv_vsub_vx_i64m2:
case RISCV::BI__builtin_rvv_vsub_vx_i64m4:
case RISCV::BI__builtin_rvv_vsub_vx_i64m8:
case RISCV::BI__builtin_rvv_vsub_vv_u8m1:
case RISCV::BI__builtin_rvv_vsub_vv_u8m2:
case RISCV::BI__builtin_rvv_vsub_vv_u8m4:
case RISCV::BI__builtin_rvv_vsub_vv_u8m8:
case RISCV::BI__builtin_rvv_vsub_vv_u8mf2:
case RISCV::BI__builtin_rvv_vsub_vv_u8mf4:
case RISCV::BI__builtin_rvv_vsub_vv_u8mf8:
case RISCV::BI__builtin_rvv_vsub_vv_u16m1:
case RISCV::BI__builtin_rvv_vsub_vv_u16m2:
case RISCV::BI__builtin_rvv_vsub_vv_u16m4:
case RISCV::BI__builtin_rvv_vsub_vv_u16m8:
case RISCV::BI__builtin_rvv_vsub_vv_u16mf2:
case RISCV::BI__builtin_rvv_vsub_vv_u16mf4:
case RISCV::BI__builtin_rvv_vsub_vv_u32m1:
case RISCV::BI__builtin_rvv_vsub_vv_u32m2:
case RISCV::BI__builtin_rvv_vsub_vv_u32m4:
case RISCV::BI__builtin_rvv_vsub_vv_u32m8:
case RISCV::BI__builtin_rvv_vsub_vv_u32mf2:
case RISCV::BI__builtin_rvv_vsub_vv_u64m1:
case RISCV::BI__builtin_rvv_vsub_vv_u64m2:
case RISCV::BI__builtin_rvv_vsub_vv_u64m4:
case RISCV::BI__builtin_rvv_vsub_vv_u64m8:
case RISCV::BI__builtin_rvv_vsub_vx_u8m1:
case RISCV::BI__builtin_rvv_vsub_vx_u8m2:
case RISCV::BI__builtin_rvv_vsub_vx_u8m4:
case RISCV::BI__builtin_rvv_vsub_vx_u8m8:
case RISCV::BI__builtin_rvv_vsub_vx_u8mf2:
case RISCV::BI__builtin_rvv_vsub_vx_u8mf4:
case RISCV::BI__builtin_rvv_vsub_vx_u8mf8:
case RISCV::BI__builtin_rvv_vsub_vx_u16m1:
case RISCV::BI__builtin_rvv_vsub_vx_u16m2:
case RISCV::BI__builtin_rvv_vsub_vx_u16m4:
case RISCV::BI__builtin_rvv_vsub_vx_u16m8:
case RISCV::BI__builtin_rvv_vsub_vx_u16mf2:
case RISCV::BI__builtin_rvv_vsub_vx_u16mf4:
case RISCV::BI__builtin_rvv_vsub_vx_u32m1:
case RISCV::BI__builtin_rvv_vsub_vx_u32m2:
case RISCV::BI__builtin_rvv_vsub_vx_u32m4:
case RISCV::BI__builtin_rvv_vsub_vx_u32m8:
case RISCV::BI__builtin_rvv_vsub_vx_u32mf2:
case RISCV::BI__builtin_rvv_vsub_vx_u64m1:
case RISCV::BI__builtin_rvv_vsub_vx_u64m2:
case RISCV::BI__builtin_rvv_vsub_vx_u64m4:
case RISCV::BI__builtin_rvv_vsub_vx_u64m8:
  ID = Intrinsic::riscv_vsub;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsub_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vsub_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vsub_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vsub_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vsub_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vsub_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vsub_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vsub_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vsub_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vsub_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vsub_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vsub_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vsub_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vsub_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vsub_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vsub_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vsub_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vsub_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vsub_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vsub_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vsub_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vsub_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vsub_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vsub_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vsub_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vsub_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vsub_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vsub_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vsub_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vsub_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vsub_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vsub_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vsub_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vsub_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vsub_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vsub_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vsub_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vsub_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vsub_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vsub_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vsub_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vsub_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vsub_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vsub_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vsub_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vsub_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vsub_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vsub_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vsub_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vsub_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vsub_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vsub_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vsub_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vsub_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vsub_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vsub_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vsub_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vsub_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vsub_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vsub_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vsub_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vsub_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vsub_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vsub_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vsub_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vsub_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vsub_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vsub_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vsub_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vsub_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vsub_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vsub_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vsub_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vsub_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vsub_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vsub_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vsub_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vsub_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vsub_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vsub_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vsub_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vsub_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vsub_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vsub_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vsub_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vsub_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vsub_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vsub_vx_u64m8_m:
  ID = Intrinsic::riscv_vsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vsuxei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32m8:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32m8:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_i32m4:
case RISCV::BI__builtin_rvv_vsuxei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_u32m4:
case RISCV::BI__builtin_rvv_vsuxei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_i64m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_i64m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_u64m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_u64m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_i64m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_i64m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_u64m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_u64m8:
case RISCV::BI__builtin_rvv_vsuxei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_i64m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_i64m8:
case RISCV::BI__builtin_rvv_vsuxei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_u64m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_u64m8:
case RISCV::BI__builtin_rvv_vsuxei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_i64m4:
case RISCV::BI__builtin_rvv_vsuxei64_v_i64m8:
case RISCV::BI__builtin_rvv_vsuxei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_u64m4:
case RISCV::BI__builtin_rvv_vsuxei64_v_u64m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32m8:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32m8:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_f32m4:
case RISCV::BI__builtin_rvv_vsuxei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxei8_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxei8_v_f64m4:
case RISCV::BI__builtin_rvv_vsuxei8_v_f64m8:
case RISCV::BI__builtin_rvv_vsuxei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxei16_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxei16_v_f64m4:
case RISCV::BI__builtin_rvv_vsuxei16_v_f64m8:
case RISCV::BI__builtin_rvv_vsuxei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxei32_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxei32_v_f64m4:
case RISCV::BI__builtin_rvv_vsuxei32_v_f64m8:
case RISCV::BI__builtin_rvv_vsuxei64_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxei64_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxei64_v_f64m4:
case RISCV::BI__builtin_rvv_vsuxei64_v_f64m8:
  ID = Intrinsic::riscv_vsuxei;

        // Builtin: (ptr, index, value, vl). Intrinsic: (value, ptr, index, vl)
        std::rotate(Ops.begin(), Ops.begin() + 2, Ops.begin() + 3);
        Ops[1] = Builder.CreateBitCast(Ops[1],Ops[0]->getType()->getPointerTo());
        IntrinsicTypes = {Ops[0]->getType(), Ops[2]->getType(), Ops[3]->getType()};
      break;
case RISCV::BI__builtin_rvv_vsuxei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32m8_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32m8_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_i64m8_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_u64m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32m8_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32m8_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsuxei8_v_f64m8_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsuxei16_v_f64m8_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsuxei32_v_f64m8_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsuxei64_v_f64m8_m:
  ID = Intrinsic::riscv_vsuxei_mask;

        // Builtin: (mask, ptr, index, value, vl). Intrinsic: (value, ptr, index, mask, vl)
        std::swap(Ops[0], Ops[3]);
        Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType()->getPointerTo());
        IntrinsicTypes = {Ops[0]->getType(), Ops[2]->getType(), Ops[4]->getType()};
      break;
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f32m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f64m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8m4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8mf8:
  ID = Intrinsic::riscv_vsuxseg2;
  NF = 2;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_i64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_u64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f32m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei16_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei32_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei64_v_f64m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8m4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg2ei8_v_u8mf8_m:
  ID = Intrinsic::riscv_vsuxseg2_mask;
  NF = 2;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f64m2:
  ID = Intrinsic::riscv_vsuxseg3;
  NF = 3;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg3ei64_v_f64m2_m:
  ID = Intrinsic::riscv_vsuxseg3_mask;
  NF = 3;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f16m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f32m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f64m2:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f64m2:
  ID = Intrinsic::riscv_vsuxseg4;
  NF = 4;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_i64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_u64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f16m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f32m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei8_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei16_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei32_v_f64m2_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg4ei64_v_f64m2_m:
  ID = Intrinsic::riscv_vsuxseg4_mask;
  NF = 4;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f64m1:
  ID = Intrinsic::riscv_vsuxseg5;
  NF = 5;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg5ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vsuxseg5_mask;
  NF = 5;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f64m1:
  ID = Intrinsic::riscv_vsuxseg6;
  NF = 6;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg6ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vsuxseg6_mask;
  NF = 6;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f64m1:
  ID = Intrinsic::riscv_vsuxseg7;
  NF = 7;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg7ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vsuxseg7_mask;
  NF = 7;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i8m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u8m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f16m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f16mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f16mf4:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f32m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f32mf2:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f64m1:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f64m1:
  ID = Intrinsic::riscv_vsuxseg8;
  NF = 8;

    {
      // Builtin: (ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, vl)
      std::rotate(Ops.begin(), Ops.begin() + 2, Ops.end() - 1);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 2]->getType()};
      assert(Ops.size() == NF + 3);
    }
            break;
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u8m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_i64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_u64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f16m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f16mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f16mf4_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f32m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f32mf2_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei8_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei16_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei32_v_f64m1_m:
case RISCV::BI__builtin_rvv_vsuxseg8ei64_v_f64m1_m:
  ID = Intrinsic::riscv_vsuxseg8_mask;
  NF = 8;

    {
      // Builtin: (mask, ptr, index, val0, val1, ..., vl)
      // Intrinsic: (val0, val1, ..., ptr, index, mask, vl)
      std::rotate(Ops.begin(), Ops.begin() + 3, Ops.end() - 1);
      std::rotate(Ops.begin() + NF, Ops.begin() + NF + 1, Ops.begin() + NF + 3);
      IntrinsicTypes = {Ops[0]->getType(),
                        Ops[NF + 1]->getType(), Ops[NF + 3]->getType()};
      assert(Ops.size() == NF + 4);
    }
            break;
case RISCV::BI__builtin_rvv_vwadd_vv_i16mf4:
case RISCV::BI__builtin_rvv_vwadd_vv_i16mf2:
case RISCV::BI__builtin_rvv_vwadd_vv_i16m1:
case RISCV::BI__builtin_rvv_vwadd_vv_i16m2:
case RISCV::BI__builtin_rvv_vwadd_vv_i16m4:
case RISCV::BI__builtin_rvv_vwadd_vv_i16m8:
case RISCV::BI__builtin_rvv_vwadd_vv_i32mf2:
case RISCV::BI__builtin_rvv_vwadd_vv_i32m1:
case RISCV::BI__builtin_rvv_vwadd_vv_i32m2:
case RISCV::BI__builtin_rvv_vwadd_vv_i32m4:
case RISCV::BI__builtin_rvv_vwadd_vv_i32m8:
case RISCV::BI__builtin_rvv_vwadd_vv_i64m1:
case RISCV::BI__builtin_rvv_vwadd_vv_i64m2:
case RISCV::BI__builtin_rvv_vwadd_vv_i64m4:
case RISCV::BI__builtin_rvv_vwadd_vv_i64m8:
case RISCV::BI__builtin_rvv_vwadd_vx_i16mf4:
case RISCV::BI__builtin_rvv_vwadd_vx_i16mf2:
case RISCV::BI__builtin_rvv_vwadd_vx_i16m1:
case RISCV::BI__builtin_rvv_vwadd_vx_i16m2:
case RISCV::BI__builtin_rvv_vwadd_vx_i16m4:
case RISCV::BI__builtin_rvv_vwadd_vx_i16m8:
case RISCV::BI__builtin_rvv_vwadd_vx_i32mf2:
case RISCV::BI__builtin_rvv_vwadd_vx_i32m1:
case RISCV::BI__builtin_rvv_vwadd_vx_i32m2:
case RISCV::BI__builtin_rvv_vwadd_vx_i32m4:
case RISCV::BI__builtin_rvv_vwadd_vx_i32m8:
case RISCV::BI__builtin_rvv_vwadd_vx_i64m1:
case RISCV::BI__builtin_rvv_vwadd_vx_i64m2:
case RISCV::BI__builtin_rvv_vwadd_vx_i64m4:
case RISCV::BI__builtin_rvv_vwadd_vx_i64m8:
  ID = Intrinsic::riscv_vwadd;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16m2:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16m4:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16m8:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16m1:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16mf2:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16mf4:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32m2:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32m4:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32m8:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32m1:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32mf2:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i64m2:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i64m4:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i64m8:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i64m1:
  ID = Intrinsic::riscv_vwadd;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          Ops[0]->getType(),
                          cast<llvm::VectorType>(Ops[0]->getType())->getElementType(),
                          Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1, llvm::Constant::getNullValue(IntrinsicTypes[2]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vwadd_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vwadd_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vwadd_vx_i64m8_m:
  ID = Intrinsic::riscv_vwadd_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16m2_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16m4_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16m8_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16m1_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32m2_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32m4_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32m8_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32m1_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i64m2_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i64m4_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i64m8_m:
case RISCV::BI__builtin_rvv_vwcvt_x_x_v_i64m1_m:
  ID = Intrinsic::riscv_vwadd_mask;

      {
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        // maskedoff, op1, mask, vl
        IntrinsicTypes = {ResultType,
                          Ops[1]->getType(),
                          cast<llvm::VectorType>(Ops[1]->getType())->getElementType(),
                          Ops[3]->getType()};
        Ops.insert(Ops.begin() + 2, llvm::Constant::getNullValue(IntrinsicTypes[2]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vwadd_wv_i16mf4:
case RISCV::BI__builtin_rvv_vwadd_wv_i16mf2:
case RISCV::BI__builtin_rvv_vwadd_wv_i16m1:
case RISCV::BI__builtin_rvv_vwadd_wv_i16m2:
case RISCV::BI__builtin_rvv_vwadd_wv_i16m4:
case RISCV::BI__builtin_rvv_vwadd_wv_i16m8:
case RISCV::BI__builtin_rvv_vwadd_wv_i32mf2:
case RISCV::BI__builtin_rvv_vwadd_wv_i32m1:
case RISCV::BI__builtin_rvv_vwadd_wv_i32m2:
case RISCV::BI__builtin_rvv_vwadd_wv_i32m4:
case RISCV::BI__builtin_rvv_vwadd_wv_i32m8:
case RISCV::BI__builtin_rvv_vwadd_wv_i64m1:
case RISCV::BI__builtin_rvv_vwadd_wv_i64m2:
case RISCV::BI__builtin_rvv_vwadd_wv_i64m4:
case RISCV::BI__builtin_rvv_vwadd_wv_i64m8:
case RISCV::BI__builtin_rvv_vwadd_wx_i16mf4:
case RISCV::BI__builtin_rvv_vwadd_wx_i16mf2:
case RISCV::BI__builtin_rvv_vwadd_wx_i16m1:
case RISCV::BI__builtin_rvv_vwadd_wx_i16m2:
case RISCV::BI__builtin_rvv_vwadd_wx_i16m4:
case RISCV::BI__builtin_rvv_vwadd_wx_i16m8:
case RISCV::BI__builtin_rvv_vwadd_wx_i32mf2:
case RISCV::BI__builtin_rvv_vwadd_wx_i32m1:
case RISCV::BI__builtin_rvv_vwadd_wx_i32m2:
case RISCV::BI__builtin_rvv_vwadd_wx_i32m4:
case RISCV::BI__builtin_rvv_vwadd_wx_i32m8:
case RISCV::BI__builtin_rvv_vwadd_wx_i64m1:
case RISCV::BI__builtin_rvv_vwadd_wx_i64m2:
case RISCV::BI__builtin_rvv_vwadd_wx_i64m4:
case RISCV::BI__builtin_rvv_vwadd_wx_i64m8:
  ID = Intrinsic::riscv_vwadd_w;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwadd_wv_i16mf4_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i16mf2_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i16m1_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i16m2_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i16m4_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i16m8_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i32mf2_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i32m1_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i32m2_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i32m4_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i32m8_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i64m1_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i64m2_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i64m4_m:
case RISCV::BI__builtin_rvv_vwadd_wv_i64m8_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i16m1_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i16m2_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i16m4_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i16m8_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i32m1_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i32m2_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i32m4_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i32m8_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i64m1_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i64m2_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i64m4_m:
case RISCV::BI__builtin_rvv_vwadd_wx_i64m8_m:
  ID = Intrinsic::riscv_vwadd_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwaddu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16m1:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16m2:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16m4:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16m8:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32m1:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32m2:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32m4:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32m8:
case RISCV::BI__builtin_rvv_vwaddu_vv_u64m1:
case RISCV::BI__builtin_rvv_vwaddu_vv_u64m2:
case RISCV::BI__builtin_rvv_vwaddu_vv_u64m4:
case RISCV::BI__builtin_rvv_vwaddu_vv_u64m8:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16m1:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16m2:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16m4:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16m8:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32m1:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32m2:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32m4:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32m8:
case RISCV::BI__builtin_rvv_vwaddu_vx_u64m1:
case RISCV::BI__builtin_rvv_vwaddu_vx_u64m2:
case RISCV::BI__builtin_rvv_vwaddu_vx_u64m4:
case RISCV::BI__builtin_rvv_vwaddu_vx_u64m8:
  ID = Intrinsic::riscv_vwaddu;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16m2:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16m4:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16m8:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16m1:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16mf2:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16mf4:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32m2:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32m4:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32m8:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32m1:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32mf2:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u64m2:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u64m4:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u64m8:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u64m1:
  ID = Intrinsic::riscv_vwaddu;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          Ops[0]->getType(),
                          cast<llvm::VectorType>(Ops[0]->getType())->getElementType(),
                          Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1, llvm::Constant::getNullValue(IntrinsicTypes[2]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vwaddu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vwaddu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vwaddu_vx_u64m8_m:
  ID = Intrinsic::riscv_vwaddu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16m2_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16m4_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16m8_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16m1_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32m2_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32m4_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32m8_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32m1_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u64m2_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u64m4_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u64m8_m:
case RISCV::BI__builtin_rvv_vwcvtu_x_x_v_u64m1_m:
  ID = Intrinsic::riscv_vwaddu_mask;

      {
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        // maskedoff, op1, mask, vl
        IntrinsicTypes = {ResultType,
                          Ops[1]->getType(),
                          cast<llvm::VectorType>(Ops[1]->getType())->getElementType(),
                          Ops[3]->getType()};
        Ops.insert(Ops.begin() + 2, llvm::Constant::getNullValue(IntrinsicTypes[2]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vwaddu_wv_u16mf4:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16mf2:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16m1:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16m2:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16m4:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16m8:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32mf2:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32m1:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32m2:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32m4:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32m8:
case RISCV::BI__builtin_rvv_vwaddu_wv_u64m1:
case RISCV::BI__builtin_rvv_vwaddu_wv_u64m2:
case RISCV::BI__builtin_rvv_vwaddu_wv_u64m4:
case RISCV::BI__builtin_rvv_vwaddu_wv_u64m8:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16mf4:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16mf2:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16m1:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16m2:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16m4:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16m8:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32mf2:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32m1:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32m2:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32m4:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32m8:
case RISCV::BI__builtin_rvv_vwaddu_wx_u64m1:
case RISCV::BI__builtin_rvv_vwaddu_wx_u64m2:
case RISCV::BI__builtin_rvv_vwaddu_wx_u64m4:
case RISCV::BI__builtin_rvv_vwaddu_wx_u64m8:
  ID = Intrinsic::riscv_vwaddu_w;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwaddu_wv_u16mf4_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16mf2_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16m1_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16m2_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16m4_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u16m8_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32mf2_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32m1_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32m2_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32m4_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u32m8_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u64m1_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u64m2_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u64m4_m:
case RISCV::BI__builtin_rvv_vwaddu_wv_u64m8_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16mf4_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16mf2_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16m1_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16m2_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16m4_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u16m8_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32mf2_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32m1_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32m2_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32m4_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u32m8_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u64m1_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u64m2_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u64m4_m:
case RISCV::BI__builtin_rvv_vwaddu_wx_u64m8_m:
  ID = Intrinsic::riscv_vwaddu_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmacc_vv_i16mf4:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16mf2:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16m1:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16m2:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16m4:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16m8:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32mf2:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32m1:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32m2:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32m4:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32m8:
case RISCV::BI__builtin_rvv_vwmacc_vv_i64m1:
case RISCV::BI__builtin_rvv_vwmacc_vv_i64m2:
case RISCV::BI__builtin_rvv_vwmacc_vv_i64m4:
case RISCV::BI__builtin_rvv_vwmacc_vv_i64m8:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16mf4:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16mf2:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16m1:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16m2:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16m4:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16m8:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32mf2:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32m1:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32m2:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32m4:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32m8:
case RISCV::BI__builtin_rvv_vwmacc_vx_i64m1:
case RISCV::BI__builtin_rvv_vwmacc_vx_i64m2:
case RISCV::BI__builtin_rvv_vwmacc_vx_i64m4:
case RISCV::BI__builtin_rvv_vwmacc_vx_i64m8:
  ID = Intrinsic::riscv_vwmacc;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmacc_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vwmacc_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vwmacc_vx_i64m8_m:
  ID = Intrinsic::riscv_vwmacc_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16mf4:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16mf2:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16m1:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16m2:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16m4:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16m8:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32mf2:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32m1:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32m2:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32m4:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32m8:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i64m1:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i64m2:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i64m4:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i64m8:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16mf4:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16mf2:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16m1:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16m2:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16m4:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16m8:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32mf2:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32m1:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32m2:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32m4:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32m8:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i64m1:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i64m2:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i64m4:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i64m8:
  ID = Intrinsic::riscv_vwmaccsu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vwmaccsu_vx_i64m8_m:
  ID = Intrinsic::riscv_vwmaccsu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16m1:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16m2:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16m4:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16m8:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32m1:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32m2:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32m4:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32m8:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u64m1:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u64m2:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u64m4:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u64m8:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16m1:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16m2:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16m4:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16m8:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32m1:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32m2:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32m4:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32m8:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u64m1:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u64m2:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u64m4:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u64m8:
  ID = Intrinsic::riscv_vwmaccu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vwmaccu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vwmaccu_vx_u64m8_m:
  ID = Intrinsic::riscv_vwmaccu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16mf4:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16mf2:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16m1:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16m2:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16m4:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16m8:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32mf2:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32m1:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32m2:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32m4:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32m8:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i64m1:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i64m2:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i64m4:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i64m8:
  ID = Intrinsic::riscv_vwmaccus;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vwmaccus_vx_i64m8_m:
  ID = Intrinsic::riscv_vwmaccus_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmul_vv_i16mf4:
case RISCV::BI__builtin_rvv_vwmul_vv_i16mf2:
case RISCV::BI__builtin_rvv_vwmul_vv_i16m1:
case RISCV::BI__builtin_rvv_vwmul_vv_i16m2:
case RISCV::BI__builtin_rvv_vwmul_vv_i16m4:
case RISCV::BI__builtin_rvv_vwmul_vv_i16m8:
case RISCV::BI__builtin_rvv_vwmul_vv_i32mf2:
case RISCV::BI__builtin_rvv_vwmul_vv_i32m1:
case RISCV::BI__builtin_rvv_vwmul_vv_i32m2:
case RISCV::BI__builtin_rvv_vwmul_vv_i32m4:
case RISCV::BI__builtin_rvv_vwmul_vv_i32m8:
case RISCV::BI__builtin_rvv_vwmul_vv_i64m1:
case RISCV::BI__builtin_rvv_vwmul_vv_i64m2:
case RISCV::BI__builtin_rvv_vwmul_vv_i64m4:
case RISCV::BI__builtin_rvv_vwmul_vv_i64m8:
case RISCV::BI__builtin_rvv_vwmul_vx_i16mf4:
case RISCV::BI__builtin_rvv_vwmul_vx_i16mf2:
case RISCV::BI__builtin_rvv_vwmul_vx_i16m1:
case RISCV::BI__builtin_rvv_vwmul_vx_i16m2:
case RISCV::BI__builtin_rvv_vwmul_vx_i16m4:
case RISCV::BI__builtin_rvv_vwmul_vx_i16m8:
case RISCV::BI__builtin_rvv_vwmul_vx_i32mf2:
case RISCV::BI__builtin_rvv_vwmul_vx_i32m1:
case RISCV::BI__builtin_rvv_vwmul_vx_i32m2:
case RISCV::BI__builtin_rvv_vwmul_vx_i32m4:
case RISCV::BI__builtin_rvv_vwmul_vx_i32m8:
case RISCV::BI__builtin_rvv_vwmul_vx_i64m1:
case RISCV::BI__builtin_rvv_vwmul_vx_i64m2:
case RISCV::BI__builtin_rvv_vwmul_vx_i64m4:
case RISCV::BI__builtin_rvv_vwmul_vx_i64m8:
  ID = Intrinsic::riscv_vwmul;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmul_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vwmul_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vwmul_vx_i64m8_m:
  ID = Intrinsic::riscv_vwmul_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16mf4:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16mf2:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16m1:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16m2:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16m4:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16m8:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32mf2:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32m1:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32m2:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32m4:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32m8:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i64m1:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i64m2:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i64m4:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i64m8:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16mf4:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16mf2:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16m1:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16m2:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16m4:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16m8:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32mf2:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32m1:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32m2:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32m4:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32m8:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i64m1:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i64m2:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i64m4:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i64m8:
  ID = Intrinsic::riscv_vwmulsu;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vwmulsu_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vwmulsu_vx_i64m8_m:
  ID = Intrinsic::riscv_vwmulsu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmulu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16m1:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16m2:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16m4:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16m8:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32m1:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32m2:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32m4:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32m8:
case RISCV::BI__builtin_rvv_vwmulu_vv_u64m1:
case RISCV::BI__builtin_rvv_vwmulu_vv_u64m2:
case RISCV::BI__builtin_rvv_vwmulu_vv_u64m4:
case RISCV::BI__builtin_rvv_vwmulu_vv_u64m8:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16m1:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16m2:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16m4:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16m8:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32m1:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32m2:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32m4:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32m8:
case RISCV::BI__builtin_rvv_vwmulu_vx_u64m1:
case RISCV::BI__builtin_rvv_vwmulu_vx_u64m2:
case RISCV::BI__builtin_rvv_vwmulu_vx_u64m4:
case RISCV::BI__builtin_rvv_vwmulu_vx_u64m8:
  ID = Intrinsic::riscv_vwmulu;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwmulu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vwmulu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vwmulu_vx_u64m8_m:
  ID = Intrinsic::riscv_vwmulu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwredsum_vs_i8m1_i16m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8m2_i16m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8m4_i16m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8m8_i16m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8mf2_i16m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8mf4_i16m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8mf8_i16m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16m1_i32m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16m2_i32m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16m4_i32m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16m8_i32m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16mf2_i32m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16mf4_i32m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32m1_i64m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32m2_i64m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32m4_i64m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32m8_i64m1:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32mf2_i64m1:
  ID = Intrinsic::riscv_vwredsum;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwredsum_vs_i8m1_i16m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8m2_i16m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8m4_i16m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8m8_i16m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8mf2_i16m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8mf4_i16m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i8mf8_i16m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16m1_i32m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16m2_i32m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16m4_i32m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16m8_i32m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16mf2_i32m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i16mf4_i32m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32m1_i64m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32m2_i64m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32m4_i64m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32m8_i64m1_m:
case RISCV::BI__builtin_rvv_vwredsum_vs_i32mf2_i64m1_m:
  ID = Intrinsic::riscv_vwredsum_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8m1_u16m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8m2_u16m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8m4_u16m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8m8_u16m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8mf2_u16m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8mf4_u16m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8mf8_u16m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16m1_u32m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16m2_u32m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16m4_u32m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16m8_u32m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16mf2_u32m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16mf4_u32m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32m1_u64m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32m2_u64m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32m4_u64m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32m8_u64m1:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32mf2_u64m1:
  ID = Intrinsic::riscv_vwredsumu;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8m1_u16m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8m2_u16m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8m4_u16m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8m8_u16m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8mf2_u16m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8mf4_u16m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u8mf8_u16m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16m1_u32m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16m2_u32m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16m4_u32m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16m8_u32m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16mf2_u32m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u16mf4_u32m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32m1_u64m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32m2_u64m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32m4_u64m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32m8_u64m1_m:
case RISCV::BI__builtin_rvv_vwredsumu_vs_u32mf2_u64m1_m:
  ID = Intrinsic::riscv_vwredsumu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwsub_vv_i16mf4:
case RISCV::BI__builtin_rvv_vwsub_vv_i16mf2:
case RISCV::BI__builtin_rvv_vwsub_vv_i16m1:
case RISCV::BI__builtin_rvv_vwsub_vv_i16m2:
case RISCV::BI__builtin_rvv_vwsub_vv_i16m4:
case RISCV::BI__builtin_rvv_vwsub_vv_i16m8:
case RISCV::BI__builtin_rvv_vwsub_vv_i32mf2:
case RISCV::BI__builtin_rvv_vwsub_vv_i32m1:
case RISCV::BI__builtin_rvv_vwsub_vv_i32m2:
case RISCV::BI__builtin_rvv_vwsub_vv_i32m4:
case RISCV::BI__builtin_rvv_vwsub_vv_i32m8:
case RISCV::BI__builtin_rvv_vwsub_vv_i64m1:
case RISCV::BI__builtin_rvv_vwsub_vv_i64m2:
case RISCV::BI__builtin_rvv_vwsub_vv_i64m4:
case RISCV::BI__builtin_rvv_vwsub_vv_i64m8:
case RISCV::BI__builtin_rvv_vwsub_vx_i16mf4:
case RISCV::BI__builtin_rvv_vwsub_vx_i16mf2:
case RISCV::BI__builtin_rvv_vwsub_vx_i16m1:
case RISCV::BI__builtin_rvv_vwsub_vx_i16m2:
case RISCV::BI__builtin_rvv_vwsub_vx_i16m4:
case RISCV::BI__builtin_rvv_vwsub_vx_i16m8:
case RISCV::BI__builtin_rvv_vwsub_vx_i32mf2:
case RISCV::BI__builtin_rvv_vwsub_vx_i32m1:
case RISCV::BI__builtin_rvv_vwsub_vx_i32m2:
case RISCV::BI__builtin_rvv_vwsub_vx_i32m4:
case RISCV::BI__builtin_rvv_vwsub_vx_i32m8:
case RISCV::BI__builtin_rvv_vwsub_vx_i64m1:
case RISCV::BI__builtin_rvv_vwsub_vx_i64m2:
case RISCV::BI__builtin_rvv_vwsub_vx_i64m4:
case RISCV::BI__builtin_rvv_vwsub_vx_i64m8:
  ID = Intrinsic::riscv_vwsub;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwsub_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vwsub_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vwsub_vx_i64m8_m:
  ID = Intrinsic::riscv_vwsub_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwsub_wv_i16mf4:
case RISCV::BI__builtin_rvv_vwsub_wv_i16mf2:
case RISCV::BI__builtin_rvv_vwsub_wv_i16m1:
case RISCV::BI__builtin_rvv_vwsub_wv_i16m2:
case RISCV::BI__builtin_rvv_vwsub_wv_i16m4:
case RISCV::BI__builtin_rvv_vwsub_wv_i16m8:
case RISCV::BI__builtin_rvv_vwsub_wv_i32mf2:
case RISCV::BI__builtin_rvv_vwsub_wv_i32m1:
case RISCV::BI__builtin_rvv_vwsub_wv_i32m2:
case RISCV::BI__builtin_rvv_vwsub_wv_i32m4:
case RISCV::BI__builtin_rvv_vwsub_wv_i32m8:
case RISCV::BI__builtin_rvv_vwsub_wv_i64m1:
case RISCV::BI__builtin_rvv_vwsub_wv_i64m2:
case RISCV::BI__builtin_rvv_vwsub_wv_i64m4:
case RISCV::BI__builtin_rvv_vwsub_wv_i64m8:
case RISCV::BI__builtin_rvv_vwsub_wx_i16mf4:
case RISCV::BI__builtin_rvv_vwsub_wx_i16mf2:
case RISCV::BI__builtin_rvv_vwsub_wx_i16m1:
case RISCV::BI__builtin_rvv_vwsub_wx_i16m2:
case RISCV::BI__builtin_rvv_vwsub_wx_i16m4:
case RISCV::BI__builtin_rvv_vwsub_wx_i16m8:
case RISCV::BI__builtin_rvv_vwsub_wx_i32mf2:
case RISCV::BI__builtin_rvv_vwsub_wx_i32m1:
case RISCV::BI__builtin_rvv_vwsub_wx_i32m2:
case RISCV::BI__builtin_rvv_vwsub_wx_i32m4:
case RISCV::BI__builtin_rvv_vwsub_wx_i32m8:
case RISCV::BI__builtin_rvv_vwsub_wx_i64m1:
case RISCV::BI__builtin_rvv_vwsub_wx_i64m2:
case RISCV::BI__builtin_rvv_vwsub_wx_i64m4:
case RISCV::BI__builtin_rvv_vwsub_wx_i64m8:
  ID = Intrinsic::riscv_vwsub_w;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwsub_wv_i16mf4_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i16mf2_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i16m1_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i16m2_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i16m4_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i16m8_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i32mf2_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i32m1_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i32m2_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i32m4_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i32m8_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i64m1_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i64m2_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i64m4_m:
case RISCV::BI__builtin_rvv_vwsub_wv_i64m8_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i16mf4_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i16mf2_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i16m1_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i16m2_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i16m4_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i16m8_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i32mf2_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i32m1_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i32m2_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i32m4_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i32m8_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i64m1_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i64m2_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i64m4_m:
case RISCV::BI__builtin_rvv_vwsub_wx_i64m8_m:
  ID = Intrinsic::riscv_vwsub_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwsubu_vv_u16mf4:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16mf2:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16m1:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16m2:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16m4:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16m8:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32mf2:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32m1:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32m2:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32m4:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32m8:
case RISCV::BI__builtin_rvv_vwsubu_vv_u64m1:
case RISCV::BI__builtin_rvv_vwsubu_vv_u64m2:
case RISCV::BI__builtin_rvv_vwsubu_vv_u64m4:
case RISCV::BI__builtin_rvv_vwsubu_vv_u64m8:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16mf4:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16mf2:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16m1:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16m2:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16m4:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16m8:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32mf2:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32m1:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32m2:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32m4:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32m8:
case RISCV::BI__builtin_rvv_vwsubu_vx_u64m1:
case RISCV::BI__builtin_rvv_vwsubu_vx_u64m2:
case RISCV::BI__builtin_rvv_vwsubu_vx_u64m4:
case RISCV::BI__builtin_rvv_vwsubu_vx_u64m8:
  ID = Intrinsic::riscv_vwsubu;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwsubu_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vwsubu_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vwsubu_vx_u64m8_m:
  ID = Intrinsic::riscv_vwsubu_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwsubu_wv_u16mf4:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16mf2:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16m1:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16m2:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16m4:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16m8:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32mf2:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32m1:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32m2:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32m4:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32m8:
case RISCV::BI__builtin_rvv_vwsubu_wv_u64m1:
case RISCV::BI__builtin_rvv_vwsubu_wv_u64m2:
case RISCV::BI__builtin_rvv_vwsubu_wv_u64m4:
case RISCV::BI__builtin_rvv_vwsubu_wv_u64m8:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16mf4:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16mf2:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16m1:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16m2:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16m4:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16m8:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32mf2:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32m1:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32m2:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32m4:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32m8:
case RISCV::BI__builtin_rvv_vwsubu_wx_u64m1:
case RISCV::BI__builtin_rvv_vwsubu_wx_u64m2:
case RISCV::BI__builtin_rvv_vwsubu_wx_u64m4:
case RISCV::BI__builtin_rvv_vwsubu_wx_u64m8:
  ID = Intrinsic::riscv_vwsubu_w;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vwsubu_wv_u16mf4_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16mf2_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16m1_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16m2_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16m4_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u16m8_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32mf2_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32m1_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32m2_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32m4_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u32m8_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u64m1_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u64m2_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u64m4_m:
case RISCV::BI__builtin_rvv_vwsubu_wv_u64m8_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16mf4_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16mf2_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16m1_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16m2_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16m4_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u16m8_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32mf2_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32m1_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32m2_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32m4_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u32m8_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u64m1_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u64m2_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u64m4_m:
case RISCV::BI__builtin_rvv_vwsubu_wx_u64m8_m:
  ID = Intrinsic::riscv_vwsubu_w_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vxor_vv_i8m1:
case RISCV::BI__builtin_rvv_vxor_vv_i8m2:
case RISCV::BI__builtin_rvv_vxor_vv_i8m4:
case RISCV::BI__builtin_rvv_vxor_vv_i8m8:
case RISCV::BI__builtin_rvv_vxor_vv_i8mf2:
case RISCV::BI__builtin_rvv_vxor_vv_i8mf4:
case RISCV::BI__builtin_rvv_vxor_vv_i8mf8:
case RISCV::BI__builtin_rvv_vxor_vv_i16m1:
case RISCV::BI__builtin_rvv_vxor_vv_i16m2:
case RISCV::BI__builtin_rvv_vxor_vv_i16m4:
case RISCV::BI__builtin_rvv_vxor_vv_i16m8:
case RISCV::BI__builtin_rvv_vxor_vv_i16mf2:
case RISCV::BI__builtin_rvv_vxor_vv_i16mf4:
case RISCV::BI__builtin_rvv_vxor_vv_i32m1:
case RISCV::BI__builtin_rvv_vxor_vv_i32m2:
case RISCV::BI__builtin_rvv_vxor_vv_i32m4:
case RISCV::BI__builtin_rvv_vxor_vv_i32m8:
case RISCV::BI__builtin_rvv_vxor_vv_i32mf2:
case RISCV::BI__builtin_rvv_vxor_vv_i64m1:
case RISCV::BI__builtin_rvv_vxor_vv_i64m2:
case RISCV::BI__builtin_rvv_vxor_vv_i64m4:
case RISCV::BI__builtin_rvv_vxor_vv_i64m8:
case RISCV::BI__builtin_rvv_vxor_vx_i8m1:
case RISCV::BI__builtin_rvv_vxor_vx_i8m2:
case RISCV::BI__builtin_rvv_vxor_vx_i8m4:
case RISCV::BI__builtin_rvv_vxor_vx_i8m8:
case RISCV::BI__builtin_rvv_vxor_vx_i8mf2:
case RISCV::BI__builtin_rvv_vxor_vx_i8mf4:
case RISCV::BI__builtin_rvv_vxor_vx_i8mf8:
case RISCV::BI__builtin_rvv_vxor_vx_i16m1:
case RISCV::BI__builtin_rvv_vxor_vx_i16m2:
case RISCV::BI__builtin_rvv_vxor_vx_i16m4:
case RISCV::BI__builtin_rvv_vxor_vx_i16m8:
case RISCV::BI__builtin_rvv_vxor_vx_i16mf2:
case RISCV::BI__builtin_rvv_vxor_vx_i16mf4:
case RISCV::BI__builtin_rvv_vxor_vx_i32m1:
case RISCV::BI__builtin_rvv_vxor_vx_i32m2:
case RISCV::BI__builtin_rvv_vxor_vx_i32m4:
case RISCV::BI__builtin_rvv_vxor_vx_i32m8:
case RISCV::BI__builtin_rvv_vxor_vx_i32mf2:
case RISCV::BI__builtin_rvv_vxor_vx_i64m1:
case RISCV::BI__builtin_rvv_vxor_vx_i64m2:
case RISCV::BI__builtin_rvv_vxor_vx_i64m4:
case RISCV::BI__builtin_rvv_vxor_vx_i64m8:
case RISCV::BI__builtin_rvv_vxor_vv_u8m1:
case RISCV::BI__builtin_rvv_vxor_vv_u8m2:
case RISCV::BI__builtin_rvv_vxor_vv_u8m4:
case RISCV::BI__builtin_rvv_vxor_vv_u8m8:
case RISCV::BI__builtin_rvv_vxor_vv_u8mf2:
case RISCV::BI__builtin_rvv_vxor_vv_u8mf4:
case RISCV::BI__builtin_rvv_vxor_vv_u8mf8:
case RISCV::BI__builtin_rvv_vxor_vv_u16m1:
case RISCV::BI__builtin_rvv_vxor_vv_u16m2:
case RISCV::BI__builtin_rvv_vxor_vv_u16m4:
case RISCV::BI__builtin_rvv_vxor_vv_u16m8:
case RISCV::BI__builtin_rvv_vxor_vv_u16mf2:
case RISCV::BI__builtin_rvv_vxor_vv_u16mf4:
case RISCV::BI__builtin_rvv_vxor_vv_u32m1:
case RISCV::BI__builtin_rvv_vxor_vv_u32m2:
case RISCV::BI__builtin_rvv_vxor_vv_u32m4:
case RISCV::BI__builtin_rvv_vxor_vv_u32m8:
case RISCV::BI__builtin_rvv_vxor_vv_u32mf2:
case RISCV::BI__builtin_rvv_vxor_vv_u64m1:
case RISCV::BI__builtin_rvv_vxor_vv_u64m2:
case RISCV::BI__builtin_rvv_vxor_vv_u64m4:
case RISCV::BI__builtin_rvv_vxor_vv_u64m8:
case RISCV::BI__builtin_rvv_vxor_vx_u8m1:
case RISCV::BI__builtin_rvv_vxor_vx_u8m2:
case RISCV::BI__builtin_rvv_vxor_vx_u8m4:
case RISCV::BI__builtin_rvv_vxor_vx_u8m8:
case RISCV::BI__builtin_rvv_vxor_vx_u8mf2:
case RISCV::BI__builtin_rvv_vxor_vx_u8mf4:
case RISCV::BI__builtin_rvv_vxor_vx_u8mf8:
case RISCV::BI__builtin_rvv_vxor_vx_u16m1:
case RISCV::BI__builtin_rvv_vxor_vx_u16m2:
case RISCV::BI__builtin_rvv_vxor_vx_u16m4:
case RISCV::BI__builtin_rvv_vxor_vx_u16m8:
case RISCV::BI__builtin_rvv_vxor_vx_u16mf2:
case RISCV::BI__builtin_rvv_vxor_vx_u16mf4:
case RISCV::BI__builtin_rvv_vxor_vx_u32m1:
case RISCV::BI__builtin_rvv_vxor_vx_u32m2:
case RISCV::BI__builtin_rvv_vxor_vx_u32m4:
case RISCV::BI__builtin_rvv_vxor_vx_u32m8:
case RISCV::BI__builtin_rvv_vxor_vx_u32mf2:
case RISCV::BI__builtin_rvv_vxor_vx_u64m1:
case RISCV::BI__builtin_rvv_vxor_vx_u64m2:
case RISCV::BI__builtin_rvv_vxor_vx_u64m4:
case RISCV::BI__builtin_rvv_vxor_vx_u64m8:
  ID = Intrinsic::riscv_vxor;
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnot_v_i8m1:
case RISCV::BI__builtin_rvv_vnot_v_i8m2:
case RISCV::BI__builtin_rvv_vnot_v_i8m4:
case RISCV::BI__builtin_rvv_vnot_v_i8m8:
case RISCV::BI__builtin_rvv_vnot_v_i8mf2:
case RISCV::BI__builtin_rvv_vnot_v_i8mf4:
case RISCV::BI__builtin_rvv_vnot_v_i8mf8:
case RISCV::BI__builtin_rvv_vnot_v_i16m1:
case RISCV::BI__builtin_rvv_vnot_v_i16m2:
case RISCV::BI__builtin_rvv_vnot_v_i16m4:
case RISCV::BI__builtin_rvv_vnot_v_i16m8:
case RISCV::BI__builtin_rvv_vnot_v_i16mf2:
case RISCV::BI__builtin_rvv_vnot_v_i16mf4:
case RISCV::BI__builtin_rvv_vnot_v_i32m1:
case RISCV::BI__builtin_rvv_vnot_v_i32m2:
case RISCV::BI__builtin_rvv_vnot_v_i32m4:
case RISCV::BI__builtin_rvv_vnot_v_i32m8:
case RISCV::BI__builtin_rvv_vnot_v_i32mf2:
case RISCV::BI__builtin_rvv_vnot_v_i64m1:
case RISCV::BI__builtin_rvv_vnot_v_i64m2:
case RISCV::BI__builtin_rvv_vnot_v_i64m4:
case RISCV::BI__builtin_rvv_vnot_v_i64m8:
case RISCV::BI__builtin_rvv_vnot_v_u8m1:
case RISCV::BI__builtin_rvv_vnot_v_u8m2:
case RISCV::BI__builtin_rvv_vnot_v_u8m4:
case RISCV::BI__builtin_rvv_vnot_v_u8m8:
case RISCV::BI__builtin_rvv_vnot_v_u8mf2:
case RISCV::BI__builtin_rvv_vnot_v_u8mf4:
case RISCV::BI__builtin_rvv_vnot_v_u8mf8:
case RISCV::BI__builtin_rvv_vnot_v_u16m1:
case RISCV::BI__builtin_rvv_vnot_v_u16m2:
case RISCV::BI__builtin_rvv_vnot_v_u16m4:
case RISCV::BI__builtin_rvv_vnot_v_u16m8:
case RISCV::BI__builtin_rvv_vnot_v_u16mf2:
case RISCV::BI__builtin_rvv_vnot_v_u16mf4:
case RISCV::BI__builtin_rvv_vnot_v_u32m1:
case RISCV::BI__builtin_rvv_vnot_v_u32m2:
case RISCV::BI__builtin_rvv_vnot_v_u32m4:
case RISCV::BI__builtin_rvv_vnot_v_u32m8:
case RISCV::BI__builtin_rvv_vnot_v_u32mf2:
case RISCV::BI__builtin_rvv_vnot_v_u64m1:
case RISCV::BI__builtin_rvv_vnot_v_u64m2:
case RISCV::BI__builtin_rvv_vnot_v_u64m4:
case RISCV::BI__builtin_rvv_vnot_v_u64m8:
  ID = Intrinsic::riscv_vxor;

      {
        // op1, vl
        IntrinsicTypes = {ResultType,
                          cast<llvm::VectorType>(ResultType)->getElementType(),
                          Ops[1]->getType()};
        Ops.insert(Ops.begin() + 1,
                   llvm::Constant::getAllOnesValue(IntrinsicTypes[1]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vxor_vv_i8m1_m:
case RISCV::BI__builtin_rvv_vxor_vv_i8m2_m:
case RISCV::BI__builtin_rvv_vxor_vv_i8m4_m:
case RISCV::BI__builtin_rvv_vxor_vv_i8m8_m:
case RISCV::BI__builtin_rvv_vxor_vv_i8mf2_m:
case RISCV::BI__builtin_rvv_vxor_vv_i8mf4_m:
case RISCV::BI__builtin_rvv_vxor_vv_i8mf8_m:
case RISCV::BI__builtin_rvv_vxor_vv_i16m1_m:
case RISCV::BI__builtin_rvv_vxor_vv_i16m2_m:
case RISCV::BI__builtin_rvv_vxor_vv_i16m4_m:
case RISCV::BI__builtin_rvv_vxor_vv_i16m8_m:
case RISCV::BI__builtin_rvv_vxor_vv_i16mf2_m:
case RISCV::BI__builtin_rvv_vxor_vv_i16mf4_m:
case RISCV::BI__builtin_rvv_vxor_vv_i32m1_m:
case RISCV::BI__builtin_rvv_vxor_vv_i32m2_m:
case RISCV::BI__builtin_rvv_vxor_vv_i32m4_m:
case RISCV::BI__builtin_rvv_vxor_vv_i32m8_m:
case RISCV::BI__builtin_rvv_vxor_vv_i32mf2_m:
case RISCV::BI__builtin_rvv_vxor_vv_i64m1_m:
case RISCV::BI__builtin_rvv_vxor_vv_i64m2_m:
case RISCV::BI__builtin_rvv_vxor_vv_i64m4_m:
case RISCV::BI__builtin_rvv_vxor_vv_i64m8_m:
case RISCV::BI__builtin_rvv_vxor_vx_i8m1_m:
case RISCV::BI__builtin_rvv_vxor_vx_i8m2_m:
case RISCV::BI__builtin_rvv_vxor_vx_i8m4_m:
case RISCV::BI__builtin_rvv_vxor_vx_i8m8_m:
case RISCV::BI__builtin_rvv_vxor_vx_i8mf2_m:
case RISCV::BI__builtin_rvv_vxor_vx_i8mf4_m:
case RISCV::BI__builtin_rvv_vxor_vx_i8mf8_m:
case RISCV::BI__builtin_rvv_vxor_vx_i16m1_m:
case RISCV::BI__builtin_rvv_vxor_vx_i16m2_m:
case RISCV::BI__builtin_rvv_vxor_vx_i16m4_m:
case RISCV::BI__builtin_rvv_vxor_vx_i16m8_m:
case RISCV::BI__builtin_rvv_vxor_vx_i16mf2_m:
case RISCV::BI__builtin_rvv_vxor_vx_i16mf4_m:
case RISCV::BI__builtin_rvv_vxor_vx_i32m1_m:
case RISCV::BI__builtin_rvv_vxor_vx_i32m2_m:
case RISCV::BI__builtin_rvv_vxor_vx_i32m4_m:
case RISCV::BI__builtin_rvv_vxor_vx_i32m8_m:
case RISCV::BI__builtin_rvv_vxor_vx_i32mf2_m:
case RISCV::BI__builtin_rvv_vxor_vx_i64m1_m:
case RISCV::BI__builtin_rvv_vxor_vx_i64m2_m:
case RISCV::BI__builtin_rvv_vxor_vx_i64m4_m:
case RISCV::BI__builtin_rvv_vxor_vx_i64m8_m:
case RISCV::BI__builtin_rvv_vxor_vv_u8m1_m:
case RISCV::BI__builtin_rvv_vxor_vv_u8m2_m:
case RISCV::BI__builtin_rvv_vxor_vv_u8m4_m:
case RISCV::BI__builtin_rvv_vxor_vv_u8m8_m:
case RISCV::BI__builtin_rvv_vxor_vv_u8mf2_m:
case RISCV::BI__builtin_rvv_vxor_vv_u8mf4_m:
case RISCV::BI__builtin_rvv_vxor_vv_u8mf8_m:
case RISCV::BI__builtin_rvv_vxor_vv_u16m1_m:
case RISCV::BI__builtin_rvv_vxor_vv_u16m2_m:
case RISCV::BI__builtin_rvv_vxor_vv_u16m4_m:
case RISCV::BI__builtin_rvv_vxor_vv_u16m8_m:
case RISCV::BI__builtin_rvv_vxor_vv_u16mf2_m:
case RISCV::BI__builtin_rvv_vxor_vv_u16mf4_m:
case RISCV::BI__builtin_rvv_vxor_vv_u32m1_m:
case RISCV::BI__builtin_rvv_vxor_vv_u32m2_m:
case RISCV::BI__builtin_rvv_vxor_vv_u32m4_m:
case RISCV::BI__builtin_rvv_vxor_vv_u32m8_m:
case RISCV::BI__builtin_rvv_vxor_vv_u32mf2_m:
case RISCV::BI__builtin_rvv_vxor_vv_u64m1_m:
case RISCV::BI__builtin_rvv_vxor_vv_u64m2_m:
case RISCV::BI__builtin_rvv_vxor_vv_u64m4_m:
case RISCV::BI__builtin_rvv_vxor_vv_u64m8_m:
case RISCV::BI__builtin_rvv_vxor_vx_u8m1_m:
case RISCV::BI__builtin_rvv_vxor_vx_u8m2_m:
case RISCV::BI__builtin_rvv_vxor_vx_u8m4_m:
case RISCV::BI__builtin_rvv_vxor_vx_u8m8_m:
case RISCV::BI__builtin_rvv_vxor_vx_u8mf2_m:
case RISCV::BI__builtin_rvv_vxor_vx_u8mf4_m:
case RISCV::BI__builtin_rvv_vxor_vx_u8mf8_m:
case RISCV::BI__builtin_rvv_vxor_vx_u16m1_m:
case RISCV::BI__builtin_rvv_vxor_vx_u16m2_m:
case RISCV::BI__builtin_rvv_vxor_vx_u16m4_m:
case RISCV::BI__builtin_rvv_vxor_vx_u16m8_m:
case RISCV::BI__builtin_rvv_vxor_vx_u16mf2_m:
case RISCV::BI__builtin_rvv_vxor_vx_u16mf4_m:
case RISCV::BI__builtin_rvv_vxor_vx_u32m1_m:
case RISCV::BI__builtin_rvv_vxor_vx_u32m2_m:
case RISCV::BI__builtin_rvv_vxor_vx_u32m4_m:
case RISCV::BI__builtin_rvv_vxor_vx_u32m8_m:
case RISCV::BI__builtin_rvv_vxor_vx_u32mf2_m:
case RISCV::BI__builtin_rvv_vxor_vx_u64m1_m:
case RISCV::BI__builtin_rvv_vxor_vx_u64m2_m:
case RISCV::BI__builtin_rvv_vxor_vx_u64m4_m:
case RISCV::BI__builtin_rvv_vxor_vx_u64m8_m:
  ID = Intrinsic::riscv_vxor_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[2]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vnot_v_i8m1_m:
case RISCV::BI__builtin_rvv_vnot_v_i8m2_m:
case RISCV::BI__builtin_rvv_vnot_v_i8m4_m:
case RISCV::BI__builtin_rvv_vnot_v_i8m8_m:
case RISCV::BI__builtin_rvv_vnot_v_i8mf2_m:
case RISCV::BI__builtin_rvv_vnot_v_i8mf4_m:
case RISCV::BI__builtin_rvv_vnot_v_i8mf8_m:
case RISCV::BI__builtin_rvv_vnot_v_i16m1_m:
case RISCV::BI__builtin_rvv_vnot_v_i16m2_m:
case RISCV::BI__builtin_rvv_vnot_v_i16m4_m:
case RISCV::BI__builtin_rvv_vnot_v_i16m8_m:
case RISCV::BI__builtin_rvv_vnot_v_i16mf2_m:
case RISCV::BI__builtin_rvv_vnot_v_i16mf4_m:
case RISCV::BI__builtin_rvv_vnot_v_i32m1_m:
case RISCV::BI__builtin_rvv_vnot_v_i32m2_m:
case RISCV::BI__builtin_rvv_vnot_v_i32m4_m:
case RISCV::BI__builtin_rvv_vnot_v_i32m8_m:
case RISCV::BI__builtin_rvv_vnot_v_i32mf2_m:
case RISCV::BI__builtin_rvv_vnot_v_i64m1_m:
case RISCV::BI__builtin_rvv_vnot_v_i64m2_m:
case RISCV::BI__builtin_rvv_vnot_v_i64m4_m:
case RISCV::BI__builtin_rvv_vnot_v_i64m8_m:
case RISCV::BI__builtin_rvv_vnot_v_u8m1_m:
case RISCV::BI__builtin_rvv_vnot_v_u8m2_m:
case RISCV::BI__builtin_rvv_vnot_v_u8m4_m:
case RISCV::BI__builtin_rvv_vnot_v_u8m8_m:
case RISCV::BI__builtin_rvv_vnot_v_u8mf2_m:
case RISCV::BI__builtin_rvv_vnot_v_u8mf4_m:
case RISCV::BI__builtin_rvv_vnot_v_u8mf8_m:
case RISCV::BI__builtin_rvv_vnot_v_u16m1_m:
case RISCV::BI__builtin_rvv_vnot_v_u16m2_m:
case RISCV::BI__builtin_rvv_vnot_v_u16m4_m:
case RISCV::BI__builtin_rvv_vnot_v_u16m8_m:
case RISCV::BI__builtin_rvv_vnot_v_u16mf2_m:
case RISCV::BI__builtin_rvv_vnot_v_u16mf4_m:
case RISCV::BI__builtin_rvv_vnot_v_u32m1_m:
case RISCV::BI__builtin_rvv_vnot_v_u32m2_m:
case RISCV::BI__builtin_rvv_vnot_v_u32m4_m:
case RISCV::BI__builtin_rvv_vnot_v_u32m8_m:
case RISCV::BI__builtin_rvv_vnot_v_u32mf2_m:
case RISCV::BI__builtin_rvv_vnot_v_u64m1_m:
case RISCV::BI__builtin_rvv_vnot_v_u64m2_m:
case RISCV::BI__builtin_rvv_vnot_v_u64m4_m:
case RISCV::BI__builtin_rvv_vnot_v_u64m8_m:
  ID = Intrinsic::riscv_vxor_mask;

      {
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        // maskedoff, op1, mask, vl
        IntrinsicTypes = {ResultType,
                          cast<llvm::VectorType>(ResultType)->getElementType(),
                          Ops[3]->getType()};
        Ops.insert(Ops.begin() + 2,
                   llvm::Constant::getAllOnesValue(IntrinsicTypes[1]));
        break;
      }
      break;
case RISCV::BI__builtin_rvv_vzext_vf2_u16mf4:
case RISCV::BI__builtin_rvv_vzext_vf2_u16mf2:
case RISCV::BI__builtin_rvv_vzext_vf2_u16m1:
case RISCV::BI__builtin_rvv_vzext_vf2_u16m2:
case RISCV::BI__builtin_rvv_vzext_vf2_u16m4:
case RISCV::BI__builtin_rvv_vzext_vf2_u16m8:
case RISCV::BI__builtin_rvv_vzext_vf2_u32mf2:
case RISCV::BI__builtin_rvv_vzext_vf2_u32m1:
case RISCV::BI__builtin_rvv_vzext_vf2_u32m2:
case RISCV::BI__builtin_rvv_vzext_vf2_u32m4:
case RISCV::BI__builtin_rvv_vzext_vf2_u32m8:
case RISCV::BI__builtin_rvv_vzext_vf2_u64m1:
case RISCV::BI__builtin_rvv_vzext_vf2_u64m2:
case RISCV::BI__builtin_rvv_vzext_vf2_u64m4:
case RISCV::BI__builtin_rvv_vzext_vf2_u64m8:
case RISCV::BI__builtin_rvv_vzext_vf4_u32mf2:
case RISCV::BI__builtin_rvv_vzext_vf4_u32m1:
case RISCV::BI__builtin_rvv_vzext_vf4_u32m2:
case RISCV::BI__builtin_rvv_vzext_vf4_u32m4:
case RISCV::BI__builtin_rvv_vzext_vf4_u32m8:
case RISCV::BI__builtin_rvv_vzext_vf4_u64m1:
case RISCV::BI__builtin_rvv_vzext_vf4_u64m2:
case RISCV::BI__builtin_rvv_vzext_vf4_u64m4:
case RISCV::BI__builtin_rvv_vzext_vf4_u64m8:
case RISCV::BI__builtin_rvv_vzext_vf8_u64m1:
case RISCV::BI__builtin_rvv_vzext_vf8_u64m2:
case RISCV::BI__builtin_rvv_vzext_vf8_u64m4:
case RISCV::BI__builtin_rvv_vzext_vf8_u64m8:
  ID = Intrinsic::riscv_vzext;
  IntrinsicTypes = {ResultType, Ops[0]->getType(), Ops.back()->getType()};
  break;
case RISCV::BI__builtin_rvv_vzext_vf2_u16mf4_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u16mf2_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u16m1_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u16m2_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u16m4_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u16m8_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u32mf2_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u32m1_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u32m2_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u32m4_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u32m8_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u64m1_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u64m2_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u64m4_m:
case RISCV::BI__builtin_rvv_vzext_vf2_u64m8_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u32mf2_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u32m1_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u32m2_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u32m4_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u32m8_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u64m1_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u64m2_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u64m4_m:
case RISCV::BI__builtin_rvv_vzext_vf4_u64m8_m:
case RISCV::BI__builtin_rvv_vzext_vf8_u64m1_m:
case RISCV::BI__builtin_rvv_vzext_vf8_u64m2_m:
case RISCV::BI__builtin_rvv_vzext_vf8_u64m4_m:
case RISCV::BI__builtin_rvv_vzext_vf8_u64m8_m:
  ID = Intrinsic::riscv_vzext_mask;
  std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
  IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops.back()->getType()};
  break;

