]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Remove unnecessary frm restore volatile define_insn
authorPan Li <pan2.li@intel.com>
Sun, 4 May 2025 01:26:02 +0000 (09:26 +0800)
committerPan Li <pan2.li@intel.com>
Sun, 4 May 2025 01:28:29 +0000 (09:28 +0800)
commite5a4663bc6367920a1cce6babb367424790d9bc8
treec3dabcf963e926b4d9c49d7a986b71893cc08184
parent1425cfdb6efda912a99b23d12db9fb93fe98f258
RISC-V: Remove unnecessary frm restore volatile define_insn

After we add the frm register to the global_regs, we may not need to
define_insn that volatile to emit the frm restore insns.  The
cooperatively-managed global register will help to handle this, instead
of emit the volatile define_insn explicitly.

gcc/ChangeLog:

* config/riscv/riscv.cc (riscv_emit_frm_mode_set): Refactor
the frm mode set by removing fsrmsi_restore_volatile.
* config/riscv/vector-iterators.md (unspecv): Remove as
unnecessary.
* config/riscv/vector.md (fsrmsi_restore_volatile): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/float-point-dynamic-frm-49.c: Adjust
the asm dump check times.
* gcc.target/riscv/rvv/base/float-point-dynamic-frm-50.c: Ditto.
* gcc.target/riscv/rvv/base/float-point-dynamic-frm-52.c: Ditto.
* gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c: Ditto.
* gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c: Ditto.

Signed-off-by: Pan Li <pan2.li@intel.com>
gcc/config/riscv/riscv.cc
gcc/config/riscv/vector-iterators.md
gcc/config/riscv/vector.md
gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-49.c
gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-50.c
gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-52.c
gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c
gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c