[gcc r13-5082] C-SKY: Add conditions for ceil etc patterns.

qu xianmiao@gcc.gnu.org
Tue Jan 10 11:58:12 GMT 2023


https://gcc.gnu.org/g:288b18bf0739a83609e720e8d263181c4ec4d86c

commit r13-5082-g288b18bf0739a83609e720e8d263181c4ec4d86c
Author: Xianmiao Qu <cooper.qu@linux.alibaba.com>
Date:   Thu Oct 27 17:26:54 2022 +0800

    C-SKY: Add conditions for ceil etc patterns.
    
    The ceil etc functions can be only inlined as instruction when
    they can raise the "inexact" exception. Without the adding
    conditions, it will cause the "gcc.dg/torture/builtin-fp-int-inexact-c2x.c"
    etc cases fails.
    
    gcc/
            * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
            flag_fp_int_builtin_inexact || !flag_trapping_math.
            (<frm_pattern><mode>2): Likewise.

Diff:
---
 gcc/config/csky/csky_insn_fpuv3.md | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/config/csky/csky_insn_fpuv3.md b/gcc/config/csky/csky_insn_fpuv3.md
index 628bae597ba..7f8f459621e 100644
--- a/gcc/config/csky/csky_insn_fpuv3.md
+++ b/gcc/config/csky/csky_insn_fpuv3.md
@@ -476,14 +476,16 @@
   [(set (match_operand:SI 0 "register_operand" "=v")
 	(FIX_SU:SI (unspec:F3ANY [(match_operand:F3ANY 1 "register_operand" "0")]
 				   FRM)))]
-  "CSKY_ISA_FEATURE(fpv3_<mode>)"
+  "CSKY_ISA_FEATURE(fpv3_<mode>)
+   && (flag_fp_int_builtin_inexact || !flag_trapping_math)"
   "fftoi.f<f3t>.<fixsu>32<rm>\t%0, %1"
 )
 
 (define_insn "<frm_pattern><mode>2"
   [(set (match_operand:F3ANY 0 "register_operand" "=v")
 	(unspec:F3ANY [(match_operand:F3ANY 1 "register_operand" "0")] FRMF))]
-  "CSKY_ISA_FEATURE(fpv3_<mode>)"
+  "CSKY_ISA_FEATURE(fpv3_<mode>)
+   && (flag_fp_int_builtin_inexact || !flag_trapping_math)"
   "fftofi.f<f3t><rm>\t%0, %1"
 )


More information about the Gcc-cvs mailing list