diff options
author | Oleg Endo <olegendo@gcc.gnu.org> | 2015-03-01 18:47:38 +0000 |
---|---|---|
committer | Oleg Endo <olegendo@gcc.gnu.org> | 2015-03-01 18:47:38 +0000 |
commit | f0e677d2e0e9252bd9cb32f3f606ebc7612217ba (patch) | |
tree | c4d2d8a3678e342a535878f8849bdd3189d1f049 | |
parent | 83ed54d7ed0a7f02089ce408e0f0acb30e77d4a9 (diff) | |
download | gcc-f0e677d2e0e9252bd9cb32f3f606ebc7612217ba.zip gcc-f0e677d2e0e9252bd9cb32f3f606ebc7612217ba.tar.gz gcc-f0e677d2e0e9252bd9cb32f3f606ebc7612217ba.tar.bz2 |
re PR target/61142 ([SH] QImode/HImode @(R0,Rm),Rn does not load to Rn = R0)
gcc/testsuite/
PR target/61142
* gcc.target/sh/sh/pr61142.c: New.
From-SVN: r221089
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/sh/pr61142.c | 30 |
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 33d69b0..d8f5180 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-03-01 Oleg Endo <olegendo@gcc.gnu.org> + + PR target/61142 + * gcc.target/sh/sh/pr61142.c: New. + 2015-03-01 Eric Botcazou <ebotcazou@adacore.com> * g++.dg/other/dump-ada-spec-3.C: New test. diff --git a/gcc/testsuite/gcc.target/sh/pr61142.c b/gcc/testsuite/gcc.target/sh/pr61142.c new file mode 100644 index 0000000..4f48b050 --- /dev/null +++ b/gcc/testsuite/gcc.target/sh/pr61142.c @@ -0,0 +1,30 @@ +/* Check that @(r0,rm),rn insns load into r0. */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +/* { dg-final { scan-assembler-times "mov.b\t@\\(r0,r\[0123456789\]\\),r0" 1 } } */ +/* { dg-final { scan-assembler-times "mov.w\t@\\(r0,r\[0123456789\]\\),r0" 1 } } */ +/* { dg-final { scan-assembler-times "mov.l\t@\\(r0,r\[0123456789\]\\),r0" 1 } } */ + +int +test_00 (const char* x, int a, int b, int c) +{ + if (x[a] == 92) + return b; + return c; +} + +int +test_01 (const short* x, int a, int b, int c) +{ + if (x[a] == 92) + return b; + return c; +} + +int +test_02 (const int* x, int a, int b, int c) +{ + if (x[a] == 92) + return b; + return c; +} |