diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2015-03-27 14:47:24 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2015-03-27 14:47:24 +0000 |
commit | d81c5030d1ca9920bc41de91819cef17c83a8805 (patch) | |
tree | ab5f9fa3b84fcb355439b45a9188b52276e8a009 /gcc | |
parent | 2166d2a1a010c5172a14e30bb17c3bd4ca9a9ff3 (diff) | |
download | gcc-d81c5030d1ca9920bc41de91819cef17c83a8805.zip gcc-d81c5030d1ca9920bc41de91819cef17c83a8805.tar.gz gcc-d81c5030d1ca9920bc41de91819cef17c83a8805.tar.bz2 |
re PR target/65407 (Extra mask register move in gcc.target/i386/avx512f-kandnw-1.c)
2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
PR target/65407
* ira-costs.c (record_reg_classes): Process all constraint string
containing 0-9.
2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
PR target/65407
* gcc.target/i386/avx512f-kandnw-1.c: Add scanning kmovw.
From-SVN: r221734
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ira-costs.c | 11 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c | 1 |
4 files changed, 14 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5535f9..05b193b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-03-27 Vladimir Makarov <vmakarov@redhat.com> + + PR target/65407 + * ira-costs.c (record_reg_classes): Process all constraint string + containing 0-9. + 2015-03-27 Bernd Schmidt <bernds@codesourcery.com> * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index c19f258..354ba6b 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -589,7 +589,7 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops, while (*p == '%' || *p == '=' || *p == '+' || *p == '&') p++; - if (p[0] >= '0' && p[0] <= '0' + i && (p[1] == ',' || p[1] == 0)) + if (p[0] >= '0' && p[0] <= '0' + i) { /* Copy class and whether memory is allowed from the matching alternative. Then perform any needed cost @@ -754,14 +754,7 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops, && ! find_reg_note (insn, REG_DEAD, op)) alt_cost += 2; - /* This is in place of ordinary cost computation for - this operand, so skip to the end of the - alternative (should be just one character). */ - while (*p && *p++ != ',') - ; - - constraints[i] = p; - continue; + p++; } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1ee29dd..69a1cda 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-03-27 Vladimir Makarov <vmakarov@redhat.com> + + PR target/65407 + * gcc.target/i386/avx512f-kandnw-1.c: Add scanning kmovw. + 2015-03-27 Andre Vehreschild <vehre@gmx.de> * gfortran.dg/unlimited_polymorphic_24.f03: Added copyright diff --git a/gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c b/gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c index 17b7b29..727a589 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ /* { dg-final { scan-assembler-times "kandnw\[ \\t\]+\[^\{\n\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "kmovw" 2 } } */ #include <immintrin.h> |