re PR middle-end/70050 (ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have vector_type in generic_simplify_162, at generic-match.c:6175)

PR middle-end/70050
	* match.pd (X % -Y): Add INTEGRAL_TYPE_P check.

	* gcc.dg/pr70050.c: New test.

From-SVN: r233937
This commit is contained in:
Marek Polacek 2016-03-03 11:42:19 +00:00 committed by Marek Polacek
parent fd2298e3e1
commit a2a743a13a
4 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2016-03-03 Marek Polacek <polacek@redhat.com>
PR middle-end/70050
* match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
2016-03-03 Martin Liska <mliska@suse.cz>
PR tree-optimization/70043

View File

@ -293,7 +293,8 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* X % -Y is the same as X % Y. */
(simplify
(trunc_mod @0 (convert? (negate @1)))
(if (!TYPE_UNSIGNED (type)
(if (INTEGRAL_TYPE_P (type)
&& !TYPE_UNSIGNED (type)
&& !TYPE_OVERFLOW_TRAPS (type)
&& tree_nop_conversion_p (type, TREE_TYPE (@1))
/* Avoid this transformation if X might be INT_MIN or

View File

@ -1,3 +1,8 @@
2016-03-03 Marek Polacek <polacek@redhat.com>
PR middle-end/70050
* gcc.dg/pr70050.c: New test.
2016-03-03 James Greenhalgh <james.greenhalgh@arm.com>
* gcc.dg/vect/bb-slp-34.c: Don't XFAIL for ARM/AArch64.

View File

@ -0,0 +1,11 @@
/* PR middle-end/70025 */
/* { dg-do compile } */
/* { dg-options "-Wno-psabi" } */
typedef int v8si __attribute__ ((vector_size (32)));
v8si
foo (v8si v)
{
return v %= -v;
}