aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Tocar <ilya.tocar@intel.com>2015-01-14 13:45:49 +0000
committerIlya Tocar <tocarip@gcc.gnu.org>2015-01-14 16:45:49 +0300
commit110b7886484f6ead6527376e65980bcaebe9b673 (patch)
tree512eb08e60af9ae6f38d183a132d28f0da3acff9 /gcc
parent5c52d2493699837a0d81ff065879438aa3a09d22 (diff)
downloadgcc-110b7886484f6ead6527376e65980bcaebe9b673.zip
gcc-110b7886484f6ead6527376e65980bcaebe9b673.tar.gz
gcc-110b7886484f6ead6527376e65980bcaebe9b673.tar.bz2
re PR target/64387 (ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with -ffloat-store -mavx512er)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/sse.md4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr64387.c15
4 files changed, 28 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 857531f..d9ecac1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 3b9108c..cd4af4e 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -5078,7 +5078,7 @@
(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")
@@ -5090,7 +5090,7 @@
(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)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7039c9e..8febe14 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..dd38142
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr64387.c
@@ -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;
+}