66 lines
1.8 KiB
Diff
66 lines
1.8 KiB
Diff
From 7584716b03b13c06b8bb9956b9f49e0cfc29c6b3 Mon Sep 17 00:00:00 2001
|
|
From: Xi Ruoyao <xry111@xry111.site>
|
|
Date: Sun, 6 Nov 2022 20:41:38 +0800
|
|
Subject: [PATCH 027/124] LoongArch: Rename frint_<fmt> to rint<mode>2
|
|
|
|
Use standard name so __builtin_rint{,f} can be expanded to one
|
|
instruction.
|
|
|
|
gcc/ChangeLog:
|
|
|
|
* config/loongarch/loongarch.md (frint_<fmt>): Rename to ..
|
|
(rint<mode>2): .. this.
|
|
|
|
gcc/testsuite/ChangeLog:
|
|
|
|
* gcc.target/loongarch/frint.c: New test.
|
|
|
|
Signed-off-by: Peng Fan <fanpeng@loongson.cn>
|
|
Signed-off-by: ticat_fp <fanpeng@loongson.cn>
|
|
---
|
|
gcc/config/loongarch/loongarch.md | 4 ++--
|
|
gcc/testsuite/gcc.target/loongarch/frint.c | 16 ++++++++++++++++
|
|
2 files changed, 18 insertions(+), 2 deletions(-)
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/frint.c
|
|
|
|
diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md
|
|
index bda34d0f3..a14ab14ac 100644
|
|
--- a/gcc/config/loongarch/loongarch.md
|
|
+++ b/gcc/config/loongarch/loongarch.md
|
|
@@ -2012,8 +2012,8 @@
|
|
[(set_attr "type" "move")]
|
|
)
|
|
|
|
-;; Convert floating-point numbers to integers
|
|
-(define_insn "frint_<fmt>"
|
|
+;; Round floating-point numbers to integers
|
|
+(define_insn "rint<mode>2"
|
|
[(set (match_operand:ANYF 0 "register_operand" "=f")
|
|
(unspec:ANYF [(match_operand:ANYF 1 "register_operand" "f")]
|
|
UNSPEC_FRINT))]
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/frint.c b/gcc/testsuite/gcc.target/loongarch/frint.c
|
|
new file mode 100644
|
|
index 000000000..3ee6a8f97
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/frint.c
|
|
@@ -0,0 +1,16 @@
|
|
+/* { dg-do compile } */
|
|
+/* { dg-options "-mdouble-float" } */
|
|
+/* { dg-final { scan-assembler "frint\\.s" } } */
|
|
+/* { dg-final { scan-assembler "frint\\.d" } } */
|
|
+
|
|
+double
|
|
+my_rint (double a)
|
|
+{
|
|
+ return __builtin_rint (a);
|
|
+}
|
|
+
|
|
+float
|
|
+my_rintf (float a)
|
|
+{
|
|
+ return __builtin_rintf (a);
|
|
+}
|
|
--
|
|
2.33.0
|
|
|