summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-02-03 23:39:31 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-02-03 23:39:31 +0000
commit676806d4955ddb24ce02411fbca3ee0f80241ba6 (patch)
treeb33caba003687bed5a02b864dbe384a31e271908
parent553eb299aadfe54096cf60a3331eb520e169e0f6 (diff)
downloadppe42-gcc-676806d4955ddb24ce02411fbca3ee0f80241ba6.tar.gz
ppe42-gcc-676806d4955ddb24ce02411fbca3ee0f80241ba6.zip
PR middle-end/30667
* combine.c (try_combine): Do not substitute source operand with constants wider than 2 * HOST_BITS_PER_WIDE_INT. testsuite/ChangeLog: PR middle-end/30667 * gfortran.dg/pr30667.f: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121555 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/combine.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr30667.f10
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d8ee26993cd..fbf14560fd3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-03 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/30667
+ * combine.c (try_combine): Do not substitute source operand
+ with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
+
2007-02-03 Jan Hubicka <jh@suse.cz>
PR gcov-profile/30650
diff --git a/gcc/combine.c b/gcc/combine.c
index aa1e2ce2034..6605b7a3558 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -2003,7 +2003,9 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
offset = -1;
}
- if (offset >= 0)
+ if (offset >= 0
+ && (GET_MODE_BITSIZE (GET_MODE (SET_DEST (temp)))
+ <= HOST_BITS_PER_WIDE_INT * 2))
{
HOST_WIDE_INT mhi, ohi, ihi;
HOST_WIDE_INT mlo, olo, ilo;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7ec593780d2..2193c956386 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-03 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/30667
+ * gfortran.dg/pr30667.f: New test.
+
2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/builtins-54.c: Add more cases.
diff --git a/gcc/testsuite/gfortran.dg/pr30667.f b/gcc/testsuite/gfortran.dg/pr30667.f
new file mode 100644
index 00000000000..0f1af29d1f9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr30667.f
@@ -0,0 +1,10 @@
+! { dg-do compile { target i?86-*-* x86_64-*-* } }
+! { dg-require-effective-target ilp32 }
+! { dg-options "-O2 -msse -ftree-vectorize" }
+ subroutine cblank_cvb(a,ndim)
+ character*(*) a
+ character*1 blank
+ data blank/' '/
+ do 100 i=1,ndim
+100 a(i:i)=blank
+ end
OpenPOWER on IntegriCloud