From 110b7886484f6ead6527376e65980bcaebe9b673 Mon Sep 17 00:00:00 2001 From: Ilya Tocar Date: Wed, 14 Jan 2015 13:45:49 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/sse.md | 4 ++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/pr64387.c | 15 +++++++++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr64387.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 857531f0c63..d9ecac1a3e5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-01-14 Ilya Tocar + + PR target/64387 + * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate. + (vec_unpacks_hi_v16sf): Ditto. + 2015-01-14 Kyrylo Tkachov * config/aarch64/arm_neon.h: Error out if AdvancedSIMD diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 3b9108cef2b..cd4af4e09ac 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 7039c9e1e39..8febe145a92 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-14 Ilya Tocar + + PR target/64387 + * gcc.target/i386/pr64387.c: New test. + 2015-01-14 Christophe Lyon * 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 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; +}