diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2016-03-21 20:56:50 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2016-03-21 20:56:50 +0100 |
commit | 4a148e19be2b45ab4c8dcd081e37cc99f976649f (patch) | |
tree | ba762dd52b128b69673d1699e514b187d5976337 /gcc | |
parent | 60d15bae0c64d8385949ab720a0dc387b729915e (diff) | |
download | gcc-4a148e19be2b45ab4c8dcd081e37cc99f976649f.zip gcc-4a148e19be2b45ab4c8dcd081e37cc99f976649f.tar.gz gcc-4a148e19be2b45ab4c8dcd081e37cc99f976649f.tar.bz2 |
re PR target/70327 (ICE: in extract_insn, at recog.c:2287 (unrecognizable insn) with -mavx512ifma and v4ti argument)
PR target/70327
* config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
of ix86_expand_move.
(movoi): Ditto.
(movti): Use general_operand for operand 1 predicate.
testsuite/ChangeLog:
PR target/70327
* gcc.target/i386/pr70327.c: New test.
From-SVN: r234380
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 21 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 20 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr70327.c | 12 |
4 files changed, 46 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f92908e..67b5df4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2016-03-21 Uros Bizjak <ubizjak@gmail.com> + + PR target/70327 + * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead + of ix86_expand_move. + (movoi): Ditto. + (movti): Use general_operand for operand 1 predicate. + 2016-03-21 Martin Liska <mliska@suse.cz> * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR @@ -32,7 +40,7 @@ 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com> PR target/70293 - * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2): + * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2): Block third alternative for AVX-512VL target, 2016-03-21 Martin Liska <mliska@suse.cz> @@ -55,7 +63,7 @@ PR rtl-optimization/69102 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field - when we have a readonly dependency context. + when we have a readonly dependency context. 2016-03-18 Jeff Law <law@redhat.com> @@ -67,7 +75,7 @@ the REG_EQUIV note created in the dump file. 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com> - Bernd Schmidt <bschmidt@redhat.com> + Bernd Schmidt <bschmidt@redhat.com> * doc/extend.texi: Document more potential problems with basic asms. @@ -83,8 +91,8 @@ 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com> - * config/i386/sse.md: Use vpbroadcastq for broadcasting DF - values to 128b regs. + * config/i386/sse.md: Use vpbroadcastq for broadcasting DF + values to 128b regs. 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com> @@ -564,7 +572,8 @@ 2016-03-10 Jan Hubicka <hubicka@ucw.cz> PR lto/69589 - * cgraph.c (cgraph_node::dump): Dump split_part and indirect_call_target. + * cgraph.c (cgraph_node::dump): Dump split_part and + indirect_call_target. * cgraph.h (cgraph_node): Add indirect_call_target flag. * ipa.c (has_addr_references_p): Cleanup. (is_indirect_call_target_p): New. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index eed43b1..90fec1b 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1872,14 +1872,6 @@ (set_attr "mode" "<MODE>")]) -;; Move instructions. - -(define_expand "movxi" - [(set (match_operand:XI 0 "nonimmediate_operand") - (match_operand:XI 1 "general_operand"))] - "TARGET_AVX512F" - "ix86_expand_move (XImode, operands); DONE;") - ;; Reload patterns to support multi-word load/store ;; with non-offsetable address. (define_expand "reload_noff_store" @@ -1914,15 +1906,23 @@ DONE; }) +;; Move instructions. + +(define_expand "movxi" + [(set (match_operand:XI 0 "nonimmediate_operand") + (match_operand:XI 1 "general_operand"))] + "TARGET_AVX512F" + "ix86_expand_vector_move (XImode, operands); DONE;") + (define_expand "movoi" [(set (match_operand:OI 0 "nonimmediate_operand") (match_operand:OI 1 "general_operand"))] "TARGET_AVX" - "ix86_expand_move (OImode, operands); DONE;") + "ix86_expand_vector_move (OImode, operands); DONE;") (define_expand "movti" [(set (match_operand:TI 0 "nonimmediate_operand") - (match_operand:TI 1 "nonimmediate_operand"))] + (match_operand:TI 1 "general_operand"))] "TARGET_64BIT || TARGET_SSE" { if (TARGET_64BIT) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f572c9d..d91d999 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,8 +1,13 @@ +2016-03-21 Uros Bizjak <ubizjak@gmail.com> + + PR target/70327 + * gcc.target/i386/pr70327.c: New test. + 2016-03-21 Martin Liska <mliska@suse.cz> * gcc.dg/ipa/pr70306.c: New test. -2016-03-21 Andre Vieira <andre.simoesdiasvieira@arm> +2016-03-21 Andre Vieira <andre.simoesdiasvieira@arm.com> * gcc.target/arm/attr-align1.c: Skip if M-profile. * gcc.target/arm/attr-align3.c: Likewise. @@ -34,7 +39,7 @@ PR rtl-optimization/69307 * gcc.target/arm/pr69307.c: New test. - + 2016-03-21 Andrey Belevantsev <abel@ispras.ru> PR rtl-optimization/69102 @@ -259,7 +264,7 @@ 2016-03-15 Andrey Belevantsev <abel@ispras.ru> PR rtl-optimization/63384 - * g++.dg/pr63384.C: New test. + * g++.dg/pr63384.C: New test. 2016-03-15 Andrey Belevantsev <abel@ispras.ru> @@ -607,7 +612,7 @@ * gcc.target/arm/pr45701-2.c: Likewise. 2016-02-26 Richard Biener <rguenther@suse.de> - Jeff Law <law@redhat.com> + Jeff Law <law@redhat.com> PR tree-optimization/69740 * gcc.c-torture/compile/pr69740-1.c: New test. diff --git a/gcc/testsuite/gcc.target/i386/pr70327.c b/gcc/testsuite/gcc.target/i386/pr70327.c new file mode 100644 index 0000000..035bb68 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr70327.c @@ -0,0 +1,12 @@ +/* PR target/70327 */ +/* { dg-do compile } */ +/* { dg-require-effective-target int128 } */ +/* { dg-options "-mavx512f" } */ + +typedef unsigned __int128 v4ti __attribute__ ((vector_size (64))); + +void +foo (v4ti v) +{ + foo(v); +} |