Commit aab087b8 by H.J. Lu Committed by H.J. Lu

fp-cmp-4.c (FLOAT): New.

2004-06-06  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.c-torture/execute/ieee/fp-cmp-4.c (FLOAT): New. Default
	to double. Replace double with FLOAT.
	* gcc.c-torture/execute/ieee/fp-cmp-8.c: Likewise.

	* gcc.c-torture/execute/ieee/fp-cmp-4e.c: New file.
	* gcc.c-torture/execute/ieee/fp-cmp-4f.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-4l.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-4q.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-8e.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-8f.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-8l.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-8q.c: Likewise.

From-SVN: r82680
parent 25a1a39e
2004-06-06 H.J. Lu <hongjiu.lu@intel.com>
* gcc.c-torture/execute/ieee/fp-cmp-4.c (FLOAT): New. Default
to double. Replace double with FLOAT.
* gcc.c-torture/execute/ieee/fp-cmp-8.c: Likewise.
* gcc.c-torture/execute/ieee/fp-cmp-4e.c: New file.
* gcc.c-torture/execute/ieee/fp-cmp-4f.c: Likewise.
* gcc.c-torture/execute/ieee/fp-cmp-4l.c: Likewise.
* gcc.c-torture/execute/ieee/fp-cmp-4q.c: Likewise.
* gcc.c-torture/execute/ieee/fp-cmp-8e.c: Likewise.
* gcc.c-torture/execute/ieee/fp-cmp-8f.c: Likewise.
* gcc.c-torture/execute/ieee/fp-cmp-8l.c: Likewise.
* gcc.c-torture/execute/ieee/fp-cmp-8q.c: Likewise.
2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk> 2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/13519 PR c/13519
......
#ifndef FLOAT
#define FLOAT double
#endif
void void
test_isunordered(double x, double y, int true) test_isunordered(FLOAT x, FLOAT y, int true)
{ {
if (__builtin_isunordered(x, y)) if (__builtin_isunordered(x, y))
{ {
...@@ -14,7 +18,7 @@ test_isunordered(double x, double y, int true) ...@@ -14,7 +18,7 @@ test_isunordered(double x, double y, int true)
} }
void void
test_isless(double x, double y, int true) test_isless(FLOAT x, FLOAT y, int true)
{ {
if (__builtin_isless(x, y)) if (__builtin_isless(x, y))
{ {
...@@ -29,7 +33,7 @@ test_isless(double x, double y, int true) ...@@ -29,7 +33,7 @@ test_isless(double x, double y, int true)
} }
void void
test_islessequal(double x, double y, int true) test_islessequal(FLOAT x, FLOAT y, int true)
{ {
if (__builtin_islessequal(x, y)) if (__builtin_islessequal(x, y))
{ {
...@@ -44,7 +48,7 @@ test_islessequal(double x, double y, int true) ...@@ -44,7 +48,7 @@ test_islessequal(double x, double y, int true)
} }
void void
test_isgreater(double x, double y, int true) test_isgreater(FLOAT x, FLOAT y, int true)
{ {
if (__builtin_isgreater(x, y)) if (__builtin_isgreater(x, y))
{ {
...@@ -59,7 +63,7 @@ test_isgreater(double x, double y, int true) ...@@ -59,7 +63,7 @@ test_isgreater(double x, double y, int true)
} }
void void
test_isgreaterequal(double x, double y, int true) test_isgreaterequal(FLOAT x, FLOAT y, int true)
{ {
if (__builtin_isgreaterequal(x, y)) if (__builtin_isgreaterequal(x, y))
{ {
...@@ -74,7 +78,7 @@ test_isgreaterequal(double x, double y, int true) ...@@ -74,7 +78,7 @@ test_isgreaterequal(double x, double y, int true)
} }
void void
test_islessgreater(double x, double y, int true) test_islessgreater(FLOAT x, FLOAT y, int true)
{ {
if (__builtin_islessgreater(x, y)) if (__builtin_islessgreater(x, y))
{ {
...@@ -95,7 +99,7 @@ main() ...@@ -95,7 +99,7 @@ main()
{ {
struct try struct try
{ {
double x, y; FLOAT x, y;
unsigned unord : 1; unsigned unord : 1;
unsigned lt : 1; unsigned lt : 1;
unsigned le : 1; unsigned le : 1;
......
#if defined (__ia64__) && defined (__hpux__)
#define FLOAT __float80
#include "fp-cmp-4.c"
#else
int
main ()
{
return 0;
}
#endif
#define FLOAT float
#include "fp-cmp-4.c"
#define FLOAT long double
#include "fp-cmp-4.c"
#if defined (__x86_64__) || (defined (__ia64__) && !defined (__hpux__))
#define FLOAT __float128
#include "fp-cmp-4.c"
#else
int
main ()
{
return 0;
}
#endif
#ifndef FLOAT
#define FLOAT double
#endif
/* Like fp-cmp-4.c, but test that the cmove patterns are correct. */ /* Like fp-cmp-4.c, but test that the cmove patterns are correct. */
static double static FLOAT
test_isunordered(double x, double y, double a, double b) test_isunordered(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return __builtin_isunordered(x, y) ? a : b; return __builtin_isunordered(x, y) ? a : b;
} }
static double static FLOAT
test_not_isunordered(double x, double y, double a, double b) test_not_isunordered(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return !__builtin_isunordered(x, y) ? a : b; return !__builtin_isunordered(x, y) ? a : b;
} }
static double static FLOAT
test_isless(double x, double y, double a, double b) test_isless(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return __builtin_isless(x, y) ? a : b; return __builtin_isless(x, y) ? a : b;
} }
static double static FLOAT
test_not_isless(double x, double y, double a, double b) test_not_isless(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return !__builtin_isless(x, y) ? a : b; return !__builtin_isless(x, y) ? a : b;
} }
static double static FLOAT
test_islessequal(double x, double y, double a, double b) test_islessequal(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return __builtin_islessequal(x, y) ? a : b; return __builtin_islessequal(x, y) ? a : b;
} }
static double static FLOAT
test_not_islessequal(double x, double y, double a, double b) test_not_islessequal(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return !__builtin_islessequal(x, y) ? a : b; return !__builtin_islessequal(x, y) ? a : b;
} }
static double static FLOAT
test_isgreater(double x, double y, double a, double b) test_isgreater(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return __builtin_isgreater(x, y) ? a : b; return __builtin_isgreater(x, y) ? a : b;
} }
static double static FLOAT
test_not_isgreater(double x, double y, double a, double b) test_not_isgreater(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return !__builtin_isgreater(x, y) ? a : b; return !__builtin_isgreater(x, y) ? a : b;
} }
static double static FLOAT
test_isgreaterequal(double x, double y, double a, double b) test_isgreaterequal(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return __builtin_isgreaterequal(x, y) ? a : b; return __builtin_isgreaterequal(x, y) ? a : b;
} }
static double static FLOAT
test_not_isgreaterequal(double x, double y, double a, double b) test_not_isgreaterequal(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return !__builtin_isgreaterequal(x, y) ? a : b; return !__builtin_isgreaterequal(x, y) ? a : b;
} }
static double static FLOAT
test_islessgreater(double x, double y, double a, double b) test_islessgreater(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return __builtin_islessgreater(x, y) ? a : b; return __builtin_islessgreater(x, y) ? a : b;
} }
static double static FLOAT
test_not_islessgreater(double x, double y, double a, double b) test_not_islessgreater(FLOAT x, FLOAT y, FLOAT a, FLOAT b)
{ {
return !__builtin_islessgreater(x, y) ? a : b; return !__builtin_islessgreater(x, y) ? a : b;
} }
static void static void
one_test(double x, double y, int expected, one_test(FLOAT x, FLOAT y, int expected,
double (*pos) (double, double, double, double), FLOAT (*pos) (FLOAT, FLOAT, FLOAT, FLOAT),
double (*neg) (double, double, double, double)) FLOAT (*neg) (FLOAT, FLOAT, FLOAT, FLOAT))
{ {
if (((*pos)(x, y, 1.0, 2.0) == 1.0) != expected) if (((*pos)(x, y, 1.0, 2.0) == 1.0) != expected)
abort (); abort ();
...@@ -91,7 +95,7 @@ main() ...@@ -91,7 +95,7 @@ main()
{ {
struct try struct try
{ {
double x, y; FLOAT x, y;
int result[6]; int result[6];
}; };
...@@ -115,8 +119,8 @@ main() ...@@ -115,8 +119,8 @@ main()
struct test struct test
{ {
double (*pos)(double, double, double, double); FLOAT (*pos)(FLOAT, FLOAT, FLOAT, FLOAT);
double (*neg)(double, double, double, double); FLOAT (*neg)(FLOAT, FLOAT, FLOAT, FLOAT);
}; };
static struct test const tests[] = static struct test const tests[] =
......
#if defined (__ia64__) && defined (__hpux__)
#define FLOAT __float80
#include "fp-cmp-8.c"
#else
int
main ()
{
return 0;
}
#endif
#define FLOAT float
#include "fp-cmp-8.c"
#define FLOAT long double
#include "fp-cmp-8.c"
#if defined (__x86_64__) || (defined (__ia64__) && !defined (__hpux__))
#define FLOAT __float128
#include "fp-cmp-8.c"
#else
int
main ()
{
return 0;
}
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment