[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 00/10] softfloat: Implement float128_muladd
From: |
Richard Henderson |
Subject: |
[PATCH v2 00/10] softfloat: Implement float128_muladd |
Date: |
Fri, 25 Sep 2020 08:20:37 -0700 |
Plus assorted cleanups, passes tests/fp/fp-test.
Changes in v2:
* Add UInt256 type (david)
* Rewrite and inline shift256RightJamming. This keeps the whole
UInt256 in registers, avoiding long sequences of loads and stores.
* Add x86_64 assembly for double shifts. I don't know why the
compiler can't recognize this pattern, but swapping values in
and out of %cl (the only register in the base isa that can
hold a variable shift) is really ugly.
* Add ppc64 assembly.
r~
Richard Henderson (10):
softfloat: Use mulu64 for mul64To128
softfloat: Use int128.h for some operations
softfloat: Tidy a * b + inf return
softfloat: Add float_cmask and constants
softfloat: Inline pick_nan_muladd into its caller
softfloat: Implement float128_muladd
softfloat: Use x86_64 assembly for {add,sub}{192,256}
softfloat: Use x86_64 assembly for sh[rl]_double
softfloat: Use aarch64 assembly for {add,sub}{192,256}
softfloat: Use ppc64 assembly for {add,sub}{192,256}
include/fpu/softfloat-macros.h | 109 +++---
include/fpu/softfloat.h | 2 +
fpu/softfloat.c | 620 ++++++++++++++++++++++++++++++---
tests/fp/fp-test.c | 2 +-
tests/fp/wrap.c.inc | 12 +
5 files changed, 652 insertions(+), 93 deletions(-)
--
2.25.1
- [PATCH v2 00/10] softfloat: Implement float128_muladd,
Richard Henderson <=
- [PATCH v2 01/10] softfloat: Use mulu64 for mul64To128, Richard Henderson, 2020/09/25
- [PATCH v2 02/10] softfloat: Use int128.h for some operations, Richard Henderson, 2020/09/25
- [PATCH v2 03/10] softfloat: Tidy a * b + inf return, Richard Henderson, 2020/09/25
- [PATCH v2 04/10] softfloat: Add float_cmask and constants, Richard Henderson, 2020/09/25
- [PATCH v2 05/10] softfloat: Inline pick_nan_muladd into its caller, Richard Henderson, 2020/09/25
- [PATCH v2 07/10] softfloat: Use x86_64 assembly for {add, sub}{192, 256}, Richard Henderson, 2020/09/25
- [PATCH v2 06/10] softfloat: Implement float128_muladd, Richard Henderson, 2020/09/25
- [PATCH v2 09/10] softfloat: Use aarch64 assembly for {add, sub}{192, 256}, Richard Henderson, 2020/09/25
- [PATCH v2 08/10] softfloat: Use x86_64 assembly for sh[rl]_double, Richard Henderson, 2020/09/25
- [PATCH v2 10/10] softfloat: Use ppc64 assembly for {add, sub}{192, 256}, Richard Henderson, 2020/09/25