Commit 1c71d796 by Richard Sandiford Committed by Richard Sandiford

* gcc.dg/mips-movcc-1.c, gcc.dg/mips-movcc-2.c, gcc.dg/mips-movcc-3.c,

	* gcc.dg/mips-nmadd-1.c, gcc.dg/mips-nmadd-2.c, gcc.dg/mips-rsqrt-1.c,
	* gcc.dg/mips-rsqrt-2, gcc.dg/mips-rsqrt-3.c: Add dummy asm statements
	to cope with cases where the multilib options override the dg-options.

From-SVN: r94331
parent 00adda9f
2005-01-27 Richard Sandiford <rsandifo@redhat.com>
* gcc.dg/mips-movcc-1.c, gcc.dg/mips-movcc-2.c, gcc.dg/mips-movcc-3.c,
* gcc.dg/mips-nmadd-1.c, gcc.dg/mips-nmadd-2.c, gcc.dg/mips-rsqrt-1.c,
* gcc.dg/mips-rsqrt-2, gcc.dg/mips-rsqrt-3.c: Add dummy asm statements
to cope with cases where the multilib options override the dg-options.
2005-01-27 Jakub Jelinek <jakub@redhat.com> 2005-01-27 Jakub Jelinek <jakub@redhat.com>
PR c/18946 PR c/18946
......
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
void ext_int (int); void ext_int (int);
#if __mips < 4
asm ("# movz movn");
#else
int int
sub1 (int i, int j, int k) sub1 (int i, int j, int k)
{ {
...@@ -17,9 +20,14 @@ sub2 (int i, int j, long l) ...@@ -17,9 +20,14 @@ sub2 (int i, int j, long l)
{ {
ext_int (!l ? i : j); ext_int (!l ? i : j);
} }
#endif
#if __mips < 4 || __mips_soft_float
asm ("# movt");
#else
int int
sub3 (int i, int j, float f) sub3 (int i, int j, float f)
{ {
ext_int (f ? i : j); ext_int (f ? i : j);
} }
#endif
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
void ext_long (long); void ext_long (long);
#if __mips < 4
asm ("# movz movn");
#else
long long
sub4 (long i, long j, long k) sub4 (long i, long j, long k)
{ {
...@@ -17,9 +20,14 @@ sub5 (long i, long j, int k) ...@@ -17,9 +20,14 @@ sub5 (long i, long j, int k)
{ {
ext_long (!k ? i : j); ext_long (!k ? i : j);
} }
#endif
#if __mips < 4 || __mips_soft_float
asm ("# movf");
#else
long long
sub6 (long i, long j, float f) sub6 (long i, long j, float f)
{ {
ext_long (!f ? i : j); ext_long (!f ? i : j);
} }
#endif
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
/* { dg-final { scan-assembler "movn.d" } } */ /* { dg-final { scan-assembler "movn.d" } } */
/* { dg-final { scan-assembler "movf.d" } } */ /* { dg-final { scan-assembler "movf.d" } } */
#if __mips < 4 || __mips_soft_float
asm ("# movz.s movn.s movt.s movz.d movn.d movf.d");
#else
void ext_float (float); void ext_float (float);
void ext_double (double); void ext_double (double);
...@@ -45,3 +48,4 @@ subc (double f, double g, double h) ...@@ -45,3 +48,4 @@ subc (double f, double g, double h)
{ {
ext_double (!h ? f : g); ext_double (!h ? f : g);
} }
#endif
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
/* { dg-final { scan-assembler "nmsub.s" } } */ /* { dg-final { scan-assembler "nmsub.s" } } */
/* { dg-final { scan-assembler "nmsub.d" } } */ /* { dg-final { scan-assembler "nmsub.d" } } */
#if (__mips != 4 && __mips != 64) || __mips_soft_float
asm ("# nmadd.s nmadd.d nmsub.s nmsub.d");
#else
float float
sub1 (float f, float g, float h) sub1 (float f, float g, float h)
{ {
...@@ -28,3 +31,4 @@ sub4 (double f, double g, double h) ...@@ -28,3 +31,4 @@ sub4 (double f, double g, double h)
{ {
return -((f * g) - h); return -((f * g) - h);
} }
#endif
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
/* { dg-final { scan-assembler "nmsub.s" } } */ /* { dg-final { scan-assembler "nmsub.s" } } */
/* { dg-final { scan-assembler "nmsub.d" } } */ /* { dg-final { scan-assembler "nmsub.d" } } */
#if (__mips != 4 && __mips != 64) || __mips_soft_float
asm ("# nmadd.s nmadd.d nmsub.s nmsub.d");
#else
float float
sub1 (float f, float g, float h) sub1 (float f, float g, float h)
{ {
...@@ -28,3 +31,4 @@ sub4 (double f, double g, double h) ...@@ -28,3 +31,4 @@ sub4 (double f, double g, double h)
{ {
return -((f * g) - h); return -((f * g) - h);
} }
#endif
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
/* { dg-final { scan-assembler "rsqrt.d" } } */ /* { dg-final { scan-assembler "rsqrt.d" } } */
/* { dg-final { scan-assembler "rsqrt.s" } } */ /* { dg-final { scan-assembler "rsqrt.s" } } */
#if (__mips != 4 && __mips != 64) || __mips_soft_float
asm ("# rsqrt.d rsqrt.s");
#else
extern double sqrt(double); extern double sqrt(double);
extern float sqrtf(float); extern float sqrtf(float);
...@@ -15,4 +18,4 @@ float bar(float x) ...@@ -15,4 +18,4 @@ float bar(float x)
{ {
return 1.0f/sqrtf(x); return 1.0f/sqrtf(x);
} }
#endif
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
/* { dg-final { scan-assembler "rsqrt.d" } } */ /* { dg-final { scan-assembler "rsqrt.d" } } */
/* { dg-final { scan-assembler "rsqrt.s" } } */ /* { dg-final { scan-assembler "rsqrt.s" } } */
#if (__mips != 4 && __mips != 64) || __mips_soft_float
asm ("# rsqrt.d rsqrt.s");
#else
extern double sqrt(double); extern double sqrt(double);
extern float sqrtf(float); extern float sqrtf(float);
...@@ -15,4 +18,4 @@ float bar(float x) ...@@ -15,4 +18,4 @@ float bar(float x)
{ {
return sqrtf(1.0f/x); return sqrtf(1.0f/x);
} }
#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