diff options
author | Vineet Gupta <vineetg@rivosinc.com> | 2024-08-15 09:24:27 -0700 |
---|---|---|
committer | Vineet Gupta <vineetg@rivosinc.com> | 2024-08-15 14:09:39 -0700 |
commit | b0d041f0d4cace06433bf18ae53c40376f2088a7 (patch) | |
tree | 4bb907fae67357adeb2b7c61790ce30e0895ba74 /gcc/dwarf2codeview.cc | |
parent | b6fb4f7f651d2aa89548c5833fe2679af2638df5 (diff) | |
download | gcc-b0d041f0d4cace06433bf18ae53c40376f2088a7.zip gcc-b0d041f0d4cace06433bf18ae53c40376f2088a7.tar.gz gcc-b0d041f0d4cace06433bf18ae53c40376f2088a7.tar.bz2 |
RISC-V: use fclass insns to implement isfinite,isnormal and isinf builtins
Currently these builtins use float compare instructions which require
FP flags to be saved/restored which could be costly in uarch.
RV Base ISA already has FCLASS.{d,s,h} instruction to compare/identify FP
values w/o disturbing FP exception flags.
Now that upstream supports the corresponding optabs, wire them up in the
backend.
gcc/ChangeLog:
* config/riscv/riscv.md: define_insn for fclass insn.
define_expand for isfinite, isnormal, isinf.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/fclass.c: New tests.
Tested-by: Edwin Lu <ewlu@rivosinc.com> # pre-commit-CI #2060
Signed-off-by: Vineet Gupta <vineetg@rivosinc.com>
Diffstat (limited to 'gcc/dwarf2codeview.cc')
0 files changed, 0 insertions, 0 deletions