[libclc] cf36f49 - [libclc] Enable `clang fp reciprocal` in clc_native_divide/recip/rsqrt/tan (#149269)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 17 16:50:38 PDT 2025


Author: Wenju He
Date: 2025-07-18T07:50:35+08:00
New Revision: cf36f49c042f93e4e204ee434173f1c6a6ad4cac

URL: https://github.com/llvm/llvm-project/commit/cf36f49c042f93e4e204ee434173f1c6a6ad4cac
DIFF: https://github.com/llvm/llvm-project/commit/cf36f49c042f93e4e204ee434173f1c6a6ad4cac.diff

LOG: [libclc] Enable `clang fp reciprocal` in clc_native_divide/recip/rsqrt/tan (#149269)

The pragma adds `arcp` flag to `fdiv` instruction in these functions.
The flag can provide better performance.

Added: 
    

Modified: 
    libclc/clc/lib/generic/math/clc_native_divide.inc
    libclc/clc/lib/generic/math/clc_native_recip.inc
    libclc/clc/lib/generic/math/clc_native_rsqrt.inc
    libclc/clc/lib/generic/math/clc_native_tan.inc

Removed: 
    


################################################################################
diff  --git a/libclc/clc/lib/generic/math/clc_native_divide.inc b/libclc/clc/lib/generic/math/clc_native_divide.inc
index fdf1794812c5a..dac176fb986bd 100644
--- a/libclc/clc/lib/generic/math/clc_native_divide.inc
+++ b/libclc/clc/lib/generic/math/clc_native_divide.inc
@@ -8,5 +8,6 @@
 
 _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_native_divide(__CLC_GENTYPE x,
                                                          __CLC_GENTYPE y) {
+  _Pragma("clang fp reciprocal(on)");
   return x / y;
 }

diff  --git a/libclc/clc/lib/generic/math/clc_native_recip.inc b/libclc/clc/lib/generic/math/clc_native_recip.inc
index 57eb35a9522f8..e7246dc08a77c 100644
--- a/libclc/clc/lib/generic/math/clc_native_recip.inc
+++ b/libclc/clc/lib/generic/math/clc_native_recip.inc
@@ -7,5 +7,6 @@
 //===----------------------------------------------------------------------===//
 
 _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_native_recip(__CLC_GENTYPE val) {
+  _Pragma("clang fp reciprocal(on)");
   return 1.0f / val;
 }

diff  --git a/libclc/clc/lib/generic/math/clc_native_rsqrt.inc b/libclc/clc/lib/generic/math/clc_native_rsqrt.inc
index 7a3b0b2af2721..2b2c4bdada9f9 100644
--- a/libclc/clc/lib/generic/math/clc_native_rsqrt.inc
+++ b/libclc/clc/lib/generic/math/clc_native_rsqrt.inc
@@ -7,5 +7,6 @@
 //===----------------------------------------------------------------------===//
 
 _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_native_rsqrt(__CLC_GENTYPE val) {
+  _Pragma("clang fp reciprocal(on)");
   return 1.0f / __clc_native_sqrt(val);
 }

diff  --git a/libclc/clc/lib/generic/math/clc_native_tan.inc b/libclc/clc/lib/generic/math/clc_native_tan.inc
index f61a78968a754..f0c6c6d37d2b7 100644
--- a/libclc/clc/lib/generic/math/clc_native_tan.inc
+++ b/libclc/clc/lib/generic/math/clc_native_tan.inc
@@ -7,5 +7,6 @@
 //===----------------------------------------------------------------------===//
 
 _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_native_tan(__CLC_GENTYPE val) {
+  _Pragma("clang fp reciprocal(on)");
   return __clc_native_sin(val) / __clc_native_cos(val);
 }


        


More information about the cfe-commits mailing list