Browse Source

fix tanh_ps rvv with large input

tags/20210720
nihui 5 years ago
parent
commit
d764b5b87e
2 changed files with 2 additions and 4 deletions
  1. +1
    -2
      src/layer/riscv/rvv_mathfun.h
  2. +1
    -2
      src/layer/riscv/rvv_mathfun_fp16s.h

+ 1
- 2
src/layer/riscv/rvv_mathfun.h View File

@@ -333,8 +333,7 @@ _RVV_FLOAT32_COS_OP(8, 4)
y = vfadd_vv_f32m##LMUL(y, x, vl); \
\
/* abs(x) > HALFMAXLOGF */ \
vbool##MLEN##_t mask_pos = vmfgt_vf_f32m##LMUL##_b##MLEN(x, 0.f, vl); \
vfloat32m##LMUL##_t y1 = vfmerge_vfm_f32m##LMUL(mask_pos, vfmv_v_f_f32m##LMUL(1.f, vl), -1.f, vl); \
vfloat32m##LMUL##_t y1 = vfsgnj_vv_f32m##LMUL(vfmv_v_f_f32m##LMUL(1.f, vl), x, vl); \
\
y = vmerge_vvm_f32m##LMUL(mask_l, y, y0, vl); \
y = vmerge_vvm_f32m##LMUL(mask_l2, y, y1, vl); \


+ 1
- 2
src/layer/riscv/rvv_mathfun_fp16s.h View File

@@ -333,8 +333,7 @@ _RVV_FLOAT16_COS_OP(8, 2)
y = vfadd_vv_f16m##LMUL(y, x, vl); \
\
/* abs(x) > HALFMAXLOGF */ \
vbool##MLEN##_t mask_pos = vmfgt_vf_f16m##LMUL##_b##MLEN(x, 0.f, vl); \
vfloat16m##LMUL##_t y1 = vfmerge_vfm_f16m##LMUL(mask_pos, vfmv_v_f_f16m##LMUL(1.f, vl), -1.f, vl); \
vfloat16m##LMUL##_t y1 = vfsgnj_vv_f16m##LMUL(vfmv_v_f_f16m##LMUL(1.f, vl), x, vl); \
\
y = vmerge_vvm_f16m##LMUL(mask_l, y, y0, vl); \
y = vmerge_vvm_f16m##LMUL(mask_l2, y, y1, vl); \


Loading…
Cancel
Save