diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2017-03-13 13:56:11 +0100 |
---|---|---|
committer | Claudiu Zissulescu <claziss@gcc.gnu.org> | 2017-03-13 13:56:11 +0100 |
commit | 8c56cc5a88342b2c327bdcee9245e4afd86a8862 (patch) | |
tree | 9463562e70f25ed71da5652af61dfeafb5baa73c /gcc | |
parent | fa9c1b3c07dfd5aa30fa2f2904cbd928bd5f6a80 (diff) | |
download | gcc-8c56cc5a88342b2c327bdcee9245e4afd86a8862.zip gcc-8c56cc5a88342b2c327bdcee9245e4afd86a8862.tar.gz gcc-8c56cc5a88342b2c327bdcee9245e4afd86a8862.tar.bz2 |
[ARC] Fix tst_bitfield_tst pattern.
gcc/
2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
gcc/testsuite
2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gcc.target/arc/bitfield.c: New file.
From-SVN: r246090
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/arc/arc.md | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rwxr-xr-x | gcc/testsuite/gcc.target/arc/bitfield.c | 28 |
4 files changed, 37 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6fdef52..1c160a5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> + * config/arc/arc.md (*tst_bitfield_tst): Fix pattern. + +2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> + * config/arc/arc.c (arc_output_addsi): Emit code density adds. * config/arc/arc.md (cpu_facility): Add cd variant. (*movqi_insn): Add code density variant. diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md index 3e715b5..a65735f 100644 --- a/gcc/config/arc/arc.md +++ b/gcc/config/arc/arc.md @@ -901,7 +901,7 @@ && (INTVAL (operands[3]) + INTVAL (operands[2]) <= 11 || (INTVAL (operands[3]) <= 11 && INTVAL (operands[3]) + INTVAL (operands[2]) == 32))" - "tst %1,(1<<%2)-1<<%3" + "tst %1,((1<<%2)-1)<<%3" [(set_attr "type" "compare") (set_attr "cond" "set_zn") (set_attr "length" "4")]) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5b7b5c1..873f648 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> + * testsuite/gcc.target/arc/bitfield.c: New file. + +2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> + * testsuite/gcc.target/arc/pr9001090948.c: New file. 2017-03-11 Segher Boessenkool <segher@kernel.crashing.org> diff --git a/gcc/testsuite/gcc.target/arc/bitfield.c b/gcc/testsuite/gcc.target/arc/bitfield.c new file mode 100755 index 0000000..187cd1d --- /dev/null +++ b/gcc/testsuite/gcc.target/arc/bitfield.c @@ -0,0 +1,28 @@ +/* { dg-do run } */ +/* { dg-options "-O2" } */ + +#include <stdlib.h> + +struct ubifs_budget_req { + unsigned int fast:7; + unsigned int new_ino_d:13; +}; + +int printf(const char *format, ...); + +void __attribute__ ((noinline)) +fff(struct ubifs_budget_req *req) +{ + if (req->new_ino_d & 7) + abort (); +} + +int main (void) +{ + struct ubifs_budget_req req = { + .fast = 8, + .new_ino_d = 0, + }; + fff(&req); + return 0; +} |