aboutsummaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authorPan Li <pan2.li@intel.com>2023-08-24 17:29:02 +0800
committerPan Li <pan2.li@intel.com>2023-08-31 23:31:53 +0800
commita7cefeaead68e5d89f65ba3a558eddef9b0b0f75 (patch)
treef0a8b360fb57190cd51c26809ec005124c448ad2 /gcc/objc
parent629efe27744d13c3b83bbe8338b84c37c83dbe4f (diff)
downloadgcc-a7cefeaead68e5d89f65ba3a558eddef9b0b0f75.zip
gcc-a7cefeaead68e5d89f65ba3a558eddef9b0b0f75.tar.gz
gcc-a7cefeaead68e5d89f65ba3a558eddef9b0b0f75.tar.bz2
RISC-V: Support rounding mode for VFNMSAC/VFNMSUB autovec
There will be a case like below for intrinsic and autovec combination. vfadd RTZ <- intrinisc static rounding vfnmsub <- autovec/autovec-opt The autovec generated vfnmsub should take DYN mode, and the frm must be restored before the vfnmsub insn. This patch would like to fix this issue by: * Add the frm operand to the autovec/autovec-opt pattern. * Set the frm_mode attr to DYN. Thus, the frm flow when combine autovec and intrinsic should be. +------------ | frrm a5 | ... | fsrmi 4 | vfadd <- intrinsic static rounding. | ... | fsrm a5 | vfnmsub <- autovec/autovec-opt | ... +------------ Signed-off-by: Pan Li <pan2.li@intel.com> gcc/ChangeLog: * config/riscv/autovec-opt.md: Add FRM_REGNUM to vfnmsac/vfnmsub * config/riscv/autovec.md: Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/float-point-frm-autovec-3.c: New test. Signed-off-by: Pan Li <pan2.li@intel.com>
Diffstat (limited to 'gcc/objc')
0 files changed, 0 insertions, 0 deletions