re PR target/65407 (Extra mask register move in gcc.target/i386/avx512f-kandnw-1.c)
authorVladimir Makarov <vmakarov@redhat.com>
Fri, 27 Mar 2015 14:47:24 +0000 (14:47 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Fri, 27 Mar 2015 14:47:24 +0000 (14:47 +0000)
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

gcc/ChangeLog
gcc/ira-costs.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c

index d5535f9df08f8c69c926a1ee84ea7d746f564d06..05b193bad28848cf8092f79177acb336f9d8823b 100644 (file)
@@ -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
index c19f2586affb562101b41b0c9a0cf5fd4681c647..354ba6ba06342d4739d53af80e6ecc3e7f39b0b8 100644 (file)
@@ -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++;
                }
            }
 
index 1ee29dd3f61c2cb8d5a9a74ffd0f02c1724319f5..69a1cdadc4883907bc836894102d248a4a159fe1 100644 (file)
@@ -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
index 17b7b295a0ec440f44ba0c73d2f5c440690c5489..727a5890783d4632b362a4185da3fb247cb3f058 100644 (file)
@@ -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>