[Bug target/115849] New: RISC-V should improve handling of -0.0 when -fno-signed-zeros is enabled
law at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jul 9 19:30:32 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115849
Bug ID: 115849
Summary: RISC-V should improve handling of -0.0 when
-fno-signed-zeros is enabled
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: law at gcc dot gnu.org
Target Milestone: ---
When -fno-signed-zeros is enabled the RISC-V port should treat -0.0 just like
0.0, roughly mirroring other ports like aarch64.
A mostly complete patch can be found here -- ignore the discussion around the
testcase and focus on the ability to optimize FP code ever-so-slightly:
https://patchwork.sourceware.org/project/gcc/patch/20240102115538.1471137-1-pan2.li@intel.com/
I don't think the implementation of "riscv_const_zero_rtx_p" is really correct.
If you ask for the mode of (const_int 0) you're going to get back VOIDmode.
So while checking CONST0_RTX (mode) is generally good, we need to make sure
that the mode used in that check is sane.
I suspect the most useful case to optimize would be storing -0.0 into memory
and perhaps loading -0.0 into an FPR via fmv.s.x or fmv.d.x with x0 as the
source.
More information about the Gcc-bugs
mailing list