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_f16m2_f16m1:
case RISCV::BI__builtin_rvv_vget_v_f16m4_f16m1:
case RISCV::BI__builtin_rvv_vget_v_f16m8_f16m1:
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_f16m4_f16m2:
case RISCV::BI__builtin_rvv_vget_v_f16m8_f16m2:
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_f16m8_f16m4:
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_f16m1_f16m2:
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_f16m1_f16m4:
case RISCV::BI__builtin_rvv_vset_v_f16m2_f16m4:
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_f16m1_f16m8:
case RISCV::BI__builtin_rvv_vset_v_f16m2_f16m8:
case RISCV::BI__builtin_rvv_vset_v_f16m4_f16m8:
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.getNaturalPointeeTypeAlignment(E->getArg(1)->getType());
        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.getNaturalPointeeTypeAlignment(E->getArg(3)->getType());
        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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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 = {ConvertType(E->getArg(0)->getType()->getPointeeType()),
                        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 =
          CGM.getNaturalPointeeTypeAlignment(E->getArg(0)->getType());
      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;

