diff --git a/modules/core/include/opencv2/core/hal/intrin_rvv_scalable.hpp b/modules/core/include/opencv2/core/hal/intrin_rvv_scalable.hpp index 14988fc03c..004ef7130c 100644 --- a/modules/core/include/opencv2/core/hal/intrin_rvv_scalable.hpp +++ b/modules/core/include/opencv2/core/hal/intrin_rvv_scalable.hpp @@ -1390,23 +1390,23 @@ OPENCV_HAL_IMPL_RVV_REVERSE(v_float64, 64) #define OPENCV_HAL_IMPL_RVV_EXPAND(_Tp, _Tpwvec, _Tpwvec_m2, _Tpvec, width, suffix, suffix2, cvt) \ inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \ { \ - _Tpwvec_m2 temp = cvt(a, vsetvlmax_e##width##m1()); \ + _Tpwvec_m2 temp = cvt(a, VTraits<_Tpvec>::vlanes()); \ b0 = vget_##suffix##m1(temp, 0); \ b1 = vget_##suffix##m1(temp, 1); \ } \ inline _Tpwvec v_expand_low(const _Tpvec& a) \ { \ - _Tpwvec_m2 temp = cvt(a, vsetvlmax_e##width##m1()); \ + _Tpwvec_m2 temp = cvt(a, VTraits<_Tpvec>::vlanes()); \ return vget_##suffix##m1(temp, 0); \ } \ inline _Tpwvec v_expand_high(const _Tpvec& a) \ { \ - _Tpwvec_m2 temp = cvt(a, vsetvlmax_e##width##m1()); \ + _Tpwvec_m2 temp = cvt(a, VTraits<_Tpvec>::vlanes()); \ return vget_##suffix##m1(temp, 1); \ } \ inline _Tpwvec v_load_expand(const _Tp* ptr) \ { \ - return cvt(vle##width##_v_##suffix2##mf2(ptr, vsetvlmax_e##width##m1()), vsetvlmax_e##width##m1()); \ + return cvt(vle##width##_v_##suffix2##mf2(ptr, VTraits<_Tpvec>::vlanes()), VTraits<_Tpvec>::vlanes()); \ } OPENCV_HAL_IMPL_RVV_EXPAND(uchar, v_uint16, vuint16m2_t, v_uint8, 8, u16, u8, vwcvtu_x) @@ -1759,8 +1759,8 @@ inline int v_scan_forward(const v_float64& a) // mask: {0,0,0,1, ...} -> {T,T,T,F, ...} #define OPENCV_HAL_IMPL_RVV_PACK_TRIPLETS(_Tpvec, v_trunc) \ inline _Tpvec v_pack_triplets(const _Tpvec& vec) { \ - size_t vl = vsetvlmax_e8m1(); \ - vuint32m1_t one = vmv_v_x_u32m1(1, vl/4); \ + size_t vl = __cv_rvv_e8m1_nlanes; \ + vuint32m1_t one = vmv_v_x_u32m1(1, __cv_rvv_e32m1_nlanes); \ vuint8m1_t zero = vmv_v_x_u8m1(0, vl); \ vuint8m1_t mask = vreinterpret_u8m1(one); \ return vcompress(vmseq(v_trunc(vslideup(zero, mask, 3, vl)), 0, vl), vec, vec, VTraits<_Tpvec>::vlanes()); \