/* { dg-do run } */
|
/* { dg-do run } */
|
/* { dg-options "-O2 -mdsp -mgp32" } */
|
/* { dg-options "-O2 -mdsp -mgp32" } */
|
|
|
extern void abort (void);
|
extern void abort (void);
|
extern void exit (int);
|
extern void exit (int);
|
|
|
NOMIPS16 void __attribute__ ((noinline))
|
NOMIPS16 void __attribute__ ((noinline))
|
test1 (int i)
|
test1 (int i)
|
{
|
{
|
__builtin_mips_wrdsp (i, 63);
|
__builtin_mips_wrdsp (i, 63);
|
}
|
}
|
|
|
NOMIPS16 void __attribute__ ((noinline))
|
NOMIPS16 void __attribute__ ((noinline))
|
test2 ()
|
test2 ()
|
{
|
{
|
long long a = 0;
|
long long a = 0;
|
__builtin_mips_extpdp (a, 3);
|
__builtin_mips_extpdp (a, 3);
|
}
|
}
|
|
|
NOMIPS16 void __attribute__ ((noinline))
|
NOMIPS16 void __attribute__ ((noinline))
|
test3 (int i)
|
test3 (int i)
|
{
|
{
|
long long a = 0;
|
long long a = 0;
|
__builtin_mips_extpdp (a, i);
|
__builtin_mips_extpdp (a, i);
|
}
|
}
|
|
|
NOMIPS16 void __attribute__ ((noinline))
|
NOMIPS16 void __attribute__ ((noinline))
|
test4 ()
|
test4 ()
|
{
|
{
|
long long a = 0;
|
long long a = 0;
|
int i = 0;
|
int i = 0;
|
__builtin_mips_mthlip (a, i);
|
__builtin_mips_mthlip (a, i);
|
}
|
}
|
|
|
NOMIPS16 int
|
NOMIPS16 int
|
main ()
|
main ()
|
{
|
{
|
int cntl;
|
int cntl;
|
|
|
/* Test 1: wrdsp */
|
/* Test 1: wrdsp */
|
__builtin_mips_wrdsp (0,63);
|
__builtin_mips_wrdsp (0,63);
|
test1 (63);
|
test1 (63);
|
cntl = __builtin_mips_rddsp (63);
|
cntl = __builtin_mips_rddsp (63);
|
if (cntl != 63)
|
if (cntl != 63)
|
abort ();
|
abort ();
|
|
|
/* Test 2: extpdp */
|
/* Test 2: extpdp */
|
__builtin_mips_wrdsp (63,63);
|
__builtin_mips_wrdsp (63,63);
|
test2 ();
|
test2 ();
|
cntl = __builtin_mips_rddsp (63);
|
cntl = __builtin_mips_rddsp (63);
|
if (cntl != 59)
|
if (cntl != 59)
|
abort ();
|
abort ();
|
|
|
/* Test 3: extpdpv */
|
/* Test 3: extpdpv */
|
__builtin_mips_wrdsp (63,63);
|
__builtin_mips_wrdsp (63,63);
|
test3 (10);
|
test3 (10);
|
cntl = __builtin_mips_rddsp (63);
|
cntl = __builtin_mips_rddsp (63);
|
if (cntl != 52)
|
if (cntl != 52)
|
abort ();
|
abort ();
|
|
|
/* Test 4: mthlip */
|
/* Test 4: mthlip */
|
__builtin_mips_wrdsp (8,63);
|
__builtin_mips_wrdsp (8,63);
|
test4 ();
|
test4 ();
|
cntl = __builtin_mips_rddsp (63);
|
cntl = __builtin_mips_rddsp (63);
|
if (cntl != 40)
|
if (cntl != 40)
|
abort ();
|
abort ();
|
|
|
exit (0);
|
exit (0);
|
}
|
}
|
|
|