在 2024/1/24 下午5:58, Jiahao Xu 写道:

在 2024/1/24 下午5:48, Xi Ruoyao 写道:
On Wed, 2024-01-24 at 17:19 +0800, Jiahao Xu wrote:
gcc/ChangeLog:

    * config/loongarch/larchintrin.h
    (__frecipe_s): Update function return type.
    (__frecipe_d): Ditto.
    (__frsqrte_s): Ditto.
    (__frsqrte_d): Ditto.

gcc/testsuite/ChangeLog:

    * gcc.target/loongarch/larch-frecipe-intrinsic.c: New test.

diff --git a/gcc/config/loongarch/larchintrin.h b/gcc/config/loongarch/larchintrin.h
index 7692415e04d..ff2c9f460ac 100644
--- a/gcc/config/loongarch/larchintrin.h
+++ b/gcc/config/loongarch/larchintrin.h
@@ -336,38 +336,38 @@ __iocsrwr_d (unsigned long int _1, unsigned int _2)
  #ifdef __loongarch_frecipe
  /* Assembly instruction format: fd, fj.  */
  /* Data types in instruction templates:  SF, SF.  */
-extern __inline void
+extern __inline float
  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
  __frecipe_s (float _1)
  {
-  __builtin_loongarch_frecipe_s ((float) _1);
+  return (float) __builtin_loongarch_frecipe_s ((float) _1);
I don't think the (float) conversion is needed.


Indeed, this float conversion is unnecessary; I simply included it to align with the definitions of other intrinsic functions.

This is generated in batches like vectors, so there will be such redundant symbol type conversion.

We will remove the redundant types later.


Reply via email to