diff options
author | Richard Guenther <rguenther@suse.de> | 2012-02-08 13:29:22 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-02-08 13:29:22 +0000 |
commit | ea72cc1dcab80a27beb22a2c9f0b4110392ec56d (patch) | |
tree | 18998203ec72edbfcd8709766098cdd7edafc8d5 /gcc | |
parent | 9e66e106ab1018782aba2630f01a059cb3c839d1 (diff) | |
download | gcc-ea72cc1dcab80a27beb22a2c9f0b4110392ec56d.zip gcc-ea72cc1dcab80a27beb22a2c9f0b4110392ec56d.tar.gz gcc-ea72cc1dcab80a27beb22a2c9f0b4110392ec56d.tar.bz2 |
re PR rtl-optimization/52170 (ICE in trunc_int_for_mode, at explow.c:57 during simplify_plus_minus)
2012-02-08 Richard Guenther <rguenther@suse.de>
PR rtl-optimization/52170
* simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
properly handle integer vector modes.
* gcc.dg/torture/pr52170.c: New testcase.
From-SVN: r184007
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr52170.c | 17 |
4 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fcea3cf..71cdd93 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-02-08 Richard Guenther <rguenther@suse.de> + + PR rtl-optimization/52170 + * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to + properly handle integer vector modes. + 2012-02-08 Jakub Jelinek <jakub@redhat.com> PR gcov-profile/52150 diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 6733b84..bba565d 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -3947,7 +3947,7 @@ simplify_plus_minus (enum rtx_code code, enum machine_mode mode, rtx op0, /* ~a -> (-a - 1) */ if (n_ops != 7) { - ops[n_ops].op = constm1_rtx; + ops[n_ops].op = CONSTM1_RTX (mode); ops[n_ops++].neg = this_neg; ops[i].op = XEXP (this_op, 0); ops[i].neg = !this_neg; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6cedc9e..7928ea1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-02-08 Richard Guenther <rguenther@suse.de> + + PR rtl-optimization/52170 + * gcc.dg/torture/pr52170.c: New testcase. + 2012-02-08 Jakub Jelinek <jakub@redhat.com> PR gcov-profile/52150 diff --git a/gcc/testsuite/gcc.dg/torture/pr52170.c b/gcc/testsuite/gcc.dg/torture/pr52170.c new file mode 100644 index 0000000..3d0a038 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr52170.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ + +typedef unsigned char uint8_t ; +typedef unsigned long uint32_t; +void f0a(uint32_t * result, uint32_t * arg1) +{ + int idx; + for (idx=0;idx<96;idx += 1) + { + uint8_t temp_5; + uint8_t temp_6; + + temp_5 = ~(*arg1); + temp_6 = (*arg1) + 1 - temp_5; + result[idx] = temp_6; + } +} |