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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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:
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:
  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_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_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_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:
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:
  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_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);
      ID = Intrinsic::riscv_vcompress;
       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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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:
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:
  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_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_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:
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:
  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_vle32ff_v_i32m1:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m2:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m4:
case RISCV::BI__builtin_rvv_vle32ff_v_i32m8:
case RISCV::BI__builtin_rvv_vle32ff_v_i32mf2:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m1:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m2:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m4:
case RISCV::BI__builtin_rvv_vle32ff_v_u32m8:
case RISCV::BI__builtin_rvv_vle32ff_v_u32mf2:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m1:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m2:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m4:
case RISCV::BI__builtin_rvv_vle32ff_v_f32m8:
case RISCV::BI__builtin_rvv_vle32ff_v_f32mf2:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m1:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m2:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m4:
case RISCV::BI__builtin_rvv_vle64ff_v_i64m8:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m1:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m2:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m4:
case RISCV::BI__builtin_rvv_vle64ff_v_u64m8:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m1:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m2:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m4:
case RISCV::BI__builtin_rvv_vle64ff_v_f64m8:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m1:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m2:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m4:
case RISCV::BI__builtin_rvv_vle8ff_v_i8m8:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf2:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf4:
case RISCV::BI__builtin_rvv_vle8ff_v_i8mf8:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m1:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m2:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m4:
case RISCV::BI__builtin_rvv_vle8ff_v_u8m8:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf2:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf4:
case RISCV::BI__builtin_rvv_vle8ff_v_u8mf8:
  ID = Intrinsic::riscv_vleff;

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

      {
        // Move mask to right before vl.
        std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
        IntrinsicTypes = {ResultType, Ops[4]->getType()};
        Ops[1] = Builder.CreateBitCast(Ops[1], ResultType->getPointerTo());
        Value *NewVL = Ops[2];
        Ops.erase(Ops.begin() + 2);
        llvm::Function *F = CGM.getIntrinsic(ID, IntrinsicTypes);
        llvm::Value *LoadValue = Builder.CreateCall(F, Ops, "");
        llvm::Value *V = Builder.CreateExtractValue(LoadValue, {0});
        // Store new_vl.
        clang::CharUnits Align =
            CGM.getNaturalTypeAlignment(getContext().getSizeType());
        Builder.CreateStore(Builder.CreateExtractValue(LoadValue, {1}),
                            Address(NewVL, Align));
        return V;
      }
      break;
case RISCV::BI__builtin_rvv_vloxei8_v_i8m1:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m2:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m4:
case RISCV::BI__builtin_rvv_vloxei8_v_i8m8:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m1:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m2:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m4:
case RISCV::BI__builtin_rvv_vloxei8_v_u8m8:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m1:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m2:
case RISCV::BI__builtin_rvv_vloxei16_v_i8m4:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m1:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m2:
case RISCV::BI__builtin_rvv_vloxei16_v_u8m4:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxei32_v_i8m1:
case RISCV::BI__builtin_rvv_vloxei32_v_i8m2:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxei32_v_u8m1:
case RISCV::BI__builtin_rvv_vloxei32_v_u8m2:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxei64_v_i8m1:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_i8mf8:
case RISCV::BI__builtin_rvv_vloxei64_v_u8m1:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_u8mf8:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m1:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m2:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m4:
case RISCV::BI__builtin_rvv_vloxei8_v_i16m8:
case RISCV::BI__builtin_rvv_vloxei8_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m1:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m2:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m4:
case RISCV::BI__builtin_rvv_vloxei8_v_u16m8:
case RISCV::BI__builtin_rvv_vloxei8_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m1:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m2:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m4:
case RISCV::BI__builtin_rvv_vloxei16_v_i16m8:
case RISCV::BI__builtin_rvv_vloxei16_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m1:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m2:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m4:
case RISCV::BI__builtin_rvv_vloxei16_v_u16m8:
case RISCV::BI__builtin_rvv_vloxei16_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m1:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m2:
case RISCV::BI__builtin_rvv_vloxei32_v_i16m4:
case RISCV::BI__builtin_rvv_vloxei32_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m1:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m2:
case RISCV::BI__builtin_rvv_vloxei32_v_u16m4:
case RISCV::BI__builtin_rvv_vloxei32_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_i16m1:
case RISCV::BI__builtin_rvv_vloxei64_v_i16m2:
case RISCV::BI__builtin_rvv_vloxei64_v_i16mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_i16mf4:
case RISCV::BI__builtin_rvv_vloxei64_v_u16m1:
case RISCV::BI__builtin_rvv_vloxei64_v_u16m2:
case RISCV::BI__builtin_rvv_vloxei64_v_u16mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_u16mf4:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m1:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m2:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m4:
case RISCV::BI__builtin_rvv_vloxei8_v_i32m8:
case RISCV::BI__builtin_rvv_vloxei8_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m1:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m2:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m4:
case RISCV::BI__builtin_rvv_vloxei8_v_u32m8:
case RISCV::BI__builtin_rvv_vloxei8_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m1:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m2:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m4:
case RISCV::BI__builtin_rvv_vloxei16_v_i32m8:
case RISCV::BI__builtin_rvv_vloxei16_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m1:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m2:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m4:
case RISCV::BI__builtin_rvv_vloxei16_v_u32m8:
case RISCV::BI__builtin_rvv_vloxei16_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m1:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m2:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m4:
case RISCV::BI__builtin_rvv_vloxei32_v_i32m8:
case RISCV::BI__builtin_rvv_vloxei32_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m1:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m2:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m4:
case RISCV::BI__builtin_rvv_vloxei32_v_u32m8:
case RISCV::BI__builtin_rvv_vloxei32_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m1:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m2:
case RISCV::BI__builtin_rvv_vloxei64_v_i32m4:
case RISCV::BI__builtin_rvv_vloxei64_v_i32mf2:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m1:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m2:
case RISCV::BI__builtin_rvv_vloxei64_v_u32m4:
case RISCV::BI__builtin_rvv_vloxei64_v_u32mf2:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m1:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m2:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m4:
case RISCV::BI__builtin_rvv_vloxei8_v_i64m8:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m1:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m2:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m4:
case RISCV::BI__builtin_rvv_vloxei8_v_u64m8:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m1:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m2:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m4:
case RISCV::BI__builtin_rvv_vloxei16_v_i64m8:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m1:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m2:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m4:
case RISCV::BI__builtin_rvv_vloxei16_v_u64m8:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m1:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m2:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m4:
case RISCV::BI__builtin_rvv_vloxei32_v_i64m8:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m1:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m2:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m4:
case RISCV::BI__builtin_rvv_vloxei32_v_u64m8:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m1:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m2:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m4:
case RISCV::BI__builtin_rvv_vloxei64_v_i64m8:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m1:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m2:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m4:
case RISCV::BI__builtin_rvv_vloxei64_v_u64m8:
case RISCV::BI__builtin_rvv_vloxei8_v_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_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_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_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:
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:
  ID = Intrinsic::riscv_vlse;

        IntrinsicTypes = {ResultType, Ops[2]->getType()};
        Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
      break;
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_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:
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:
  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_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_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_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_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:
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_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:
  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_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_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_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:
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_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:
  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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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:
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:
  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_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_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:
  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_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_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_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_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_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_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_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:
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_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_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_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_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_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_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_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_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_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_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_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_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_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:
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_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:
  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_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:
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_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:
  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_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_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_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_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:
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_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:
  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_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_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:
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_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:
  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_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:
  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_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_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:
  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_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_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_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:
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_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_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_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;

