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.
This commit is contained in:
Xianmiao Qu 2022-10-27 17:26:54 +08:00
parent 8b7c12d83c
commit 288b18bf07

View File

@ -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"
)