OSDN Git Service

* gcc.dg/torture/builtin-math-6.c (link_error): Accept a value
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Aug 2009 22:54:25 +0000 (22:54 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Aug 2009 22:54:25 +0000 (22:54 +0000)
number, update all callers and synchronize results for latest MPC.

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

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/builtin-math-6.c

index 4aa4154..330e1cc 100644 (file)
@@ -1,3 +1,8 @@
+2009-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gcc.dg/torture/builtin-math-6.c (link_error): Accept a value
+       number, update all callers and synchronize results for latest MPC.
+
 2009-08-21  Jason Merrill  <jason@redhat.com>
 
        * g++.dg/warn/Wunused-17.C: New.
index 2c9b02b..1bf367a 100644 (file)
@@ -8,8 +8,11 @@
 /* { dg-do link } */
 /* { dg-require-effective-target mpc_pow } */
 
-/* All references to link_error should go away at compile-time.  */
-extern void link_error(int);
+/* All references to link_error should go away at compile-time.  The
+   first number is the line number and the second is the value number
+   among several tests.  These appear in the tree dump file and aid in
+   debugging.  */
+extern void link_error(int, int);
 
 #define CONJ(X) __builtin_conjf(X)
 
@@ -32,69 +35,69 @@ extern void link_error(int);
   (CKSGN_L(__real__ (X), __real__ (Y)) || CKSGN_L (__imag__ (X), __imag__ (Y)))
 
 /* For complex numbers, test that FUNC(ARG) == (RES).  */
-#define TESTIT_COMPLEX(FUNC, ARG, RES) do { \
+#define TESTIT_COMPLEX(VAL_NUM, FUNC, ARG, RES) do { \
   if (__builtin_##FUNC##f(ARG) != (RES) \
     || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG), (RES))) \
-      link_error(__LINE__); \
+      link_error(__LINE__, VAL_NUM); \
   if (__builtin_##FUNC(ARG) != (RES) \
     || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
-      link_error(__LINE__); \
+      link_error(__LINE__, VAL_NUM); \
   if (__builtin_##FUNC##l(ARG) != (RES) \
     || COMPLEX_CKSGN_L(__builtin_##FUNC##l(ARG), (RES))) \
-      link_error(__LINE__); \
+      link_error(__LINE__, VAL_NUM); \
   } while (0)
 
 /* For complex numbers, call the TESTIT_COMPLEX macro for all
    combinations of neg and conj.  */
 #define TESTIT_COMPLEX_ALLNEG(FUNC, ARG, RES1, RES2, RES3, RES4) do { \
-  TESTIT_COMPLEX(FUNC, (_Complex float)(ARG), RES1); \
-  TESTIT_COMPLEX(FUNC, -CONJ(ARG), RES2); \
-  TESTIT_COMPLEX(FUNC, CONJ(ARG), RES3); \
-  TESTIT_COMPLEX(FUNC, -(_Complex float)(ARG), RES4); \
+  TESTIT_COMPLEX(1, FUNC, (_Complex float)(ARG), RES1); \
+  TESTIT_COMPLEX(2, FUNC, -CONJ(ARG), RES2); \
+  TESTIT_COMPLEX(3, FUNC, CONJ(ARG), RES3); \
+  TESTIT_COMPLEX(4, FUNC, -(_Complex float)(ARG), RES4); \
 } while (0)
 
 /* For complex numbers, call the TESTIT_COMPLEX_R macro for all
    combinations of neg and conj.  */
 #define TESTIT_COMPLEX_R_ALLNEG(FUNC, ARG, RES1, RES2, RES3, RES4) do { \
-  TESTIT_COMPLEX_R(FUNC, (_Complex float)(ARG), RES1); \
-  TESTIT_COMPLEX_R(FUNC, -CONJ(ARG), RES2); \
-  TESTIT_COMPLEX_R(FUNC, CONJ(ARG), RES3); \
-  TESTIT_COMPLEX_R(FUNC, -(_Complex float)(ARG), RES4); \
+  TESTIT_COMPLEX_R(1, FUNC, (_Complex float)(ARG), RES1); \
+  TESTIT_COMPLEX_R(2, FUNC, -CONJ(ARG), RES2); \
+  TESTIT_COMPLEX_R(3, FUNC, CONJ(ARG), RES3); \
+  TESTIT_COMPLEX_R(4, FUNC, -(_Complex float)(ARG), RES4); \
 } while (0)
 
 /* For complex numbers, test that FUNC(ARG0, ARG1) == (RES).  */
-#define TESTIT_COMPLEX2(FUNC, ARG0, ARG1, RES) do { \
+#define TESTIT_COMPLEX2(VAL_NUM, FUNC, ARG0, ARG1, RES) do { \
   if (__builtin_##FUNC##f(ARG0, ARG1) != (RES) \
     || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG0, ARG1), (RES))) \
-      link_error(__LINE__); \
+      link_error(__LINE__, VAL_NUM); \
   if (__builtin_##FUNC(ARG0, ARG1) != (RES) \
     || COMPLEX_CKSGN(__builtin_##FUNC(ARG0, ARG1), (RES))) \
-      link_error(__LINE__); \
+      link_error(__LINE__, VAL_NUM); \
   if (__builtin_##FUNC##l(ARG0, ARG1) != (RES) \
     || COMPLEX_CKSGN_L(__builtin_##FUNC##l(ARG0, ARG1), (RES))) \
-      link_error(__LINE__); \
+      link_error(__LINE__, VAL_NUM); \
   } while (0)
 
 /* For complex numbers, call the TESTIT_COMPLEX2 macro for all
    combinations of neg and conj.  */
 #define TESTIT_COMPLEX2_ALLNEG(FUNC, ARG0, ARG1, RES1, RES2, RES3, RES4, RES5,\
  RES6, RES7, RES8, RES9, RES10, RES11, RES12, RES13, RES14, RES15, RES16) do{ \
-  TESTIT_COMPLEX2(FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\
-  TESTIT_COMPLEX2(FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \
-  TESTIT_COMPLEX2(FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \
-  TESTIT_COMPLEX2(FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \
-  TESTIT_COMPLEX2(FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \
-  TESTIT_COMPLEX2(FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \
-  TESTIT_COMPLEX2(FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \
-  TESTIT_COMPLEX2(FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \
-  TESTIT_COMPLEX2(FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \
-  TESTIT_COMPLEX2(FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \
-  TESTIT_COMPLEX2(FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \
-  TESTIT_COMPLEX2(FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \
-  TESTIT_COMPLEX2(FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \
-  TESTIT_COMPLEX2(FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \
-  TESTIT_COMPLEX2(FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \
-  TESTIT_COMPLEX2(FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \
+  TESTIT_COMPLEX2(1, FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\
+  TESTIT_COMPLEX2(2, FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \
+  TESTIT_COMPLEX2(3, FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \
+  TESTIT_COMPLEX2(4, FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \
+  TESTIT_COMPLEX2(5, FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \
+  TESTIT_COMPLEX2(6, FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \
+  TESTIT_COMPLEX2(7, FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \
+  TESTIT_COMPLEX2(8, FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \
+  TESTIT_COMPLEX2(9, FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \
+  TESTIT_COMPLEX2(10, FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \
+  TESTIT_COMPLEX2(11, FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \
+  TESTIT_COMPLEX2(12, FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \
+  TESTIT_COMPLEX2(13, FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \
+  TESTIT_COMPLEX2(14, FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \
+  TESTIT_COMPLEX2(15, FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \
+  TESTIT_COMPLEX2(16, FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \
 } while (0)
 
 /* Return TRUE if X differs from EXPECTED by more than 1%.  If
@@ -124,16 +127,16 @@ extern void link_error(int);
    merely checking that we get relatively sane results.  I.e. the GCC
    builtin is hooked up to the correct MPC function call.  We first
    check the magnitude and then the sign.  */
-#define TESTIT_COMPLEX_R(FUNC, ARG, RES) do { \
+#define TESTIT_COMPLEX_R(VAL_NUM, FUNC, ARG, RES) do { \
   if (COMPLEX_DIFF1PCT_F (__builtin_##FUNC##f(ARG), (RES)) \
       || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG), (RES))) \
-    link_error(__LINE__); \
+    link_error(__LINE__, VAL_NUM); \
   if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG), (RES)) \
       || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
-    link_error(__LINE__); \
+    link_error(__LINE__, VAL_NUM); \
   if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG), (RES)) \
       || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
-    link_error(__LINE__); \
+    link_error(__LINE__, VAL_NUM); \
   } while (0)
 
 /* Range test, for complex numbers check that FUNC(ARG0, ARG1) is
@@ -141,38 +144,38 @@ extern void link_error(int);
    we're merely checking that we get relatively sane results.
    I.e. the GCC builtin is hooked up to the correct MPC function call.
    We first check the magnitude and then the sign.  */
-#define TESTIT_COMPLEX_R2(FUNC, ARG0, ARG1, RES) do { \
+#define TESTIT_COMPLEX_R2(VAL_NUM, FUNC, ARG0, ARG1, RES) do { \
   if (COMPLEX_DIFF1PCT_F (__builtin_##FUNC##f(ARG0, ARG1), (RES)) \
       || COMPLEX_CKSGN_F (__builtin_##FUNC##f(ARG0, ARG1), (RES))) \
-    link_error(__LINE__); \
+    link_error(__LINE__, VAL_NUM); \
   if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG0, ARG1), (RES)) \
       || COMPLEX_CKSGN (__builtin_##FUNC(ARG0, ARG1), (RES))) \
-    link_error(__LINE__); \
+    link_error(__LINE__, VAL_NUM); \
   if (COMPLEX_DIFF1PCT_L (__builtin_##FUNC##l(ARG0, ARG1), (RES)) \
       || COMPLEX_CKSGN_L (__builtin_##FUNC##l(ARG0, ARG1), (RES))) \
-    link_error(__LINE__); \
+    link_error(__LINE__, VAL_NUM); \
   } while (0)
 
 /* For complex numbers, call the TESTIT_COMPLEX_R2 macro for all
    combinations of neg and conj.  */
 #define TESTIT_COMPLEX_R2_ALLNEG(FUNC, ARG0, ARG1, RES1, RES2, RES3, RES4, RES5,\
  RES6, RES7, RES8, RES9, RES10, RES11, RES12, RES13, RES14, RES15, RES16) do{ \
-  TESTIT_COMPLEX_R2(FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\
-  TESTIT_COMPLEX_R2(FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \
-  TESTIT_COMPLEX_R2(FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \
-  TESTIT_COMPLEX_R2(FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \
-  TESTIT_COMPLEX_R2(FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \
-  TESTIT_COMPLEX_R2(FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \
-  TESTIT_COMPLEX_R2(FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \
-  TESTIT_COMPLEX_R2(FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \
-  TESTIT_COMPLEX_R2(FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \
-  TESTIT_COMPLEX_R2(FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \
-  TESTIT_COMPLEX_R2(FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \
-  TESTIT_COMPLEX_R2(FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \
-  TESTIT_COMPLEX_R2(FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \
-  TESTIT_COMPLEX_R2(FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \
-  TESTIT_COMPLEX_R2(FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \
-  TESTIT_COMPLEX_R2(FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \
+  TESTIT_COMPLEX_R2(1, FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\
+  TESTIT_COMPLEX_R2(2, FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \
+  TESTIT_COMPLEX_R2(3, FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \
+  TESTIT_COMPLEX_R2(4, FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \
+  TESTIT_COMPLEX_R2(5, FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \
+  TESTIT_COMPLEX_R2(6, FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \
+  TESTIT_COMPLEX_R2(7, FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \
+  TESTIT_COMPLEX_R2(8, FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \
+  TESTIT_COMPLEX_R2(9, FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \
+  TESTIT_COMPLEX_R2(10, FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \
+  TESTIT_COMPLEX_R2(11, FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \
+  TESTIT_COMPLEX_R2(12, FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \
+  TESTIT_COMPLEX_R2(13, FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \
+  TESTIT_COMPLEX_R2(14, FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \
+  TESTIT_COMPLEX_R2(15, FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \
+  TESTIT_COMPLEX_R2(16, FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \
 } while (0)
 
 int main (void)
@@ -214,10 +217,10 @@ int main (void)
                           1.000040F - 0.001988FI, -1.000040F - 0.001988FI,
                           1.000040F + 0.001988FI, -1.000040F + 0.001988FI);
 
-  TESTIT_COMPLEX (clog, 1, 0);
-  TESTIT_COMPLEX_R (clog, -1, 3.141593FI);
-  TESTIT_COMPLEX (clog, CONJ(1), CONJ(0)); /* Fails with mpc-0.6.  */
-  TESTIT_COMPLEX_R (clog, CONJ(-1), CONJ(3.141593FI)); /* Fails with mpc-0.6.  */
+  TESTIT_COMPLEX (1, clog, 1, 0);
+  TESTIT_COMPLEX_R (1, clog, -1, 3.141593FI);
+  TESTIT_COMPLEX (1, clog, CONJ(1), CONJ(0)); /* Fails with mpc-0.6.  */
+  TESTIT_COMPLEX_R (1, clog, CONJ(-1), CONJ(3.141593FI)); /* Fails with mpc-0.6.  */
   TESTIT_COMPLEX_R_ALLNEG (clog, 3.45678F + 2.34567FI,
                           1.429713F + 0.596199FI, 1.429713F + 2.545394FI,
                           1.429713F - 0.596199FI, 1.429713F - 2.545394FI);
@@ -229,33 +232,33 @@ int main (void)
                           1.953750F - 0.600299FI, 0.600299F - 1.953750FI);
   
   TESTIT_COMPLEX2_ALLNEG (cpow, 1, 0,
-                         1, 1, CONJ(1), CONJ(1), 1, CONJ(1), 1, 1,
-                         CONJ(1), CONJ(1), 1, 1, 1, 1, CONJ(1), 1);
+                         1, 1, CONJ(1), CONJ(1), CONJ(1), CONJ(1), 1, 1,
+                         CONJ(1), CONJ(1), 1, 1, 1, 1, CONJ(1), CONJ(1));
   TESTIT_COMPLEX2_ALLNEG (cpow, 1.FI, 0,
-                         1, 1, CONJ(1), 1, 1, CONJ(1), 1, 1,
-                         1, CONJ(1), 1, 1, 1, 1, CONJ(1), 1);
+                         1, 1, CONJ(1), CONJ(1), CONJ(1), CONJ(1), 1, 1,
+                         CONJ(1), CONJ(1), 1, 1, 1, 1, CONJ(1), CONJ(1));
   TESTIT_COMPLEX_R2_ALLNEG (cpow, 2, 3,
-                           8, 8, CONJ(1/8.F), 1/8.F, CONJ(-8), -8, -1/8.F, -1/8.F,
-                           8, CONJ(8), 1/8.F, 1/8.F, -8, -8, -1/8.F, CONJ(-1/8.F));
+                           8, 8, CONJ(1/8.F), CONJ(1/8.F), CONJ(-8), CONJ(-8), -1/8.F, -1/8.F,
+                           CONJ(8), CONJ(8), 1/8.F, 1/8.F, -8, -8, CONJ(-1/8.F), CONJ(-1/8.F));
   TESTIT_COMPLEX_R2_ALLNEG (cpow, 3, 4,
-                           81, 81, CONJ(1/81.F), 1/81.F, 81, 81, CONJ(1/81.F), 1/81.F,
-                           81, CONJ(81), 1/81.F, 1/81.F, 81, CONJ(81), 1/81.F, 1/81.F);
+                           81, 81, CONJ(1/81.F), CONJ(1/81.F), CONJ(81), CONJ(81), 1/81.F, 1/81.F,
+                           CONJ(81), CONJ(81), 1/81.F, 1/81.F, 81, 81, CONJ(1/81.F), CONJ(1/81.F));
   TESTIT_COMPLEX_R2_ALLNEG (cpow, 3, 5,
-                           243, 243, CONJ(1/243.F), 1/243.F, CONJ(-243), -243, -1/243.F, -1/243.F,
-                           243, CONJ(243), 1/243.F, 1/243.F, -243, -243, -1/243.F, CONJ(-1/243.F));
+                           243, 243, CONJ(1/243.F), CONJ(1/243.F), CONJ(-243), CONJ(-243), -1/243.F, -1/243.F,
+                           CONJ(243), CONJ(243), 1/243.F, 1/243.F, -243, -243, CONJ(-1/243.F), CONJ(-1/243.F));
   TESTIT_COMPLEX_R2_ALLNEG (cpow, 4, 2,
-                           16, 16, CONJ(1/16.F), 1/16.F, 16, 16, CONJ(1/16.F), 1/16.F,
-                           16, CONJ(16), 1/16.F, 1/16.F, 16, CONJ(16), 1/16.F, 1/16.F);
+                           16, 16, CONJ(1/16.F), CONJ(1/16.F), CONJ(16), CONJ(16), 1/16.F, 1/16.F,
+                           CONJ(16), CONJ(16), 1/16.F, 1/16.F, 16, 16, CONJ(1/16.F), CONJ(1/16.F));
   TESTIT_COMPLEX_R2_ALLNEG (cpow, 1.5, 3,
-                           3.375F, 3.375F, CONJ(1/3.375F), 1/3.375F, CONJ(-3.375F), -3.375F, -1/3.375F, -1/3.375F,
-                           3.375F, CONJ(3.375F), 1/3.375F, 1/3.375F, -3.375F, -3.375F, -1/3.375F, CONJ(-1/3.375F));
+                           3.375F, 3.375F, CONJ(1/3.375F), CONJ(1/3.375F), CONJ(-3.375F), CONJ(-3.375F), -1/3.375F, -1/3.375F,
+                           CONJ(3.375F), CONJ(3.375F), 1/3.375F, 1/3.375F, -3.375F, -3.375F, CONJ(-1/3.375F), CONJ(-1/3.375F));
   
-  TESTIT_COMPLEX2 (cpow, 16, 0.25F, 2);
+  TESTIT_COMPLEX2 (1, cpow, 16, 0.25F, 2);
 
-  TESTIT_COMPLEX_R2 (cpow, 3.45678F + 2.34567FI, 1.23456 + 4.56789FI, 0.212485F + 0.319304FI);
-  TESTIT_COMPLEX_R2 (cpow, 3.45678F - 2.34567FI, 1.23456 + 4.56789FI, 78.576402F + -41.756208FI);
-  TESTIT_COMPLEX_R2 (cpow, -1.23456F + 2.34567FI, 2.34567 - 1.23456FI, -110.629847F + -57.021655FI);
-  TESTIT_COMPLEX_R2 (cpow, -1.23456F - 2.34567FI, 2.34567 - 1.23456FI, 0.752336F + 0.199095FI);
+  TESTIT_COMPLEX_R2 (1, cpow, 3.45678F + 2.34567FI, 1.23456 + 4.56789FI, 0.212485F + 0.319304FI);
+  TESTIT_COMPLEX_R2 (1, cpow, 3.45678F - 2.34567FI, 1.23456 + 4.56789FI, 78.576402F + -41.756208FI);
+  TESTIT_COMPLEX_R2 (1, cpow, -1.23456F + 2.34567FI, 2.34567 - 1.23456FI, -110.629847F + -57.021655FI);
+  TESTIT_COMPLEX_R2 (1, cpow, -1.23456F - 2.34567FI, 2.34567 - 1.23456FI, 0.752336F + 0.199095FI);
   
   return 0;
 }