re PR target/64387 (ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with...
authorIlya Tocar <ilya.tocar@intel.com>
Wed, 14 Jan 2015 13:45:49 +0000 (13:45 +0000)
committerIlya Tocar <tocarip@gcc.gnu.org>
Wed, 14 Jan 2015 13:45:49 +0000 (16:45 +0300)
PR target/64387

gcc/
* config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
(vec_unpacks_hi_v16sf): Ditto.

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

From-SVN: r219598

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

index 857531f0c63840ee8d83c80f858e70b4eadba589..d9ecac1a3e5e36962857988ed6f831ae2a1ee2c7 100644 (file)
@@ -1,3 +1,9 @@
+2014-01-14  Ilya Tocar  <ilya.tocar@intel.com>
+
+       PR target/64387
+       * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
+       (vec_unpacks_hi_v16sf): Ditto.
+
 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
index 3b9108cef2b1d8471b6bb66ac0c2b168ef177d26..cd4af4e09ac8cd9cb8201a55771d18a8b6f390e6 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")
 (define_expand "vec_unpacks_hi_v16sf"
   [(set (match_dup 2)
        (vec_select:V8SF
-         (match_operand:V16SF 1 "nonimmediate_operand")
+         (match_operand:V16SF 1 "register_operand")
          (parallel [(const_int 8) (const_int 9)
                     (const_int 10) (const_int 11)
                     (const_int 12) (const_int 13)
index 7039c9e1e3959c272e9b2c6b4e0c7775bb586542..8febe145a9225ee7ccd456876c3717b30a46eecb 100644 (file)
@@ -1,3 +1,8 @@
+2014-01-14  Ilya Tocar  <ilya.tocar@intel.com>
+
+       PR target/64387
+       * gcc.target/i386/pr64387.c: New test.
+
 2015-01-14  Christophe Lyon  <christophe.lyon@linaro.org>
 
        * gcc.target/aarch64/store-pair-1.c: Fix typo.
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..dd38142
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-vectorize -ffloat-store -mavx512er" } */
+
+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;
+}