OSDN Git Service

* gcc.dg/torture/builtin-explog-1.c: Add comments for each test.
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 6 Mar 2004 17:55:13 +0000 (17:55 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 6 Mar 2004 17:55:13 +0000 (17:55 +0000)
Rename LOGPOW -> LOG_POW.
(SQRT_EXP, POW_EXP): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79024 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/builtin-explog-1.c

index 5d8136f..c834609 100644 (file)
@@ -1,3 +1,9 @@
+2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gcc.dg/torture/builtin-explog-1.c: Add comments for each test.
+       Rename LOGPOW -> LOG_POW.
+       (SQRT_EXP, POW_EXP): New.
+
 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * gcc.dg/i386-sse-8.c: New test.
index 847d69f..59ba1d0 100644 (file)
@@ -37,6 +37,7 @@ PROTOTYPE2(pow)
 void test(double d1, double d2, float f1, float f2,
          long double ld1, long double ld2)
 {
+  /* Test logN(1) -> 0.  */
 #define LOG_1(LOG) \
  extern void link_failure_##LOG##_1(void); \
  if (LOG(1.0) != 0.0 || LOG##f(1.0F) != 0.0F || LOG##l(1.0L) != 0.0L) \
@@ -46,6 +47,7 @@ void test(double d1, double d2, float f1, float f2,
   LOG_1(log2);
   LOG_1(log10);
   
+  /* Test logN(N) -> 1.  */
 #define LOG_N(LOG, BASE) \
  extern void link_failure_##LOG##_N(void); \
  if (LOG(BASE) != 1.0 || LOG##f(BASE##F) != 1.0F || LOG##l(BASE##L) != 1.0L) \
@@ -55,6 +57,7 @@ void test(double d1, double d2, float f1, float f2,
   LOG_N(log2, 2.0);
   LOG_N(log10, 10.0);
 
+  /* Test logN(expN(x)) -> x.  */
 #define LOGEXP_SAME(LOG, EXP) \
  extern void link_failure_##LOG##_##EXP##_same(void); \
  if (LOG(EXP(d1)) != d1 || LOG##f(EXP##f(f1)) != f1 \
@@ -65,6 +68,7 @@ void test(double d1, double d2, float f1, float f2,
   LOGEXP_SAME(log10,exp10);
   LOGEXP_SAME(log10,pow10);
 
+  /* Test logN(expM(x)) -> x*logN(M).  */
 #define LOGEXP(LOG, EXP, BASE) \
  extern void link_failure_##LOG##_##EXP(void); \
  if (LOG(EXP(d1)) != d1*LOG(BASE) || LOG##f(EXP##f(f1)) != f1*LOG##f(BASE##F) \
@@ -83,6 +87,7 @@ void test(double d1, double d2, float f1, float f2,
   LOGEXP(log10,exp10,10.0);
   LOGEXP(log10,pow10,10.0);
   
+  /* Test logN(sqrt(x)) -> 0.5*logN(x).  */
 #define LOG_SQRT(LOG) \
  extern void link_failure_##LOG##_sqrt(void); \
  if (LOG(sqrt(d1)) != 0.5*LOG(d1) || LOG##f(sqrtf(f1)) != 0.5F*LOG##f(f1) \
@@ -92,6 +97,18 @@ void test(double d1, double d2, float f1, float f2,
   LOG_SQRT(log2);
   LOG_SQRT(log10);
   
+  /* Test sqrt(expN(x)) -> expN(x*0.5).  */
+#define SQRT_EXP(EXP) \
+ extern void link_failure_sqrt_##EXP(void); \
+ if (sqrt(EXP(d1)) != EXP(d1*0.5) || sqrtf(EXP##f(f1)) != EXP##f(f1*0.5F) \
+  || sqrtl(EXP##l(ld1)) != EXP##l(ld1*0.5L)) link_failure_sqrt_##EXP()
+    
+  SQRT_EXP(exp);
+  SQRT_EXP(exp2);
+  SQRT_EXP(exp10);
+  SQRT_EXP(pow10);
+  
+  /* Test logN(cbrt(x)) -> (1/3)*logN(x).  */
 #define LOG_CBRT(LOG) \
  extern void link_failure_##LOG##_cbrt(void); \
  if (LOG(cbrt(d1)) != (1.0/3)*LOG(d1) \
@@ -102,15 +119,28 @@ void test(double d1, double d2, float f1, float f2,
   LOG_CBRT(log2);
   LOG_CBRT(log10);
   
-#define LOGPOW(LOG, POW) \
+  /* Test logN(pow(x,y)) -> y*logN(x).  */
+#define LOG_POW(LOG, POW) \
  extern void link_failure_##LOG##_##POW(void); \
  if (LOG(POW(d1,d2)) != d2*LOG(d1) || LOG##f(POW##f(f1,f2)) != f2*LOG##f(f1) \
   || LOG##l(POW##l(ld1,ld2)) != ld2*LOG##l(ld1)) link_failure_##LOG##_##POW()
   
-  LOGPOW(log,pow);
-  LOGPOW(log2,pow);
-  LOGPOW(log10,pow);
+  LOG_POW(log,pow);
+  LOG_POW(log2,pow);
+  LOG_POW(log10,pow);
+
+  /* Test pow(expN(x),y)) -> expN(x*y).  */
+#define POW_EXP(POW, EXP) \
+ extern void link_failure_##POW##_##EXP(void); \
+ if (POW(EXP(d1),d2) != EXP(d1*d2) || POW##f(EXP##f(f1),f2) != EXP##f(f1*f2) \
+  || POW##l(EXP##l(ld1),ld2) != EXP##l(ld1*ld2)) link_failure_##POW##_##EXP()
+  
+  POW_EXP(pow, exp);
+  POW_EXP(pow, exp2);
+  POW_EXP(pow, exp10);
+  POW_EXP(pow, pow10);
 
+  /* Test expN(0) -> 1.  */
 #define EXP_0(EXP) \
  extern void link_failure_##EXP##_0(void); \
  if (EXP(0.0) != 1.0 || EXP##f(0.0F) != 1.0F || EXP##l(0.0L) != 1.0L) \
@@ -121,6 +151,7 @@ void test(double d1, double d2, float f1, float f2,
   EXP_0(exp10);
   EXP_0(pow10);
   
+  /* Test expN(1) -> N.  */
 #define EXP_N(EXP, BASE) \
  extern void link_failure_##EXP##_N(void); \
  if (EXP(1.0) != BASE || EXP##f(1.0F) != BASE##F || EXP##l(1.0L) != BASE##L) \
@@ -131,6 +162,7 @@ void test(double d1, double d2, float f1, float f2,
   EXP_N(exp10, 10.0);
   EXP_N(pow10, 10.0);
 
+  /* Test expN(integer) -> N*N*N*...  */
 #define EXP_INT(EXP, BASE) \
  extern void link_failure_##EXP##_INT(void); \
  if (EXP(5.0) < (BASE)*(BASE)*(BASE)*(BASE)*(BASE) - PREC \
@@ -146,6 +178,7 @@ void test(double d1, double d2, float f1, float f2,
   EXP_INT(exp10, 10.0);
   EXP_INT(pow10, 10.0);
 
+  /* Test expN(logN(x)) -> x.  */
 #define EXPLOG_SAME(EXP, LOG) \
  extern void link_failure_##EXP##_##LOG##_same(void); \
  if (EXP(LOG(d1)) != d1 || EXP##f(LOG##f(f1)) != f1 \
@@ -156,6 +189,7 @@ void test(double d1, double d2, float f1, float f2,
   EXPLOG_SAME(exp10, log10);
   EXPLOG_SAME(pow10, log10);
 
+  /* Test expN(x)*expN(y)) -> expN(x+y).  */
 #define EXPXEXP(EXP) \
  extern void link_failure_##EXP##X##EXP(void); \
  if (EXP(d1)*EXP(d2) != EXP(d1+d2) || EXP##f(f1)*EXP##f(f2) != EXP##f(f1+f2) \
@@ -166,6 +200,8 @@ void test(double d1, double d2, float f1, float f2,
   EXPXEXP(exp10);
   EXPXEXP(pow10);
 
+  /* Test x/expN(y) -> x*expN(-y).  */
+  /* Test expN(x)/expN(y) -> expN(x-y).  */
 #define DIVEXP(EXP) \
  extern void link_failure_div1_##EXP(void); \
  if (d1/EXP(d2) != d1*EXP(-d2) || f1/EXP##f(f2) != f1*EXP##f(-f2) \