This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH, new complex number tests


Here are a new batch of tests for passing and returning complex floats
and doubles.

Tom

--
Tom Rix
GCC Engineer
trix@redhat.com


2001-12-31  Tom Rix <trix@redhat.com>
	
	* gcc.c-torture/execute/complex-6.c : New.
	* gcc.c-torture/execute/complex-7.c : New.
	* gcc.c-torture/execute/complex-8.c : New.
	* gcc.c-torture/execute/complex-9.c : New.
	* gcc.c-torture/execute/complex-10.c : New.
	* gcc.c-torture/execute/complex-11.c : New.
	* gcc.c-torture/execute/complex-12.c : New.
	* gcc.c-torture/execute/complex-13.c : New.
 
diff -rcp -N gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-10.c gcc/gcc/testsuite/gcc.c-torture/execute/complex-10.c
*** gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-10.c	Wed Dec 31 18:00:00 1969
--- gcc/gcc/testsuite/gcc.c-torture/execute/complex-10.c	Mon Dec 31 11:22:02 2001
***************
*** 0 ****
--- 1,55 ----
+ float __complex__ a = 2.0 + 8.0 * (1.0fi);
+ 
+ float __complex__ a0 = 12.0 + 18.0 * (1.0fi);
+ float __complex__ a1 = 4.0 + 4.0 * (1.0fi);
+ float __complex__ a2 = 8.0 + 2.0 * (1.0fi);
+ float __complex__ a3 = 16.0 + 1.0 * (1.0fi);
+ float __complex__ a4 = 32.0 + 0.5 * (1.0fi);
+ float __complex__ a5 = 64.0 + 0.250 * (1.0fi);
+ float __complex__ a6 = 128.0 + 0.1250 * (1.0fi);
+ 
+ __complex__ float 
+ foo(__complex__ float x0, 
+     __complex__ float x1,
+     __complex__ float x2,
+     __complex__ float x3, 
+     __complex__ float x4,
+     __complex__ float x5,
+     __complex__ float x6
+     )
+ {
+   return a + x6;
+ }
+ 
+ int 
+ main()
+ {
+   __complex__ float c; 
+   
+   float ep = 0.01;
+ 
+   if (__real__ a != 2.0)
+     abort();
+   if (__imag__ a != 8.0)
+   abort();
+ 
+   if (__real__ a6 != 128.0)
+     abort();
+   if (__imag__ a6 != 0.125)
+     abort();
+ 
+   c = foo(a0, a1, a2, a3, a4, a5, a6); 
+ 
+   if (__real__ c > (130.0 + ep) ||
+       __real__ c < (130.0 - ep))
+     abort();
+ 
+   if (__imag__ c > (8.125 + ep) ||
+       __imag__ c < (8.125 - ep))
+     abort();
+ 
+   return 0;
+ }
+ 
+ 
+ 
diff -rcp -N gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-11.c gcc/gcc/testsuite/gcc.c-torture/execute/complex-11.c
*** gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-11.c	Wed Dec 31 18:00:00 1969
--- gcc/gcc/testsuite/gcc.c-torture/execute/complex-11.c	Mon Dec 31 11:22:02 2001
***************
*** 0 ****
--- 1,52 ----
+ double __complex__ a = 2.0 + 8.0 * (1.0fi);
+ 
+ double __complex__ a0 = 12.0 + 18.0 * (1.0fi);
+ double __complex__ a1 = 4.0 + 4.0 * (1.0fi);
+ double __complex__ a2 = 8.0 + 2.0 * (1.0fi);
+ double __complex__ a3 = 16.0 + 1.0 * (1.0fi);
+ double __complex__ a4 = 32.0 + 0.5 * (1.0fi);
+ double __complex__ a5 = 64.0 + 0.250 * (1.0fi);
+ double __complex__ a6 = 128.0 + 0.1250 * (1.0fi);
+ 
+ __complex__ double 
+ foo(__complex__ double x0, 
+     __complex__ double x1,
+     __complex__ double x2,
+     __complex__ double x3, 
+     __complex__ double x4,
+     __complex__ double x5,
+     __complex__ double x6
+     )
+ {
+   return a + x6;
+ }
+ 
+ int
+ main()
+ {
+   __complex__ double c;
+   
+   double ep = 0.01;
+ 
+   if (__real__ a != 2.0)
+     abort();
+   if (__imag__ a != 8.0)
+     abort();
+ 
+   if (__real__ a6 != 128.0)
+     abort();
+   if (__imag__ a6 != 0.125)
+     abort();
+ 
+   c = foo(a0, a1, a2, a3, a4, a5, a6);
+ 
+   if (__real__ c > (130.0 + ep) ||
+       __real__ c < (130.0 - ep))
+     abort();
+ 
+   if (__imag__ c > (8.125 + ep) ||
+       __imag__ c < (8.125 - ep))
+     abort();
+ 
+   return 0;
+ }
diff -rcp -N gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-12.c gcc/gcc/testsuite/gcc.c-torture/execute/complex-12.c
*** gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-12.c	Wed Dec 31 18:00:00 1969
--- gcc/gcc/testsuite/gcc.c-torture/execute/complex-12.c	Mon Dec 31 11:22:02 2001
***************
*** 0 ****
--- 1,54 ----
+ float __complex__ a = 2.0 + 8.0 * (1.0fi);
+ 
+ float __complex__ a0 = 12.0 + 18.0 * (1.0fi);
+ float __complex__ a1 = 4.0 + 4.0 * (1.0fi);
+ float __complex__ a2 = 8.0 + 2.0 * (1.0fi);
+ float __complex__ a3 = 16.0 + 1.0 * (1.0fi);
+ float __complex__ a4 = 32.0 + 0.5 * (1.0fi);
+ float __complex__ a5 = 64.0 + 0.250 * (1.0fi);
+ float __complex__ a6 = 12.0 + 0.50 * (1.0fi);
+ float __complex__ a7 = 128.0 + 0.1250 * (1.0fi);
+ 
+ __complex__ float 
+ foo(__complex__ float x0, 
+     __complex__ float x1,
+     __complex__ float x2,
+     __complex__ float x3, 
+     __complex__ float x4,
+     __complex__ float x5,
+     __complex__ float x6,
+     __complex__ float x7
+     )
+ {
+   return a + x7;
+ }
+ 
+ int
+ main()
+ {
+   __complex__ float c;
+   
+   float ep = 0.01;
+ 
+   if (__real__ a != 2.0)
+     abort();
+   if (__imag__ a != 8.0)
+     abort();
+ 
+   if (__real__ a7 != 128.0)
+     abort();
+   if (__imag__ a7 != 0.125)
+     abort();
+ 
+   c = foo(a0, a1, a2, a3, a4, a5, a6, a7);
+ 
+   if (__real__ c > (130.0 + ep) ||
+       __real__ c < (130.0 - ep))
+     abort();
+ 
+   if (__imag__ c > (8.125 + ep) ||
+       __imag__ c < (8.125 - ep))
+     abort();
+ 
+   return 0;
+ }
diff -rcp -N gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-13.c gcc/gcc/testsuite/gcc.c-torture/execute/complex-13.c
*** gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-13.c	Wed Dec 31 18:00:00 1969
--- gcc/gcc/testsuite/gcc.c-torture/execute/complex-13.c	Mon Dec 31 11:22:02 2001
***************
*** 0 ****
--- 1,54 ----
+ double __complex__ a = 2.0 + 8.0 * (1.0fi);
+ 
+ double __complex__ a0 = 12.0 + 18.0 * (1.0fi);
+ double __complex__ a1 = 4.0 + 4.0 * (1.0fi);
+ double __complex__ a2 = 8.0 + 2.0 * (1.0fi);
+ double __complex__ a3 = 16.0 + 1.0 * (1.0fi);
+ double __complex__ a4 = 32.0 + 0.5 * (1.0fi);
+ double __complex__ a5 = 64.0 + 0.250 * (1.0fi);
+ double __complex__ a6 = 12.0 + 0.50 * (1.0fi);
+ double __complex__ a7 = 128.0 + 0.1250 * (1.0fi);
+ 
+ __complex__ double 
+ foo(__complex__ double x0, 
+     __complex__ double x1,
+     __complex__ double x2,
+     __complex__ double x3, 
+     __complex__ double x4,
+     __complex__ double x5,
+     __complex__ double x6,
+     __complex__ double x7
+     )
+ {
+   return a + x7;
+ }
+ 
+ int
+ main()
+ {
+   __complex__ double c;
+   
+   double ep = 0.01;
+ 
+   if (__real__ a != 2.0)
+     abort();
+   if (__imag__ a != 8.0)
+     abort();
+ 
+   if (__real__ a7 != 128.0)
+     abort();
+   if (__imag__ a7 != 0.125)
+     abort();
+ 
+   c = foo(a0, a1, a2, a3, a4, a5, a6, a7);
+ 
+   if (__real__ c > (130.0 + ep) ||
+       __real__ c < (130.0 - ep))
+     abort();
+ 
+   if (__imag__ c > (8.125 + ep) ||
+       __imag__ c < (8.125 - ep))
+     abort();
+ 
+   return 0;
+ }
diff -rcp -N gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-6.c gcc/gcc/testsuite/gcc.c-torture/execute/complex-6.c
*** gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-6.c	Wed Dec 31 18:00:00 1969
--- gcc/gcc/testsuite/gcc.c-torture/execute/complex-6.c	Mon Dec 31 11:22:02 2001
***************
*** 0 ****
--- 1,28 ----
+ float __complex__ a = 2.0 + 8.0 * (1.0fi);
+ 
+ __complex__ float 
+ foo()
+ {
+   return a;
+ }
+ 
+ int
+ main()
+ {
+   __complex__ float b;
+ 
+   if (__real__ a != 2.0)
+     abort();
+   if (__imag__ a != 8.0)
+     abort();
+ 
+   b = foo() + foo();
+ 
+   if (__real__ b != 4.0)
+     abort();
+   if (__imag__ b != 16.0)
+     abort();
+ 
+   return 0;
+ }
+ 
diff -rcp -N gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-7.c gcc/gcc/testsuite/gcc.c-torture/execute/complex-7.c
*** gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-7.c	Wed Dec 31 18:00:00 1969
--- gcc/gcc/testsuite/gcc.c-torture/execute/complex-7.c	Mon Dec 31 11:22:02 2001
***************
*** 0 ****
--- 1,28 ----
+ double __complex__ a = 2.0 + 8.0 * (1.0fi);
+ 
+ __complex__ double 
+ foo()
+ {
+   return a;
+ }
+ 
+ int
+ main()
+ {
+   __complex__ double b;
+ 
+   if (__real__ a != 2.0)
+     abort();
+   if (__imag__ a != 8.0)
+     abort();
+ 
+   b = foo() + foo();
+ 
+   if (__real__ b != 4.0)
+     abort();
+   if (__imag__ b != 16.0)
+     abort();
+ 
+   return 0;
+ }
+ 
diff -rcp -N gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-8.c gcc/gcc/testsuite/gcc.c-torture/execute/complex-8.c
*** gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-8.c	Wed Dec 31 18:00:00 1969
--- gcc/gcc/testsuite/gcc.c-torture/execute/complex-8.c	Mon Dec 31 11:22:02 2001
***************
*** 0 ****
--- 1,39 ----
+ float __complex__ a = 2.0 + 8.0 * (1.0fi);
+ 
+ __complex__ float 
+ foo(__complex__ float x)
+ {
+   return a + x;
+ }
+ 
+ int
+ main()
+ {
+   __complex__ float c;
+   __complex__ float b = 2.0 + 4.0 * (1.0fi);
+   
+   float ep = 0.01;
+ 
+   if (__real__ a != 2.0)
+     abort();
+   if (__imag__ a != 8.0)
+     abort();
+ 
+   if (__real__ b != 2.0)
+     abort();
+   if (__imag__ b != 4.0)
+     abort();
+ 
+   c = foo(b);
+ 
+   if (__real__ c > (4.0 + ep) ||
+       __real__ c < (4.0 - ep))
+     abort();
+ 
+   if (__imag__ c > (12.0 + ep) ||
+       __imag__ c < (12.0 - ep))
+     abort();
+ 
+   return 0;
+ }
+ 
diff -rcp -N gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-9.c gcc/gcc/testsuite/gcc.c-torture/execute/complex-9.c
*** gcc-old/gcc/testsuite/gcc.c-torture/execute/complex-9.c	Wed Dec 31 18:00:00 1969
--- gcc/gcc/testsuite/gcc.c-torture/execute/complex-9.c	Mon Dec 31 11:22:02 2001
***************
*** 0 ****
--- 1,39 ----
+ double __complex__ a = 2.0 + 8.0 * (1.0fi);
+ 
+ __complex__ double 
+ foo(__complex__ double x)
+ {
+   return a + x;
+ }
+ 
+ int 
+ main()
+ {
+   __complex__ double c;
+   __complex__ double b = 2.0 + 4.0 * (1.0fi);
+   
+   double ep = 0.01;
+ 
+   if (__real__ a != 2.0)
+     abort();
+   if (__imag__ a != 8.0)
+     abort();
+ 
+   if (__real__ b != 2.0)
+     abort();
+   if (__imag__ b != 4.0)
+     abort();
+ 
+   c = foo(b);
+ 
+   if (__real__ c > (4.0 + ep) ||
+       __real__ c < (4.0 - ep))
+     abort();
+ 
+   if (__imag__ c > (12.0 + ep) ||
+       __imag__ c < (12.0 - ep))
+     abort();
+ 
+   return 0;
+ }
+ 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]