summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortocarip <tocarip@138bc75d-0d04-0410-961f-82ee72b054a4>2015-02-17 11:41:55 +0000
committertocarip <tocarip@138bc75d-0d04-0410-961f-82ee72b054a4>2015-02-17 11:41:55 +0000
commit6f5b9198dbd745c1acde6d1bbf072f563f8843c9 (patch)
tree725f1bee0208dbf95a22d87405350b7a8190983b
parentb844e9f9d57e904874aa7395df2cbdc9d7883829 (diff)
downloadgcc-6f5b9198dbd745c1acde6d1bbf072f563f8843c9.tar.gz
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. (vec_unpacks_hi_v16sf): Ditto. * gcc.target/i386/pr64387.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@220756 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i386/sse.md4
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.target/i386/pr64387.c15
4 files changed, 34 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1b2bd46fe77..88ed21d8f51 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+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.
+ (vec_unpacks_hi_v16sf): Ditto.
+
2015-02-15 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa.c (pa_secondary_reload): Request a secondary reload
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 5a62572b0cd..439ced0dde5 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -4385,7 +4385,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")
@@ -4397,7 +4397,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 f83330a4064..ec65640a109 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 00000000000..dd381425a27
--- /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;
+}