diff options
author | Alan Modra <amodra@gmail.com> | 2018-11-13 13:50:22 +1030 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2018-11-13 13:50:22 +1030 |
commit | 21edd5af33efc75544b53977cf9f73dac5181ca5 (patch) | |
tree | 55f9dfec64f20bf550b15a5322b614e794d40ae0 /gcc | |
parent | ee0d2718cd3433345e2b9b27b018e08279776a4c (diff) | |
download | gcc-21edd5af33efc75544b53977cf9f73dac5181ca5.zip gcc-21edd5af33efc75544b53977cf9f73dac5181ca5.tar.gz gcc-21edd5af33efc75544b53977cf9f73dac5181ca5.tar.bz2 |
[RS6000] Rotate testcase
The testcase exercises one of the rotate patterns.
gcc/
* config/rs6000/predicates.md (logical_const_operand),
(logical_operand): Correct comment.
gcc/testsuite/
* gcc.target/powerpc/rotmask.c: New.
From-SVN: r266046
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/predicates.md | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/rotmask.c | 8 |
4 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9950063..b2ab548 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2018-11-13 Alan Modra <amodra@gmail.com> + * config/rs6000/predicates.md (logical_const_operand), + (logical_operand): Correct comment. + +2018-11-13 Alan Modra <amodra@gmail.com> + * config/rs6000/rs6000.md (addsi3_high): Prefix with '*'. 2018-11-13 Alan Modra <amodra@gmail.com> diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 40b0114..b80c278 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -922,7 +922,7 @@ && !satisfies_constraint_L (op)"))) ;; Return 1 if the operand is a constant that can be used as the operand -;; of an OR or XOR. +;; of an AND, OR or XOR. (define_predicate "logical_const_operand" (match_code "const_int") { @@ -935,7 +935,7 @@ }) ;; Return 1 if the operand is a non-special register or a constant that -;; can be used as the operand of an OR or XOR. +;; can be used as the operand of an AND, OR or XOR. (define_predicate "logical_operand" (ior (match_operand 0 "gpc_reg_operand") (match_operand 0 "logical_const_operand"))) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cff23eee..e7d4ad7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2018-11-13 Alan Modra <amodra@gmail.com> + + * gcc.target/powerpc/rotmask.c: New. + 2018-11-13 Kugan Vivekanandarajah <kuganv@linaro.org> PR middle-end/86677 diff --git a/gcc/testsuite/gcc.target/powerpc/rotmask.c b/gcc/testsuite/gcc.target/powerpc/rotmask.c new file mode 100644 index 0000000..4d1b917 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/rotmask.c @@ -0,0 +1,8 @@ +/* { dg-require-effective-target lp64 } */ +/* { dg-options "-O2" } */ +/* { dg-final { scan-assembler-not "rotldi" } } */ + +unsigned long f (unsigned long x) +{ + return ((x << 1) | (x >> 63)) & 0xffffffff; +} |