On 5/20/22 09:42, Lucas Mateus Martins Araujo e Castro wrote:

On 20/05/2022 12:47, Richard Henderson wrote:

On 5/20/22 06:51, Lucas Mateus Castro(alqotel) wrote:
+                if (acc) {
+                    aux_acc = at[i].VsrSF(j);
+                    if (!neg_mul && !neg_acc) {
+                        r = float32_add(r, aux_acc, excp_ptr);
+                    } else if (!neg_mul) {
+                        r = float32_add(r, bfp32_neg(aux_acc), excp_ptr);
+                    } else if (!neg_acc) {
+                        r = float32_add(bfp32_neg(r), aux_acc, excp_ptr);
+                    } else {
+                        r = float32_add(bfp32_neg(r), bfp32_neg(aux_acc), 
excp_ptr);
+                    }

There's no point in the 3 if's when using bfp32_neg.
Just use

  if (neg_mul) {
  }
  if (neg_acc) {
  }
  float32_add(...);

You mean negate separately? Like:

     if (neg_mul) {
         r = bfp32_neg(r);
     }
     if (neg_acc) {
         aux_acc = bfp32_neg(aux_acc);
     }
     r = float32_add(r, aux_acc, excp_ptr);

If so I'll send a new version with this change later today

Yes.


r~

Reply via email to