From 4a148e19be2b45ab4c8dcd081e37cc99f976649f Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 21 Mar 2016 20:56:50 +0100 Subject: 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 --- gcc/ChangeLog | 21 +++++++++++++++------ gcc/config/i386/i386.md | 20 ++++++++++---------- gcc/testsuite/ChangeLog | 13 +++++++++---- gcc/testsuite/gcc.target/i386/pr70327.c | 12 ++++++++++++ 4 files changed, 46 insertions(+), 20 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr70327.c (limited to 'gcc') 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 + + 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 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR @@ -32,7 +40,7 @@ 2016-03-21 Kirill Yukhin PR target/70293 - * config/i386/sse.md: (define_insn "*vec_dup"/AVX2): + * config/i386/sse.md: (define_insn "*vec_dup"/AVX2): Block third alternative for AVX-512VL target, 2016-03-21 Martin Liska @@ -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 @@ -67,7 +75,7 @@ the REG_EQUIV note created in the dump file. 2016-03-16 David Wohlferd - Bernd Schmidt + Bernd Schmidt * doc/extend.texi: Document more potential problems with basic asms. @@ -83,8 +91,8 @@ 2016-03-18 Kirill Yukhin - * 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 @@ -564,7 +572,8 @@ 2016-03-10 Jan Hubicka 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..90fec1b2 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1872,14 +1872,6 @@ (set_attr "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 + + PR target/70327 + * gcc.target/i386/pr70327.c: New test. + 2016-03-21 Martin Liska * gcc.dg/ipa/pr70306.c: New test. -2016-03-21 Andre Vieira +2016-03-21 Andre Vieira * 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 PR rtl-optimization/69102 @@ -259,7 +264,7 @@ 2016-03-15 Andrey Belevantsev PR rtl-optimization/63384 - * g++.dg/pr63384.C: New test. + * g++.dg/pr63384.C: New test. 2016-03-15 Andrey Belevantsev @@ -607,7 +612,7 @@ * gcc.target/arm/pr45701-2.c: Likewise. 2016-02-26 Richard Biener - Jeff Law + Jeff Law 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); +} -- cgit v1.1