aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/vfnmacc_vf.h
blob: 0eddd918b7af8d5a6863197704c4fdb4e05b46dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// vfnmacc: vd[i] = -(f[rs1] * vs2[i]) - vd[i]
float32_t mul_result;

VFP_VF_LOOP
({
 switch(STATE.VU.vsew){
  case e32:
    mul_result = f32_mul(rs1, f32(vs2.v ^ F32_SIGN));
    vd = f32_sub(mul_result, vd);
    break;
  case e16:
  case e8:
  default:
    softfloat_exceptionFlags = 1;
  };
})