]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
LoongArch: Rename frint_<fmt> to rint<mode>2
authorXi Ruoyao <xry111@xry111.site>
Sun, 6 Nov 2022 12:41:38 +0000 (20:41 +0800)
committerXi Ruoyao <xry111@xry111.site>
Sat, 12 Nov 2022 07:01:09 +0000 (15:01 +0800)
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.

gcc/config/loongarch/loongarch.md
gcc/testsuite/gcc.target/loongarch/frint.c [new file with mode: 0644]

index bda34d0f3db3d322f1271cc3c1fb23aba55e0626..a14ab14ac24feeabfd1de32f4495ef41ca7c9178 100644 (file)
   [(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 (file)
index 0000000..3ee6a8f
--- /dev/null
@@ -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);
+}