re PR target/83930 (ICE: RTL check: expected code 'const_int', have 'mem' in simplify_binary_operation_1, at simplify-rtx.c:3302)

PR target/83930
	* simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use
	UINTVAL (trueop1) instead of INTVAL (op1).

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

From-SVN: r256915
This commit is contained in:
Jakub Jelinek 2018-01-20 10:54:06 +01:00 committed by Jakub Jelinek
parent f18fee823b
commit 09cbbded0d
4 changed files with 30 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2018-01-20 Jakub Jelinek <jakub@redhat.com>
PR target/83930
* simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use
UINTVAL (trueop1) instead of INTVAL (op1).
2018-01-19 Jakub Jelinek <jakub@redhat.com>
PR debug/81570

View File

@ -3411,7 +3411,8 @@ simplify_binary_operation_1 (enum rtx_code code, machine_mode mode,
if (CONST_INT_P (trueop1)
&& exact_log2 (UINTVAL (trueop1)) > 0)
return simplify_gen_binary (AND, mode, op0,
gen_int_mode (INTVAL (op1) - 1, mode));
gen_int_mode (UINTVAL (trueop1) - 1,
mode));
break;
case MOD:

View File

@ -1,3 +1,8 @@
2018-01-20 Jakub Jelinek <jakub@redhat.com>
PR target/83930
* gcc.dg/pr83930.c: New test.
2018-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/83900

View File

@ -0,0 +1,17 @@
/* PR target/83930 */
/* { dg-do compile } */
/* { dg-options "-Og -fno-tree-ccp -w" } */
unsigned __attribute__ ((__vector_size__ (16))) v;
static inline void
bar (unsigned char d)
{
v /= d;
}
__attribute__ ((always_inline)) void
foo (void)
{
bar (4);
}