[libclc] r232960 - Add __clc_ prefix to functions in sincos_helpers.cl

Tom Stellard thomas.stellard at amd.com
Mon Mar 23 09:20:24 PDT 2015


Author: tstellar
Date: Mon Mar 23 11:20:24 2015
New Revision: 232960

URL: http://llvm.org/viewvc/llvm-project?rev=232960&view=rev
Log:
Add __clc_ prefix to functions in sincos_helpers.cl

This will help avoid naming conflicts with functions defined in
kernels linking with libclc.

Modified:
    libclc/trunk/generic/lib/math/cos.cl
    libclc/trunk/generic/lib/math/sin.cl
    libclc/trunk/generic/lib/math/sincos_helpers.cl
    libclc/trunk/generic/lib/math/sincos_helpers.h

Modified: libclc/trunk/generic/lib/math/cos.cl
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/cos.cl?rev=232960&r1=232959&r2=232960&view=diff
==============================================================================
--- libclc/trunk/generic/lib/math/cos.cl (original)
+++ libclc/trunk/generic/lib/math/cos.cl Mon Mar 23 11:20:24 2015
@@ -33,10 +33,10 @@ _CLC_OVERLOAD _CLC_DEF float cos(float x
     float dx = as_float(ax);
 
     float r0, r1;
-    int regn = argReductionS(&r0, &r1, dx);
+    int regn = __clc_argReductionS(&r0, &r1, dx);
 
-    float ss = -sinf_piby4(r0, r1);
-    float cc =  cosf_piby4(r0, r1);
+    float ss = -__clc_sinf_piby4(r0, r1);
+    float cc =  __clc_cosf_piby4(r0, r1);
 
     float c =  (regn & 1) != 0 ? ss : cc;
     c = as_float(as_int(c) ^ ((regn > 1) << 31));

Modified: libclc/trunk/generic/lib/math/sin.cl
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/sin.cl?rev=232960&r1=232959&r2=232960&view=diff
==============================================================================
--- libclc/trunk/generic/lib/math/sin.cl (original)
+++ libclc/trunk/generic/lib/math/sin.cl Mon Mar 23 11:20:24 2015
@@ -33,10 +33,10 @@ _CLC_OVERLOAD _CLC_DEF float sin(float x
     float dx = as_float(ax);
 
     float r0, r1;
-    int regn = argReductionS(&r0, &r1, dx);
+    int regn = __clc_argReductionS(&r0, &r1, dx);
 
-    float ss = sinf_piby4(r0, r1);
-    float cc = cosf_piby4(r0, r1);
+    float ss = __clc_sinf_piby4(r0, r1);
+    float cc = __clc_cosf_piby4(r0, r1);
 
     float s = (regn & 1) != 0 ? cc : ss;
     s = as_float(as_int(s) ^ ((regn > 1) << 31) ^ (ix ^ ax));

Modified: libclc/trunk/generic/lib/math/sincos_helpers.cl
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/sincos_helpers.cl?rev=232960&r1=232959&r2=232960&view=diff
==============================================================================
--- libclc/trunk/generic/lib/math/sincos_helpers.cl (original)
+++ libclc/trunk/generic/lib/math/sincos_helpers.cl Mon Mar 23 11:20:24 2015
@@ -25,13 +25,10 @@
 #include "math.h"
 #include "sincos_helpers.h"
 
-uint bitalign(uint hi, uint lo, uint shift)
-{
-        return (hi << (32 - shift)) | (lo >> shift);
-}
+#define bitalign(hi, lo, shift) \
+  ((hi) << (32 - (shift))) | ((lo) >> (shift));
 
-float sinf_piby4(float x, float y)
-{
+_CLC_DEF float __clc_sinf_piby4(float x, float y) {
     // Taylor series for sin(x) is x - x^3/3! + x^5/5! - x^7/7! ...
     // = x * (1 - x^2/3! + x^4/5! - x^6/7! ...
     // = x * f(w)
@@ -54,8 +51,7 @@ float sinf_piby4(float x, float y)
     return ret;
 }
 
-float cosf_piby4(float x, float y)
-{
+_CLC_DEF float __clc_cosf_piby4(float x, float y) {
     // Taylor series for cos(x) is 1 - x^2/2! + x^4/4! - x^6/6! ...
     // = f(w)
     // where w = x*x and f(w) = (1 - w/2! + w^2/4! - w^3/6! ...
@@ -90,7 +86,7 @@ float cosf_piby4(float x, float y)
     return ret;
 }
 
-void fullMulS(float *hi, float *lo, float a, float b, float bh, float bt)
+_CLC_DEF void __clc_fullMulS(float *hi, float *lo, float a, float b, float bh, float bt)
 {
     if (HAVE_HW_FMA32()) {
         float ph = a * b;
@@ -106,7 +102,7 @@ void fullMulS(float *hi, float *lo, floa
     }
 }
 
-float removePi2S(float *hi, float *lo, float x)
+_CLC_DEF float __clc_removePi2S(float *hi, float *lo, float x)
 {
     // 72 bits of pi/2
     const float fpiby2_1 = (float) 0xC90FDA / 0x1.0p+23f;
@@ -127,17 +123,17 @@ float removePi2S(float *hi, float *lo, f
 
     // subtract n * pi/2 from x
     float rhead, rtail;
-    fullMulS(&rhead, &rtail, fnpi2, fpiby2_1, fpiby2_1_h, fpiby2_1_t);
+    __clc_fullMulS(&rhead, &rtail, fnpi2, fpiby2_1, fpiby2_1_h, fpiby2_1_t);
     float v = x - rhead;
     float rem = v + (((x - v) - rhead) - rtail);
 
     float rhead2, rtail2;
-    fullMulS(&rhead2, &rtail2, fnpi2, fpiby2_2, fpiby2_2_h, fpiby2_2_t);
+    __clc_fullMulS(&rhead2, &rtail2, fnpi2, fpiby2_2, fpiby2_2_h, fpiby2_2_t);
     v = rem - rhead2;
     rem = v + (((rem - v) - rhead2) - rtail2);
 
     float rhead3, rtail3;
-    fullMulS(&rhead3, &rtail3, fnpi2, fpiby2_3, fpiby2_3_h, fpiby2_3_t);
+    __clc_fullMulS(&rhead3, &rtail3, fnpi2, fpiby2_3, fpiby2_3_h, fpiby2_3_t);
     v = rem - rhead3;
 
     *hi = v + ((rem - v) - rhead3);
@@ -145,9 +141,9 @@ float removePi2S(float *hi, float *lo, f
     return fnpi2;
 }
 
-int argReductionSmallS(float *r, float *rr, float x)
+_CLC_DEF int __clc_argReductionSmallS(float *r, float *rr, float x)
 {
-    float fnpi2 = removePi2S(r, rr, x);
+    float fnpi2 = __clc_removePi2S(r, rr, x);
     return (int)fnpi2 & 0x3;
 }
 
@@ -160,7 +156,7 @@ int argReductionSmallS(float *r, float *
     HI = mul_hi(A, B); \
     HI += LO < C
 
-int argReductionLargeS(float *r, float *rr, float x)
+_CLC_DEF int __clc_argReductionLargeS(float *r, float *rr, float x)
 {
     int xe = (int)(as_uint(x) >> 23) - 127;
     uint xm = 0x00800000U | (as_uint(x) & 0x7fffffU);
@@ -298,11 +294,11 @@ int argReductionLargeS(float *r, float *
     return ((i >> 1) + (i & 1)) & 0x3;
 }
 
-int argReductionS(float *r, float *rr, float x)
+_CLC_DEF int __clc_argReductionS(float *r, float *rr, float x)
 {
     if (x < 0x1.0p+23f)
-        return argReductionSmallS(r, rr, x);
+        return __clc_argReductionSmallS(r, rr, x);
     else
-        return argReductionLargeS(r, rr, x);
+        return __clc_argReductionLargeS(r, rr, x);
 }
 

Modified: libclc/trunk/generic/lib/math/sincos_helpers.h
URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/sincos_helpers.h?rev=232960&r1=232959&r2=232960&view=diff
==============================================================================
--- libclc/trunk/generic/lib/math/sincos_helpers.h (original)
+++ libclc/trunk/generic/lib/math/sincos_helpers.h Mon Mar 23 11:20:24 2015
@@ -20,6 +20,6 @@
  * THE SOFTWARE.
  */
 
-float sinf_piby4(float x, float y);
-float cosf_piby4(float x, float y);
-int argReductionS(float *r, float *rr, float x);
+_CLC_DECL float __clc_sinf_piby4(float x, float y);
+_CLC_DECL float __clc_cosf_piby4(float x, float y);
+_CLC_DECL int __clc_argReductionS(float *r, float *rr, float x);





More information about the cfe-commits mailing list