diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/madd-5.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/madd-6.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/madd-7.c | 14 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/madd-8.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/msub-5.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/msub-6.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/msub-7.c | 14 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/msub-8.c | 15 |
9 files changed, 97 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2b90e3dc361..1d97976cf7b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,16 @@ 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com> + * gcc.target/mips/madd-5.c: New test. + * gcc.target/mips/madd-6.c: Likewise. + * gcc.target/mips/madd-7.c: Likewise. + * gcc.target/mips/madd-8.c: Likewise. + * gcc.target/mips/msub-5.c: Likewise. + * gcc.target/mips/msub-6.c: Likewise. + * gcc.target/mips/msub-7.c: Likewise. + * gcc.target/mips/msub-8.c: Likewise. + +2008-11-17 Richard Sandiford <rdsandiford@googlemail.com> + * gcc.target/mips/no-smartmips-ror-1.c: Use -march=mips32 instead of -march=mips32r2. diff --git a/gcc/testsuite/gcc.target/mips/madd-5.c b/gcc/testsuite/gcc.target/mips/madd-5.c new file mode 100644 index 00000000000..780194dc7e6 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/madd-5.c @@ -0,0 +1,8 @@ +/* { dg-mips-options "-O2 -march=5kc" } */ +/* { dg-final { scan-assembler-times "\tmadd\t" 4 } } */ +/* { dg-final { scan-assembler-not "\tmtlo\t" } } */ +/* { dg-final { scan-assembler-times "\tmflo\t" 3 } } */ + +NOMIPS16 void f1 (int *a) { a[0] = a[0] * a[1] + a[2] * a[3]; } +NOMIPS16 void f2 (int *a) { a[0] = a[0] * a[1] + a[2] * a[3] + a[4]; } +NOMIPS16 void f3 (int *a) { a[0] = a[0] * a[1] + a[2] * a[3] + a[4] * a[5]; } diff --git a/gcc/testsuite/gcc.target/mips/madd-6.c b/gcc/testsuite/gcc.target/mips/madd-6.c new file mode 100644 index 00000000000..bbb6783d4a0 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/madd-6.c @@ -0,0 +1,6 @@ +/* { dg-mips-options "-O2 -march=5kc" } */ +/* { dg-final { scan-assembler-not "\tmadd\t" } } */ +/* { dg-final { scan-assembler "\tmul\t" } } */ +/* { dg-final { scan-assembler "\taddu\t" } } */ + +NOMIPS16 void f1 (int *a) { a[0] = a[0] * a[1] + a[2]; } diff --git a/gcc/testsuite/gcc.target/mips/madd-7.c b/gcc/testsuite/gcc.target/mips/madd-7.c new file mode 100644 index 00000000000..25fd07db128 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/madd-7.c @@ -0,0 +1,14 @@ +/* { dg-mips-options "-O2 -march=5kc" } */ +/* { dg-final { scan-assembler-not "\tmul\t" } } */ +/* { dg-final { scan-assembler "\tmadd\t" } } */ + +NOMIPS16 int +f1 (int *a, int *b, int n) +{ + int x, i; + + x = 0; + for (i = 0; i < n; i++) + x += a[i] * b[i]; + return x; +} diff --git a/gcc/testsuite/gcc.target/mips/madd-8.c b/gcc/testsuite/gcc.target/mips/madd-8.c new file mode 100644 index 00000000000..0fc680e5979 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/madd-8.c @@ -0,0 +1,15 @@ +/* { dg-mips-options "-O2 -march=5kc" } */ +/* { dg-final { scan-assembler "\tmul\t" } } */ +/* { dg-final { scan-assembler-not "\tmadd\t" } } */ +/* { dg-final { scan-assembler-not "\tmtlo\t" } } */ +/* { dg-final { scan-assembler-not "\tmflo\t" } } */ + +NOMIPS16 int +f2 (int x, int y, int z) +{ + asm volatile ("" ::: "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", "$9", + "$10", "$11", "$12", "$13", "$14", "$15", "$16", "$17", + "$18", "$19", "$20", "$21", "$22", "$23", "$24", "$25", + "$31"); + return x * y + z; +} diff --git a/gcc/testsuite/gcc.target/mips/msub-5.c b/gcc/testsuite/gcc.target/mips/msub-5.c new file mode 100644 index 00000000000..675da64a5e1 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/msub-5.c @@ -0,0 +1,8 @@ +/* { dg-mips-options "-O2 -march=5kc" } */ +/* { dg-final { scan-assembler-times "\tmsub\t" 4 } } */ +/* { dg-final { scan-assembler-not "\tmtlo\t" } } */ +/* { dg-final { scan-assembler-times "\tmflo\t" 3 } } */ + +NOMIPS16 void f1 (int *a) { a[0] = a[0] * a[1] - a[2] * a[3]; } +NOMIPS16 void f2 (int *a) { a[0] = a[0] * a[1] - a[2] * a[3] - a[4]; } +NOMIPS16 void f3 (int *a) { a[0] = a[0] * a[1] - a[2] * a[3] - a[4] * a[5]; } diff --git a/gcc/testsuite/gcc.target/mips/msub-6.c b/gcc/testsuite/gcc.target/mips/msub-6.c new file mode 100644 index 00000000000..afe01cb5162 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/msub-6.c @@ -0,0 +1,6 @@ +/* { dg-mips-options "-O2 -march=5kc" } */ +/* { dg-final { scan-assembler-not "\tmsub\t" } } */ +/* { dg-final { scan-assembler "\tmul\t" } } */ +/* { dg-final { scan-assembler "\tsubu\t" } } */ + +NOMIPS16 void f1 (int *a) { a[0] = a[0] - a[1] * a[2]; } diff --git a/gcc/testsuite/gcc.target/mips/msub-7.c b/gcc/testsuite/gcc.target/mips/msub-7.c new file mode 100644 index 00000000000..9fff31d5132 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/msub-7.c @@ -0,0 +1,14 @@ +/* { dg-mips-options "-O2 -march=5kc" } */ +/* { dg-final { scan-assembler-not "\tmul\t" } } */ +/* { dg-final { scan-assembler "\tmsub\t" } } */ + +NOMIPS16 int +f1 (int *a, int *b, int n) +{ + int x, i; + + x = 100; + for (i = 0; i < n; i++) + x -= a[i] * b[i]; + return x; +} diff --git a/gcc/testsuite/gcc.target/mips/msub-8.c b/gcc/testsuite/gcc.target/mips/msub-8.c new file mode 100644 index 00000000000..7517540cdc4 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/msub-8.c @@ -0,0 +1,15 @@ +/* { dg-mips-options "-O2 -march=5kc" } */ +/* { dg-final { scan-assembler "\tmul\t" } } */ +/* { dg-final { scan-assembler-not "\tmsub\t" } } */ +/* { dg-final { scan-assembler-not "\tmtlo\t" } } */ +/* { dg-final { scan-assembler-not "\tmflo\t" } } */ + +NOMIPS16 int +f2 (int x, int y, int z) +{ + asm volatile ("" ::: "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", "$9", + "$10", "$11", "$12", "$13", "$14", "$15", "$16", "$17", + "$18", "$19", "$20", "$21", "$22", "$23", "$24", "$25", + "$31"); + return x - y * z; +} |