]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR target/64387 (ICE: in extract_insn, at recog.c:2327 (unrecognizable...
authorIlya Tocar <ilya.tocar@intel.com>
Tue, 17 Feb 2015 10:35:12 +0000 (10:35 +0000)
committerIlya Tocar <tocarip@gcc.gnu.org>
Tue, 17 Feb 2015 10:35:12 +0000 (13:35 +0300)
Backported from mainline
2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>

PR target/64387
* config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.

* gcc.target/i386/pr64387.c: New test.

From-SVN: r220755

gcc/ChangeLog
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr64387.c [new file with mode: 0644]

index 469ee31c9082a033a9a1510c1ba85d0dc432ab7e..13ef8bc9ba356268c6c1033361d50622e8e4392b 100644 (file)
@@ -1,3 +1,11 @@
+2015-02-17  Ilya Tocar  <ilya.tocar@intel.com>
+
+       Backported from mainline
+       2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
+
+       PR target/64387
+       * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
+
 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
index bc47bb4067adc5a52fea345005d3c3774d0eb743..89ead074781c835494dab19f60bd315989ceb44e 100644 (file)
 (define_expand "vec_unpacks_hi_v8sf"
   [(set (match_dup 2)
        (vec_select:V4SF
-         (match_operand:V8SF 1 "nonimmediate_operand")
+         (match_operand:V8SF 1 "register_operand")
          (parallel [(const_int 4) (const_int 5)
                     (const_int 6) (const_int 7)])))
    (set (match_operand:V4DF 0 "register_operand")
index ff0934bb381138b2eea29b969915e47d5aa3252e..7c79fd4df502e6aa644e4fbad9754b6269f8f09f 100644 (file)
@@ -1,3 +1,11 @@
+2015-02-17  Ilya Tocar  <ilya.tocar@intel.com>
+
+       Backport from mainline
+       2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
+
+       PR target/64387
+       * gcc.target/i386/pr64387.c: New test.
+
 2015-02-13  Mikael Morin  <mikael@gcc.gnu.org>
 
        PR fortran/63744
diff --git a/gcc/testsuite/gcc.target/i386/pr64387.c b/gcc/testsuite/gcc.target/i386/pr64387.c
new file mode 100644 (file)
index 0000000..332a639
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-vectorize -ffloat-store -mavx2" } */
+
+float x[256];
+
+double *
+foo (void)
+{
+  double *z = __builtin_malloc (sizeof (double) * 256);
+  int i;
+  for (i = 0; i < 256; ++i)
+    z[i] = x[i] + 1.0f;
+  foo ();
+  return 0;
+}