From: Uros Bizjak Date: Mon, 21 Mar 2016 22:20:08 +0000 (+0100) Subject: re PR target/70327 (ICE: in extract_insn, at recog.c:2287 (unrecognizable insn) with... X-Git-Tag: releases/gcc-4.9.4~261 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f580366ebde0ecadc108428967b94a60a369a312;p=thirdparty%2Fgcc.git 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: r234385 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2f612bec29d9..82c1c5e491ab 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 Tom de Vries backport from trunk: diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index bf148ed5cd2b..ea02e64e818a 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1782,7 +1782,7 @@ [(set (match_operand:XI 0 "nonimmediate_operand") (match_operand:XI 1 "general_operand"))] "TARGET_AVX512F" - "ix86_expand_move (XImode, operands); DONE;") + "ix86_expand_vector_move (XImode, operands); DONE;") ;; Reload patterns to support multi-word load/store ;; with non-offsetable address. @@ -1822,11 +1822,11 @@ [(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 2b3d7e16973a..6f181b9a76fc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-03-21 Uros Bizjak + + PR target/70327 + * gcc.target/i386/pr70327.c: New test. + 2016-03-21 Tom de Vries backport from trunk: diff --git a/gcc/testsuite/gcc.target/i386/pr70327.c b/gcc/testsuite/gcc.target/i386/pr70327.c new file mode 100644 index 000000000000..035bb68d458f --- /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); +}