aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-01-20 10:54:06 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2018-01-20 10:54:06 +0100
commit09cbbded0d197f2da4f01be6f90c8535474b8200 (patch)
tree4d6b788cd8b16520ee399d6ae4558099799e7a26
parentf18fee823bb765b1efab04025d28fcf9315fb80b (diff)
downloadgcc-09cbbded0d197f2da4f01be6f90c8535474b8200.zip
gcc-09cbbded0d197f2da4f01be6f90c8535474b8200.tar.gz
gcc-09cbbded0d197f2da4f01be6f90c8535474b8200.tar.bz2
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/simplify-rtx.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr83930.c17
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bd3c0036..9836756 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index b0a0178..2e7aa5c 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -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:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0f7baad..e58ae1e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gcc.dg/pr83930.c b/gcc/testsuite/gcc.dg/pr83930.c
new file mode 100644
index 0000000..8a079af
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr83930.c
@@ -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);
+}