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