0061-target-riscv-rvv-1.0-widening-floating-point-reducti.patch 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. From 90afc431254b8cf9351117af8fd4cdba06f1509b Mon Sep 17 00:00:00 2001
  2. From: Frank Chang <frank.chang@sifive.com>
  3. Date: Wed, 5 Aug 2020 18:03:26 +0800
  4. Subject: [PATCH 061/107] target/riscv: rvv-1.0: widening floating-point
  5. reduction instructions
  6. Signed-off-by: Frank Chang <frank.chang@sifive.com>
  7. Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
  8. ---
  9. target/riscv/insn_trans/trans_rvv.c.inc | 9 ++++++++-
  10. 1 file changed, 8 insertions(+), 1 deletion(-)
  11. diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_trans/trans_rvv.c.inc
  12. index 6273bef23a..f805fa52e2 100644
  13. --- a/target/riscv/insn_trans/trans_rvv.c.inc
  14. +++ b/target/riscv/insn_trans/trans_rvv.c.inc
  15. @@ -2877,7 +2877,14 @@ GEN_OPFVV_TRANS(vfredmax_vs, freduction_check)
  16. GEN_OPFVV_TRANS(vfredmin_vs, freduction_check)
  17. /* Vector Widening Floating-Point Reduction Instructions */
  18. -GEN_OPFVV_WIDEN_TRANS(vfwredsum_vs, reduction_check)
  19. +static bool freduction_widen_check(DisasContext *s, arg_rmrr *a)
  20. +{
  21. + return reduction_widen_check(s, a) &&
  22. + require_scale_rvf(s) &&
  23. + (s->sew != MO_8);
  24. +}
  25. +
  26. +GEN_OPFVV_WIDEN_TRANS(vfwredsum_vs, freduction_widen_check)
  27. /*
  28. *** Vector Mask Operations
  29. --
  30. 2.33.1